How to Test and Fix Schema Markup Errors
A step-by-step workflow for finding and fixing schema markup errors and warnings: which testing tools to use, what…
Copy-ready JSON-LD for Article, FAQPage and BreadcrumbList schema, with every property explained, the mistakes to avoid and a short checklist for testing before you publish.

These JSON-LD examples cover the three schema types almost every content site can use: Article, FAQPage and BreadcrumbList. Each block below is complete and valid, so you can copy it, swap in your own values and test it in minutes. After each example you will find what every property does, which ones you can drop, and the mistakes that most often break it.
This guide is part of our complete website SEO audit guide, which walks through every step of auditing a small site.
Every example follows the same pattern: a <script type="application/ld+json"> tag containing one JSON object with an @context and an @type. If those terms are new to you, read our beginner’s schema markup guide first; it explains the anatomy of a block line by line.
The JSON-LD examples here are deliberately minimal: they include the properties Google documents as required or recommended for each type, and nothing that relies on data a typical small site does not have. Before you paste anything, run through this short list:
example.com and swap each value for your own.2026-10-09T09:45:00+00:00).Use Article (or its more specific subtypes BlogPosting and NewsArticle) on blog posts, guides and news stories. It helps search engines understand the headline, author, publish date and lead image.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "How to Choose a Lightweight SEO Tool",
"description": "A practical comparison of lightweight SEO tools for small websites.",
"image": [
"https://example.com/images/seo-tools-1x1.jpg",
"https://example.com/images/seo-tools-4x3.jpg",
"https://example.com/images/seo-tools-16x9.jpg"
],
"datePublished": "2026-10-09T09:45:00+00:00",
"dateModified": "2026-10-12T14:00:00+00:00",
"author": {
"@type": "Organization",
"name": "Editorial Team",
"url": "https://example.com/about-us/"
},
"publisher": {
"@type": "Organization",
"name": "Example Site",
"logo": {
"@type": "ImageObject",
"url": "https://example.com/images/logo.png"
}
},
"mainEntityOfPage": "https://example.com/lightweight-seo-tool/"
}
</script>| Property | What it holds | Notes |
|---|---|---|
| headline | The article title | Keep it identical or very close to the visible title |
| image | One or more image URLs | Providing several aspect ratios gives search engines choice |
| datePublished / dateModified | First publication and last meaningful update | Only change dateModified for real content updates |
| author | A Person or Organization | Add a url pointing to an author or about page |
| publisher | The organisation behind the site | Include a logo as an ImageObject |
| mainEntityOfPage | The canonical URL of the article | Optional, but helps tie the markup to the page |
If you publish under a named writer, swap the author object for {"@type": "Person", "name": "...", "url": "..."} and point the url to a real author page. If your site publishes as a team, an Organization author is perfectly acceptable, as in the example above.
Common mistakes with Article markup: an author name that does not appear anywhere on the page, a dateModified that updates automatically every day without any content change, and image URLs that point to thumbnails too small to be useful.
FAQPage markup describes a page that contains a list of questions, each with a single answer written by the site owner. It is not for forums or pages where users submit answers; that is QAPage.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "How many pages can I crawl for free?",
"acceptedAnswer": {
"@type": "Answer",
"text": "The free crawler scans up to 25 pages of any website."
}
},
{
"@type": "Question",
"name": "Can I download the report?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes. Reports can be downloaded as PDF or CSV."
}
}
]
}
</script>How it fits together: mainEntity is a list, each item is a Question whose name is the question text, and each question has one acceptedAnswer of type Answer with the answer in text. The answer text may include basic HTML such as links and lists.
A word on expectations. Google now shows FAQ rich results only for well-known, authoritative government and health websites. For most sites, FAQPage markup will not produce the expandable questions in search results. It is still valid structured data that describes your content accurately, so it does no harm on a genuine FAQ section, but do not add FAQ blocks to every page hoping for extra search real estate.
Quick tip: Every question and answer in your FAQPage markup must appear word for word on the page. If you edit the visible FAQ, update the JSON-LD in the same session, or better still, generate both from the same source.
BreadcrumbList describes where a page sits in your site hierarchy. Search engines can use it to show a readable path such as Home › Blog › Schema Markup instead of a raw URL. Google documents the requirements in its breadcrumb structured data guide.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://example.com/"
},
{
"@type": "ListItem",
"position": 2,
"name": "Schema Markup",
"item": "https://example.com/category/schema-markup/"
},
{
"@type": "ListItem",
"position": 3,
"name": "Copy-Ready JSON-LD Examples"
}
]
}
</script>The most common mistakes are positions that skip numbers or restart, relative URLs in item, and breadcrumb markup that does not match the visible trail. If your theme shows breadcrumbs, the markup and the on-page links should describe the same path. A logical breadcrumb trail usually goes hand in hand with a logical heading structure, which our guide to H1 tags and heading structure covers.
On a WordPress site there are three sensible places to put hand-written JSON-LD, and the right one depends on how many pages need it:
Avoid pasting JSON-LD into the visual text editor. It may convert quotes or wrap the code in paragraph tags, which breaks the JSON. Whichever route you take, keep a master copy of each snippet in a plain text file so you can track changes over time.
A blog post often needs both Article and BreadcrumbList. You have two clean options:
<script type="application/ld+json"> tag. Simple and perfectly valid.@graph and share a single @context. This is what most SEO plugins output.{
"@context": "https://schema.org",
"@graph": [
{ "@type": "Article", "headline": "...", "datePublished": "..." },
{ "@type": "BreadcrumbList", "itemListElement": [ ... ] }
]
}Whichever you choose, avoid describing the same thing twice. One Article per article page, one BreadcrumbList per page.
Treat these JSON-LD examples as templates, not finished code. Copying JSON-LD examples from any guide, including this one, is only the first step. Once you have replaced the placeholders, test them:
| Check | Tool | What a pass looks like |
|---|---|---|
| Syntax and eligibility | Google Rich Results Test (code or URL) | Items detected, no errors |
| Vocabulary | Schema Markup Validator | Correct type names, no unknown properties |
| Live page output | LiteScroll SEO Inspector | One block per type, values match the page |
| Site-wide health | Search Console enhancement reports | Valid items rising, no new invalid items |
The free LiteScroll SEO Inspector Chrome extension is handy for that third check: open the published page, review its schema markup, and confirm your block appears once with the right values. If a test reports problems, our walkthrough on how to test and fix schema markup errors explains each common message.
More practical guides to structured data and on-page SEO are on LiteScroll.com.
Written by
Editorial Team
The LiteScroll Editorial Team researches, tests and writes every guide on LiteScroll.com. We run each fix through our own SEO Crawler and SEO Inspector before we recommend it, and we update guides when search engines change the rules.
Our editorial policy
A step-by-step workflow for finding and fixing schema markup errors and warnings: which testing tools to use, what…

A plain-English introduction to schema markup: what structured data is, why JSON-LD is the format to use, how…

A complete website SEO audit guide for small sites: plan your pages, check indexability, canonicals, titles, headings, images…