Tell search engines what your page is.
100% freeNo sign-upsNo trackingKeeps working with the internet off
This JSON-LD generator builds schema markup for your page. Search engines read a hidden block of labelled data, called JavaScript Object Notation for Linked Data (JSON-LD), to learn what a page describes, such as a product, an frequently asked questions, an event or a recipe. This tool builds that block for 22 types of page, checks it, and hands it to you to copy or save. The labels come from schema.org, a shared list that search engines understand. Structured data helps machines understand a page. It does not guarantee a ranking, a mention by an artificial intelligence tool, or a rich result, which is a search result with extra detail.
The short answer. JavaScript Object Notation for Linked Data is a block of labelled data that tells search engines what a page describes. This tool builds it for 22 types of page, checks it and gives it to you to copy or save. It helps machines understand a page, and it does not guarantee a ranking, an artificial intelligence mention or a rich result.
- Runs in your browser
- Nothing is uploaded
- Starts straight away
1. Describe your page
2. Copy your JavaScript Object Notation for Linked Data
This is the text that goes between the script tags on your page. It updates as you type. Optional fields you leave empty are left out. It is separate from the frequently asked questions data in this page's own head.
The link that carries your address only works for a public page that Google can reach over Hypertext Transfer Protocol Secure. If your page is not public yet, open Google's test, choose its Code tab and paste the JavaScript Object Notation for Linked Data there. This tool does not contact Google by itself.
3. Check it
This check runs in your browser. It tests that the text can be read as JavaScript Object Notation, that @context and @type are present, and that the fields search engines usually want are filled in. It is not Google's Rich Results Test, and it does not look at your live page.
How to use it, and where to paste it
JavaScript Object Notation for Linked Data is a block of labelled data, written in a format called JavaScript Object Notation, that sits inside a script tag (a piece of code that is not shown on the page) with the type application/ld+json. Google recommends it for schema.org structured data. Choose a type, replace the example fields with your own content, and watch the JavaScript Object Notation change. The checker flags a missing @context or @type and any recommended properties that are empty.
- Pick a type. FAQPage, Product, LocalBusiness and HowTo are common ones that Google can show as rich results.
- Fill in the fields that matter most. Empty optional fields are left out of the JavaScript Object Notation. Rows that repeat, such as frequently asked questions questions, HowTo steps and breadcrumb steps, can be added or removed.
- Copy the JavaScript Object Notation, copy the full <script type="application/ld+json"> tag, or save a .json file.
- Paste the script tag into the <head> of your HyperText Markup Language or just before </body>. Search engines read both.
- Where to paste it on common systems: in WordPress, use the custom schema field of an search engine optimisation plugin such as Yoast or Rank Math, or a Custom HyperText Markup Language block. In Shopify, use the head of theme.liquid or a section. In Webflow, use Page Settings, then Custom Code, then Head. In Next.js, use a raw script in the document head, not a string that React escapes.
- For a public page, open the Google Rich Results Test. For a file on your own computer, use that tool's Code view and paste the text, because Google cannot fetch pages that are not published.
Do not wrap JavaScript Object Notation for Linked Data in <pre> tags, Markdown code fences or HyperText Markup Language comments. One graph per script tag is the simplest way, and several script tags on one page are allowed. Keep the visible text of the page consistent with the markup, because Google may ignore or penalise a mismatch. This tool does not read your live page, so matching the text is up to you.
Microdata is another way to label a page. It is mixed into the page's own tags, while JavaScript Object Notation for Linked Data is a separate block. Google recommends JavaScript Object Notation for Linked Data because it is easier to maintain and less likely to break when you restyle the page. This tool makes JavaScript Object Notation for Linked Data only.
The 22 types in this generator
Each type produces JavaScript Object Notation for Linked Data with @context: https://schema.org. Nested parts use the matching schema.org types (Question and Answer, Offer, PostalAddress, HowToStep, ListItem, Person, Organization, SearchAction and so on). The warnings about recommended fields follow the properties Google commonly asks for in rich results. They are not a full formal check of the schema.
| Type | What it is for | Properties the checker looks for |
|---|---|---|
FAQPage | Questions and answers that you wrote, shown on the page | mainEntity (≥1 Question with acceptedAnswer) |
Product | Product details and prices in search results | name, image, offers.price, offers.priceCurrency, offers.availability |
LocalBusiness | A business's name, address and phone number, for maps and local results | name, address, telephone, image |
HowTo | Step-by-step guides | name, step |
Article | News and explainer pages | headline, image, datePublished, author |
BlogPosting | Blog posts (a kind of Article) | same as Article |
Organization | A company or group, such as a publisher | name, url, logo |
Person | An author or a profile | name |
WebSite | A site's name, and a search box in results | name, url |
BreadcrumbList | The trail of links shown in results | itemListElement (≥2 ListItem) |
Event | Event listings | name, startDate, location |
Recipe | Recipe cards | name, image, recipeIngredient, recipeInstructions |
JobPosting | Job adverts | title, description, datePosted, hiringOrganization, jobLocation |
Review | One review of an item | itemReviewed, reviewRating, author |
SoftwareApplication | An app or program listing | name, offers |
Course | Course listings | name, description, provider |
VideoObject | Video results | name, description, thumbnailUrl, uploadDate |
ItemList | Ranked lists and carousels | itemListElement |
Service | A service you offer | name, provider |
Offer | A price on its own | price, priceCurrency, availability, url |
QAPage | A public question-and-answer page where other people can answer (not an frequently asked questions you wrote) | mainEntity Question with acceptedAnswer |
SpeakableSpecification | Parts of a page for voice assistants (wrapped in WebPage) | speakable.cssSelector or xpath |
Use FAQPage for questions you wrote yourself. Use QAPage only when the page is a public question-and-answer thread where other people can answer. Mixing them up is a common reason Google ignores the markup.
Questions people ask
Who made this?
UtilForge makes it. UtilForge is a website of free cybersecurity tools and small calculators. The About page explains why the tools were made, and the Contact page is the way to reach us.
Is this a scam site?
You do not have to take UtilForge's word for it, so here is what you can check. This page does not ask for payment, an account or card details. The generator itself is free. The box on the page offers the five website tools as one free file that opens offline. The page also carries a security setting (connect-src 'none') that tells your browser to block every network connection from it, so the page cannot send what you type anywhere. To test that, let the page finish loading, switch the internet off, and use the generator. It keeps working. One thing does lead to another website: the Google Rich Results Test buttons open Google's own page, and only when you press them.
What happens when I close the page?
The page keeps nothing. Its code does not use cookies, local storage, session storage or IndexedDB (the places a page can save data in your browser). What you type, and the JavaScript Object Notation it makes, are held in the browser's memory while the page is open and are gone when you close or reload it. The address bar never holds your values, so there is no share link. Text you copied stays wherever you pasted it, and a file you saved with Download .json stays where you saved it. One thing to know: if you type a web address into the Google test box and press Open in Google Rich Results Test, that address is placed in the link, so Google's website receives it.
Does it cost anything, and do I need to sign in?
The generator costs nothing and you can start straight away. The box on the page offers the five website tools as one free file for offline use, and the generator works the same without it.
Will schema markup improve my Google rankings?
Schema is not a direct ranking factor in the way backlinks are, but it can make a page eligible for rich results, which are search results with extra detail, such as for frequently asked questions, product, recipe, event or job posting pages. Those can improve how often people click. Invalid or spammy markup can be ignored or can lead to a manual action against the site. Check the markup before you publish it. Whether a page gets a rich result also depends on Google's current rules.
Is this checker the same as Google's Rich Results Test?
No. This checker runs in your browser. It tests that the text is valid JavaScript Object Notation and has @context and @type, and it warns when recommended properties are missing. It does not contact Google, does not confirm that a page can get a rich result, and does not look at the live page. Always run Google's test on a public web address before you claim a rich result.
Will JavaScript Object Notation for Linked Data improve my Google rankings?
Structured data helps machines understand what a page is about. It does not guarantee a higher ranking or a rich result.
Where do I paste the script tag?
In the head of the page, or just before the closing body tag. Both are commonly used. The exact place depends on your site: a custom field in an search engine optimisation plugin, the head of your theme, or a Custom HyperText Markup Language block.
Should I add AggregateRating if I have no reviews?
No. Do not invent ratings. An AggregateRating is the average of many ratings. Add it only when real reviews exist and the markup matches what the page shows.
How do I check that the markup is right?
Use this page's checker first. After the page is published, run Google's Rich Results Test on its live web address. This page's checker does not visit your page.
Does UtilForge use this kind of markup itself?
The UtilForge pack pages use SoftwareApplication and Offer markup made in the same spirit as this tool, and they do not use made-up review stars. The examples in this tool use a made-up company, Example Co.