A few recent engagements. Happy to walk through specifics on a call: the brand, the baseline, what we shipped, and what we'd do differently.
No organic presence on non-branded terms as Google rolled out AI answers. We had to own the category before Avalara, Thomson Reuters, or Sovos did.
A branded-heavy keyword portfolio and no Wikipedia presence left the brand absent from AI-generated answers entirely. The opportunity was AI surfaces, not just traditional SERP.
Step one of every engagement: map where the brand sits in LLM answer-space versus where buyers actually search. We ran 47 buyer prompts across four AI platforms and logged which brand each cited. The matrix below is the typical output: rows are intent clusters, columns are platforms, and the pattern is almost always the same split.
Owning the brand layer doesn't protect revenue. Buying decisions start at the problem layer, and that's usually where the gaps are. The three categories this audit always surfaces are shown below, with this engagement's data as the illustration.
Three clusters this audit always finds
An interactive 3D knowledge graph rendered in WebGL (Three.js or a canvas-based particle system). The brand node sits at the centre, pulsing with a slow ambient glow. Entity nodes orbit in concentric rings — P1 gaps orbit closest, burning a deep amber-red with a slight distortion shimmer (like heat haze) to signal urgency. P2 partials float in a mid ring, occasionally flickering as if data is uncertain. Owned entities sit in the outer ring, glowing steady green with a soft halo.
Connecting spokes are animated light-trails — green for owned, blue for third-party positive, red for third-party negative — the trails flow toward the brand node when ownership is strong, and away from it (reversed direction) when the citation goes to a competitor. The direction of light-flow tells the story instantly without any legend.
On hover, a node expands into a glassmorphism tooltip showing the split arc (owned / 3P pos / 3P neg) as a smooth animated donut, surfacing the specific LLM platforms with pill badges that each pulse at different rates to suggest live polling.
Passively: the whole graph slowly rotates on the Y axis, with a parallax tilt that follows the cursor. Gap nodes (absent ones) have a subtle void animation — a black hole-style gravitational lensing effect — suggesting something is missing from the universe. The gap callout banner ("4 P1 GAPS · CITED ELSEWHERE") appears as a red scan-line that sweeps across the visualisation every 8 seconds.
Most buyers in any considered-purchase category never search for a brand. They search for a problem, a use case, or a comparison. "Best for plantar fasciitis." "Most cushioned for long runs." "Marathon shoes under £200." These non-branded prompts are where buying decisions start, and they're the queries a brand is typically absent from in LLM answers.
210 non-branded prompts across four intent clusters, mapped against LLM responses. Each prompt is classified by buyer stage, search volume proxy, and current citation status. The pattern holds across every category we've audited: brands own the branded narrative, then lose the moment a buyer describes a need rather than a name.
This map determines what content gets built first. Every hub page, FAQ, and comparison piece is targeted at a specific cluster of unmet non-branded prompts.
A live prompt-stream waterfall rendered as a full-panel canvas. On the left, a continuous scroll of buyer queries drifts downward like a slow-motion terminal feed — each query typed out character by character with a blinking cursor, then fading out. On the right, a vertical heat map funnel shows three lanes: "Nike cited 1st", "Cited 2nd–3rd", "Absent". As each query animates in on the left, a glowing particle shoots horizontally and lands in the appropriate funnel lane, joining a growing cluster of particles.
The funnel lanes have different textures: the top lane glows with confident green phosphor. The middle lane is amber, flickering slightly. The absent lane is dark — particles land there and disappear, sucked into a void with a brief ripple. The 147-of-210 stat is shown as a real-time counter that increments as each particle drops into the absent zone.
The prompt chips are written in realistic buyer language with a monospaced typewriter font. Occasionally the animation pauses and zooms in on a specific prompt — "Best for plantar fasciitis" — highlighting it in yellow as if a researcher has just annotated it, before zooming back out. Secondary passive animation: the absent-zone lane slowly expands over time until it fills 70% of the vertical space, making the scale of the gap viscerally clear.
Crawl of all category and product URLs combined with PageSpeed Insights data, manual structured data review, and log file analysis. Sites at catalogue scale ship technical debt fast. We're looking for anything that limits crawl budget, suppresses indexation, or signals low quality to LLMs that index the web.
At high page volume, a single template issue affects tens of thousands of product pages simultaneously. Every fix is scoped by template type, not individual page, and estimated against actual engineering sprint capacity. The output isn't a score. It's a prioritised fix list.
The most impactful finding in this audit is almost always the same: missing structured data on product pages is the largest single LLM signal gap. Schema is what makes content machine-readable. Without it, LLMs can't reliably cite you even if the content is good.
A live site-health terminal that mimics a real crawl in progress. The panel opens with a blinking command line: scanning nike.com/running... 14,832 URLs. A progress bar floods across the top (passive loop animation). Below, issues appear one by one as if discovered in real time — each row types itself in with a brief highlight pulse on entry.
The bars are replaced with circular gauge rings arranged in a 2×2 grid, one per section (CWV, Crawl, Index, Schema). Each gauge ring animates from 0 to its actual value on scroll-into-view, with the ring colour shifting from green through amber to red as it fills past thresholds. A number in the centre counts up simultaneously.
Critical fails pulse with a slow crimson breathing animation. Hovering reveals a tooltip showing a real URL fragment (e.g., nike.com/gb/running/shoes/vaporfly) with the specific issue annotated inline — like a real SEO tool output. Passively: a faint scan-line sweeps top-to-bottom across the entire dark panel every 6 seconds, like a radar sweep. The overall effect reads as live diagnostic data from a real crawl, not a static summary table.
Before we change anything, we log exactly where the brand sits across every platform, at each stage of the buyer journey. 140 prompts across four intent clusters, run in parallel across ChatGPT, Google AIO, and Perplexity. Every response logged, citations extracted, and share-of-voice calculated against named competitors. The three platform windows below show the baseline state. The chart underneath shows what it means commercially.
A multi-window LLM response theatre. Three side-by-side chat windows — styled to look exactly like ChatGPT, Perplexity, and Google AIO respectively (distinct UI chrome, fonts, colours). The same prompt appears at the top of all three: "Best running shoe for breaking 3 hours in a marathon?"
Each window plays its answer back as a typewriter animation. Competitor brand mentions appear in an aggressive red highlight that expands slightly (like a stamp); Nike's mention appears much later in a muted grey. A counter at the top of each window tallies "Competitor mentions: 4" vs "Nike mentions: 1" live as the text types in.
Below the three windows, the SOV chart is replaced by a real-time horse race animation — brands as coloured bars racing horizontally, ASICS sprinting ahead, Nike lagging badly. The bars have momentum physics (they overshoot slightly then settle). The final state shows Nike's bar in brand-accurate terracotta, stopping far short of the others.
A floating callout badge pulses top-right: "Nike cited 4th — in a category its own technology created." This rotates through platforms every 4 seconds with a card-flip animation.
Structured data is what makes content machine-readable to LLMs, not just eligible for rich snippets. The rich snippets benefit is real but secondary. At catalogue scale, this is a template problem, not a page problem: we write JSON-LD specs per template type and the fix rolls out across thousands of pages in a single sprint.
The diff shows 5 fields becoming 48. The author entity addition (a named biomechanist with an ORCID ID) is the most differentiated change, and connects directly to the expert author card below.
aggregateRating
author
material
additionalProperty
A before/after code diff theatre. The left half shows the current sparse Product schema — dimmed colours, visually cold. The right half shows the enriched version with a live diff animation: new lines type themselves in line by line, each new property fading in with a green left-border glow (like a git diff add).
The missing properties (aggregateRating, author, material) start as red-outlined ghost blocks — empty placeholders with dashed borders and "MISSING" stamped across them. When the "after" animation plays, those ghost blocks fill in with real data: text types in, the red outline morphs to green, and a small particle burst signals the fix is live.
A third column on the far right shows a live LLM signal meter — a vertical gauge showing how machine-readable the schema is to a language model. As each missing property fills in, the gauge notches upward with a satisfying click-advance animation, with labels like "Author entity: unresolved → resolved" appearing alongside.
Passively: a faint binary/hex rain falls through the dark panel background (very subtle, Matrix-inspired but tasteful), suggesting the machine-readability dimension — the idea that LLMs are reading code, not prose.
Hub-and-spoke architecture built around the entities LLMs cite least. Hub pages give LLMs a single authoritative source to cite. Spoke pages intercept long-tail prompts at each decision stage and link equity flows back to the hub. Each hub is written by a named subject-matter expert with machine-readable author schema. The spokes carry consistent entity attribution throughout. This architecture is what generates the citation numbers shown in the next card.
An animated content architecture map that builds itself in real time as the user scrolls into view. The hub nodes appear first — two glowing hexagonal cards that pulse into existence from a single origin point. Then the spokes extend outward like branches growing from a tree: each spoke link animates as a line that draws itself from hub to spoke node, with the spoke title fading in at the end.
Spokes are styled as actual URL paths (nike.com/technology/zoomx/what-is-zoomx) in monospace font, with a faint favicon icon beside each. The spoke nodes are small rectangular cards that hover and cast shadows.
Connection lines are animated with flowing light dots — like data packets — travelling from spoke to hub, representing internal link equity flowing inward. The dots are coloured to show entity signal strength (green = strong entity match, amber = partial). The inter-hub bridge shows a bidirectional pulsing beam with the label "Internal link bridge", alternating direction to show link equity flowing both ways.
Passively: the whole architecture breathes — nodes gently scale up and down, glow halos pulse — suggesting a living information architecture. On hover of any spoke, the connected entity tags float up as bubble chips around that node.
Not blog posts. Not product copy. Structured, direct-answer content with clear entity attribution, specific data, and machine-readable FAQ schema on every page. Built to match the exact phrasing LLMs use when answering buying, research, and comparison queries across sixteen FAQ pages and five definition pages.
The difference between content that gets cited and content that doesn't is specificity. LLMs don't cite vague descriptions. They cite pages that give them a complete, attributable answer with a verifiable claim they can repeat confidently.
Example content format. Illustrative of the type commissioned, not proprietary assets.
A dual-panel citation proof system. The left panel shows the structured FAQ page, but animated: the Q appears first, then the answer types in as if an LLM is generating it. Halfway through, a yellow annotation draws a box around the specific claim ("87% energy return") and a glowing arrow extends from that claim rightward into the second panel.
The right panel is a live LLM citation feed — showing four LLM platform windows (ChatGPT, Perplexity, Gemini, AIO) simultaneously pulling from the same source. Each window shows a condensed AI response where the exact phrase from the left appears highlighted, attributed to nike.com/technology/zoomx. A counter increments: "Cited 847 times this week".
The entity chips below each FAQ item are interactive: hovering causes a knowledge graph fragment to bloom from it — a mini network of related entities the LLM uses to contextualise this content. This makes "entity attribution" visceral rather than abstract.
Passively: a faint green pulse emanates from the cited text on the left every few seconds, as if a signal is being broadcast — reinforcing that well-structured content actively transmits information to LLMs rather than waiting to be found.
The chain that turns a proprietary data finding into an LLM citation runs: original data → earned editorial coverage → indexed across the web → cited by LLMs as authoritative third-party validation. Most SEO teams understand the first and last steps and skip the middle. This is the middle.
Story angles are built around the client's proprietary data assets. Every pitch leads with the finding, not the brand. Journalists get the dataset first. The result is independently published, editorially attributed coverage: the highest-trust signal for both search engines and LLMs. Publication tier is matched to what the client's research can credibly support.
An authority propagation map — a dark-background canvas showing the brand node at the centre, radiating outward. The pitch brief is shown as a "story seed" card at the origin. As the animation plays, the story radiates outward along publication tiers: DR 70+ publications appear first as large nodes (Runner's World, Athletics Weekly), connected by animated beams. DR 50–69 nodes appear next in a second ring. Organic/forum nodes populate a third ring.
Each publication node, when it "receives" the story, pulses and emits its own secondary ripple — representing the story being published and then re-cited by other sources. This cascade effect (publication → citation → LLM training signal) is shown as a wave of light bouncing from node to node, eventually reaching a floating "LLM" node at the far edge that lights up: "New external source: nike.com · ZoomX · 87% energy return".
The key stat (×3 story angles · ×14 publications · ×2 citation clusters) is shown as a live multiplier equation that animates like a slot machine resolving, building to a final citation probability score.
Passively: the publication nodes slowly rotate around the brand centre like satellites, with DR scores displayed and a faint orbit trail — suggesting the ongoing, accumulated nature of authority building rather than a one-time event.
LLMs weight content by author credibility, not brand credibility. A page attributed to a brand name carries the authority of a brand. A technology explainer attributed to a named subject-matter expert with peer-reviewed publications and an ORCID ID carries the authority of a scientist. That's a different citation category entirely.
Named, schema-attributed authors across all hub pages. Each gets a dedicated entity page with full credential detail, sameAs links to ORCID and Google Scholar, and a Person JSON-LD block that makes them machine-readable as a verified expert. This works with any brand that has named internal experts, cited industry practitioners, or published research partners. Not just organisations with research labs.
Result: LLMs cite the author's claim, with the client's domain as the source.
An entity graph twin — each scientist visualised not as a profile card but as a knowledge entity node in a live graph. Dr. Lin's node sits on the left, Dr. Kiptoo's on the right. Each node is a large, elegant circle with their initials in the centre. Radiating outward: connection threads to ORCID, Google Scholar, each journal publication, the nike.com author page, and each peer-reviewed paper.
The LLM platforms (ChatGPT, Perplexity, etc.) are shown as rectangular nodes at the bottom. Animated pulses flow from the scientist nodes, through the publication network, and down into the LLM nodes — showing the chain: scientist → published paper → LLM training corpus → citation at prompt time.
Each credential detail (PhD, institution, years active) appears as floating metadata tags that orbit the scientist node slowly, like annotations in augmented reality. The schema hint ("Person + Author schema · sameAs: ORCID") appears as a code overlay on hover, rendered as a JSON-LD fragment with key fields highlighted.
Passively: the connection threads pulse at irregular intervals — some brighter, some dimmer — as if simulating real-time citation activity across the web. The overall feel is less "profile card" and more "this person exists in the knowledge graph of the internet, and we're making that visible."
Every engagement closes with a live monitoring system, not a PDF report. The same 140 prompts re-run every week from week 4 onwards. Every citation logged, position noted, share-of-voice calculated against named competitors. Regressions flagged within 48 hours and attributed: new competitor content, model update, or content losing relevance. That early-warning capability is what turns a one-off audit into a retainer relationship.
A live mission control dashboard spanning the full width. Instead of static before/after bars, this is a 16-week time-series animation: four platform charts in a 2×2 grid, each showing a line graph that animates week-by-week left to right as if you're watching the engagement unfold in real time. The lines start flat and low (weeks 1–3), then inflect sharply upward from week 4 (content goes live), creating a dramatic elbow curve — the visual proof of causation.
Each platform line has a distinct colour and subtle glow. The background shifts temperature as SOV rises: cold dark blue at the start to warm amber-green by week 16, as if the chart itself heats up with success. Milestone markers appear at key weeks — a small flag icon labelled "Hub 01 published · wk 4" or "PR story live · wk 8" — showing exactly what caused each inflection.
The final "+48.8 pts" stat counts up from 0 in large bold type, each decimal place clicking into place like an odometer, with a brief particle burst and line glow peak at the end.
Secondary passive loop: after the animation completes, the four platform lines continue to pulse gently, with simulated "weekly prompt run" events — a small dot travelling along each line every few seconds — reinforcing that this is an ongoing measurement system, not a one-time report.
A 30-minute call. We'll identify the two or three things worth digging into first. No deck, no pitch.
Book a 30-min call →