Case study · AI search · Own publication

AI search visibility:
90 of 120 pages cited
in seven months.

A luxury fashion publication I designed, built and wrote from zero. Now cited across Google AI Overviews, AI Mode, Perplexity, Gemini and Copilot.

This site is mine, so nothing here is withheld. Figures come from Ahrefs and GA4, both captured on 28 September 2026.

Where it started

InvestedLuxury.com went live in February 2026 with no domain history, no backlinks and no audience. Next.js 14 on the front, Sanity as the CMS, deployed on Vercel. I made every decision on it: the design, the code, the content model, the editorial line and the SEO. That is the reason it is on this page. Every other case study here has a client between me and the numbers. This one does not.

Why this was harder than a standard content site
01

The category is owned by people with more money

Luxury fashion search is retailers, aggregators and coupon sites, all with domain authority a new publication cannot match. Competing on volume was never an option, so the site had to be cited for something the big players do not say.

02

Prices change and engines remember

A price that is wrong once is quoted wrong for months. AI engines prefer sources with dated numbers, and drop sources whose numbers stop matching reality.

03

Affiliate sites start with a trust deficit

Most of them run generic schema from a plugin, thin product pages and copied specs. Anything that looked like that would be treated like that, by Google and by the engines built on top of it.

What the work focused on
01

Paragraphs that stand on their own

Every argument paragraph carries the product, the number and the source inside it, so it can be lifted out of the page without the context around it. The proprietary data point (cost per wear, cost per session, resale comparison) sits in the first three paragraphs, and every article closes on one verdict rather than “it depends”. That is the unit of content AI engines cite, and it is the main reason the site is visible.

02

Structured data with validity rules

Article or Review depending on whether a rating exists, because a Review without a rating is invalid to Google and should not be emitted. Product with AggregateOffer when there are several sellers, and no Product at all when there is no price, rather than emitting broken schema. Breadcrumb, Organization and WebSite underneath. Most affiliate sites emit whatever the plugin emits. This one decides.

03

Canonical URLs resolved dynamically

Any missing or malformed URL whose last segment matches a published article slug is redirected to its canonical path through a CMS query, instead of a hand-kept redirect list. Every page has one address, and crawlers do not spend budget on 404s.

04

Measurement at merchant level

Outbound click tracking that identifies the network and the merchant, not just the domain, and separates a tracked link from a leaking one.

What I turned down

The biggest number in the data. A coupon cluster around one retailer, more than 154,000 impressions. Coupon sites hold a structural advantage an editorial site cannot beat, and the intent there is a discount, not a purchase decision. That traffic would not have turned into anything the site produces.

The head term. “How much does it cost to rent a yacht”, 1,300 searches a month, has an AI Overview on it. The page targets “for the day” instead: the same question, 1,700 searches, and Google does not serve an AI Overview on it. In the same cluster, Miami (KD 65) and the glamorous Mediterranean destinations were dropped because of the data, not because of taste.

The technical AI checklist. No llms.txt, no markdown mirrors, no chunking optimisation. Visibility in AI answers was built through the structure of the text itself. The crawler documentation says which of those files anyone reads, and the answer shaped this decision.

Results

90 of 120 pages are cited in AI answers. 57 of them appear in Google AI Overviews. Across all engines Ahrefs counts more than 5,700 AI responses pointing to the site: Perplexity 2,000, Gemini 907, Google AI Mode 870, Copilot 493, ChatGPT 268. The spread between engines is the point, and I wrote about why AI visibility is not one number. None of it came from links, and what that says about links is a post of its own.

Traffic followed the same curve. From 1 March to 28 September the site recorded 25,998 views from 18,777 users. March was close to zero. By September it was holding around 200 views a day, from a site with no link building behind it.

How to read the 5,700

It is a count of AI responses in the Ahrefs prompt index, not visits. It tells you how often the engines reach for the site, not how many people arrive. And the number is not flat across engines: ChatGPT fell by 705 responses in the same period the others grew. I do not yet know why, and I would rather say that than invent a reason.

Where it stands now

The site is still growing on the same method: one article, one verdict, one dated number, one manual price check a week. Nothing on this page was a one-time push.

The principle underneath it

The engines did not cite this site because it asked them to. They cited it because every paragraph gives them a number, a source and a conclusion they can use. AI search visibility is a writing and engineering decision made on every page, not a layer added at the end.

Tell me what your market asks

What does ChatGPT say about you today?