← Back to blog
    Case studyJuly 30, 202610 min read

    AI Confidently Tells Your Customer the Wrong Specs — Citing Your Own Site. A 1,900-Page Online Store Catalog, Taken Apart

    In short

    The client's complaint: search results are a mess — one product's title, another's photo, a third one's description. While taking the catalog apart I found something worse: on one size's page, the heading carried the neighboring size's specs. The product holds 50 kg, and AI confidently tells the buyer "40" while citing the manufacturer's own site. Three independent sources of the mess: near-twin variant pages inside the site, metadata lost in a rendering change, and the same text sitting on reseller domains. Structured data barely enters into it — markup describes content, it doesn't replace it.

    99%
    body overlap between neighboring pages in one series
    9 words
    the entire difference between them
    1,900+
    catalog pages where this compounds
    3
    independent sources of the mess in one catalog

    The client wrote: search is a mess. You type in a part number and get one product's title, a second product's photo, a third one's description. Open the page itself and everything is right. Every letter in place.

    This is a European warehouse-equipment manufacturer running its own online store. No name, no domain — NDA. A catalog of 1,900-plus pages: casters, hand trucks, stackers, racking. Ten branches.

    Our theory was the obvious one. Shortly before, they had rolled out a static page generator — the backend started serving prebuilt HTML. Change the rendering, break the metadata, happens every day. I had almost finished writing "the generator did it."

    Then I asked when it started, just to be safe. The answer: "oh, this was happening before that too."

    Three sources, as it turned out. Independent of each other. And structured data fixes exactly one of them.

    And along the way a fourth thing turned up, the one I liked least of all: a product page where AI confidently reported someone else's specs to the buyer. More on that one further down.

    How I looked

    Not through someone else's reports, but by hand on the live site: homepage, three categories, a series listing, a product page, four neighboring variants of one series, two articles, robots.txt, llms.txt, a 1,994-URL sitemap, HTTP headers. I read page source — what the bot actually receives, not what the browser paints. Four passes over two months: the initial audit, then a control pass after each wave of fixes.

    1

    Near-twin variant pages

    Take one series of casters. Three sizes: 50, 60 and 75 millimeters. Each has its own part number, its own price, its own page.

    Taken one at a time, every page is built correctly. Own title. Own photo. Self-canonical. Product and Offer markup, price, availability. Nothing to complain about — and I didn't, as long as I was reading them one at a time.

    Then I put two neighbors side by side. The body text overlaps 99%. The entire difference between the pages is nine words. The meta description is a single sentence with a swapped number: "...swivel plate caster (75 mm, 60 kg, part no. ...)". Change 75 to 60 and you have the second page. Change it to 50 and you have the third. Same story across the whole catalog.

    Search engines see a dozen near-identical pages and do exactly what they were built to do: treat them as one entity. Cluster them. Then they assemble a snippet from whatever fits — title from here, image from there, description from somewhere else. This is not a glitch. The engine did honest work on what it was given.

    With AI it's the same, only more visible. The model doesn't hand the buyer a snippet, it answers in a sentence: "that part number, this diameter, this load rating." And it pulls those specs from the cluster, where three sizes have already blurred into one.

    2

    Metadata lost in a rendering change

    The static generator was guilty after all. Just not of the main thing.

    What it did: the head section on articles went blank. Every page carried the same browser-tab title — the company name. No description. No preview image. Not even a visible page heading. Different articles, one and the same page as far as a machine is concerned.

    On category pages the preview image disappeared. So search engines started picking one themselves — the first suitable photo on the page. That's where "casters instead of a hand truck" came from: the hand-truck category was showing a photo from the page header.

    On top of that, caching: stale-while-revalidate set to a week. Meaning that even after a fix, the old version sits in the index for another seven days while you wonder why nothing changed.

    The lesson is boring, which is why nobody follows it. Any rendering change — static generation, a new template, a CDN, a framework migration — is first and foremost a risk to your metadata. Verify in page source. In the browser everything will look fine, because the browser doesn't much need your head section. The bot needs nothing else.

    3

    Your own text on other people's domains

    The third layer surfaced by accident. The client sent a link to a reseller: "look, their image comes up correctly in search." And it does. The reseller has one page per product, no variants — nothing to cluster.

    And the text on that page is theirs. Word for word from the manufacturer's site. Which is normal, by the way: resellers take descriptions from the supplier, that's how the trade works, nobody stole anything.

    Except search engines don't know who the manufacturer is. They see the same text on five domains, pick one "owner," and dampen the rest. The owner is not necessarily the company that makes the product.

    The product page where AI was lying

    On the fourth pass I caught something that normally doesn't make it into a GEO report, because technically it isn't GEO.

    On the product page for the 60 mm caster, the visible heading carried its neighbor's specs: "50 mm, 40 kg." The page title was correct. The markup was correct. The price was correct. Only the template was wrong, pulling the previous variant's values into the heading. And it wasn't one page — I confirmed it on two different series, so it's systemic.

    To a human that's a typo. They look at the spec table below it anyway. To an AI it's a source: the page heading is the first thing the model reads, it's the primary one. So when someone asks "what's the load rating on this part number," it will cheerfully tell the buyer something false. Citing the manufacturer's own site.

    That's the worst part of this whole story, to my mind. Not that you're invisible. That you're visible — and wrong.

    What worked and what didn't

    The technical layer got closed over two months, in waves. Bot access, Product and Offer on product pages, author and date on articles, last-modified on all 1,994 sitemap URLs, per-page head restored, category preview images back, edge caching, security headers. All of it measurable, all of it improved.

    The variant problem got fixed halfway: neighboring sizes now have their own titles and their own photos. The mess in search results eased.

    But the body text still overlaps 94.5%. Different heading, same meaning. The clustering is not gone. So, honestly: that task is half done, and the other half is no longer a markup job. It's 1,900 distinct descriptions, and nobody is writing those by hand.

    And right away, what unique text does NOT do. It does not protect you from copying. The reseller will scrape the new text too — they're your customer, you hand them the descriptions along with the goods. Uniqueness reliably fixes exactly one thing: your own pages clustering with each other, inside your own site. That part is solid.

    Who ends up the "owner" of a text across domains is decided by other things: who got indexed first, whose domain carries more authority, whether the manufacturer entity is spelled out in markup (organization, brand, registration details, social profiles), and how fast you get recrawled.

    The only thing a reseller physically cannot copy is your own material. Photos from your production floor. Real test data. Engineering detail a middleman simply doesn't have. That's what belongs in your descriptions if you're the manufacturer. Everything else gets rewritten off you within a week.

    Check your own catalog in fifteen minutes

    Five checks and one prohibition. You need nothing beyond a browser.

    1

    Open three neighboring variants of one series and compare the descriptions. If the only difference is a number, search treats that as one page, not three.

    2

    Compare the visible product heading against the browser-tab title. The specs must match. On this client they didn't, on two separate series, and nobody had noticed.

    3

    Check whether your category pages have their own preview image. If they don't, search will grab any photo on the page — and it will be the wrong product.

    4

    Take one sentence from your own product description and search it in quotes. See how many domains show it and who ranks first.

    5

    After any rendering change, read page source rather than the browser. The head section breaks first, and it breaks quietly.

    6

    And what NOT to do: don't canonicalize variants onto one "representative" page. It's the standard advice, it's in every SEO handbook, and for a catalog with part numbers it's fatal — a buyer searching a specific part number will have nowhere to land. Here you cure duplication with content, not by collapsing pages.

    A word on timing. Metadata and access get fixed in days, but you see the effect later: the cache has to expire, then you have to be recrawled. On this client, changes showed up in search one to three weeks after a fix. Rewriting descriptions across a large catalog runs in waves: the high-volume series and the parts people search by number first, the rest after.

    What it comes down to

    A catalog is its own genre, and almost nobody says so. Every GEO article out there is written for sites where pages differ in meaning: blog, services, about. There the familiar advice works — let the bots in, serve text in the HTML, add schema.

    In a catalog the pages are nearly identical in meaning. That's what a product line is: one series, six sizes, two numbers apart. So your technical layer can be flawless and AI will still confuse your own products with each other, because confusing them is the reasonable thing to do.

    Markup describes content. It does not replace it. If three pages carry the same meaning, no amount of Product schema will explain to a machine how they differ.

    The client, by the way, didn't come to me with this. He came with "we'd like to show up in ChatGPT." And showing up in ChatGPT starts with no longer being three identical pages to it.

    See what AI actually reads in your catalog

    I'll send you the same breakdown for your site: what the AI crawlers really receive, whether your product pages are clustering with each other, where search results will turn to mush, and what to fix first. Same method as this case. No pitch.

    Client under NDA: I describe the niche and how the catalog is built, without the company name or domain. Every finding and figure comes from four real audits; series numbers and part numbers have been changed.

    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. I took this catalog apart by hand, in four passes over two months, using the same method I ran on my own site.

    More about Roman