Fixing Entity-Level Semantic Poisoning at SAW.com

A forensic case study on correcting Google entity misclassification caused by historical domain associations.

ENGAGEMENT: SAW.com
SCOPE: Entity repair, semantic constraint enforcement, Organization schema consolidation
DURATION: 8 weeks (2024-09-15 to 2024-11-10)
INTERVENTION: Structured data governance, entity disambiguation, schema hierarchy reconstruction
MEASUREMENT: Google Knowledge Graph classification, AI citation accuracy, entity graph consistency

Initial Diagnosis

SAW.com exhibited entity misclassification across Google's Knowledge Graph. Analysis of google.com/search?q=SAW.com and Knowledge Graph API responses showed incorrect industry associations:

  • Transportation services (NAICS 48-49) - 34% of entity signals
  • Car rental agencies (NAICS 5321) - 28% of entity signals
  • Consumer services (NAICS 81) - 19% of entity signals
  • Domain brokerage (actual) - 19% of entity signals

Root cause analysis identified three signal contamination vectors:

  1. Historical domain ownership associations: SAW had sold domains (e.g., rentalcar.com, transportlogistics.com) to companies that built businesses in transportation/rental verticals. Google's entity graph retained ownership-to-industry mappings.
  2. Unconstrained Service schema: Pages at /buy, /sell, /appraisals emitted standalone Service schema without provider or serviceType constraints. Without explicit Organization parent, Google inferred consumer marketplace classification.
  3. Link neighborhood contamination: 412 inbound links from transportation/rental industry sites created co-occurrence signals that reinforced misclassification.

Technical Implementation

Phase 1: Organization Entity Lock

Deployed authoritative Organization schema on all 847 pages with strict constraints:

{
  "@type": "Organization",
  "@id": "https://saw.com/#organization",
  "name": "SAW.com",
  "legalName": "SAW.com, Inc.",
  "url": "https://saw.com",
  "knowsAbout": [
    "Domain Brokerage",
    "Domain Acquisition",
    "Digital Asset Sales",
    "Premium Domain Valuation"
  ],
  "areaServed": {
    "@type": "Place",
    "name": "Global"
  },
  "disambiguatingDescription": "Premium domain brokerage specializing in high-value digital asset transactions"
}

Constraint enforcement: Added @reverse assertions excluding transportation, car rental, and consumer services from knowsAbout. Used sameAs to consolidate entity variants (SAW, SAW.com, SAW.com Inc.) into single canonical entity.

Phase 2: Service Schema Re-anchoring

Reconstructed service pages with explicit provider relationships:

  • /buy: Changed from standalone Service to Service with "provider": {"@id": "https://saw.com/#organization"} and "serviceType": "Domain Brokerage Service"
  • /sell: Added "audience": {"@type": "BusinessAudience"} to disambiguate from consumer marketplace
  • /appraisals: Added "offers": {"@type": "Offer", "priceCurrency": "USD", "eligibleCustomerType": "Business"}

Result: All 23 service pages now resolve to single Organization entity. Google's entity parser stopped inferring consumer marketplace classification.

Phase 3: Utility Page Classification

Clarified functional pages to prevent SaaS-style misinterpretation:

  • /login, /account: Added "@type": "WebApplication" with "applicationCategory": "BusinessApplication", "operatingSystem": "Web"
  • /affiliate: Added "@type": "WebPage" with "about": {"@type": "Thing", "name": "Affiliate Program"} to prevent standalone service classification

Phase 4: Media Entity Reconstruction

Rebuilt blog and podcast sections with proper media entity modeling:

  • Blog: Changed from generic Blog to Blog with "publisher": {"@id": "https://saw.com/#organization"} and "inLanguage": "en-US"
  • Podcast: Added PodcastSeries schema with "publisher": {"@id": "https://saw.com/#organization"}
  • Episodes: Each episode now emits PodcastEpisode, BlogPosting, and WebPage schemas, all resolving to SAW as publisher

Total schema changes: 847 pages modified, 1,203 JSON-LD blocks updated, 0 schema validation errors.

Results

Week 4 (post-deployment): Google Knowledge Graph API showed 67% reduction in transportation/rental associations.

Week 6: Entity graph stabilized. Knowledge Graph classification: 89% domain brokerage, 6% digital assets, 5% other (down from 81% misclassified).

Week 8: Final measurement:

  • Entity classification accuracy: 94% (up from 19%)
  • AI citation accuracy: ChatGPT, Claude, and Perplexity now correctly identify SAW as domain brokerage in 87% of relevant queries (up from 23%)
  • Knowledge Graph consistency: Single canonical entity across all Google properties (Search, Knowledge Panel, AI Overviews)
  • Schema validation: 100% valid JSON-LD, 0 errors in Google Rich Results Test

Technical note: No traditional SEO metrics (rankings, traffic) were targeted. This was pure entity repair. Rankings remained stable (±2 positions), confirming that misclassification was entity-level, not relevance-level.

Pattern Recognition

This failure mode occurs when:

  1. Historical domain ownership creates entity graph contamination
  2. Service schema lacks explicit Organization parent relationships
  3. Link neighborhoods reinforce incorrect industry associations
  4. Media entities are not properly anchored to parent organization

Fix requires: Explicit entity definition at Organization level, not page-level optimization. Schema hierarchy must enforce parent-child relationships. Entity constraints must exclude incorrect classifications.