UtilForge
Free · runs on this device

JavaScript Object Notation for Linked Data generator

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

How it works, in four steps

  1. Paste or chooseChoose the type of page and fill in its details.
  2. The check runs on your own phone or computerWhat you add stays on your device, and the page keeps working with the internet off.
  3. Read what it found and what to do nextCopy the finished block into your page. The checker points out details that are missing.
  4. What this check cannot doIt does not contact Google or look at the live page, and it cannot guarantee a higher ranking or a rich result.

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.

    1. Pick a type. FAQPage, Product, LocalBusiness and HowTo are common ones that Google can show as rich results.
    2. 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.
    3. Copy the JavaScript Object Notation, copy the full <script type="application/ld+json"> tag, or save a .json file.
    4. Paste the script tag into the <head> of your HyperText Markup Language or just before </body>. Search engines read both.
    5. 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.
    6. 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.

    TypeWhat it is forProperties the checker looks for
    FAQPageQuestions and answers that you wrote, shown on the pagemainEntity (≥1 Question with acceptedAnswer)
    ProductProduct details and prices in search resultsname, image, offers.price, offers.priceCurrency, offers.availability
    LocalBusinessA business's name, address and phone number, for maps and local resultsname, address, telephone, image
    HowToStep-by-step guidesname, step
    ArticleNews and explainer pagesheadline, image, datePublished, author
    BlogPostingBlog posts (a kind of Article)same as Article
    OrganizationA company or group, such as a publishername, url, logo
    PersonAn author or a profilename
    WebSiteA site's name, and a search box in resultsname, url
    BreadcrumbListThe trail of links shown in resultsitemListElement (≥2 ListItem)
    EventEvent listingsname, startDate, location
    RecipeRecipe cardsname, image, recipeIngredient, recipeInstructions
    JobPostingJob advertstitle, description, datePosted, hiringOrganization, jobLocation
    ReviewOne review of an itemitemReviewed, reviewRating, author
    SoftwareApplicationAn app or program listingname, offers
    CourseCourse listingsname, description, provider
    VideoObjectVideo resultsname, description, thumbnailUrl, uploadDate
    ItemListRanked lists and carouselsitemListElement
    ServiceA service you offername, provider
    OfferA price on its ownprice, priceCurrency, availability, url
    QAPageA public question-and-answer page where other people can answer (not an frequently asked questions you wrote)mainEntity Question with acceptedAnswer
    SpeakableSpecificationParts 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.

    Did this check help you?

    Tell UtilForge what worked and what did not. Each button opens an email to lindsay@utilforge.org that you write and send yourself. UtilForge will only quote your words on this site if you say it may, and then with your first name and country only.

    Yes, it helpedSomething was missing

    The whole method in one book. “How to Become Safer Online” is a free large-print guide to the five steps most scams follow, and what to do if money or details have already gone. Read or print the free book.