What Is Movie Schema? The Complete Guide (2026)
What Is Movie Schema?
Movie schema is a type of structured data — based on the Schema.org Movie vocabulary — that tells Google a page describes a specific film. When implemented correctly on movie review and listing sites, it enables Google's movie carousel: a rich result showing the film's poster, star rating, director, and a link to your review page. According to Google, movie carousels appear at the top of results for queries like "best sci-fi films 2026" or "Dune review."
Movie schema differs from VideoObject schema in a fundamental way: VideoObject describes a playable video file, while Movie describes a film as a creative work — a concept that can be reviewed, rated, and listed across multiple pages without being a video player itself.
- Movie schemaenables Google's movie carousel for review and listing pages — showing poster, rating, and director in search.
- Two required fields:
nameandimage(6:9 aspect ratio preferred for carousel eligibility). - For carousels on listing pages, wrap each movie in an
ItemList→ListItemstructure. EachListItemneeds a uniqueurland a sequentialposition. aggregateRatingrequires bothratingValueand at least one ofratingCountorreviewCount. Use a dot, not a comma, for decimal values.
Single Movie Page vs Movie Listing Page
Greadme validates two Movie schema patterns, each with a different structure:
| Page type | Schema structure | Rich result |
|---|---|---|
| Individual movie review page | Movie directly at the root — with aggregateRating, review, director, etc. | Movie rich result with rating and review snippet |
| Movie listing / top picks page | ItemList → array of ListItem objects, each containing a Movie with a unique url | Movie carousel (requires at least 2 items) |
Required Properties
| Property | Type | Description |
|---|---|---|
name | Text | The full title of the film. |
image | ImageObject or URL | The movie poster. A 6:9 aspect ratio is preferred for carousel eligibility. Greadme validates that all image URLs are accessible. |
Recommended Properties
| Property | Type | Notes |
|---|---|---|
dateCreated | Date | The film's release date in ISO 8601 format (e.g., 2026-10-05). Greadme warns if missing and errors if the format is invalid. |
director | Person or array of Person | The film's director(s). Each Person object needs @type: "Person" and name. Greadme warns for missing @type or name. |
aggregateRating | AggregateRating | Overall rating based on multiple reviews. Requires ratingValue and at least one of ratingCount or reviewCount. Use a dot for decimals — Greadme warns for comma separators (e.g., 4,4 instead of 4.4). |
review | Review or array of Review | Individual review(s) of the film. Each review requires author (with name under 100 characters) and reviewRating (with ratingValue). |
url | URL | The canonical URL of the movie's page on your site. Required inside ListItem.item for carousel eligibility — must be unique per movie. |
aggregateRating Rules
aggregateRating is what makes your star rating appear next to the movie title in search. The rules Greadme enforces:
ratingValueis required — an error if missing.- At least one of
ratingCount(number of ratings) orreviewCount(number of written reviews) is required — an error if both are missing. - Use a dot as the decimal separator:
4.4, not4,4— Greadme warns on comma-separated decimals. bestRatingdefaults to 5 andworstRatingdefaults to 1 if not specified. Set them explicitly if your rating scale is different (e.g., a 10-point scale).
Review Object Rules
Each Review object inside the review array has strict field requirements:
| Field | Rule |
|---|---|
author.name | Required. Must be under 100 characters. Must not contain promotional text (e.g., no % or discount) — Greadme errors on both conditions. |
reviewRating.ratingValue | Required. Use a dot for decimals. |
datePublished | Recommended. ISO 8601 format (e.g., 2026-03-01). |
@type | Should be "Review". Greadme warns if missing or incorrect. |
ItemList for Movie Carousels
To make a listing page (e.g., "Best Horror Films of 2026") eligible for Google's movie carousel, wrap each movie in an ItemList structure. Google requires at least 2 movies for a carousel to appear.
{
"@context": "https://schema.org",
"@type": "ItemList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"item": {
"@type": "Movie",
"name": "Dune: Part Three",
"url": "https://example.com/movies/dune-part-three",
"image": "https://example.com/img/dune-3.jpg",
"dateCreated": "2026-11-20",
"director": { "@type": "Person", "name": "Denis Villeneuve" },
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": 4.7,
"ratingCount": 8420
}
}
},
{
"@type": "ListItem",
"position": 2,
"item": {
"@type": "Movie",
"name": "The Midnight Atlas",
"url": "https://example.com/movies/midnight-atlas",
"image": "https://example.com/img/midnight-atlas.jpg",
"dateCreated": "2026-09-05",
"director": { "@type": "Person", "name": "Ava DuVernay" },
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": 4.2,
"ratingCount": 3150
}
}
}
]
}Key rules for the ItemList structure:
- Each
ListItemmust have aposition(integer, starting from 1). Greadme errors if missing or non-numeric. - Each
ListItem.item.urlmust be unique. Greadme errors on duplicate URLs. - Positions should be sequential (1, 2, 3…). Greadme warns if a position doesn't match its array index.
- Google recommends at least 2 movies for carousel eligibility. Greadme warns for single-item lists.
Single Movie Review Page Example
{
"@context": "https://schema.org",
"@type": "Movie",
"name": "Dune: Part Three",
"image": "https://example.com/img/dune-3-poster.jpg",
"dateCreated": "2026-11-20",
"director": { "@type": "Person", "name": "Denis Villeneuve" },
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": 4.7,
"bestRating": 5,
"worstRating": 1,
"ratingCount": 8420
},
"review": {
"@type": "Review",
"author": { "@type": "Person", "name": "Sarah Miller" },
"datePublished": "2026-11-21",
"reviewBody": "A stunning conclusion to the trilogy.",
"reviewRating": {
"@type": "Rating",
"ratingValue": 5,
"bestRating": 5
}
}
}5 Common Movie Schema Mistakes
1. Using VideoObject Instead of Movie
Movie schema and VideoObject schema are not interchangeable. Use Movie for review and listing pages about a film as a creative work. Use VideoObject for pages that embed a playable video file. A movie review page should use Movie, not VideoObject.
2. Using a Comma in ratingValue
"ratingValue": "4,7" is invalid. Greadme warns on comma decimal separators. Always use a dot: "ratingValue": 4.7 or "ratingValue": "4.7".
3. Missing ratingCount and reviewCount
aggregateRating requires at least one of ratingCount or reviewCount. A ratingValue alone is not enough — without a count, Google cannot verify the rating is based on real feedback. Greadme errors if both are absent.
4. Author Name Over 100 Characters or Containing Promotional Text
Review author names must be under 100 characters, and must not contain promotional language (characters like % or terms like discount). Greadme errors on both conditions. Use a real person or organization name.
5. Duplicate URLs in ItemList
Every movie in an ItemList carousel must point to a unique URL. Greadme errors on duplicate ListItem.item.url values. If two pages cover the same film, only one can appear in a single carousel.
How to Validate Your Movie Schema
Paste your movie page or listing page URL into Greadme to validate your Movie schema. Greadme automatically detects whether you're using a single Movie or a carousel ItemList and applies the appropriate rules for each. It validates image URLs, rating value format, review author constraints, ItemList position sequencing, and duplicate URL detection.
