Why the AI called a vacuum cleaner an iron
ChatGPT recommended a Bosch vacuum cleaner and described it as an iron. We chased the cause down to the exact page it read, and it is there: twenty products in a list and not one of them declared as a product. The mechanism, the proof, and the fix.
On 20 August 2026 we asked ChatGPT, in Portuguese and from Portugal, where to buy an upright vacuum cleaner for under 200 euros. Among the recommended products a Bosch vacuum appeared with this description: "highly rated iron, easy to use".
We chased the cause all the way down. This article shows the whole route, because the interesting part is not the error: it is the mechanism, and the fact that the affected brand has no way of correcting it.
First: the error was not alone
In the same carousel, an upright vacuum appeared described as an "efficient cleaning robot". And you do not need to check anything at any shop to know the Bosch description was wrong, because the answer contradicts itself: three lines below the carousel, the same model describes the same product as "2 in 1, with up to 40 min of battery life". An iron does not have forty minutes of battery life.
We repeated the question and the carousel returned different products, with a different retailer cited. We will come to what that means.
Second: the model says where it got it
We asked it directly where the iron had come from. The answer: the search returned a page where vacuums and irons appeared together, and the information from one stuck to the other.
A model explaining its own behaviour is the weakest evidence there is, and this one had already got two things wrong in the same conversation. But unlike a vague excuse, this explanation is a verifiable mechanism. You can go and check.
Third: the page it read
The link the assistant itself left carries its signature at the end:
youget.pt/pt/pequenos-eletrodomesticos ?q=Marca-Philips-Rowenta/Cor Principal-Azul &utm_source=chatgpt.com
Read it carefully, because everything is there. The utm_source=chatgpt.com confirms this was the page visited. The path is a small-appliances category, which is where irons and vacuums live together. And the filter is by brand and by colour: the set of products in there has no category coherence at all, they are Philips or Rowenta things that happen to be blue.
A blue iron next to a blue vacuum. The perfect conditions for the attributes to swap places.
Fourth: what that page declares
This is where it becomes clear. We ran this check in PowerShell, against the exact page:
$u = "https://youget.pt/pt/pequenos-eletrodomesticos?q=Marca-Philips-Rowenta%2FCor%20Principal-Azul"
$h = (Invoke-WebRequest -Uri $u -UseBasicParsing -UserAgent "Mozilla/5.0").Content
[regex]::Matches($h,'"@type"\s*:\s*"([^"]+)"') | ForEach-Object { $_.Groups[1].Value } |
Group-Object | Sort-Object Count -Descending | Select-Object Count, NameThe result, exactly as it came out:
Count Name
----- ----
20 ListItem
1 BreadcrumbList
1 ItemList
1 WebSite
1 Organization
1 ImageObject
1 WebPageThere is not a single Product.
There is a list with twenty items, and each item says only that it is an item in a list, with a name and a link. No price tied to a product. No category. No brand. No type. The page shows twenty products to a human and declares none of them as a product to a machine.
There is no meta robots either, so the page is open to everybody. This is not a case of hidden content. It is the opposite: everything open and nothing explained.
The mechanism, in three sentences
The model opens a page with twenty products mixed by colour. It sees names in a list and prices in the text, with nothing linking them. It has to decide what belongs to what, it decides badly, and it presents the result to the buyer with the same confidence with which it presents everything else.
Why this is bigger than it looks
Filter pages became a source. For years, faceted category pages were treated as technical litter: dynamically generated, often marked not to appear in Google, with no investment at all. They stopped being litter the day the assistants started reading pages instead of consulting indexes. Today they are citation surface, and they are the worst-prepared pages in any shop.
Whoever is cited is the shop, not the manufacturer. In both runs, the source shown next to the prices was the retailer. Which means the brand whose product is described backwards does not control the page where the error is born, does not control the text that comes out, and does not even get to know about it.
And the result changes between runs. The same question, minutes later, returned different products and a different shop. A single check is worth nothing, which makes repeated measurement the only way of knowing what is going on.
The fix
It is technical, it is well known and it is cheap. Each ListItem comes to contain a Product with name, brand, category and offers with price, priceCurrency and availability. That way each item in the list says what it is and how much it costs, and no attribute is left floating, waiting to stick to the wrong product.
For whoever has access to the listing-page template, it is a day's work. What is missing is not technical difficulty, it is somebody having realised that these pages came to be read by machines that answer buyers.
For a brand that sells through third parties, the defence is indirect and twofold: have a page for that product alone, saying what the thing is before saying how good it is, and have a conversation with the channel about the structured data on the listing pages. It is a conversation almost no Portuguese brand is having.
A note of fairness
We named the shop because without the address this investigation cannot be verified, and it is the verifiability that gives it value. But the rest should be said too: that page does have ItemList declared, which is more than most Portuguese shops have on category pages. The market norm is to have nothing. If we picked a shop at random, we would probably find less, not more.
The problem is nobody's in particular. It belongs to an entire market that has not yet realised these pages changed function.
What comes next
This case establishes the mechanism. The next step is frequency: twenty questions across four categories, repeated over three weeks, to find out how often it happens and where it is worst. The numbers will be published.
Frequently asked questions
Can a brand correct the description the AI gives of its product?
Not directly. There is no correction form, no brand panel and no support channel for contesting what an assistant says about a product. What exists is indirect work: reducing ambiguity in the sources the model reads, to give it less room to guess. And measuring regularly, because without measurement the brand does not even know this is happening to it.
Is the error the shop's or the model's?
Both, in different proportions. The model erred by presenting as fact an association it had inferred. The page it read gave it no means of getting it right: it shows twenty products and declares none of them as a product, with no price or category tied to each item. A system that guesses will err; a system that guesses over incomplete data errs more.
Does this only happen in this shop?
On the contrary. The page we checked has ItemList declared, which is more than most Portuguese shops have on category and filter pages. The market norm is to have no structured data at all on those pages, because for years they did not matter for SEO. They came to matter when the assistants started reading pages instead of indexes.
What is the technical fix?
Each ListItem comes to contain a Product, with name, brand, category, offers with price and priceCurrency, and availability. That way each item in the list says what it is and how much it costs, and no attribute is left floating on the page waiting to stick to the wrong product. It is a day's work for whoever has access to the listing-page template.
Read next
- Agentic buying: what changes for Portuguese shops, the same ground from the shop's side.
- Six commands to find out whether the AI can read your site, the basic check.
- Schema.org: the minimum viable, the fix in detail.