Required vs recommended schema properties
Every Schema.org type has properties Google treats as mandatory, properties it merely
prefers, and an expected format for each. Get one wrong and the rich result quietly
never appears — the Rich Results Test says “valid”, and nothing shows up in search.
This page lists all of them, in one place, with the reason each one exists.
15 schema types
48 required properties
38 recommended properties
Last reviewed September 2026
JobPosting
5 required · 2 recommended ·
Google documentation
| Property |
Status |
Why it matters |
Example |
Job title
title
|
Required
|
Just the role — do not put location, salary or company in the title field. |
Senior Backend Engineer
|
Job description
description
|
Required
|
Must be the complete description, in HTML, matching what the page shows. |
—
|
Date posted
datePosted
|
Required
ISO 8601 date/time
|
Google uses this to order and expire listings. |
2026-03-14
|
Company name
hiringOrganization.name
|
Required
|
The employer. Do not use a job board name here. |
Acme Ltd
|
Location or remote flag
jobLocation[].address|jobLocationType
|
Required
|
Either a physical address or jobLocationType TELECOMMUTE for fully remote roles. |
—
|
Valid through
validThrough
|
Recommended
ISO 8601 date/time
|
Without an expiry your listing can keep showing after the role closes. |
2026-06-30
|
Salary
baseSalary.value
|
Recommended
|
Salary is shown prominently and improves click-through where competitors omit it. |
120000
|
Article
4 required · 2 recommended ·
Google documentation
| Property |
Status |
Why it matters |
Example |
Headline
headline
|
Required
|
The title shown in the result. Keep it under 110 characters or Google may truncate it. |
How structured data works
|
Image URL
image
|
Required
Absolute URL
|
Article rich results need an image. Use at least 1200px wide, absolute URL. |
https://acme.com/post.jpg
|
Date published
datePublished
|
Required
ISO 8601 date/time
|
Google uses this to date the result and judge freshness. |
2026-03-14
|
Author name
author.name
|
Required
|
Author is required, and it must be a person or organization name, not a generic label like "Admin". |
Jane Doe
|
Date modified
dateModified
|
Recommended
ISO 8601 date/time
|
Signals the article is maintained. Only set it when the content genuinely changed. |
2026-04-02
|
Publisher name
publisher.name
|
Recommended
|
Identifies who published the article alongside the author. |
Acme Blog
|
FAQPage
2 required · 0 recommended ·
Google documentation
| Property |
Status |
Why it matters |
Example |
At least one question
mainEntity[].name
|
Required
|
A FAQPage with no Question entities cannot produce any result. |
How do I install it?
|
An answer for every question
mainEntity[].acceptedAnswer.text
|
Required
|
Each Question needs an acceptedAnswer or Google drops the entire block. |
Download the installer and run it.
|
The four mistakes that account for most silent failures
In every one of these cases the JSON parses, the Rich Results Test may report no errors,
and the rich result still never appears.
-
Relative image URLs.
/images/photo.jpg cannot be resolved once
Google separates the markup from the page. Always absolute, always https://.
-
Human-readable dates and durations.
2 minutes 30 seconds is a
string, not a Duration. It must be PT2M30S. Likewise
March 14, 2026 must be 2026-03-14.
-
Free-typed enumeration values.
availability and
itemCondition take fixed Schema.org URLs. Typing “In Stock” produces
https://schema.org/In Stock, which is not a real value.
-
Markup that does not match the page. Ratings, prices, FAQs and event
details must all be visible to a user on the same page. Marking up content that
is not there is a policy violation, not just a technical error.
If Google is already reporting a problem with your markup, our companion page
decodes every Rich Results Test error
— what each message means, why it happens, and the exact fix.
Validity is not eligibility
The Rich Results Test answers one question: is this markup well-formed and complete
enough to parse? It does not tell you whether Google will use it. Eligibility also
depends on your page's content and quality, and on Google's own policies for the
result type — self-serving reviews about your own business, for instance, are valid
markup that Google will ignore by design.
Treat a clean validation as the floor, not the goal. Publish the page, confirm it is
indexed, then watch the relevant report in Search Console: that is the only place
that tells you whether Google actually accepted the markup on the live URL.
Common questions
What is the difference between a required and a recommended property?
A required property is one Google will not produce the rich result without — omit it and the markup is ignored entirely. A recommended property is optional, but its absence usually means a plainer result: no image, no price, no star rating, or a listing that expires late.
Does adding every property guarantee a rich result?
No. Valid markup makes a page eligible. Google still decides whether to show a rich result based on your page content, its quality, and its own policies. Markup that does not match the visible page can be ignored or penalised.
Why do dates and durations have to be in ISO 8601?
Schema.org defines those properties as Date, DateTime and Duration types, which are specified in ISO 8601. A human-readable value such as “2 minutes 30 seconds” is a plain string and fails type validation, so the property is discarded.
Do image and logo URLs have to be absolute?
Yes. Google crawls structured data independently of the page it appeared on, so a relative path like /images/photo.jpg cannot be resolved. Always use a full https:// URL.
How often does this reference change?
It is generated from the same rule set our generators validate against, so the page and the tools can never disagree. When Google changes a requirement we update the rules once and both update together.