Skip to content
SEO

JSON-LD Generator

Generate JSON-LD structured data (Article, Product, FAQ, etc.).

json-ldschemastructureddatarich
Loading tool…

Recommended tools

Affiliate links — we may earn a commission if you sign up.

About the JSON-LD Generator

The JSON-LD Generator produces Schema.org structured data markup for rich results without touching raw JSON by hand. A single selector switches between five schema types — Article, Product, FAQPage, Organization, and BreadcrumbList — and only the fields relevant to the chosen type are shown, so there is no guessing which properties belong where. For an Article you fill in headline, author, publish date, image, and publisher; for a Product, name, description, brand, price with currency (USD by default), and a 0–5 rating that becomes an AggregateRating object. FAQPage and BreadcrumbList modes let you add and remove question-and-answer pairs or crumb items with buttons. The JSON output updates as you type, is pretty-printed with two-space indentation, and downloads as a .json file. Why structured data matters for SEO: it is what unlocks star ratings, FAQ drop-downs, and breadcrumb trails directly on the search results page, which measurably lifts click-through rate even without a ranking change. Because Google's rich results test requires valid, matching markup, having a generator that emits only the fields you filled — empty inputs are skipped entirely — means your markup stays clean and passes validation on the first try.

Hand-written guide

Examples

Input
Schema type: Article · Headline: "How to Brew Sustainable Coffee at Home" · Author: "Jane Doe" · Date published: 2026-08-01 · Image URL: "https://example.com/article.jpg" · Publisher: "Fernandes Labs"
Output
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "How to Brew Sustainable Coffee at Home",
  "author": {
    "@type": "Person",
    "name": "Jane Doe"
  },
  "datePublished": "2026-08-01",
  "image": "https://example.com/article.jpg",
  "publisher": {
    "@type": "Organization",
    "name": "Fernandes Labs"
  }
}
Note: The author becomes a nested Person object and the publisher a nested Organization. The date input emits YYYY-MM-DD, matching the ISO 8601 format Google expects.
Input
Schema type: Product · Product name: "Ceramic Pour-Over Mug" · Description: "Handmade double-walled ceramic mug." · Brand: "Fernandes Goods" · Price: "24.00" · Currency: "USD" · Rating: "4.7" · Image URL: "https://example.com/mug.png"
Output
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Ceramic Pour-Over Mug",
  "description": "Handmade double-walled ceramic mug.",
  "brand": {
    "@type": "Brand",
    "name": "Fernandes Goods"
  },
  "image": "https://example.com/mug.png",
  "offers": {
    "@type": "Offer",
    "price": "24.00",
    "priceCurrency": "USD"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": 4.7,
    "reviewCount": "1"
  }
}
Note: Price becomes an Offer object, and the rating is parsed to a number inside an AggregateRating. reviewCount defaults to the string "1" — replace it with your real review count before publishing.
Input
Schema type: FAQPage · Q&A 1: "What is sustainable coffee?" / "Sustainable coffee is grown using practices that protect the environment." · Q&A 2: "How should I store beans?" / "Keep them in an airtight container away from light."
Output
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "What is sustainable coffee?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Sustainable coffee is grown using practices that protect the environment."
      }
    },
    {
      "@type": "Question",
      "name": "How should I store beans?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Keep them in an airtight container away from light."
      }
    }
  ]
}
Note: Pairs are added with the Add Q&A button and removed with the trash icon. A pair with an empty question or answer is skipped from mainEntity automatically.

How to use

  1. 1

    Pick a schema type from the Schema type selector — Article, Product, FAQPage, Organization, or BreadcrumbList; the form switches to that type's fields.

  2. 2

    Fill in the fields for the chosen type, for example headline, author, and date for an Article.

  3. 3

    For FAQPage or BreadcrumbList, use Add Q&A / Add breadcrumb to grow the list and the trash icon to remove entries.

  4. 4

    Review the pretty-printed JSON-LD in the result box, which updates as you type and skips empty fields.

  5. 5

    Download the output as json-ld.json or copy it, then validate it in Google's Rich Results Test before deploying.

Common use cases

  • News and editorial sites — emit Article schema with author and publisher to qualify for article-rich results.
  • E-commerce product pages — combine Product offers with aggregate ratings to target star-rich product results.
  • Support and documentation hubs — build FAQPage markup from ticket-derived Q&As for FAQ rich results.
  • Corporate about pages — generate Organization markup to reinforce entity and knowledge panel signals.
  • Directory and category pages — add BreadcrumbList schema to deep pages that lack visible breadcrumbs.
  • Content refreshes — regenerate schema after headline or price changes so markup never drifts from on-page content.

Technical SEO best practices

  • Validate every output in Google's Rich Results Test before shipping — a single malformed field can void the entire block.
  • Keep structured data consistent with visible page content; Google's policies penalize markup that describes content users cannot see.
  • Use ISO 8601 dates (YYYY-MM-DD) in datePublished, exactly as the date input produces them.
  • Never reuse a single author name for all posts when multiple humans write them — mismatched bylines break trust signals.
  • Re-validate after price, rating, or author changes; stale offers data is a common reason rich results disappear.
  • Place the JSON-LD in a script tag of type application/ld+json in the head — never inside HTML comments or escaped entities.

Tips

  • Switch schema types on a live page and watch how the form fields change — a fast way to learn which properties each type supports.
  • Test a rating change before publishing price updates; aggregateRating with a stale value can drop rich results.
  • Keep a saved copy of each page's JSON-LD so regressions after CMS updates are easy to spot.
  • Use the Refresh button after editing lists to confirm the output rebuilt with the latest entries.

Frequently asked questions

Match the type to the page's primary content: Article for posts and news, Product for sellable items, FAQPage when the page contains a Q&A section, Organization for corporate pages, BreadcrumbList for navigation trails. You can stack several types on one page — a product page often carries Product plus BreadcrumbList — so generate each block separately and merge them in the head.

Explore more seo tools

Browse the full collection of seo tools on the hub, or jump back to all categories.