Skip to main content

WebSite Schema Missing

Issue No: 58

Category: Structured Data & Rich Results

Issue type: Issue

Priority: CRITICAL

Description

The homepage is missing WebSite schema markup, which is required to establish the site as a named entity and to enable the Sitelinks Search Box in Google SERPs.

How do we capture it

  • Fetch homepage HTML and extract all <script type="application/ld+json"> blocks
  • Check if any block contains "@type": "WebSite"
  • If absent → trigger issue; if present → validate name and url fields

What to store

StructuredDataAudit record with schemaType = WebSite, issueNumber = 58, plus StructuredDataField rows:

FieldTypeComment
has_namebooleanname property present
has_urlbooleanurl property present
has_descriptionbooleandescription property present
has_idboolean@id declared as the canonical site URL

Core audit fields used: isPresent, hasName, hasUrl, hasContext, hasType, isServerSide, rawJson

Condition for trigger

The following rules trigger this issue:

  • Trigger Rule 1: Schema absent

    • Target Field: isPresent
    • Evaluation Logic: isPresent = false
    • Severity: CRITICAL
    • Diagnostic Message: "No WebSite schema block found on homepage."
  • Trigger Rule 2: Name missing

    • Target Field: has_name
    • Evaluation Logic: has_name = false
    • Severity: CRITICAL
    • Diagnostic Message: "WebSite schema present but name property is missing."
  • Trigger Rule 3: URL missing

    • Target Field: has_url
    • Evaluation Logic: has_url = false
    • Severity: IMPORTANT
    • Diagnostic Message: "WebSite schema present but url property is missing."

Sources

Long description

WebSite is placed on the homepage and declares the site as a named entity. It is the anchor schema that other page-level schemas reference via isPartOf, allowing Google to associate all content on the domain with one known brand or publisher.

Without WebSite schema, Google has no machine-readable declaration of the site's identity, which weakens entity recognition in the Knowledge Graph and AI-powered search features.

Minimal example:

{
"@context": "https://schema.org",
"@type": "WebSite",
"@id": "https://www.example.com/#website",
"name": "Example Corp",
"url": "https://www.example.com",
"description": "Official website of Example Corp."
}

The @id value (#website) is important — it allows Article, BreadcrumbList, and other schemas to reference the site entity cleanly using "isPartOf": { "@id": "https://www.example.com/#website" }.

How to Fix

  1. Add a WebSite JSON-LD block to the homepage <head>
  2. Include name, url, and @id at minimum
  3. Add description for additional entity context
  4. Use @id as a consistent anchor (e.g. https://www.example.com/#website) so other schemas can reference it via isPartOf
  5. Validate at Rich Results Test