Blog
How We Made QV Brands Citable by AI: A Working Log
We sell AI findability. Here's the unglamorous, specific work of applying it to our own site — including the bug we shipped and had to fix in production.
Why Write This Down
Most content about "AI search optimization" is either abstract theory or a vendor pitch. Neither is useful when you're the one holding the keyboard. This is a log of the actual work: what we changed on qvbrands.com, why, and what broke along the way. If you're evaluating whether this matters for your own site, this is what the work actually looks like — not the marketing version of it.
The Starting Problem: A Split Identity
QV Brands sits inside a small ecosystem — this site, a founder's personal site, and two sibling practices. Before this work, each site described the same real people and organizations slightly differently: different URL forms, no shared identifiers, some pages with no structured data at all. To an AI system trying to answer "who is Rick Julian" or "what is QV Brands," that looks like several unverified, disconnected claims — not one confirmed entity. Confirmed entities get cited. Unverified claims get ignored.
Step One: One Entity, One ID, Everywhere
The fix was mechanical but exacting: every reference to a person or organization across every property now points to the same canonical identifier — one for the founder, one per organization — instead of each site inventing its own. Where a site only needed a thin reference (this founder, elsewhere), it got exactly that: an ID, a name, a URL, nothing more. The full biographical detail lives in exactly one place. Duplicating it everywhere doesn't strengthen the signal — it just gives an AI system multiple slightly-different versions of the same fact to reconcile, which is worse than one clear version.
We also found — and fixed — schema on several pages using local, made-up identifiers instead of the canonical ones. Easy to miss, since the page renders identically either way. It only matters to the machine reading the markup, which is exactly the audience this work is for.
Step Two: Say the Prices Out Loud, in Schema
Pricing was already public on the site, in plain text. It wasn't in a form an AI system could extract with confidence. We added Service and Offer schema for every engagement, matching the visible pricing exactly — no rounding, no schema claiming something the page doesn't say. Now a query like "how much does a brand strategist cost" has a structured fact to pull from, not just prose to interpret.
Step Three: llms.txt
A newer, simpler convention: a plain-text file at the site root that hands an AI system a direct summary — what the business is, what it offers, what things cost, where the key pages live — instead of making it infer all of that from a full crawl. Low effort, and it removes an entire layer of guesswork for anything trying to understand the site quickly.
Step Four: The Bug We Shipped
Here's the part a polished case study would leave out. Part of this work included consolidating the site onto a single canonical host — both the www and non-www versions of the domain had been serving identical live content, silently splitting every ranking and trust signal between them. We wrote a routing rule to redirect the non-www version to www.
We tested it. Every path we checked redirected correctly — except the homepage itself. The wildcard rule matched every URL with a path and silently failed to match the bare root. It shipped to production before we caught it in a second verification pass, checking the live domain directly rather than trusting the first test. Root cause: the routing pattern needed an explicit rule for the literal root path, not just a wildcard — a one-line fix once we found it, invisible if we hadn't gone back and actually checked.
The lesson isn't "we're careless." It's that this class of work is exactly the kind where a plausible-looking fix can be silently wrong in production, and the only real check is verifying the live behavior directly — not just trusting that a sensible-looking rule did what it was supposed to.
Step Five: Crawl Access and Freshness
We confirmed robots.txt explicitly allows GPTBot, ClaudeBot, PerplexityBot, and Google-Extended — a common failure mode is a blanket disallow rule, inherited from a template years ago, that nobody revisits. And we made the "last updated" date on every answer page visible on the page itself, not just buried in schema — a small thing, but freshness is a trust signal both to readers and to systems evaluating whether content is current.
What We'd Tell Someone Starting This
- Start with the entity graph. Schema without a consistent, canonical identity behind it is decoration.
- Match schema to what's actually true and visible. Fabricated structured data is detectable and costs more trust than it buys.
- Verify against the live site, not just the local build. The bug above would have shipped invisibly if we'd stopped at the first green checkmark.
- This is plumbing, not content strategy. It stops authority from leaking — it doesn't manufacture demand. The content still has to be worth citing.
For the step-by-step version of this — the checklist rather than the narrative — see How to Get Your Business Cited by AI. And if you want the version of this that isn't a blog post — the actual audit and implementation, done on your site — that's what the Growth & Findability System is.
Common Questions
What's the difference between SEO and what's described here?
SEO optimizes for ranking in a list of links a human clicks through. This work optimizes for being understood and cited directly inside an AI-generated answer — a related but distinct problem, covered in more depth in the AEO answer page linked above.
Did fixing this actually change anything measurable?
Canonical consolidation and crawl fixes show up in Search Console within weeks. Whether AI systems cite the content more is slower to observe and harder to measure directly — the honest answer is this is infrastructure work whose payoff compounds over months, not an overnight change.
Related
Ready for strategic clarity?
A strategy call is the simplest way to start — direct, no pitch, thirty minutes.
Book a strategy call