Schema markup generator
Choose a page type, enter the details people can see on the page, and copy a clean JSON-LD script.
Configure the page markup
Choose the page type, then enter only information that visitors can see on the page.
Generated JSON-LD
Generate JSON-LD in three steps
- Pick the type that matches the main content of the page.
- Fill in the required fields, then any optional ones the page actually shows. Empty optional fields are left out of the output.
- Copy the script and paste it into the page’s HTML, or into the template for that page type.
The generator covers fourteen types: aggregate rating, article, breadcrumb, event, FAQ page, job posting, local business, organization, person, product, recipe, review, video and website. Its required fields match the schema markup validator, so a block it makes passes that check.
Pick the right type for the page
| Page | Type to use |
|---|---|
| Blog post or news story | Article, or the blog post or news article variant |
| Product page | Product, with its offer, price and availability |
| Shop, office or restaurant | Local business, with address and opening hours |
| Home page | Website and organization |
| Any page with visible breadcrumbs | Breadcrumb list |
| Job ad, event, recipe or video page | Job posting, event, recipe or video |
Why markup has to match the page
Structured data is a description of the page, not a place to add facts. Google checks it against what a visitor can see. A rating that is not on the page, a price that differs from the one shown, or an FAQ hidden from readers can make the page lose rich results, and in bad cases it earns a manual action.
That is also why the generator leaves out empty fields rather than filling them with placeholders. A missing optional property is fine. A wrong one is not.
Rules for some types
- FAQ page. Valid markup, but Google normally shows FAQ rich results only for well-known government and health sites.
- Reviews and ratings. They must match real reviews shown on the page. Google does not show stars for reviews a local business or organization publishes about itself.
- Website. It can state the site name you want Google to use. Put it on the home page with the canonical home page URL. The old sitelinks search box action is retired, so the generator leaves it out.
Test it after you publish
Paste the block into the validator before it goes live. After publishing, run the live URL through Google's Rich Results Test, which renders the page and shows what Google can read. Search Console then reports errors for each rich result type over the following weeks.
Add structured data across a site with your agent
Generating one block by hand works for one page. For a site, ask your agent to find the gaps first. The seo crawl command lists pages with no structured data and pages whose JSON-LD does not parse. The agent can then add the right type to each template in your codebase, using the page’s own fields. Ask:
Crawl example.com, find the product pages with no structured data, and add Product JSON-LD to the product templateThe crawl runs from the CLI on your machine:
npm i -g seo && seo startOr add the hosted MCP server to your agent:
Run it in a terminal, then sign in with Google.
Or run it on your machine
Installs the CLI, signs you in and adds the skill to your agents. Site crawls and Bing data run this way, on your own machine. A crawl fetches many pages, and Bing blocks our hosted server.