Schema Markup for Films: Structured Data That Helps Google Understand Your Movie
Movie schema markup tells Google your film's title, director, cast, and where to watch it. Learn which schema.org types matter for film websites, how to implement JSON-LD, and how screenings use Event markup.
Filmcane Staff
TeamFilm marketing experts sharing insights for filmmakers

Schema Markup for Films: Structured Data That Helps Google Understand Your Movie
When someone searches your film's title, Google decides what to show: a plain blue link, or a rich panel with your poster, cast, rating, and a "Watch" button. The difference is not luck. It is whether your site gives Google structured data it can parse, or just prose it has to guess at.
Schema markup is the machine-readable layer that turns a film webpage into a film entity Google understands. It is how the search engine learns that the page is about a movie, who directed it, when it released, and where it can be watched. For indie filmmakers whose titles compete with bigger marketing budgets for search visibility, structured data is one of the few SEO advantages that is entirely within your control and entirely free.
This guide covers the schema.org types that matter for film, how to implement them on a film website, and how screenings and events get their own markup. For the broader search context this sits inside, our guide to film SEO covers the rest of the stack.
Quick Answer
Schema markup is structured data you add to your film's webpage, usually as a JSON-LD script, that tells search engines the page describes a specific movie. The core type is Movie, which carries properties like name, image, director, actor, dateCreated, genre, and aggregateRating.
For filmmakers, the properties that matter most are the ones that populate Google's movie features: a poster image in the correct aspect ratio, the release date, the director and principal cast, and a potentialAction with a WatchAction that points to where the film can be streamed. Screenings and festival appearances use the related ScreeningEvent or Event type with a location and showtime. Validate everything with Google's Rich Results Test before assuming it works.
What Structured Data Actually Does for a Film
Google's crawler reads your page's text, but it does not reliably infer that "Marisol Vega" is the director or that the date under the poster is a release date rather than a copyright notice. Structured data removes the guessing by labeling each fact with a schema.org property.
The payoff shows up in three places:
Knowledge panels and rich results. Movie markup feeds the panels that appear for film-title searches: poster, rating, cast, director, synopsis, and streaming links. According to Google's Movie structured data documentation, movie carousels surface marked-up titles on mobile search, and the same data feeds Google TV and Assistant recommendations.
Watch links. The potentialAction property with a WatchAction target is how streaming platforms tell Google "you can watch this title here," which is what builds the provider list in a movie's knowledge panel. For a self-distributed film, pointing a WatchAction at your own viewing page does the same job at smaller scale.
Entity clarity. Structured data helps Google disambiguate your film from everything else sharing its title, which matters more than it sounds for common or one-word titles. The sameAs property linking to your IMDb page and official site anchors the entity.
The Schema Types That Matter for Films
Movie is the primary type for the film itself. The full definition lives at schema.org/Movie, and Google's supported properties include the required name and image, plus recommended fields like director, actor, dateCreated, genre, aggregateRating, and url. The image guidance is specific: posters should be high resolution and close to a 6:9 (or 2:3) aspect ratio, because the movie carousel crops toward portrait.
ScreeningEvent is the type for a specific showing of your film. It wraps a Movie in workPresented, adds location (usually a MovieTheater or venue), and carries startDate, endDate, and offers for ticketing. A festival or theatrical run gets one ScreeningEvent per showing.
Event and EventSeries cover the broader case: a festival run, a Q&A, a premiere. Google's event rich results pull from Event markup, and EventSeries groups recurring or related screenings under a parent series, which is how festivals present a program rather than a list of disconnected events.
Person and Organization apply to your director, cast, production company, and distributor pages. They are not film-specific, but they are what make the credits legible to search.
A Working JSON-LD Example
JSON-LD is the format Google recommends: a single script block in your page's head or body containing the structured data as a JSON object. A minimal Movie markup for a film page looks like this:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Movie",
"name": "Your Film Title",
"url": "https://yourfilm.com",
"image": "https://yourfilm.com/poster.jpg",
"dateCreated": "2026-09-15",
"genre": ["Thriller"],
"director": {
"@type": "Person",
"name": "Your Name"
},
"actor": [
{ "@type": "Person", "name": "Lead Actor" },
{ "@type": "Person", "name": "Supporting Actor" }
],
"sameAs": [
"https://www.imdb.com/title/tt1234567/",
"https://yourfilm.com"
],
"potentialAction": {
"@type": "WatchAction",
"target": "https://yourfilm.com/watch"
}
}
</script>
A ScreeningEvent for a single showing follows the same pattern:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "ScreeningEvent",
"name": "Your Film Title - Screening and Q&A",
"startDate": "2026-10-03T19:30",
"location": {
"@type": "MovieTheater",
"name": "The Roxie",
"address": "3117 16th St, San Francisco, CA"
},
"workPresented": {
"@type": "Movie",
"name": "Your Film Title"
},
"offers": {
"@type": "Offer",
"url": "https://tickets.example.com/yourfilm"
}
}
</script>
Drop the block into the page's HTML, update the values, and you have valid markup. For a deeper example with more properties, the Schemai Movie implementation guide shows a fully populated version including EIDR identifiers, which are the film industry's persistent ID system for titles.
The Properties That Actually Get Used
Not every schema.org property feeds a Google feature. The ones worth implementing first:
| Property | What it does | Required? |
|---|---|---|
name | The film's title as it should appear | Yes |
image | Poster or representative still, ideally 2:3 portrait | Yes |
director | Director as a Person object | Recommended |
actor | Principal cast as Person objects | Recommended |
dateCreated | Release date in ISO 8601 format | Recommended |
genre | Film genre or genres | Recommended |
aggregateRating | Star ratings for rich result display | Optional, if you have real ratings |
potentialAction | WatchAction linking to where to stream | Optional but valuable |
sameAs | Links to IMDb, Wikipedia, official pages | Optional but stabilizing |
One caveat on aggregateRating: only include it if the rating is real and visible on the page. Marking up a rating you fabricated or that lives only in the markup violates Google's review snippet guidelines and can get the markup ignored entirely.
How to Implement It on a Real Film Site
The practical path depends on your stack:
Hand-coded or static sites. Paste the JSON-LD block into your film page's HTML. This is the most common case for indie film sites and the fastest to verify.
WordPress and site builders. Plugins like Yoast, Rank Math, or dedicated schema plugins can inject the markup from fields, though Movie is a less common type than Article or Product, so a manual JSON-LD block often works better.
Next.js and modern frameworks. A script tag with type="application/ld+json" in the page component does it, either hardcoded or generated from your film's data. Since Filmcane pages already carry a film's metadata, structured data is a natural extension of the same information.
Whatever the implementation, validate it. Google's Rich Results Test will tell you whether the markup parses and which features it qualifies for. The Search Console performance report breaks out rich-result impressions separately, so you can see whether the markup is actually earning display.
Screenings, Festivals, and Local Discovery
The schema side of a film's event life is where most indie sites leave value on the table. A screening is a local, time-sensitive event, which is exactly what Google's event surfaces are built to show. Our guide to local SEO for film screenings covers the venue-side strategy; on the markup side:
- Every screening gets its own
ScreeningEventmarkup with venue, date, and ticket link. - A festival run gets
EventSeriesmarkup grouping the individual screenings. - One-off events benefit from fast indexing, because a screening that only exists for a week needs Google to see it immediately.
This matters most for four-wall and self-distributed theatrical runs, where your own event pages are often the only canonical source for a screening that ticketing sites list inconsistently.
What Filmmakers Should Do Next
-
Add Movie markup to your film's homepage. It is a 15-minute change with outsized payoff for title searches. Start with
name,image,director,dateCreated, andsameAsto IMDb. -
Add a WatchAction to your watch page. If your film streams anywhere, point a
potentialActionat the viewing destination so Google knows the film is watchable and where. -
Mark up every screening as a ScreeningEvent. Each showing gets its own markup with venue and ticketing link, and a festival run gets EventSeries markup on top.
-
Validate before and after. Run the Rich Results Test on your pages, fix the errors it flags, and check Search Console for how the markup is being interpreted once live.
-
Keep it consistent with the visible page. Structured data describes what is on the page, not what you wish were there. Google cross-checks, and markup that contradicts the visible content gets discounted.
Frequently Asked Questions
What is schema markup for a film?
Schema markup is structured data added to a webpage that tells search engines the page describes a specific movie. It uses the schema.org Movie type with properties like name, image, director, actor, and dateCreated, and it is what enables rich results like knowledge panels and movie carousels.
Does schema markup help my film rank higher?
Not directly as a ranking factor, but it improves how your film appears in search. Rich results, knowledge panels, and watch links increase click-through and make your title more legible to Google's entity understanding, which is a meaningful advantage for indie films competing with bigger titles.
What is the difference between Movie and ScreeningEvent schema?
Movie describes the film itself: title, director, cast, release date. ScreeningEvent describes a specific showing: venue, date, time, and ticketing link, with the film referenced via workPresented. A film page uses Movie; a screening page or listing uses ScreeningEvent.
What is a WatchAction and do I need one?
A WatchAction inside potentialAction tells Google where your film can be watched, which feeds the provider list in movie knowledge panels. If your film streams anywhere, including your own site, it is worth adding because it turns a search impression into a viewing path.
How do I add schema markup to my film website?
Add a JSON-LD script block containing a Movie object to your film page's HTML. On WordPress, plugins can inject it, though a manual block is often simpler for film-specific types. On static or modern framework sites, a script tag with type="application/ld+json" does it directly.
How do I know if my markup is working?
Run your page through Google's Rich Results Test to confirm the markup parses and qualifies for features, then monitor Search Console's performance report, which breaks out rich-result impressions so you can see whether the markup is earning display.
Conclusion
Schema markup is the unglamorous layer of film SEO that most indie sites skip, and the one most entirely within your control. A Movie block on your film page, a WatchAction pointing at where to stream, and ScreeningEvent markup on your screenings are a few dozen lines of JSON that change how Google understands and displays your title.
The leverage is asymmetric: the markup costs almost nothing to add and compounds quietly every time someone searches your film's name. If you want to pair that with a destination that actually converts the attention it earns, a Filmcane smart link gives every search visitor one place to find where your film lives and shows you which discovery paths are working.
Ready to Market Your Film More Effectively?
Whether audiences find your film through search, social, or festivals, knowing where the discovery happens changes how you market.
Filmcane helps filmmakers create smart links, organize platform destinations, track engagement, and measure marketing performance from a single dashboard.
Create your first Filmcane smart link and start understanding how audiences discover and watch your films.
Market Your Film Like a Pro
Create professional smart links and track your marketing performance in real-time.
Enjoyed this article?
Get weekly insights on film marketing, distribution strategies, and analytics delivered to your inbox.
No spam, unsubscribe anytime. Join 2,000+ filmmakers.


