Skip to content
SEO Madmanby Adam Hafez
Free tool

Structured data generator for search and AI

Build valid JSON-LD for Article, NewsArticle, FAQPage, VideoObject, Organization and BreadcrumbList, with every required property checked.

Runs entirely in your browser. Nothing you enter is uploaded, logged or stored.

    Key takeaways

    • Structured data states what a page is in explicit terms instead of leaving it to be inferred from prose.
    • A missing required property does not degrade a rich result, it disqualifies the page from it entirely.
    • An author or publisher given as a plain string is a label; given as an entity with a URL it can be resolved and trusted.
    • Markup describes the page, so anything asserted here that the page does not actually show is a spam signal rather than an optimisation.

    What it takes

    • The page URL, headline and description
    • Dates in ISO 8601
    • Author and publisher names

    More tools

    All of them free, all of them browser-only.

    Browse the tools

    How to use it

    1. 1Pick the type that matches the pageOne page, one primary type. A news story is a NewsArticle; do not also declare it an Article and a BlogPosting.
    2. 2Fill the properties marked with an asteriskThose are the ones Google treats as required for the type. The checks below the form tell you what is still missing.
    3. 3Read the warnings, not just the outputA relative URL or a date in the wrong format produces valid JSON that fails validation later. Both are flagged as you type.
    4. 4Paste it into the page headWrap it in a script tag with type="application/ld+json", then confirm with Google's Rich Results Test on the live URL.

    What each type is actually for

    Article and NewsArticle describe editorial content. NewsArticle is the one that matters for Google News surfaces; use it only for genuine news reporting, since applying it to evergreen content misrepresents the page.

    FAQPage describes a page that genuinely is a set of questions and answers. Google narrowed the FAQ rich result to a small set of site types, but the markup still gives answer engines a clean question-to-answer mapping, which is why it stays worth adding on pages that really are Q and A led.

    VideoObject is the one most sites skip and should not. It is what makes a video eligible for video results, and the transcript property is what makes the content of the video readable at all.

    Organization and BreadcrumbList are site-level plumbing. The first resolves who publishes the site as an entity rather than a name; the second gives search a reliable path structure that does not depend on parsing your navigation.

    The two mistakes worth avoiding

    The first is a string where an entity belongs. "author": "Adam Hafez" is a label that cannot be connected to anything. An author object with a url pointing at a real profile page can be resolved, cross-referenced and trusted, and that difference is the whole point of the exercise.

    The second is markup that describes a page you did not build. Claiming a rating, a price or an FAQ that a visitor cannot see is a policy violation, and the penalty is losing rich results across the site rather than on the one page.

    Sources

    1. 1.Intro to how structured data markup works - Google Search CentralPrimary
    2. 2.Schema.org vocabulary - Schema.orgPrimary

    Frequently asked questions

    Does structured data improve rankings?

    Not directly. It makes a page eligible for rich results and gives search and answer engines an unambiguous reading of what the page is. Both affect how often the page is shown and clicked, which is a different mechanism from ranking.

    Should I use JSON-LD, Microdata or RDFa?

    JSON-LD. Google recommends it, it lives in one block rather than being threaded through the markup, and it survives template changes that would break attribute-based formats.

    What happens if I mark up something the page does not show?

    It is a structured data policy violation and can cost the site its rich result eligibility. The markup has to describe the visible page, not the page you wish you had.