UtilForge

JSON-LD Schema Generator

Build valid JSON-LD schema markup for 22 schema.org types (FAQPage, Product, LocalBusiness, HowTo, and more). Live pretty-printed JSON, a client-side linter, copy JSON or a full script tag, download .json, and a Google Rich Results Test link. Nothing is uploaded.

This document also embeds its own FAQPage JSON-LD (≥6 Q&As) in the head; the tool below generates a second, user-controlled JSON-LD blob.

Generator

Pretty-printed JSON for <script type="application/ld+json">. This is the generated markup — separate from this page’s own FAQ schema in the document head. Empty optional fields are omitted.

The ?url= link only works on a publicly crawlable HTTPS page. If the page is not publicly crawlable — paste the generated JSON-LD into Google’s Code tab instead of URL mode. Local or unpublished pages should paste code. This tool does not call Google’s API.

Live validator

Client-side lint only: JSON parse, @context, @type, and recommended schema.org / rich-result fields. Not Google’s Rich Results Test and not a live crawl of your HTML.

    How to use JSON-LD (and where to paste it)

    Choose a schema.org type, replace the example fields with your content, and watch the live JSON update. The validator flags missing @context/@type and recommended properties. When the preview looks right, copy the JSON or the full script tag.

    1. Pick a type (start with FAQPage, Product, LocalBusiness, or HowTo if you want a common Google rich result).
    2. Fill required-ish properties. Empty optional fields are omitted from the JSON. Repeatable rows (FAQ questions, HowTo steps, breadcrumbs) can be added or removed.
    3. Copy JSON, copy the full <script type="application/ld+json"> tag, or download a .json file.
    4. Paste the script tag in your HTML <head> or just before </body>. Search engines read both.
    5. CMS shortcuts: WordPress — Yoast/Rank Math custom schema or a Custom HTML block. Shopify — theme.liquid head or a section. Webflow — Page Settings → Custom Code → Head. Next.js — a raw script in the document head (not a React-escaped string).
    6. On a public URL, open Google Rich Results Test. For local files, use that tool’s Code view and paste — Google cannot fetch unpublished pages.

    Do not wrap JSON-LD in <pre>, Markdown fences, or HTML comments. One graph per script tag is easiest; multiple script tags on one page are allowed. Keep visible content consistent with the markup — Google may ignore or penalize mismatch. This generator does not scrape your live HTML; you are responsible for matching on-page copy.

    22 schema.org types in this generator

    Each type emits valid example JSON-LD with @context: https://schema.org. Nested objects use the matching schema.org subtypes (Question/Answer, Offer, PostalAddress, HowToStep, ListItem, Person, Organization, SearchAction, and so on). Recommended-field warnings follow Google’s common rich-result properties, not a full SHACL shape.

    TypeTypical useRecommended fields this linter watches
    FAQPageAuthor-written Q&A on the pagemainEntity (≥1 Question with acceptedAnswer)
    ProductProduct snippets / merchant listingsname, image, offers.price, offers.priceCurrency, offers.availability
    LocalBusinessNAP + map pack style entitiesname, address, telephone, image
    HowToStep-by-step guidesname, step
    ArticleNews / explainer pagesheadline, image, datePublished, author
    BlogPostingBlog posts (Article subtype)same as Article
    OrganizationPublisher / company entityname, url, logo
    PersonAuthor / profilename
    WebSiteSitename + sitelinks search boxname, url
    BreadcrumbListBreadcrumb rich resultitemListElement (≥2 ListItem)
    EventEvent listingsname, startDate, location
    RecipeRecipe cardsname, image, recipeIngredient, recipeInstructions
    JobPostingJob listingstitle, description, datePosted, hiringOrganization, jobLocation
    ReviewA single review of an itemitemReviewed, reviewRating, author
    SoftwareApplicationApp / software listingname, offers
    CourseCourse listingname, description, provider
    VideoObjectVideo resultname, description, thumbnailUrl, uploadDate
    ItemListRanked / carousel listsitemListElement
    ServiceService offeringname, provider
    OfferStandalone offer / priceprice, priceCurrency, availability, url
    QAPageCommunity Q&A (not author FAQ)mainEntity Question with acceptedAnswer
    SpeakableSpecificationSpeakable / audio content (wrapped in WebPage)speakable.cssSelector or xpath

    Use FAQPage for questions you wrote yourself. Use QAPage only when the page is a public Q&A thread where other people can answer. Mixing them is a common reason Google ignores the markup.

    FAQ

    What is JSON-LD schema markup?

    JSON-LD (JavaScript Object Notation for Linked Data) is Google's recommended format for schema.org structured data. You place a JSON object inside a script element with type application/ld+json so crawlers can understand entities such as FAQ pages, products, recipes, and events without scraping visible HTML microdata.

    Does this JSON-LD generator upload my content?

    No. The generator and validator run entirely in your browser. Field values, the live JSON preview, and downloads never leave this page. There is no server-side processing and nothing is stored on a remote server.

    How do I add JSON-LD to my HTML?

    Copy the script tag and paste it in your page head or just before the closing body tag. Search engines read both. In WordPress you can use an SEO plugin's custom schema field or a Custom HTML block. In Shopify, add it to theme.liquid or a section. Do not wrap the JSON in extra pre tags or HTML comments.

    What is the difference between JSON-LD and microdata?

    Microdata (itemprop, itemscope) is mixed into HTML tags. JSON-LD is a separate JSON blob. Google recommends JSON-LD because it is easier to maintain and less likely to break when you restyle the page. This tool outputs JSON-LD only.

    Will schema markup improve my Google rankings?

    Schema is not a direct ranking factor in the way backlinks are, but it can enable rich results (FAQ, product, recipe, event, job posting) that improve click-through rate. Invalid or spammy markup can be ignored or trigger a manual action. Validate before you publish. Eligibility also depends on Google's current rich-result policies.

    How do I test JSON-LD with Google Rich Results Test?

    If the page is already public, use Open in Google Rich Results Test with the live URL. Google's url parameter only works on crawlable HTTPS pages. Local or unpublished pages cannot be fetched — open the Rich Results Test, choose Code, and paste the JSON-LD. This page's validator is a client-side linter, not Google's API.

    Which schema.org types does this generator support?

    Twenty-two types: FAQPage, Product, LocalBusiness, HowTo, Article, BlogPosting, Organization, Person, WebSite, BreadcrumbList, Event, Recipe, JobPosting, Review, SoftwareApplication, Course, VideoObject, ItemList, Service, Offer, QAPage, and SpeakableSpecification (emitted on a WebPage). Each form maps required-ish properties from schema.org and Google's rich-result docs. This page also embeds its own FAQPage JSON-LD in the document head, separate from the JSON you generate.

    Is this validator the same as Google's Rich Results Test?

    No. This is an in-browser linter. It checks that the output is valid JSON, includes @context and @type, and warns when recommended properties are missing. It does not call Google's API, does not confirm eligibility for a rich result, and does not inspect the live HTML. Always run Google's test on a public URL before you claim a rich result.