Schema.org JSON-LD generator for articles, products, FAQs and local businesses

Choose a schema type, fill in the fields that apply and get a ready JSON-LD script tag for Article, Product, FAQPage, LocalBusiness, Organization or BreadcrumbList, with empty fields left out and the markup made safe to paste into a page.

Live demo · real result from this tool

Press Generate to create a result.

Processed on your device — nothing is uploaded.

How to use the JSON-LD generator

  1. Choose the Schema type: Article, Product, FAQPage, LocalBusiness, Organization or BreadcrumbList. Only the fields for that type are shown.
  2. Fill in the fields. For FAQPage and BreadcrumbList, use the Rows box: one Question | Answer or Name | URL per line.
  3. For a local business, pick a Business type such as Restaurant, Dentist or Hotel, and add Opening hours (one per line).
  4. Copy the script block and paste it into your page.
  5. Test the page with Google’s Rich Results Test or the Schema Markup Validator.

What it does and when to use it

JSON-LD is a block of structured data that tells search engines what a page is about in a machine-readable way: this page is an article by this author, this is a product with this price, these are the questions and answers. Writing it by hand means remembering property names, nesting the right @type objects and keeping the JSON valid. The generator does that for the six types most sites need.

What each type adds:

Type Main properties
Article headline, description, image, dates, author, publisher with logo
Product name, image, SKU, brand, offer with price, currency and availability
FAQPage a Question with an acceptedAnswer for each row
LocalBusiness business sub-type, address, telephone, price range, opening hours
Organization name, URL, logo, profile links (sameAs), contact point
BreadcrumbList ListItem entries with position, name and URL

Pair it with the Meta Tag Generator for titles and descriptions and the Open Graph Tag Generator for social cards.

How it works

The fields are assembled into a JSON object with "@context": "https://schema.org". Empty fields, empty lists and nested objects that would hold nothing but their @type are removed, so you never publish "brand": {} placeholders. The JSON is indented with two spaces, every < is escaped as \u003c, and the result is wrapped in <script type="application/ld+json">. It is built in your browser.

Worked examples

The default Article. The output includes "headline": "How to compress a PDF without uploading it", a Person author and an Organization publisher with an ImageObject logo. Date modified is empty, so dateModified is left out.

A delivery FAQ with two rows gives a mainEntity list:

"name": "Do you deliver on Sundays?",
"acceptedAnswer": {
  "@type": "Answer",
  "text": "Yes, between 10:00 and 16:00."
}

A café. Business type CafeOrCoffeeShop, an address in Bengaluru and two hours lines give "@type": "CafeOrCoffeeShop" and "openingHours": ["Mo-Fr 08:00-22:00", "Sa-Su 09:00-23:00"]. The empty description and image are dropped.

Limits and tips

  • Only one schema type per run. For several, generate each block and paste them one after another.
  • The tool does not check that URLs work or that dates are in ISO format (YYYY-MM-DD); the validators do.
  • Keep FAQ answers identical to the text visible on the page. If you build a visible FAQ with the HTML Details Accordion Generator, copy the same questions here.

Frequently asked questions

Where do I put the JSON-LD script?
Anywhere in the page's HTML, in the head or the body. Search engines read it wherever it is. Many sites put it in the head so it is easy to find, and CMS plugins often have a field for custom head code.
Will this give my page stars or rich results?
Structured data makes a page eligible for rich results; it does not guarantee them. Search engines decide when to show them. The markup must also describe content that is visible on the page, which the tool's note reminds you of.
Why can I not add ratings or reviews to a product?
Review and rating markup must come from real reviews shown on the page. Inventing them breaks search engine rules and can lead to a manual penalty, so the generator leaves those properties out. Add them from your review system if you have genuine reviews.
What format do opening hours use?
Two-letter day codes and 24-hour times, one rule per line, such as Mo-Fr 09:00-18:00 or Sa 10:00-14:00. Each line becomes one entry in the openingHours list.
Why is the less-than sign written as \u003c?
A text value containing </script> would otherwise end the script tag early and break the page. JSON allows the \u003c escape, so the value stays the same for search engines while the HTML stays intact.

Written by the ToolsRift team · Last updated

Pages are drafted with AI assistance and checked by automated tests. How we write and check pages.

Was this tool useful?

Report a problem

Start typing to search every tool.

↑ ↓ to moveEnter to openEsc to close