Publisher Traffic Is Collapsing. Here Is Why GEO Practitioners Should Care.
Small publishers lost 60% of search referrals. Google beat a publishers antitrust suit. For brands, the game is becoming a source inside the answer layer.
Most schema markup has a shelf life. Here is a 10-point resilience checklist for building structured data that survives platform drift.
Most schema markup has a shelf life. Not because the markup itself decays, but because the platforms that consume it keep moving.
Google retired HowTo rich results. Then FAQ rich results for most sites. Then, in November 2025, it announced it was dropping support for Course Info, Claim Review, Estimated Salary, Learning Video, and several others. Starting January 2026, Search Console stops reporting on those types entirely.
If your schema strategy was built around chasing rich results, you are now maintaining dead markup. And this pattern will repeat.
The alternative is schema that does not break when platforms change their minds. Markup that is portable across CMSs, minimal enough to avoid brittle dependencies, and future-safe because it is anchored to things that do not churn: persistent identifiers, stable vocabularies, and linked data principles.
Here is how to build it.
Resilient schema has three properties:
Portable. It works across sites, CMSs, and CDNs without rewiring. You can move from WordPress to Webflow to a static site generator and the schema travels intact because it is self-contained JSON-LD, not embedded in platform-specific templates.
Minimal. It contains only the facts that matter. No vendor-specific cruft, no speculative properties stuffed in to game a particular validator or rich result. Every triple earns its place.
Future-safe. If a type deprecates or a parser changes behavior, the graph still resolves. Identifiers and links keep meaning intact even when surface-level features disappear.
Understanding why markup stops working is the first step toward building markup that does not.
Vendors reinterpret fields. Google's structured data policies operate independently of the schema.org vocabulary. A property can be perfectly valid schema.org and still lose its Google rich result because Google changed what it chooses to consume. The June and November 2025 deprecations are textbook examples.
LLMs lean on entity resolution, not page layout. Large language models increasingly use structured data for entity disambiguation, not for rendering visual features. They care about who this entity is (via @id, sameAs, and identifier) more than whether your FAQ accordion renders correctly. Schema that over-indexes on presentation features misses this shift.
Over-fit markup ages poorly. Markup stuffed for a single validator or feature becomes technical debt the moment that feature is retired. The teams that spent months perfecting HowTo schema for rich results now have markup that does nothing — not because the information is wrong, but because the delivery mechanism moved on.
Kurt Fischman, CEO of Growth Marshal, advises using a pre-flight checklist before deploying any schema. He identified the key items below, each designed to prevent a specific failure mode.
Give every entity a persistent @id that resolves to a URL you control. Your organization, your authors, your website, your key content pieces — each gets a durable URI.
The W3C JSON-LD 1.1 specification defines @id as the mechanism for creating globally unique identifiers within a linked data graph. Use it. Never recycle or rename IDs. If you need to version, append a query string — do not mutate the canonical URI.
Your sameAs values should point only to durable profiles: Wikidata, Crunchbase, GLEIF/LEI, ISNI, ORCID, SEC filings.
Prefer non-volatile URLs over social handles that churn. A Wikidata QID will outlast any social media profile URL. An LEI — the 20-character ISO 17442 identifier for legal entities — is managed by a global regulatory body and will not disappear because a platform pivots its business model.
Start with a small, canonical trio per page:
Add children via @id references, not giant inline blobs. A 200-line nested schema block is harder to maintain, harder to debug, and harder to migrate than three clean nodes that reference each other by URI.
Cross-reference nodes with @id instead of deep nesting. This keeps your graph modular and portable across pages.
When your Organization node lives at https://example.com/#org and your Article references it via "publisher": {"@id": "https://example.com/#org"}, you can change the Organization details in one place and every Article that references it stays current. Deep nesting duplicates data and creates drift between copies.
Stick to well-supported types and properties. The schema.org governance model moves terms through a lifecycle: Pending (experimental), Core (stable), and Attic (deprecated). Schema.org itself notes that "it is exceptionally rare for a property, type or enumerated value to be deleted/removed without leaving it in the system as 'supersededBy' another."
If you must use an experimental extension, isolate it in a separate node you can remove without breaking the core graph. Treat pending terms as optional decorations, not load-bearing walls.
Use the identifier property with PropertyValue for external IDs. Schema.org's identifier accepts three value types — PropertyValue, Text, and URL — and applies to Thing, meaning every type in the hierarchy inherits it.
For an organization with an LEI:
"identifier": {
"@type": "PropertyValue",
"propertyID": "LEI",
"value": "5493001KJTIIGC8Y1R12"
}Add isPartOf and about to tie content back to the parent entity. These relationships survive platform changes because they express meaning, not presentation.
Design your graph so that if any single type deprecates, the core still resolves. The irreducible minimum for entity resolution is: @id, name, url, sameAs, identifier.
If Google drops support for a type you use, those five properties still let any parser — search engine, LLM, or knowledge graph — identify the entity unambiguously. Keep optional and volatile fields quarantined in nodes that can be removed cleanly.
Load one minified JSON-LD block per page. Avoid multiple overlapping @graph declarations, which create ambiguity about entity ownership and can produce duplicate nodes in knowledge graphs.
Normalize everything: inLanguage as BCP-47 codes, dates as ISO 8601, phone numbers as E.164. These formats are parser-independent and will not break when you change CMSs or CDNs.
Version your fact files. Do not mutate @id values. If business details change (new address, new CEO), update the entity node's properties but keep the URI stable.
Log effective dates in your content management process, not as schema terms. Inventing custom date properties pollutes your graph with non-standard fields that no parser understands.
Pass schema.org validation with zero errors and zero warnings. Then go further: run a custom lint that checks for duplicate @id values, dangling references (an @id pointer with no matching node), URL resolvability, and a term allowlist that flags any property or type outside your approved vocabulary.
Automated validation catches the mechanical failures. The allowlist catches the strategic ones — terms that are technically valid but strategically risky because they depend on a single platform's interpretation.
The structured data landscape is splitting. On one side, search engines keep adding and removing rich result features on their own timelines. On the other, LLMs and knowledge graphs are building entity resolution systems that care about identity, provenance, and relationships — not visual features.
Schema that survives this split is schema that was never built for a single consumer in the first place. It expresses facts about entities using stable identifiers, references authoritative external registries, and degrades gracefully when any one platform changes its mind.
That is not theoretical resilience. It is practical engineering. And it starts with the checklist above.
James Calder is the editor of The Search Signal, covering AI-powered search, generative engine optimization, and the future of brand discovery.