05.10.26

How We Optimized Our Own Site for AI Search: A GEO Case Study

ChatGPT recommends us for Shopify migrations, yet Google sent 2 non-brand clicks in 90 days. Part 1 of our own GEO case study: the data, the audit, the changes and the first signals.
14 MIN READ TIME

When we asked ChatGPT to recommend an agency for migrating to Shopify, it named URich first – in English and in Ukrainian. Over the previous 90 days, Google had sent us exactly 2 clicks from non-brand searches. Those two facts sit side by side in our own data, and together they explain why we stopped treating AI search as “SEO with a new name”.

This is Part 1 of our own GEO case study: the baseline, what we audited, what we changed and the first signals. We will add the results to this article once there is enough data to compare.

KEY TAKEAWAYS

  • AI referrals and Google rankings are different metrics. 14 sessions came from ChatGPT in 30 days, while 11 548 non-brand Google impressions produced 2 clicks.
  • AI assistants quote facts, not slogans. We rewrote our service-page intros as definitions and gave every case study a one-line, metric-backed summary in llms.txt.
  • AI answers reuse your own words. ChatGPT now describes our migration service almost exactly the way our own pages do.
  • Measure what you can, and say what you can’t. Referral clicks are the floor of AI visibility, not the ceiling.

WHY WE DID THIS TO OURSELVES

We sell AI Search & Agent Readiness (GEO) as a service: auditing and fixing how eCommerce sites read to ChatGPT, Perplexity and AI Overviews. So when our analytics showed real, unprompted traffic already arriving from ChatGPT, we had two options – write another generic “what is GEO” explainer, or run our own audit on ourselves and publish exactly what we found, numbers included. We did the second one.

HOW AI ASSISTANTS DECIDE WHAT TO CITE

It helps to know what you are optimizing for. An AI assistant can know about your brand in two ways:

  • From its training data – a snapshot of the web taken months before you ask. You can’t edit it after the fact.
  • From live retrieval – when ChatGPT search, Perplexity or Google AI Overviews look things up at question time, their crawlers (OAI-SearchBot and ChatGPT-User, PerplexityBot, Googlebot) fetch pages, the model summarizes them and links the sources.

Live retrieval is the part a website can influence. To be cited, a page has to be reachable by the crawler, easy to parse, and contain a sentence the model can lift as a fact – a definition, a number, a clear “who it’s for”. Brand facts also need to agree across the web: if your site, your Clutch profile and your LinkedIn page describe you differently, the model has less reason to trust any of them.

One honest note on llms.txt: it is a 2024 proposal for a plain-text map of a site written for language models. No major AI provider has confirmed that it reads the file, and Google representatives have publicly downplayed it. We treat it as cheap insurance and a useful forcing function for writing clear summaries – not as a ranking factor.

STEP 1: FINDING THE SIGNAL IN THE DATA

GA4 already groups traffic into an “AI Assistant” channel – most teams never look at it because it’s small. Over the trailing 30 days it was 14 sessions, 100% of them referred from chatgpt.com: a real person asked ChatGPT a question, ChatGPT answered with a link to our site, and they clicked through.

The landing pages told us where ChatGPT already found us worth citing: mostly case studies (/cases/aurora-crystal/, /cases/janado/, /cases/) and a handful of service pages (headless commerce, AI solutions, Shopify development).

Two things surprised us. First, ChatGPT was already sending people to our Ukrainian pages – /uk/services/headless-e-commerce/ and /uk/services/shopify-development/ – within weeks of the Ukrainian version going live. A second language version is a second chance to match how people actually phrase their question. Second, the trend was going down: 14, then 13, then 10 sessions in the trailing 30-day window. Left alone, AI visibility doesn’t grow by itself.

STEP 2: WHY THIS ISN'T THE SAME METRIC AS SEO

Before changing anything, we pulled 90 days of Search Console data as a baseline. Brand queries (searches containing “urich”) had 1 892 impressions and 36 clicks – a normal branded-search pattern. Non-brand queries had 11 548 impressions and just 2 clicks – a click-through rate of 0.02%.

Search Console 90-day comparison: brand queries 1,892 impressions and 36 clicks versus non-brand 11,548 impressions and 2 clicks

In plain terms: Google shows our pages for a lot of long-tail queries, but almost nobody clicks, which usually means low average positions on those terms. Yet ChatGPT was sending us real clicks in the same period. GEO and classic SEO are adjacent disciplines, not the same one – a page can be practically invisible in Google’s top results and still be cited by an AI assistant that read it directly.

Classic SEO isn’t standing still either: in the latest 28-day window, “woocommerce to shopify migration” reached 588 impressions at an average position of 18.9. We track both, separately.

AN UNEXPECTED FINDING: AI FINGERPRINTS IN SEARCH CONSOLE

Scrolling through long-tail queries, we found searches no human types. One read: “agent monetization, commercial, mofu, primary, ai/product teams, hero h1 directly references this concept” – a fragment of what looks like a content brief. Another: “accuracy of ai seo geo platforms tracking position in ai shopping guides”.

Our working hypothesis: AI tools – research agents, SEO platforms, assistants with web search – are running Google searches on someone’s behalf, and their prompts sometimes leak into the query. We can’t prove who sent them, so treat this as an observation, not a fact. But it is a useful reminder that part of your “search audience” is already software, and it reads your pages the same way a model does.

STEP 3: AUDITING WHAT WE ALREADY HAD RIGHT

Before adding anything, we checked what was already in place:

  • llms.txt already existed at /llms.txt – a plain-text index of our services, case studies and company info, written for AI systems rather than search crawlers.
  • robots.txt already explicitly allowed GPTBot, ChatGPT-User, OAI-SearchBot, PerplexityBot, ClaudeBot, Claude-User, Google-Extended, Applebot-Extended, Amazonbot and eight more named AI crawlers – not just the default wildcard rule.
  • Structured data (JSON-LD) already covered Organization, WebSite, BreadcrumbList and Article schema sitewide, with FAQPage schema on 82 of 131 indexed pages.

That’s a solid foundation – most sites have none of it. But two concrete gaps stood out once we checked the data instead of assuming: llms.txt listed only 3 of our 28 published case studies, and most service pages opened with marketing copy (“unlock unlimited flexibility…”) rather than a definition an AI system could lift and cite as fact.

STEP 4: CLOSING THE CASE STUDY GAP

Two of the case studies already pulling ChatGPT referral traffic – Aurora Crystal and Janado – weren’t in llms.txt at all. We expanded the file to cover all 28 published cases, one line each, every line carrying a real, already-published metric rather than a generic description:

  • [Aurora Crystal](https://urich.org/cases/aurora-crystal/): custom Shopify theme for a luxury jewelry brand, +26% mobile conversions.
  • [Janado](https://urich.org/cases/janado/): scalable eCommerce marketplace, +38% conversion rate.

The logic: an AI system answering “who built a Shopify store for a luxury brand” or “eCommerce agency with a fintech case study” needs a concrete, citable fact to work with – not a paragraph of adjectives.

STEP 5: REWRITING SERVICE PAGES AS DEFINITIONS, NOT PITCHES

Marketing copy and citable copy read differently. Our headless commerce page used to open like this:

“Headless E-COMMERCE development for high-performance, future-proof commerce. Unlock unlimited flexibility, scalability, and speed with headless eCommerce.”

That’s fine as a pitch, but an AI system can’t lift “unlock unlimited flexibility” as a fact about what headless commerce actually is. We rewrote it as a definition first, positioning second:

“Headless commerce separates the storefront (frontend) from the backend platform, connecting them through APIs instead of a single monolithic system. URich builds headless storefronts on Next.js/React connected to Shopify, BigCommerce, Commerce Layer or a fully custom backend – typically for D2C brands that need sub-second load times, full design control, or multi-region/multi-currency scaling beyond what a standard platform theme supports.”

We applied the same treatment to the intros of our main service pages.

A simple test we now use on every intro: could this sentence appear, unchanged, in an answer to “what is X and who does it?” If it only makes sense as an ad, it won’t be quoted.

STEP 6: FAQ WHERE THE TRAFFIC ALREADY WAS – NOT EVERYWHERE AT ONCE

We added a visible FAQ section (plus matching FAQPage schema) to Aurora Crystal, Janado and Oroy specifically – the three case studies GA4 showed were already receiving AI referral clicks – rather than all 28 at once. Each FAQ answers a question grounded in that project’s own published facts (e.g. “Why did checkout abandonment drop by 34%?”), not generic boilerplate. Prioritizing by evidence meant we could ship, verify and measure before committing to the remaining 25.

STEP 7: MEASURING WHAT YOU CAN'T FULLY SEE

We set up a standing weekly report (GA4 + Search Console) with a dedicated “AI Assistant referrals” section – which landing pages, which AI sources, and the trend over time. It’s an imperfect proxy: a chatbot can read and answer using our content without anyone ever clicking through, and no analytics tool shows that. A referral click is the floor of AI visibility, not the ceiling – but it’s the part we can actually measure today, so that’s what we track.

EARLY SIGNAL: WHAT CHATGPT SAYS ABOUT US NOW

After the changes went live, we asked ChatGPT the question a potential client would ask. We asked from our own account, so the answer may be personalized – treat it as a signal, not proof.

ChatGPT answer to a request for a Shopify migration agency, recommending URich for WooCommerce, Magento and OpenCart migrations

What we read in this answer:

  • It repeats our own wording. “WooCommerce, Magento, OpenCart and custom platforms… SEO-safe redirects… post-launch support” is close to how our migration pages now describe the service.
  • It explains who we’re for. “A strong fit for businesses that need more than a basic catalogue migration” – positioning, not just a list of services.
  • It names one agency, not a list. The answer recommends URich alone, without a shortlist of alternatives.

We can’t attribute this answer to any single change – it may draw on older data too. That is exactly why Part 2 will compare numbers, not screenshots.

WHAT WE DON'T KNOW YET

  • The numbers are small. 10–14 sessions a month can swing on a single person’s week. We look at trends over months, not days.
  • Answers vary. The same question can get a different answer tomorrow, from another account or in another country.
  • Zero-click citations are invisible. If ChatGPT recommends us and the user remembers the name instead of clicking, analytics shows nothing – at best, a later branded search.
  • Attribution is fuzzy. llms.txt, rewritten intros, FAQs and our reviews on third-party platforms all changed or existed at the same time. We can’t isolate which one matters most.

HOW THIS TRANSLATES TO AN ONLINE STORE

Our site sells services, so case studies and service pages were the assets that mattered. For an eCommerce store, the same principles land on different pages:

  • Product pages that answer first. Open with what the product is, who it’s for and the 2–3 specs that decide a purchase – before the lifestyle copy.
  • Complete Product schema. Price, availability, brand, GTIN where you have it, and reviews – the facts assistants use to compare products.
  • Clean product feeds. Shopping answers in AI assistants increasingly rely on merchant feeds and marketplace listings, not only on your HTML.
  • Category pages with buying guidance. A short, factual “how to choose” block gives an assistant something to quote for “best X for Y” questions.
  • Policies in plain text. Shipping, returns and warranty written as clear sentences, not hidden in images or pop-ups.
  • Bot protection that doesn’t block AI crawlers by accident. Some CDN and security settings block AI bots by default – check before you assume you’re visible.
  • Consistent brand facts off-site. Reviews, marketplaces, press and community mentions should tell the same story as your site.

GEO READINESS CHECKLIST

The ten checks we run first – you can do most of them in an afternoon:

CheckHow to verify
AI crawlers allowedrobots.txt names GPTBot, OAI-SearchBot, PerplexityBot, ClaudeBot and others; your CDN doesn’t block them
AI traffic visibleGA4 shows an AI Assistant channel; you know which pages it lands on
Answer-first introsKey pages open with a definition or fact, not a slogan
Citable proofResults stated as numbers on the page itself (+38% conversion rate), not only in images
Structured dataOrganization, Product or Service, BreadcrumbList and FAQPage where there is a visible FAQ
llms.txtExists, is complete and has one factual line per key page
Real FAQsQuestions customers actually ask, answered in 2–3 sentences
Consistent entity factsSame name, description and key facts on your site, Clutch or reviews, LinkedIn and marketplaces
Language versionsKey pages exist in the languages your customers ask in
A manual testAsk ChatGPT and Perplexity the questions your buyers ask, monthly, and note who gets named

WHAT WE'D TELL ANOTHER eCOMMERCE BRAND

  • Check before you assume. We already had a decent GEO foundation (llms.txt, AI-crawler allowlist, FAQ schema) from earlier work we’d half-forgotten about. Audit first, build second.
  • Your proof pages are your highest-leverage GEO asset. For us, every AI-referred session landed on a case study or a service page – never a generic marketing page. For a store, that’s product and category pages.
  • Write definitions, not pitches, if you want to be quoted. An AI system can only cite what’s stated as fact in your own words.
  • Don’t ignore what others say about you. Reviews and third-party profiles end up in the answer next to your own copy.
  • Don’t wait for perfect data to start, but don’t skip measuring. We built the smallest report that told us something real (referral clicks), then expanded from there.

WHAT'S NEXT: PART 2

In a few weeks we will update this article with the first results: AI-assistant sessions and landing pages, branded search as a proxy for zero-click recommendations, and a repeat of the ChatGPT test – plus Perplexity and Google AI Mode. If the case-study FAQs show a measurable effect, we will roll them out to the remaining 25 cases and report that too.

If you want the same audit run on your own store – what AI assistants can currently read, trust and cite about your brand – that’s exactly what our AI Search & Agent Readiness service does. Book a free consultation and we’ll show you your own numbers first, the same way we started here.


FAQ

GEO is the practice of making a website legible and citable to AI systems – ChatGPT, Perplexity, Google AI Overviews and shopping agents – through structured data, an llms.txt file, open crawler access and citation-friendly content, so those systems can find, trust and recommend the site when users ask them directly.

SEO optimizes for ranking position in a search results page; GEO optimizes for being read, trusted and cited by an AI system that may never show the user a ranked list at all. Our own data found them effectively uncorrelated: near-zero organic click-through on non-brand terms, alongside real AI-referral traffic to the same site.

Nobody can say for sure: no major AI provider has confirmed that it reads the file. It costs an hour to create, and writing one factual line per key page is useful in itself – the same lines work as page intros, FAQ answers and meta descriptions. Treat it as insurance, not a ranking factor.

The visible proxy is referral traffic from AI sources (chatgpt.com, perplexity.ai and similar) in GA4’s channel grouping. It undercounts real impact, since an AI system can answer using your content without the user ever clicking through. Add two more signals: branded search volume in Search Console, and a monthly manual test of the questions your buyers ask.

Ask it the way a customer would – “recommend a … for …”, “best … for …” – in every language you sell in, and repeat the test monthly. Note whether your brand is named, what the answer says about you and which sources it links. A temporary chat or a colleague’s account gives a less personalized answer.

Start with an audit, not a rebuild: check whether AI crawlers are explicitly allowed in robots.txt, whether an llms.txt exists and is complete, and which pages already get AI-referral traffic in analytics. Fix the highest-traffic gaps first – for us, that was case studies; for a store, it’s usually best-selling product and category pages – before expanding site-wide.

Recent projects
Recent projects
Recent projects
Recent projects
Recent projects
Recent projects
Recent projects
Recent projects