Home » Blog » SEO 2.0: Topical Graphs, Programmatic SEO, and Internal Linking
Blog

SEO 2.0: Topical Graphs, Programmatic SEO, and Internal Linking

Serhii Nikolaienko Serhii Nikolaienko 5 min read

SEO is growing up: from keywords and “one page per phrase” to entity graphs, programmatic landing generation, and deliberate internal linking.
This practical map shows how to think in clusters, assemble a topical graph, when and how to use programmatic SEO, how to avoid cannibalization,
which technical templates to set up for WordPress/WooCommerce, and how to enforce an AI content quality gate before indexing.


1. From “keywords” to an entity graph

In SEO 2.0 we work with entities rather than “phrases”: product, brand, technology, job-to-be-done, location, symptom, comparison, alternative.
Entities connect via relations: “type”, “part-of”, “located-in”, “used-with”, “better-than”, “compatible-with”, “contraindicated”.
This graph underpins content clusters: a “hub” (pillar), “spokes” (supporting pages), “bridges” (comparisons) and “navigators” (categories/taxonomies).

Entity Graph (simplified)
[Coffee category] ─has_type→ [Espresso machine]
        │                          │
        ├─related_to→ [Grind]      ├─compatible_with→ [Capsules]
        │                          └─vs→ [Pump machine]
        └─located_in→ [London]     └─how_to→ [Pressure tuning]
A cluster = a hub + supporting nodes + comparison bridges.

1.1. Extracting entities and relations

Signal sources: on-site search, calls/chat (real FAQs), category maps, product attributes, service logic, CRM export,
Search Console (group queries by intent). Practically, start with a table:

Entity Type Relation Target Intent
Espresso machine ProductType vs Pump machine Comparative
Capsules N Accessory compatible_with Espresso machine Commercial
London Location located_in Service center Local
Pressure tuning HowTo how_to Espresso machine Informational

2. Programmatic SEO: landings for stable demand

Programmatic SEO generates many pages from a single template and structured data (products×cities, service×problem, model×compatibility).
Strength: long-tail coverage. Weakness: risk of “thin content.”

2.1. When it’s justified

When query patterns repeat (stable intent), you have real data (prices, stock, media, facts, FAQs), and each page delivers unique value:
local specifics, different selections, distinct offers. If value isn’t unique, prefer pagination/filters without indexing.

2.2. Data architecture

  • Reference sets: entities (products, brands, cities, compatibility, problems, case types).
  • Facts: price, availability, lead times, GTIN/MPN, warranties, local conditions.
  • Templates: variable titles/leads, benefit blocks, comparison tables, reviews, FAQ.
Sample title/lead (pseudo)
<h1>{product} in {city}: pricing, stock, same-day delivery</h1>
<p class="lead">{brand} {model} — {key_benefit}. {stock_badge}. Delivery across {city_area}.</p>

2.3. Anti-thin: what to include

Minimum for each page:

  • A unique intro paragraph + local facts (address/zones/ETAs).
  • Live shelf (stock, price, variants) + structured data (JSON-LD).
  • Entity-based comparisons/alternatives (not “10 more products”).
  • FAQ sourced from support/search.
  • “Compatibility”/“often bought together” built from the graph.

3. Anti-cannibalization: keeping pages from fighting

Cannibalization happens when multiple pages target the same intent. You dilute visibility, confuse ranking signals, and worsen behavior metrics.

3.1. Diagnosis

Aggregate queries by cluster and count how many different URLs get impressions/clicks for one intent. If >2–3, red flag.
Compare title/H1/anchors, page roles (category/landing/article/product), and behavioral metrics.

3.2. Fixes

  • Hierarchy: pick a canonical “hub,” narrow the others’ intent (“for X”, “in Y”, “how to Z”).
  • Internal links: spokes → hub (first paragraph); hub → spokes with exact-match anchors.
  • Consolidation: merge duplicates, 301/canonicals, migrate unique blocks into the main page.
  • Robots: don’t index filters/sorts that mimic the parent intent.

Seo 2 0

4. Internal linking: a cluster’s energy

Internal links aren’t “random related.” They’re a routing grammar between entities. Keep a written
link policy.

Policy: every supporting page links to the hub (first paragraph), to 2 sibling support pages by adjacent intent, and to 1 comparison bridge.
The hub links to all supporting pages (TOC table) and to 2–3 comparison bridges. Anchors = intent phrasing, not “read more.”

Pseudocode for ranking internal links
score(link) = w1*entity_overlap + w2*intent_match + w3*traffic_potential + w4*recency
place_top(score, k=3) in body; demote others to “related” widgets

5. Technical templates for WordPress/WooCommerce

Goal: make the entity graph native to your CMS, not a duct-taped overlay.

5.1. Data structure

  • CPT “Entity”: type (taxonomy term), relations (ACF: relationship), description, linked products/articles.
  • CPT “Landing”: parameters (city/model/task), linked entities, rendering template.
  • Taxonomies: entity_type (Product/HowTo/Comparison/Location), brand, compatibility.
JSON-LD example (Article + BreadcrumbList)
<script type="application/ld+json">{
 "@context": "https://schema.org",
 "@type": "Article",
 "headline": "Espresso machine: comparison vs pump",
 "mainEntityOfPage": {"@type": "WebPage","@id":"https://site.com/coffee/espresso-vs-pump"},
 "author": {"@type":"Organization","name":"Brand"},
 "datePublished":"2025-09-01",
 "articleSection":["Comparison","Coffee"],
 "about":[{"@type":"Thing","name":"Espresso machine"},{"@type":"Thing","name":"Pump machine"}]
}</script>

5.2. Canonical, pagination, filters

  • Categories/search — rel="canonical" to the main category; sort/view params — noindex,follow.
  • Pagination — link rel="prev/next" and a self-canonical on each paginated page (not to page 1).
  • Facets — index only “whitelisted” combinations; canonical the rest to the parent.

5.3. WooCommerce: product as an entity

  • Attributes → entities (material, compatibility, brand) with dedicated “node” pages.
  • Product/Offer schema: price, currency, availability, SKU, GTIN/MPN, rating, reviewCount.
  • Comparison pages — dedicated template with spec tables and links to entity nodes.

Seo 2 0 2

6. AI content quality gate before indexing

AI speeds release but raises thinness/error risk. A Quality Gate mixes automated and manual checks; without it, a page never enters the sitemap.

6.1. Automated checks

  • Factuality: verify numbers/dates/names against sources (RAG logic, NLI entailment).
  • Uniqueness: find duplicates/paraphrases on-site and against top-10 SERP by key claims.
  • Markup: JSON-LD validity, alts, H1≠title, unique H1, title/meta lengths within bounds.
  • Readability: locale-appropriate score; ban “fluff” > X%.
  • Toxicity/safety: term filters, legal disclaimers for risky topics.
  • Internal links: hub link present; ≥2 sibling links; no broken links.
  • Web perf: template LCP/INP/CLS meet targets.

6.2. Manual verification

Editor checks tone (brand/audience), argument cohesion, logic holes. Legal reviews the “forbidden” list.
Tech lead spot-checks microdata on samples.

Publish checklist (excerpt)
- [ ] Hub/spokes wired (2→hub, hub→N)
- [ ] Canonical/facets/pagination
- [ ] JSON-LD valid (Article/Product/BreadcrumbList)
- [ ] Unique title/H1/OG
- [ ] FAQ from real questions
- [ ] Internal links free of 404/redirect loops

7. Indexing, sitemaps, monitoring

  • Dynamic sitemaps: by type (articles, landings, products); submit only after the Quality Gate.
  • Ping: update sitemaps on status/stock/price changes.
  • Monitoring: “cluster visibility” (clicks/impressions/avg position for hub and spokes), share of no-impression pages, share indexed.

8. Evolving the cluster: iterations and signals

A cluster is alive. Every N weeks: revisit entities (new themes?), refresh facts/prices/ETAs, fold “thin” pages into consolidated guides,
strengthen internal links to the cluster’s “stars.” In parallel: test titles, FAQs, and comparison blocks.


Conclusion

SEO 2.0 is the shift from keyword lists to a semantic map of your domain. The topical graph sets structure,
programmatic SEO scales coverage, internal links distribute “energy,” and the Quality Gate keeps quality.
This approach withstands search updates and assortment growth: you’re not “adding pages,” you’re building a knowledge system — and plugging content into it carefully.

Share

Need to improve your SEO?

We audit your site and implement a measurable SEO strategy.

See our SEO service →
Any questions?

Let's discuss
your project.

Free first consultation, no strings attached.