What do you need?

    JSON-LD Generator

    Create structured data markup for your website.

    Your file stays on this device.

    Fill in what applies. Blank optional fields stay out of the markup.

    Product details

    Advanced: offer details

        Recommendations can improve eligibility, but do not guarantee rich results or rankings.

        Ready to paste

        What the JSON-LD Generator does

        The JSON-LD Generator turns a short form into valid Schema.org JSON-LD. Pick a type, fill in what you know, and the markup is rebuilt as you type, with empty fields left out rather than published as blanks.

        Alongside the preview it lists what is missing: errors for fields Schema.org requires and for URLs that are not complete http or https addresses, and separate recommendations for the fields Google commonly wants before it will show a richer result. Copy the JSON on its own or the whole script block.

        When to add structured data

        Add it when a page describes something specific that search engines can present in more detail: a product with a price, an article with an author, a business with an address and opening hours, an event with a date.

        Structured data describes a page; it does not improve it. It can make a page eligible for rich results, and that is all it does. Nothing here guarantees a ranking change, and marking up content the page does not actually show works against you.

        What the six types are for

        Product
        A single item for sale. The name is required; a description, image, brand, and offer price are what turn it into a useful result.
        Organization
        The company or project behind the site, usually on a home or about page. Add the website URL, a logo, and a social profile so the entity is easy to match.
        Article
        A post or news story. The headline is required, and a publication date, author, publisher, and image are recommended.
        Local business
        A place with a street address. Opening hours and a telephone number are what make it worth publishing.
        Event
        Something happening at a time and place. The name, start date, and location name are all required.
        Breadcrumb list
        The trail that leads to the page, up to three levels. Every item needs both a name and a URL, and at least two items are required.

        Nothing you type here goes anywhere

        The form runs entirely in this browser. What you type is used to build the markup on screen and nothing else: it is not sent anywhere, not saved between visits, and not validated against a remote service.

        That means you can draft markup for an unreleased product or an unannounced event here without publishing anything early.

        Common questions about JSON-LD Generator

        Where do I put the generated markup?

        Copy the script block and paste it into the HTML of the page it describes, in the head or the body. One block per page, describing what that page shows.

        Will structured data improve my search ranking?

        It can make a page eligible for rich results, such as a product price or an event date shown in the listing. It is not a ranking factor you can rely on, and no markup guarantees a change in position.

        What is the difference between an error and a recommendation?

        An error means the markup is incomplete or invalid: a field Schema.org requires for that type is missing, or a URL is not a complete http or https address. A recommendation is a field Google commonly asks for before showing a richer result, and the markup is still valid without it.

        Does it check my markup against Google’s requirements?

        It checks the required Schema.org fields for the type you chose and the shape of every URL, and it points out the fields Google documents as recommended. It cannot fetch your page, so run the finished markup through Google’s Rich Results Test before relying on it.

        Can I edit the JSON afterwards?

        Yes. The output is ordinary JSON-LD, so you can add properties the form does not cover. Paste it into the JSON Formatter to check it still parses after editing.