Home » Dev Tools » Schema Markup Generator

Free tool

Schema-Generator-icon

Schema Markup Generator

Build valid JSON-LD for a local business, service, FAQ, article or breadcrumb trail, with every property Google treats as required checked before you paste it.

Use this free schema markup generator to build the JSON-LD a search engine reads about your page. Pick what you are describing, fill in the details, and copy a block that is ready to paste. Six types are covered: local business, organization, service, FAQ, article and breadcrumbs.

The difference here is what it checks. Markup can be perfectly valid JSON and still do absolutely nothing, because Google ignores a type that is missing a property it treats as required, and nothing warns you. Every field is marked required or recommended, and the tool will not call the output ready until the required ones are filled. Nothing is uploaded and your business details never leave the tab. Writing the title and description too? Use the meta tag preview.

1. What are you marking up?

2. The details
Your JSON-LD

      

How to add schema markup to a page

Five steps, no account and nothing to install.

  1. Pick the type. Local Business if customers come to an address, Organization if they do not. Service for what you sell, Article for a post, Breadcrumbs for the trail, FAQ for a list of questions. Each one explains what it will and will not do before you start filling it in.
  2. Fill in the details. Required fields are marked, and so are the ones Google merely recommends. The difference matters: a missing required property means the markup is ignored completely rather than partially.
  3. Watch the checklist. It names exactly which required properties are still empty, and turns over only when none are. Valid JSON is not the same thing as useful markup, and this is the gap that catches people.
  4. Copy the block. It comes wrapped in its script tag, ready to paste. Put it in the head of the page it describes, or anywhere in the body: both work, and one page can carry several types.
  5. Check it in Google’s Rich Results Test. That tool is the authority on whether Google can read it. This one gets you to the point where it has something worth reading.

More free tools

Built for our own work, free for yours. No sign-up on any of them.

Font Clamp
Fluid clamp() for font size and its matching line height, across a whole type scale.
Email Signature Generator icon
Email Signature Generator
Make a professional email signature that holds its shape in Gmail, Outlook and Apple Mail. Fill in your details, pick a layout, copy it and paste it in.
QR Code Generator
Generate styled QR codes with custom colors, dot styles, and logos.
Meta Tag Preview
See how your page will look as a Google result and as a Facebook, X or LinkedIn card, then copy the tags. Measured by pixel width, which is what actually gets cut.
Color Contrast Checker
Check any two colors against the WCAG contrast rules, get the nearest shade that passes, and convert between HEX, RGB and HSL.
Case Converter
Switch text between sentence case, title case, camelCase, snake_case, and more.
UTM Builder icon
UTM Builder
Tag your campaign links so analytics can tell where the traffic came from. Build a whole campaign at once and take the set out as a CSV.
Image Resizer
Resize images to any width, height or preset size, crop to fit, and convert the format. Batch, and nothing is uploaded.
PDF Compressor
Shrink PDF file sizes right in your browser. Batch upload and ZIP download supported.
Merge PDF
Join several PDFs into one file, in the order you choose. Nothing is uploaded and no quality is lost.
Split PDF
Split a PDF into separate files, or pull out only the pages you need. Pick them from thumbnails or type ranges.
Favicon Generator
Generate a complete favicon package, download as ZIP with HTML snippet.
Image Converter
Convert images to WebP, PNG, or JPG. Batch upload and download as a ZIP.

What people use schema markup for

Mostly to stop a search engine having to guess what a page is about.

Telling search engines what a local business is

Name, address, phone and opening hours in a form a machine reads without guessing. It is the groundwork behind a business being understood as a business rather than as a page of words.

Getting a readable path into the search result

Breadcrumb markup replaces the bare URL under your title with a readable trail. It is one of the few types that still makes a visible difference on an ordinary site.

Marking up an article properly

Headline, author, publisher and both dates, nested the way Google expects rather than flattened. The publisher logo as an ImageObject is the part almost everyone gets wrong by hand.

Being understood by an AI assistant

Assistants read structured data because it is unambiguous. A service page that states what it is, who provides it and where, gets summarised more accurately than one that leaves it to be inferred.

Handing markup to a developer

A finished block removes the round trip. No describing which properties you want, no reviewing what came back, no discovering at the end that the address was flattened.

Doing it once instead of trusting a plugin

SEO plugins generate schema from whatever they can guess about a page. For a handful of important pages, markup you wrote deliberately says what you actually mean.

Frequently asked questions

What it does and does not do for rankings, where the code goes, and why FAQ markup stopped showing.

Will schema markup improve my rankings?

Not directly, and anybody promising otherwise is overselling it. Structured data is not a ranking factor. What it changes is how your result can LOOK: a breadcrumb trail instead of a bare URL, review stars, a recipe time, an event date. A result that is more informative gets clicked more often, and that is the honest mechanism. It also makes a page easier for an AI assistant to summarise correctly, which is becoming the more interesting reason to bother.

In the head of the page it describes, which is the convention, though anywhere in the body works too and Google reads both. One page can carry several types: a service page might reasonably have LocalBusiness, Service and BreadcrumbList, each in its own script tag. In WordPress you can paste it into a header snippet, a custom HTML block, or whatever your theme calls its head hook. It must go on the page it is about, not on every page of the site.

Because since August 2023 Google shows FAQ rich results only for government and health sites. This surprises people because most of the advice online predates the change and still promises an expanded listing. The markup is not wasted: it is still valid, still read by assistants and other engines, and still describes your page accurately. It just will not add anything visible to your Google listing on an ordinary business site.

A required property is one Google will not proceed without. Leave the address off a LocalBusiness and the whole block is ignored, not partially used, and nothing tells you. A recommended one makes the result better or more likely to be shown but will not stop it working. This is the distinction most generators skip, which is how people end up with markup that validates cleanly and does nothing at all.

If customers come to a physical address you can visit, use LocalBusiness. If the business is real but not somewhere people turn up, use Organization. The practical difference is that LocalBusiness expects a full postal address and is the one tied to local search, so claiming it without a genuine address is worse than using Organization honestly.

Because the markup lives inside a script tag, and a value containing a closing script tag would end that tag early. Everything after it stops being data and becomes live page markup. It is easy to hit by accident: an FAQ answer about HTML, a description that quotes some code. JSON.stringify on its own does not escape it, which is why most hand-rolled generators have this problem and nobody notices until something on the page breaks. Escaping the character keeps the JSON identical when parsed and makes it impossible for a value to close the tag.

It checks the thing generators usually skip, which is whether every property Google treats as required has been filled, and it builds the nested shapes correctly so the output is well formed. It is not a substitute for Google’s own Rich Results Test, which is the authority on whether Google can actually read your page. Use this to write it, use that to confirm it.

No. Everything happens in your own tab. That matters here more than on most tools, because this one asks for a real address, a real phone number and a real business name, and those are not things to hand to somebody else’s server for no reason. The page does send three counters, which are how many blocks were built, how many were copied or downloaded, and one per visit. Those are numbers only and carry nothing about your business.

Want something like this on your own site?

Free tools are a small part of what we do. The rest is websites and digital products for businesses serious about growth, whether you are launching, scaling or transforming.