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.