Errors in Schema.org markup can cause Google to ignore structured data, omit rich snippets, and, in the worst case, apply penalties for manipulative markup. This article covers common errors and how to fix them.
Categories of errors
Schema.org errors can be divided into three groups:
| Category | Impact | Google's response |
|---|---|---|
| Critical | Markup is not recognized | Complete disregard |
| Warnings | Markup is partially recognized | Rich snippets may be limited |
| Manipulative markup | Violates policies | Penalties, exclusion from rich results |
Fix critical errors first, then warnings. Remove manipulative markup entirely.
JSON syntax errors
Trailing comma
JSON does not allow a comma after the last item in an object or array.
Error:
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Заголовок",
}Fix:
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Заголовок"
}Unescaped characters in strings
Quotation marks, line breaks, and backslashes inside strings must be escaped.
Error:
{
"reviewBody": "Отличный товар! "Рекомендую" всем."
}Fix:
{
"reviewBody": "Отличный товар! \"Рекомендую\" всем."
}Line breaks:
{
"text": "Первый абзац.\nВторой абзац."
}Invalid JSON
Validate JSON before implementing it. Common issues include:
- Keys without quotation marks.
- Single quotation marks instead of double quotation marks.
- Unclosed brackets or quotation marks.
- Comments (JSON does not support comments).
Tool: Schema Validator on reChecker will show syntax errors.
Markup structure errors
Missing required fields
Each Schema.org type has required properties. Missing them results in an error or warning.
Article — required fields:
- headline
- image
- datePublished
- dateModified (recommended)
- author
- publisher (with logo)
Product — required for rich snippets:
- name
- image
- offers (with price, priceCurrency, availability)
FAQPage — required fields:
- mainEntity (an array of Question items)
- Each Question: name, acceptedAnswer (with text)
Example error — Article without image:
{
"@type": "Article",
"headline": "Заголовок",
"author": { "@type": "Person", "name": "Автор" }
}Fix: add image with the full URL.
Incorrect data type
Error — price as a number:
{
"price": 89990
}Fix: price must be a string.
{
"price": "89990"
}Error — datePublished in the wrong format:
{
"datePublished": "07.03.2026"
}Fix: use ISO 8601.
{
"datePublished": "2026-03-07T10:00:00+03:00"
}Incorrect nesting
Error — publisher without logo:
{
"publisher": {
"@type": "Organization",
"name": "Сайт"
}
}Fix: add a logo with dimensions.
{
"publisher": {
"@type": "Organization",
"name": "Сайт",
"logo": {
"@type": "ImageObject",
"url": "https://example.com/logo.png",
"width": 600,
"height": 60
}
}
}Multiple conflicting entities
Error: two Product blocks on one page contain different data for the same product.
Fix: one product — one Product block. For variants (size, color), use an array in offers or separate pages.
Markup does not match the content
Rating does not match what is visible
Error: the markup's aggregateRating is 4.8, but the page displays 4.2 or has no rating.
Fix: the markup must accurately reflect the visible content. Update the markup or the content.
Questions and answers are not on the page
Error: FAQPage markup contains questions that are not in the visible content.
Fix: use FAQ markup only for content that is actually displayed on the page.
Nonexistent reviews
Error: Review markup contains fabricated reviews.
Fix: use only real user reviews. Fabricated reviews are manipulative and risk penalties.
Incorrect image URLs
Error: image points to a nonexistent or inaccessible URL.
Fix: use full absolute URLs. Check that the images are accessible.
Outdated and unsupported types
ItemList for carousels
Google has changed its requirements for carousels. Check the current documentation.
Outdated properties
Some properties are outdated in Schema.org. Use current ones, for example, dateModified instead of outdated equivalents.
Types not supported for rich snippets
Not all Schema.org types are supported by Google for rich snippets. Check the list of supported types.
Errors in specific types
Product
| Error | Fix |
|---|---|
| price contains spaces or a currency symbol | "89990" instead of "89 990 ₽" |
| availability is not from the vocabulary | InStock, OutOfStock, PreOrder |
| aggregateRating has no reviewCount | Add reviewCount |
| Rating is not on the page | Add a visible rating or remove the markup |
Article
| Error | Fix |
|---|---|
| image is a relative URL | Use the full URL |
| logo is less than 60px tall | Increase its size |
| datePublished is in the future | Correct the date |
| author has no name | Add name |
FAQPage
| Error | Fix |
|---|---|
| Empty answers | Fill in text in acceptedAnswer |
| HTML in answers | Use text only, without tags |
| Duplicate questions | Remove duplicates |
| Questions are keywords | Use real questions |
HowTo
| Error | Fix |
|---|---|
| Steps are out of order | position: 1, 2, 3... |
| totalTime is in the wrong format | PT20M, PT1H30M |
| Empty steps | Fill in name and text |
| Content is not step-by-step | Do not use HowTo |
Tools for finding and fixing errors
Schema Validator on reChecker
Schema Validator checks JSON syntax and markup structure. Enter a page URL or markup code to get a list of errors and warnings.
Google Rich Results Test
Shows which rich snippets are supported and reports errors. It replaced the outdated Testing Tool.
Google Search Console
The “Enhancements” → “Structured data” section lists pages with errors and warnings. Fix them in order of priority.
Schema.org Validator
validator.schema.org checks whether markup conforms to the Schema.org vocabulary.
Step-by-step process for fixing errors
1. Compile a list of affected pages
Use a Search Console report or a crawler to export pages with markup.
2. Check each page
Enter the URL in Schema Validator or Rich Results Test. Record all errors and warnings.
3. Fix critical errors
JSON syntax, required fields, and incorrect data types. Without these fixes, the markup will not work.
4. Fix warnings
Recommended fields and best practices improve the chances of getting rich snippets.
5. Check that the markup matches the content
Compare the markup with the visible content. Make them consistent or remove manipulative markup.
6. Validate again after making fixes
Run the validator again. Request reindexing in Search Console.
Generating valid markup
To minimize errors when creating markup:
- Refer to JSON-LD examples.
- Use templates from Google's official documentation.
Errors when generating markup in a CMS
Many CMSs and plugins generate markup automatically. This often leads to common errors.
Duplicate markup
A plugin or template adds Article markup, and another block is added manually, duplicating the data. Solution: use a single markup source. Disable the duplicate plugin or remove the manual markup.
Incorrect URLs
The CMS generates relative URLs for image or canonical. Google requires absolute URLs. Check the settings for the site's base URL and protocol (https).
Outdated data
Automatic generation pulls data from CMS fields. If the publication date is not updated when edits are made, dateModified will be outdated. Set dateModified to update automatically when the content changes.
Conflicting types
Different plugins add different types. For example, one adds Organization and another adds LocalBusiness with different data. Standardize on one Organization or LocalBusiness block for the site.
Recommendation
Use JSON-LD examples as a starting point, fill in your page's data, and check the result with the Schema.org validator before adding it to a template or plugin.
Manipulative markup — what not to do
Google applies penalties for:
- Fabricated reviews and ratings.
- Markup for content that is not on the page.
- FAQs made up of keywords instead of real questions.
- Markup for hidden content.
- Misleading information (a different product or price).
Action: remove manipulative markup. Wait for reindexing. If you receive a manual penalty, submit a reconsideration request in Search Console.
Working with errors in Search Console
Interpreting reports
Search Console groups errors by type. For example: “Missing name field,” “Invalid price value.” Each error includes a list of affected pages. Fix the issue in the template or plugin to resolve it across all pages at once.
Errors vs. warnings
Errors mean the markup is not recognized or is recognized incorrectly. Fix these first. Warnings are recommendations for improvement. They do not block rich snippets but may reduce the chances of getting them.
Temporary issues
Sometimes Search Console shows errors because a page is temporarily unavailable or a crawl has failed. Check the page manually. If the error is gone, wait for the next crawl.
Frequently asked questions
How often should I check the markup?
Check it immediately after implementation. Then check it once a quarter or when warnings appear in Search Console.
Search Console shows errors, but Rich Results Test says “OK.” What should I do?
Search Console may show outdated data. Fix the errors and wait for the report to update (a few days).
Can I ignore warnings?
Warnings do not block markup, but they may reduce the chances of getting rich snippets. Fix them when possible.
What should I do if my CMS generates incorrect markup?
Update the plugin or template. If necessary, disable automatic generation and implement the markup manually or with custom code.
Conclusion
Schema.org errors can be divided into syntax, structural, and manipulative errors. Fix syntax errors and missing required fields first. Check that the markup matches the content. Use validators at every stage and avoid manipulation — use real data only.
Additional resources: