Free tool · No signup

Schema markup generator

This schema markup generator writes JSON-LD for four schema.org types: Article, Person, FAQPage and HowTo. Fill the fields, copy the code, paste it into your page. No signup, and nothing leaves your browser. Google only shows rich results for some of these, and the notes below say which.

Nested paper blocks grouped by a large brace, one corner marked in red.
Validate ↗
Pick a type, fill the fields, and hit Generate.
01 Why it matters

What schema does, and what it hasn't been shown to do

Structured data doesn't change your words. It labels them so a machine knows what they mean. Its documented payoff is in Google Search: rich results for the types Google supports. For AI citation the evidence is thin. An Ahrefs observational test of 1,885 pages found citations barely moved after schema was added, live-fetch tests found AI systems reading visible text rather than JSON-LD, and Google says no special schema is needed for AI Overviews or AI Mode. The evidence scoreboard grades it Open, and whether schema causes citation is a question this site has pre-registered rather than assumed.

What each type is good for on Google today: Article helps Google understand headline, author and dates. Person, with a sameAs list of your profiles, describes the author; whether that author signal moves AI citations is being tested, not claimed. FAQPage is valid markup, but since August 2023 Google shows FAQ rich results only for well-known, authoritative government and health sites. HowTo rich results were removed from Google in 2023. Both still describe your content to any parser that reads schema.org.

02 How to use it

How to generate schema markup in five steps

  1. Pick the type that matches the page. A blog post is an Article. An about or author page is a Person. Use FAQPage only if the page shows a list of questions with their answers, and HowTo only if it walks through numbered steps.
  2. Fill the fields. The output updates as you type. Leave a field blank and it is dropped from the code, so you never ship an empty "image": "".
  3. Copy the JSON-LD. Press Copy. The code is a plain object starting with "@context": "https://schema.org".
  4. Wrap it in a script tag. Paste it between <script type="application/ld+json"> and </script>, in the head or body of that one page. Most CMSs have a field or plugin for custom head code.
  5. Test before you publish. Run the live URL or the code through Google's Rich Results Test for Google features, and the Schema Markup Validator for general schema.org correctness.
03 Worked example

Example: FAQPage JSON-LD from two lines

The FAQPage tab takes one question and answer per line, split by a pipe. Type this:

What is llms.txt? | A Markdown file at /llms.txt that maps your key pages for AI models.
Does it work yet? | It's an early proposal.

and the generator returns:

{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "What is llms.txt?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "A Markdown file at /llms.txt that maps your key pages for AI models."
      }
    },
    {
      "@type": "Question",
      "name": "Does it work yet?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "It's an early proposal."
      }
    }
  ]
}

Only the first pipe splits the line, so an answer can contain its own |. Lines without a pipe are skipped. The HowTo tab works the same way, with Step name | instruction, and numbers the steps for you. For a test of whether markup like this changes AI citations, see the schema study; if you are setting up an llms.txt file at the same time, the llms.txt generator builds one.

04 Limits

What this generator does and doesn't do

It does four types with the fields most pages need. It removes empty fields, and it escapes < as \u003c so a stray closing script tag in your text can't break the page. That escape is valid JSON, and parsers read it as the normal character.

It doesn't:

  • Validate your dates or URLs. Type 2nd July and it goes into the code as-is. Use ISO 8601 dates such as 2026-07-02, and full absolute URLs starting with https://.
  • Cover every type. There's no Product, Organization, LocalBusiness, BreadcrumbList or Event tab. Breadcrumbs and Organization are usually better generated sitewide by your theme or CMS.
  • Link entities with @id. The Article author is a plain Person with a name. If you want the author to point to your full Person block, add matching @id values by hand.
  • Check the page itself. Google's guidelines require markup to describe content a visitor can see. The tool can't tell whether your FAQ answers are actually on the page.
05 Troubleshooting

Common schema errors and fixes

What you seeLikely causeFix
Rich Results Test: no items detectedThe type isn't a Google feature (Person, HowTo), or the script tag is missingCheck in the Schema Markup Validator; confirm the code sits inside type="application/ld+json"
Invalid date or datetime valueDate typed in words or a local formatUse YYYY-MM-DD, or a full ISO timestamp
Invalid URL in fieldRelative path such as /aboutUse the full address, https://example.com/about
Parsing error: missing ',' or '}'Code edited by hand after copyingRegenerate here and paste again rather than patching
Valid code, but no rich result in GoogleEligibility isn't a guarantee, and FAQ and HowTo results are now restricted or goneNothing to fix in the code; check the structured data guidelines

Schema is one part of a technical check. The citation readiness checker looks at a page more broadly, and the robots.txt tester confirms crawlers can reach it at all.

FAQ

Frequently asked questions

Which schema type should I use?
Article (or BlogPosting) for posts: headline, author and dates. Person for an author or about page. FAQPage only where the page really is a list of questions and answers, and note that since August 2023 Google shows FAQ rich results only for well-known, authoritative government and health sites. HowTo is still valid schema.org vocabulary, but Google stopped showing HowTo rich results in 2023. Add Organization and BreadcrumbList sitewide too.
Does schema get me cited by ChatGPT?
Nobody has shown that it does. Ahrefs tracked 1,885 pages that added schema and found AI citations barely moved, and live-fetch tests of several AI systems found they used visible page text, not information present only in JSON-LD. Google says no special structured data is needed to appear in AI Overviews or AI Mode. This site grades schema Open for AI citation. Use it for the rich results Google documents, and see the schema and AI citations study.
JSON-LD or microdata?
Use JSON-LD. Google supports JSON-LD, microdata and RDFa equally for rich results but recommends JSON-LD, because it sits in one script block and is easier to maintain without touching your HTML.
Where do I paste the code?
Inside a <script type="application/ld+json"> tag in the <head> (or anywhere in the body) of the relevant page. Check it with Google's Rich Results Test (for Google features) and the Schema Markup Validator at validator.schema.org (for schema.org correctness) before you deploy. The markup must describe content that is visible on the page.
Is schema markup a ranking factor?
Google's documentation presents structured data as a way to make a page eligible for rich results, such as breadcrumbs or article details, when the page also meets Google's content guidelines. Eligible does not mean guaranteed: Google decides per query whether to show a rich result.
Why does the Rich Results Test say no items were detected for my Person schema?
The Rich Results Test only reports types Google uses for a search feature. Person on its own is not one of them, so the test can show nothing even when the code is valid. Check Person markup in the Schema Markup Validator instead. Google uses Person inside ProfilePage markup and as the author of an Article.
Can I have more than one JSON-LD block on a page?
Yes. A page can carry several application/ld+json script tags, for example one Article and one BreadcrumbList. Generate each type here, then paste each into its own script tag. Just don't describe the same thing twice with conflicting values.
Does this generator store what I type?
No. The JSON-LD is built in your browser by the script on this page. Nothing you type is sent anywhere.
The Lab · Weekly

One experiment. Every week.

The field notes in your inbox - one thing I tested, the raw numbers behind it, and what it means for getting cited by AI.

Free. One practical SEO + AI search lesson a week. Unsubscribe anytime.

Free forever. Unsubscribe anytime.