Schema markup generator
Pick a type, fill the fields Google documents, and copy the JSON-LD into the head of the page. Required fields are marked, URLs and dates are checked as you type, and nothing leaves your browser.
By Théophile Louvart, founder of Porteur · Updated 14 September 2026 · Markdown
Who stands behind the site. Google reads it for the knowledge panel and the logo in results; assistants read it for the name, the site and the profiles.
- Name is required.
- Website is required.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization"
}
</script>What it makes
One block of JSON-LD for one of the eight types a product site uses: Organization, WebSite (with the search box), SoftwareApplication, Product, Article, FAQPage, HowTo and BreadcrumbList. Each form holds the fields Google lists in its structured data documentation for that type, with the required ones marked and the recommended ones left optional.
As you type, the block on the right rewrites itself and a line under the form says whether every required field is filled and every value has the right shape: an absolute URL where a URL is asked for, an ISO 8601 date, a numeric price with a three-letter currency, a duration written as PT10M. When the line is green the block is ready to paste.
- Organization: name, website, logo, description, contact email, founding date, profiles on other sites (sameAs).
- WebSite: the site name, the home page, a short name, and a search URL with {search_term_string} for the sitelinks search box.
- SoftwareApplication: name, category, platform, the lowest price with its currency, and a rating from real reviews.
- Product: name, images, description, SKU, brand, price, currency, availability, the buy page, a rating.
- Article: headline, images, published and updated dates, author, publisher, description.
- FAQPage: as many questions and answers as the page shows.
- HowTo: what the steps achieve, a description, the total time, and the steps in order.
- BreadcrumbList: the path from the home page to the page, positions numbered for you.
Why it matters
Structured data is how a page says what it is in a form a machine reads without guessing. Google uses it to draw richer results (a breadcrumb instead of a raw URL, a product's price and availability, an article's date and author, a site's search box) and to understand who stands behind a site. AI assistants that retrieve a page read the same block to name the product, its maker and its price without parsing the prose.
Two rich results have gone the other way, and the form says so where it applies. Since August 2023 Google shows the FAQ rich result only for authoritative government and health sites, and the HowTo rich result was retired the same year. The markup is still worth adding on a page that holds questions or steps: it tells an assistant, plainly, which questions the page answers and in what order the steps go. It just no longer changes how the result looks in Google.
How to use it
Pick the type
One type per block. A pricing page usually carries SoftwareApplication or Product and a BreadcrumbList; a guide carries Article and, if it has questions, FAQPage; the home page carries Organization and WebSite.
Fill the required fields first
They are marked. The line under the form stays red until each one has a value of the right shape. Recommended fields are worth filling when you have the fact: an empty field is better than a guessed one.
Read the block
It rewrites as you type. Check the names match the page exactly: the product name here and the h1 on the page should be the same string, because assistants match on names.
Copy it, wrapped or bare
Wrapped adds the script tag so the block can go straight into the head of the page. Bare is for a framework that adds the tag for you, such as a JSON-LD component.
Check it on the live page
Once deployed, paste the page URL into the structured data checker on this site, or into Google's Rich Results Test, to see what a crawler reads.
A worked example. yourproduct.com sells an invoicing app with a free plan. On the home page: an Organization block (name, site, logo, the X and GitHub profiles) and a WebSite block. On /pricing: a SoftwareApplication block with the name, BusinessApplication as the category, Web as the platform, price 0 and EUR as the currency, and no rating, because the site has no reviews yet. On /guides/first-invoice: an Article block with the headline, the two dates and the founder as author, and a BreadcrumbList with Home, Guides, and the guide. Four blocks, twenty minutes.
How to read the result
| The line says | It means | What to do |
|---|---|---|
| Name is required | A field Google lists as required is empty. | Fill it; the block is not valid for the type without it. |
| Must be an absolute URL | A URL field holds a path or a bare domain. | Write the whole address, starting with https://. |
| Must be an ISO 8601 date | A date is written as 14/09/2026 or September 14. | Write 2026-09-14, or a full timestamp with the time zone. |
| Currency must be three capital letters | The currency is written as € or euros. | Use the ISO 4217 code: EUR, USD, GBP. |
| At least 2 needed | A list type (steps, breadcrumb) has fewer rows than it needs. | Add the rows; a breadcrumb with one item says nothing. |
| Every required field is filled | The block has the right shape for the type. | Paste it on the page and check the live page with a crawler. |
The check is about shape, not truth. It cannot know whether the price is the one on the page or whether the author exists. That part is yours, and it is the part Google's spam policies read.
Limits
- One type per block. A page that needs several types gets several blocks, one after the other, each in its own script tag.
- Eight types, the ones a product site uses. Recipes, events, jobs, local businesses and videos have their own types with their own required fields; Google's documentation lists them.
- Shape, not eligibility. A valid block does not guarantee a rich result: Google decides per page, per query, and some rich results are gone for most sites.
- Nothing is fetched. The generator does not read your page; the structured data checker does that once the block is live.
Questions
In the head, inside a script tag with type application/ld+json. Google also reads it from the body. One block per type; several blocks on one page are fine.
For most sites, no. Since August 2023 Google shows the FAQ rich result only for authoritative government and health sites. The markup still tells assistants which questions the page answers, so it is worth keeping on pages that hold real questions.
No. A rating in the markup must come from reviews a visitor can read on the page. Leave the rating fields empty; the block is still valid for the name and the price.
Deploy the page, then paste its URL into the structured data checker on this site or into Google's Rich Results Test. Both read the live HTML and list the types and the missing fields a crawler sees.
Google recommends JSON-LD: one block, separate from the HTML, easy to generate and to check. Microdata and RDFa are still read; they are just harder to maintain.
Check my site, free
The block is the easy part. The free check reads the whole site and says which pages Google shows and nobody clicks, which rivals take your searches, and where the markup is missing or wrong.
- Free check, no card
- Read-only, your own accounts
- Readable by your agent