← Back to blog
    Case studyAugust 27, 20269 min read

    GEO Case Study With Real Numbers: How a 1,900-Page Catalog Went From 58 to 79 — Without Me Touching the Code

    In short

    Two months, four audits of the live site, a 20-task spec — and a 1,900-page catalog moved from 58 to 79 out of 100 in AI-readiness. I didn't write a line of the client's code: their own developers implemented every wave from my spec. Earlier I published the diagnosis half of this case — the mess in search snippets and its causes. This is the treatment half: what shipped in each wave, what each wave did to the score, what a GEO score honestly does and doesn't mean, and the part of the job that is still open.

    58 → 79
    AI-readiness score across four audit cycles
    4
    audits of the live site in two months
    22
    issues found in the baseline audit
    0
    lines of the client's code written by me

    This case, part 2 of 2 — the results

    Part 1, the diagnosis: why AI mixed up the products in this catalog →

    This is the second half of a story. The first half — a catalog where search results stitched together the title of one product, the photo of a second and the description of a third — I took apart in a separate breakdown. That article was the diagnosis. This one is the treatment: what we changed, in what order, and what it did to the numbers.

    The client is the same: a European warehouse-equipment manufacturer with an online store at its own production site. Casters, hand trucks, stackers, racking — a catalog of 1,900-plus pages. Name and domain stay unnamed, NDA.

    One condition made this engagement unusual, and in the end it's the most useful thing about it: I never touched the client's code. My deliverables were audits and a spec — every task written as problem, solution, exact location, verification command. Their in-house developers did all the implementation. So this case doubles as an answer to a question I hear a lot: "can our own team do the GEO work?" They can. Below is what that looks like.

    One more thing before the numbers. The score I'll be quoting is my own audit methodology — six categories, checked against the requirements of five AI platforms. It is not an industry standard, because no industry standard exists. There's a separate section below on what the number means and what it doesn't; I'd rather undersell it than have it read like magic.

    How it was measured

    Four audits of the live site: the baseline in May (58), control audits in mid-June (68), late June (72) and July (79). Each one done by hand on page source — what a bot actually receives, not what the browser paints. After every wave of fixes I re-checked the same pages with the same commands the spec prescribed, and the next prioritized list went back to the client.

    1

    Wave one: open the door, name the entity (58 → 68)

    The baseline audit found 22 issues. The pattern is the one I see on most catalogs: AI crawlers not let in, no machine-readable description of who this company is, product cards without Product markup, articles without authors or dates. The site worked fine for humans. For a bot it was a warehouse with the lights off.

    The first wave was foundation. robots.txt rewritten to explicitly allow ten AI crawlers — GPTBot, ClaudeBot, PerplexityBot, OAI-SearchBot and the rest. An llms.txt describing the company, all ten catalog branches and every article. LocalBusiness, WebSite and Organization markup with registration data and social profiles, breadcrumbs on every template, one title and one canonical per page.

    Then the catalog itself: Product and Offer markup with price and availability. By the first control audit it stood on roughly 86% of product cards — verified on fourteen cards across all ten branches, not on two cards next to the homepage. Category pages got FAQ blocks with 36 real question-and-answer pairs, visible to people and marked up for machines.

    Result: 58 to 68. Technical foundations went from the low sixties to 84, structured data from around 50 to 82. Ten points is what simply letting the bots in and describing your entity is worth on a site that had neither.

    2

    Wave two: authors, dates, cache (68 → 72)

    The second audit pointed at the content layer. Sixteen articles — buying guides, maintenance how-tos — and every one of them machine-anonymous: no author, no date, no Article markup. For an AI engine deciding whether to trust a page, that's a missing signature.

    The wave shipped Article markup plus a visible author on every piece — a real employee with a real job title, not "admin". Dates got fixed too, and not only on articles: the sitemap carried last-modified stamps of 1968 and 1977. A machine reads that literally — this page hasn't changed in fifty years. After the fix, all 1,994 URLs carried honest dates.

    Edge caching went live in the same wave, so pages started arriving fast and stable. And in parallel the snippet-mess investigation landed: the mixing of titles and photos turned out to have two independent causes — near-twin variant pages and head metadata lost in a rendering change. That diagnosis became its own spec and its own article, the first half of this case.

    Result: 68 to 72. Modest on purpose: the biggest problem was diagnosed but not yet treated.

    3

    Wave three: close the regressions (72 → 79)

    The third wave was the payoff. The client's developers returned every page its own head: articles got their titles, descriptions and preview images back, plus one visible heading and a machine-readable date. Category pages got their own preview images — the end of "casters instead of a hand truck" in the snippet.

    The variant twins were pulled apart halfway: each size now carries its own title and its own photo. The mess in search results eased. The bodies still overlap 94.5% — more on that honestly below.

    And the team went beyond the spec: six of six security headers where the baseline had zero, and an ItemList of the product grid in server HTML where it used to exist only in JavaScript. When the in-house team starts shipping past the spec, that's the sign the method transferred.

    Result: 72 to 79 out of 100 in the July audit. Twenty-one points in two months, every one of them verifiable in page source.

    What a GEO score is — and what it isn't

    The 58 and the 79 come from my audit methodology: six categories — technical foundations, structured data, content and E-E-A-T, AI citability, brand authority, platform coverage — checked against five AI platforms. There is no official GEO score. Anyone who quotes you one is quoting their own checklist; the honest version is to say so out loud.

    The score measures readiness, not fame: whether AI engines can reach the site, read it, parse the facts and attribute them to the right entity. Whether AI actually cites you is a separate measurement — a fixed matrix of buyer questions re-run monthly across ChatGPT, Perplexity and Gemini. That's the method I run on my own site. On a 1,900-page catalog the readiness layer had to come first: there is no point measuring citations while the crawlers are still locked out.

    And 100 is not the goal. For this catalog the realistic ceiling is around 84 — the remaining points are held not by markup but by the content itself. Which brings me to the open half.

    What is still open

    The variant bodies still overlap 94.5%. Different titles, different photos, same meaning — so the clustering that caused the original mess is weakened, not gone. The fix is roughly 1,900 genuinely distinct descriptions, and nobody writes those by hand. That's the next phase, and it's a content project, not a markup one.

    There are no customer reviews on the site, so no honest AggregateRating — one of the stronger trust signals AI engines look at. And a second, legacy domain still has a broken SSL certificate, which cuts its redirect chain.

    I list this myself for a simple reason: a case that claims everything got fixed is a case you shouldn't trust. The score sheet says 79, not 100 — and these are exactly the points it's missing.

    What the engagement actually looked like

    Five steps, repeated until the list ran out. None of them requires giving an outside consultant access to your repository.

    1

    Baseline audit of the live site: page source, bot access, markup, rendering, content signals. Output — a scored report and 22 issues.

    2

    A spec, not advice: 20 tasks in three blocks, each one written as problem, solution, exact location, and a verification command any developer can run.

    3

    Ready-to-use materials alongside the spec: robots.txt, llms.txt, JSON-LD templates for every page type, FAQ blocks — so implementation starts the same day.

    4

    The client's team implements. I stay out of the code entirely.

    5

    Control audit after the wave: same pages, same commands. What's verified gets crossed off; what regressed goes to the top of the next list.

    Four cycles of that loop are the whole case. No hidden magic step between the audits.

    What transfers to any catalog

    The readiness layer of GEO is a specification job. It can be written down precisely enough that your own developers implement it without a consultant in the repository — this case is the proof. If a GEO proposal can't name its exact task list, that's worth asking about.

    Effects arrive on a delay. Metadata fixes take days; seeing them in search takes one to three weeks per wave, because caches have to expire and crawlers have to come back. Plan a catalog project in months, not days, and measure between waves — otherwise you'll credit the wrong fix.

    And the technical layer has a ceiling. It took this catalog from 58 to 79 and stopped where content begins: near-identical product pages will keep confusing machines however clean the markup is, because markup describes content — it doesn't replace it.

    After the fourth audit the client wrote a review. One line from it: "He knows his craft and doesn't push extra services." In a market where GEO is sold as magic, that's the sentence I'd rather be quoted by than any score.

    See what AI actually reads on your site

    I'll run the same baseline on your site: whether AI crawlers get in, what they receive, which pages cluster with each other, and what to fix first — a scored breakdown with a prioritized list, same method as this case. No pitch.

    Client under NDA: I describe the niche and the structure of the work without the company name or domain. Every figure comes from four real audits of the live site; the client's words are quoted from written feedback after the engagement. The scores are my audit methodology, not an industry standard.

    Frequently asked questions

    Roman Denisov

    About the author

    Roman Denisov

    AI consultant

    MBA (MIRBIS), 17 years in B2B marketing and sales. I make sites visible and citable in AI answers — and design AI systems that grow revenue. This case ran on the same method I first proved on my own site: audit, spec, verify, repeat.

    More about Roman