Start a project

Tool 11 of 194 · Structured data

Schema.org Entity Graph

Paste a page or its JSON-LD and see the entities it describes and how they connect, with every broken reference and duplicate entity pointed out.

Schema.org Entity Graph at a glanceIllustration: 1, JSON-LD blocks; 2, processed in your browser; 3, One entity graph.Schema.org Entity Graph{ }1JSON-LD blocks3One entity graph2In yourbrowser
1 JSON-LD blocks 2 processed on your device 3 One entity graph

Schema.org Entity Graph

Structured data

Fetch sends this address to leej.uk, which reads the page once as LeejTools/1.0 and keeps only a count. Or paste below: pasted text never leaves your device.

Every application/ld+json block is read. Entities with the same @id are merged, the way Google merges them.

Entity graph

  • entity with an @id
  • nested entity (no @id)
  • referenced but never defined
    TypeName@idLinks outLinks in
    Merged @graph (one entity per @id)

    01

    What it does

    Flattens every JSON-LD block into entities and links, merges by @id, and finds dangling references, islands, duplicates and untyped nesting.

    • Every JSON-LD block on the page, @graph included
    • Entities merged by @id, the way Google merges them
    • Dangling @id references and entities cut off from the rest
    • Likely duplicates: same name or URL under different ids

    02

    Private by design

    Everything you paste or upload stays in your browser. Only when you press Fetch does leej.uk read the address you give, once, as LeejTools/1.0, keeping nothing but a daily count.

    03

    What you get

    An entity graph and a merged @graph, with a Copy and a Download button on every result.

    • Schema.org
    • JSON-LD
    • Entities
    • Knowledge graph

    Why it matters

    Structured data is meant to describe a graph: this article, written by this person, published by this organisation, on this website. Most sites end up with disconnected pieces instead, from a theme, an SEO plugin and a hand-written block, each with its own idea of the organisation and references to @ids that are never defined.

    A validator checks each item on its own. This tool shows the whole picture. It resolves every @id, merges entities that share one, draws the result, and points out what breaks the chain: references to nothing, entities that duplicate each other, islands nothing links to. The merged @graph at the end is the same data with one entity per @id, ready to tidy and paste back.

    How it works

    1. InputJSON-LD from one or more pages
    2. In your browserEntities joined by @id
    3. OutputA graph, islands, duplicates and a merged block

    Where it fits in a designer's workflow

    1. Plan
    2. Design
    3. Build
    4. Test
    5. Launch
    Making structured data describe one business, not several.

    By the numbers

    Entities in the sample JSON-LD, by typeWebSite: 1; Organization: 1; ImageObject: 1; WebPage: 1; Article: 1; Person: 1; LocalBusiness: 1; (none): 1; FAQPage: 1; Question: 1; Answer: 1WebSite1Organization1ImageObject1WebPage1Article1Person1LocalBusiness1(none)1FAQPage1Question1Answer1
    Read from this tool's graph of its sample: 3 blocks, 11 entities, 10 links, 7 of them without an @id. Giving each entity an @id lets the blocks join into one graph instead of several islands. Source: W3C JSON-LD 1.1; Google: structured data guidelines.
    Show the numbers as a table
    TypeName@id
    WebSiteHartley Oakhttps://www.example.co.uk/#website
    OrganizationHartley Oak Ltdhttps://www.example.co.uk/#org
    ImageObject(blank node)
    WebPageCaring for oak furniturehttps://www.example.co.uk/guides/oak-care/#webpage
    Articlehttps://www.example.co.uk/guides/oak-care/#article
    PersonSam Hartley(blank node)
    LocalBusinessHartley Oak Ltd(blank node)
    (none)(blank node)
    FAQPage(blank node)
    QuestionHow often should I oil oak?(blank node)
    Answer(blank node)

    How to use it

    1. Paste a page's HTML or its JSON-LD, or fetch a live page.
    2. Look at the graph: one connected cluster is the goal.
    3. Fix errors first (dangling references), then duplicates and islands.
    4. Copy the merged @graph as a starting point for one clean block.

    FAQ

    What is an @id?

    A name for an entity, usually your URL plus a fragment like #organization. Anywhere else on the page you can write {"@id": "...#organization"} instead of repeating the whole object.

    Why do duplicates matter?

    Two Organization entities with the same name but different ids look like two different organisations. Give them one @id so the facts about them add up.

    Does it check rich result eligibility?

    No, that's the Structured Data Validator's job. This one checks how the pieces connect.

    Is anything sent to leej.uk?

    Only if you press Fetch: the address, which leej.uk reads once as LeejTools/1.0. Pasted data stays on your device.

    Work with me

    Want a site that gets these right?

    I build fast, accessible websites and web apps that pass these checks from day one. Tell me about your project and I'll reply personally with honest next steps.

    All developer tools · Back to leej.uk