Structured dataAdvanced

@id and Entity Linking in JSON-LD

The @id keyword gives a JSON-LD entity a stable identifier so other markup can reference it, linking pages, authors and organizations into one graph.

Also called: @id, Node identifiers, Entity linking

In JSON-LD, @id assigns an identifier to a node, usually a URL with a fragment such as https://example.com/#organization. Any other node, on the same page or another page, can then refer to that entity by its @id instead of repeating all its properties. This is how sites build a connected graph where every article points to the same publisher, every author has one identity, and every page belongs to one website.

How references work

A node with an @id and full properties defines the entity. A node with only an @id is a reference to it. Parsers that support linked data merge nodes with the same @id. Using a fragment on a canonical URL keeps identifiers unique and stable.

{
  "@context": "https://schema.org",
  "@graph": [
    { "@type": "Organization", "@id": "https://www.harrowmint.example/#org",
      "name": "Harrowmint", "url": "https://www.harrowmint.example/" },
    { "@type": "WebSite", "@id": "https://www.harrowmint.example/#website",
      "url": "https://www.harrowmint.example/",
      "publisher": { "@id": "https://www.harrowmint.example/#org" } }
  ]
}

What search engines do with it

The @id keyword is part of the JSON-LD standard, and Google's documentation uses it in examples. Google has not published detail on how it resolves identifiers across pages, so treat cross-page linking as good hygiene that removes ambiguity rather than a lever with a known effect. Within a single page, @id references reliably connect items for validators and parsers.

Conventions that keep a graph clean

  • Pick one identifier per entity and never change it
  • Base identifiers on the canonical URL of the entity's home page, such as the about page for the organization
  • Use the same identifiers in every template
  • Keep full definitions where the entity lives and references elsewhere

Example

One author, many posts

A security SaaS, Ostrelle, has an author page for its head of research. The author template defines a Person with @id https://www.ostrelle.example/authors/dana-reyes/#person. Every BlogPosting by her uses that @id as the author value, so all posts point to one entity whose sameAs links list her conference talks and professional profiles.

Common mistakes

Using @id values that change

Identifiers built from database IDs or session values break links between nodes whenever content moves.

Confusing @id with url

The url property is the entity's web address for people. The @id is an identifier for machines. They can be similar but serve different jobs.

Questions

It does not have to, but basing it on a real, canonical URL with a fragment is the clearest convention and avoids collisions.

Know the terms. Now win the searches.

We find the searches your buyers make, then build, publish and improve the pages that win them.