Schema Markup

Article, FAQ and Breadcrumb Schema: Copy-Ready JSON-LD Examples

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.

Colourful structured code on a monitor, representing JSON-LD examples
In this guide
  1. How to use these JSON-LD examples
  2. Article schema: JSON-LD examples for posts and guides
  3. FAQ schema: JSON-LD examples for question lists
  4. Breadcrumb schema: JSON-LD examples for site hierarchy
  5. Where to paste JSON-LD examples in WordPress
  6. Combining several JSON-LD examples on one page
  7. Testing your JSON-LD before you publish
  8. Next steps

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.

How to use these JSON-LD examples

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:

  • Check for existing markup. SEO plugins such as Rank Math and Yoast already output Article and BreadcrumbList schema. Adding a second copy by hand creates duplicates.
  • Replace every placeholder. Search the block for example.com and swap each value for your own.
  • Match the visible page. Every value must reflect content users can actually see.
  • Use absolute URLs and ISO 8601 dates (2026-10-09T09:45:00+00:00).

Article schema: JSON-LD examples for posts and guides

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>
PropertyWhat it holdsNotes
headlineThe article titleKeep it identical or very close to the visible title
imageOne or more image URLsProviding several aspect ratios gives search engines choice
datePublished / dateModifiedFirst publication and last meaningful updateOnly change dateModified for real content updates
authorA Person or OrganizationAdd a url pointing to an author or about page
publisherThe organisation behind the siteInclude a logo as an ImageObject
mainEntityOfPageThe canonical URL of the articleOptional, 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.

FAQ schema: JSON-LD examples for question lists

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.

Breadcrumb schema: JSON-LD examples for site hierarchy

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>
  • position starts at 1 and increases by one for each level.
  • name is the label a user would see in your on-page breadcrumb trail.
  • item is the URL of that level. The final crumb, the current page, can omit it.

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.

Where to paste JSON-LD examples in WordPress

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:

  • A single page: paste the block into a Custom HTML block (block editor) or an HTML widget (Elementor) on that page. Script tags placed in the body are read just as well as those in the head.
  • A group of pages: use your SEO plugin’s custom schema feature if it has one, so the markup is stored with the page and survives theme changes.
  • Every page of a type: add it to the template through your theme or a code snippet plugin, filling values such as the title and date dynamically.

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.

Combining several JSON-LD examples on one page

A blog post often needs both Article and BreadcrumbList. You have two clean options:

  1. Separate script tags. Paste each block in its own <script type="application/ld+json"> tag. Simple and perfectly valid.
  2. One block with @graph. Put the objects in a list under @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.

Testing your JSON-LD before you publish

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:

CheckToolWhat a pass looks like
Syntax and eligibilityGoogle Rich Results Test (code or URL)Items detected, no errors
VocabularySchema Markup ValidatorCorrect type names, no unknown properties
Live page outputLiteScroll SEO InspectorOne block per type, values match the page
Site-wide healthSearch Console enhancement reportsValid 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.

Next steps

  • Decide which of these JSON-LD examples your templates need: Article for posts, BreadcrumbList for inner pages, FAQPage only where a real FAQ exists.
  • Check what your SEO plugin already generates before adding anything by hand.
  • Replace every placeholder, then test the snippet in the Rich Results Test before it goes live.
  • After publishing, spot-check the live page with the LiteScroll SEO Inspector and watch Search Console for new issues.

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