JSON-LD Schema Markup Generator

Create schema.org structured data in the JSON-LD format that search engines recommend. Pick a type (Article, Product, FAQ page, Organization, Local business, Breadcrumbs, Event, Website, Software app or Recipe), fill in a form that marks required and recommended properties, and copy a ready-to-paste script tag. Every type starts with realistic example values, dates get a proper time-zone offset, and checks flag missing required fields, relative URLs, invalid dates and numbers before you test the markup.

Helps search engines show the right headline, image, author and dates for news, blog and article pages.

Properties

Output

JSON-LD script tag
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "How to Choose a Standing Desk",
  "image": [
    "https://www.example.com/images/standing-desk.jpg"
  ],
  "datePublished": "2026-09-14T09:00:00-05:00",
  "dateModified": "2026-10-01T16:30:00-05:00",
  "author": [
    {
      "@type": "Person",
      "name": "Ana Example",
      "url": "https://www.example.com/authors/ana"
    }
  ],
  "publisher": {
    "@type": "Organization",
    "name": "Example Media"
  }
}
</script>

Paste the script into your page's <head> or <body>, then check it with Google's Rich Results Test and the Schema.org validator before publishing.

Checks

  • Pass Valid Article structure with all required properties.

Runs entirely in your browser. Nothing you paste or open here is uploaded or stored.

How to use the JSON-LD generator

  1. Choose a schema type. A short description explains when to use it.
  2. Fill in the form. Required properties are marked (required), and the ones that improve eligibility are marked (recommended).
  3. For dates, choose the UTC offset of the time zone where the event or publication happens.
  4. Read the checks, fix anything marked Fix, and consider the Check suggestions.
  5. Copy the script tag into the page’s <head> or <body>.
  6. Test it with Google’s Rich Results Test and the Schema.org validator before publishing.

Each type keeps its own values, so you can switch types without losing your work. Sample restores the example and Clear empties the form.

How it works

The form values are turned into a schema.org object with @context and @type, nested where the vocabulary expects it: an Offer inside a Product, a PostalAddress inside a LocalBusiness, a Person as an article’s author. Empty fields are left out instead of written as empty strings. Some conversions are automatic:

  • date-times get seconds and your chosen offset, for example 2026-11-20T10:00:00+01:00;
  • recipe times in minutes become ISO 8601 durations (PT15M), with a total time added;
  • availability and attendance become full schema.org URLs;
  • FAQ and breadcrumb lists are written one per line as left | right and become arrays.

In the output, < is escaped as <, so a value containing </script> can never close the tag early.

Worked examples

Example 1: an article

The Article sample has a headline, image, author with profile URL, publisher and both dates with a −05:00 offset. All checks pass. Search engines use this to show the right date and author with the article.

Example 2: a local business

Switch to Local business, choose Store as the type and fill in the address, phone and opening hours such as Mo-Fr 07:00-18:00. The required street address and city are checked. Make sure the details match your Google Business Profile.

Example 3: breadcrumbs

Enter Home | https://www.example.com/, then one line per level down to the current page. Positions are numbered automatically. The last item may leave out the URL, because it’s the current page.

Choosing the right type

Use the most specific type that matches what the page is mainly about: a product page gets Product (not Organization), a recipe blog post gets Recipe (not just Article). Add Organization and WebSite markup once, on the home page.

Common mistakes

  • Marking up content that isn’t on the page, such as reviews users can’t see.
  • Prices or ratings that differ from the visible page.
  • Relative image URLs. Use absolute https:// URLs.
  • Dates without time zones, which can shift events by hours.
  • Copying one page’s markup to every page, which creates duplicate, inaccurate data.

Frequently asked questions

What is JSON-LD?

JSON-LD (JSON for Linked Data) describes the things on a page (a product, an article, a business) in a script tag that search engines read, using the schema.org vocabulary. It's separate from your HTML, so it's easy to add and maintain, and it's the format Google recommends.

Does structured data improve rankings?

Not directly. It helps search engines understand a page and makes it eligible for rich results, such as review stars, prices, event dates or breadcrumbs, which can improve click-through. Eligibility isn't a guarantee that rich results appear.

Can I mark up content that isn't visible on the page?

No. Structured data must describe content that users can see on the same page. Marking up hidden or misleading information goes against search engine guidelines and can lead to rich results being removed.

Why does the FAQ type show a warning?

Google limits FAQ rich results to well-known, authoritative government and health websites. Other sites can still use FAQPage markup to describe their content, but shouldn't expect the expanded result in Google.

Where do I put the JSON-LD on my page?

Inside a <script type="application/ld+json"> tag, usually in the head. It can also go in the body; search engines read it either way.

Sources