Nothing says these pages are one site
A WebSite entity is what carries your site name in search results and what every page should point back to with isPartOf.
What a WebSite node does
A WebSite node is the thing your pages belong to. It carries the name a search engine can show above a result instead of the domain, and it is the node that names the publisher of the site as a whole rather than of one article. (It also used to declare the sitelinks search box, which Google retired in November 2024.)
Declaring it is half the job. If no page references it with isPartOf, the node exists and nothing is attached to it, which is most of the way to not having one.
This is an informational finding rather than an error. A site without it is behind, not broken.
What squirrel checks
The rule runs once per crawl, reads the entity map rather than the pages, and emits a single check named entity-website-missing.
- Skipped with the message
No entity map was built for this auditand the reasonentity-map-unavailablewhen the run produced no map. This is not the same as a site with no structured data, and the rule refuses to conflate them: passing here would assert it had checked something it never looked at. - Reports at info with the message
This site declares no JSON-LD entities on any crawled pagewhen the map exists and is empty. - Reports at info with the message
This site declares no WebSite entitywhen there is none. - Reports at info with the message
The WebSite entity has no @id, so nothing can reference itwhen one exists without an identifier. - Passes with the message
A WebSite entity is declared with an @idwhen no page entities exist to link it. - Passes with the message
A WebSite entity is declared and all N page entities link to it. - Reports at info with the message
N of N page entities do not link to the WebSite with isPartOf, plus(+N more pages)when more matched than are listed.
Page entities are an explicit list of the WebPage and Article subtypes generators actually emit, not every subtype schema.org defines. A type outside that list means the rule says nothing about it rather than guessing.
A site whose markup describes only products or people, with no page-level nodes at all, still gets the first finding when it has no WebSite: the node is worth having regardless of what else is declared.
Findings are capped at 10 items, and the count in the message is always the true total rather than the capped length. Run squirrel entities -f json and read the entities key for the full list.
How to fix it
Declare the WebSite once, with an @id, and reference it from every page node:
{
"@context": "https://schema.org",
"@graph": [
{ "@type": "WebSite", "@id": "https://example.com/#website",
"url": "https://example.com/", "name": "Example",
"publisher": { "@id": "https://example.com/#organization" } },
{ "@type": "WebPage", "@id": "https://example.com/about#webpage",
"isPartOf": { "@id": "https://example.com/#website" } }
]
}Every major SEO plugin emits this shape by default. If yours does not, the @graph above is the whole fix. See fixing structured data identity.
| Rule ID | schema/entity-website-missing |
| Category | Structured Data |
| Scope | Site-wide |
| Severity | info |
| Weight | 2/10 |
Enable / disable
Disable this rule
[rules]
disable = ["schema/entity-website-missing"]Disable all Structured Data rules
[rules]
disable = ["schema/*"]Enable only this rule
[rules]
enable = ["schema/entity-website-missing"]enable replaces the default ["*"], so this is the only rule selected. Leave disable out: a rule that matches any disable pattern is skipped even when enable names it. Only an enabled setting under a rule’s own [rule_options] table overrides both lists.
Related rules
- schema/website-search: the sitelinks search box, declared on the WebSite node.
- schema/entity-organization-missing: the publisher the WebSite should name.
- schema/entity-dangling: an
isPartOfthat points at nothing declared. - schema/entity-identity: a WebSite declared on many pages with no
@id.
Entity findings are site-wide and ship in every audit, next to the per-page structured data rules. See Fix SEO issues with AI for how an agent works through a report.
References
Check your site
Run squirrel audit https://example.com, then squirrel entities to see the graph the finding came from. Signed-out local audits need no account and cost nothing. Signed-in audits spend credits.