What problem Distil solves
A large content estate is rarely as organised as it looks. Pages exist in clusters, blog posts accumulate around themes, guides sit alongside service pages — but the relationships between them are implicit at best. A reader who lands on one page has no structured way to understand how it connects to the ten other pages that would complete their thinking. An author creating new content has no systematic way to see which conceptual areas are thin, which connections are broken, and which pages are structurally isolated from everything else.
Distil addresses this by making connections explicit and editorial. For every relationship between two pages, Distil stores a bridge sentence — a 30-word statement of why concept A leads to concept B. Not a subject line. Not a related-pages widget. A reason. Once stored, that sentence renders automatically below page content in the Bridge Panel, powers a reading sequence system (the Route Picker), and feeds a visual map of the entire content network (the Atlas). A scoring and integrity engine monitors the health of every connection across the estate.
The Bridge Panel
Every page with Distil data shows a Bridge Panel below its content — a structured block listing the pages this content connects to, each with the bridge sentence explaining why. The Bridge Panel also renders optional sequential navigation: a Before and After link that shows where this page sits in a logical reading sequence. If a page already has cluster or stage data from the SEO Strategy scaffold system (_ss_cluster, _ss_stage, _ss_audience), Distil reads those as fallbacks automatically — no re-entry required on existing pages. The Bridge Panel is CSS-variable aware: on the SEO Strategy theme, it inherits --ss-* brand variables. On any other theme, it falls back to neutral defaults and respects dark mode via prefers-color-scheme.
What separates the Bridge Panel from a related-posts block is the bridge sentence itself. Related posts show you where to go. The Bridge Panel tells you why going there matters — what mechanism or consequence connects the two ideas. A reader landing on a page about CITATE and seeing a bridge sentence that reads ‘Fan-out retrieval operates at passage level — CITATE is the structural standard that makes each passage independently extractable’ understands something about the connection that a link title alone cannot convey. The reasoning is the product.
The Route Picker
The
shortcode places a three-step wizard on any page. A reader answers three questions — their role, where they are in their journey, and what they need most — and Distil matches their answers deterministically to a reading route: a named, ordered sequence of stops through your content estate. Each route has a tagline, a per-stop reading time estimate, and an ordered stop list that uses live post titles rather than slug-derived approximations.Find your reading route
Routes ship with seven defaults (Foundation, Mechanism Deep Dive, Entity Builder, CITATE Pathway, AI Audit Sprint, Citation Engine, Optimisation Loop) and are fully editable in Settings → WF Routes — a drag-to-reorder admin UI with per-route controls for name, tagline, match criteria (stage and goal), and stop slugs. You can add entirely new routes or reset to defaults. The picker is entirely client-side: route definitions are JSON-encoded into the shortcode output. No AJAX, no external calls, no third-party dependencies.
Try the Route Picker
Find your reading route through this site
The Atlas at /map/
Visit /map/ to see the full content estate as a visual metro map. Each cluster is a vertical track. Each page is a station on its cluster track, positioned by stage (awareness → mechanism → application → action from top to bottom). Every connects_to relationship renders as a cubic bezier curve between stations — same-cluster connections as solid lines, cross-cluster connections as dashed curves. Pages with CITATE scores show a coloured dot: green for C5–C6, amber for C3–C4, red for C1–C2.
The Atlas is interactive. Click a cluster in the sidebar to dim all other tracks and highlight just that line. Click any station to open a tooltip with the page title, stage, CITATE score, connection counts, and direct links to view and edit the page. The entire visual is server-rendered SVG — no JavaScript layout computation, no external charting library. The JS layer handles hover and click state only. Open the Atlas →
The meta box and editorial guidance
Every post and page gets a Distil meta box in the WordPress editor. Fields: cluster (slug-format, autocomplete from existing values), stage (awareness / mechanism / application / action), audience (checkboxes), connects-to repeater (slug + bridge sentence with live word counter and soft editorial warnings), before and after sequence slugs. The meta box shows a page score badge in the header — a 0–100 score based on connection count, cluster and stage assignment, CITATE score, and route membership — with a direct link to the Health dashboard.
The bridge sentence textarea has soft editorial guidance: warnings for sentences under 8 words, for filler phrases like ‘learn more’ or ‘see also’, and for sentences with no detectable verb. These are advisory only — no hard blocking, no numeric quality score that would reward gaming the validator over genuine editorial reasoning. The guidance exists to protect the moat: bridge sentences that explain mechanisms, not directions, are what make Distil worth using.
Data is stored in canonical shape: each connects-to entry stores both the target slug (for human readability) and a resolved post_id (for durability). If a page is renamed or moved, the connection resolves via stored post ID first, with slug as a fallback. The meta box shows three-state diagnostics per connection: green for fully resolved, amber for ‘resolved via slug — re-save to update stored ID’, red for ‘no matching published post found’.
Governance, scoring, and health
Distil includes three admin tools for maintaining the connection estate at scale.
Settings → WF Governance — a filterable WP_List_Table across all tracked pages, showing issues per page: broken connections, stale post IDs, missing bridge sentences, sentences over 30 words, broken before/after slugs, pages not in any route stop list. Filter to All / Has Issues / Clean. Bulk action to re-save meta and refresh all post IDs across selected pages in one pass.
Settings → WF Health — the scoring dashboard. System score cards per cluster (coverage percentage, orphan count, average connections, route membership rate). Route completeness table showing valid stops, missing stops, and a 0–100 score per route. Critical issues table (broken connections, broken sequences) with direct edit links. Weak issues table (orphan pages, pages not in any route). A manual scan trigger for immediate refresh without waiting for the daily cron.
Settings → WF Gap View — sub-query coverage analysis per cluster. Define expected sub-queries per cluster as a comma-separated list. Gap View cross-references them against your existing pages using word-overlap matching, flags any sub-query with no page targeting it, and shows the stage and CITATE score of covering pages. CSV export per cluster. The gap view answers: given what we know about how readers search within this topic area, which questions are we not answering?
How Distil fits the SEO Strategy stack
Distil sits at the connection layer of a content estate — the layer between individual pages and the cluster architecture that AI systems use to evaluate topical authority. It complements rather than replaces the other tools in the stack. CITATE defines the standard each page must meet to be independently citable at passage level. Distil defines the standard each connection must meet to be editorially meaningful. LLMs.txt Curator tells AI systems which pages exist and what they contain. Distil tells readers — and the editorial team — how those pages relate and why that relationship matters. The AI Discovery Stack identifies the layers AI systems use to find and evaluate content. Distil addresses the comprehension scaffolding layer: the structural argument that makes a content estate coherent rather than a collection of isolated documents.
Distil is available free to download and install. It is WP.org standards-compliant — prefixed, sanitised, nonce-protected, with a clean uninstall that removes all _distil meta and options. It requires WordPress 6.0+ and PHP 8.0+.