Skip to content
Article 8 of 11 — part of the Interpretability Engine Optimization series.
Juan Carlos López

Shoppers Search Your Store for Things You Sell. And Find Nothing.

A shopper searches "wool coat", finds your coats, taps the Wool filter, and they vanish. The word is in the description; the field is empty. Here is the fix.

site searchproduct filtersproduct attributes
A store search bar finding coats and a material filter dropping them, with an empty material field highlighted

In this article: the part of Interpretability Engine Optimization (IEO) that makes sure a name means one thing to a machine. Your product names and categories make sense to you. This part checks whether they resolve, for a system, to what the item actually is, and puts the attributes shoppers filter on where the filter can read them.

Here is what happens without it.

A shopper lands on your site and types wool coat. Your search finds your three coats, because the word "wool" is in each description. Good. Then she taps the filter that says Material: Wool, to narrow things down, and all three disappear. (The Wool option is there because your scarves have the material field filled in. Your coats don't.)

Your coats are called "Harbor", "Ashby" and "The Weekender". Their category is "Fall 26". Wool is in each description, as a word, not in a field. The filter doesn't read descriptions. It reads a material field, and on the coats that field is empty. She also tries the Coats category and gets nothing, because nothing in your store is filed under coats.

She leaves. Your analytics show a search with zero results after a filter, if anyone is looking at that report.

Why your own store loses your own products

Naming products like people is a good brand habit and a bad data habit. "Harbor" tells a loyal customer which coat you mean. It tells a machine nothing about what the item is. "Fall 26" is how your team thinks about the line. To a category filter it's a label with no content.

Search and filters are two different machines. Shopify's online store search, for example, does look inside titles, descriptions, tags, vendor and product type, so the description that mentions wool can get a coat into the results. Filters work differently: Shopify builds them from fields, such as product options, metafields, tags, vendor and product type, and you enable each one in the Search & Discovery app, on a theme that supports filtering. A filter can offer "Wool" only if wool is a value in a field. The description that got the coat found can't keep it in once a filter is applied.

The best product name for a brand is often the worst one for a machine.

The technical name: ambiguity

In IEO the first failure here has a name: ambiguity. A value exists, but it doesn't resolve to a single meaning. The Methodology's examples are the ones you just saw: a category set to an internal label, and a product name that gives a brand and a code but not what the item is.

Ambiguity is different from a missing value. The field isn't empty. "Harbor" is right there in the title, and "Fall 26" is right there in the category. They just point nowhere a machine can follow. The remedy is resolution against a controlled reference: a category list the machine already knows, a standard attribute vocabulary, your platform's taxonomy. "Fall 26" can stay as your collection; the category becomes Apparel › Outerwear › Coats. "Harbor" keeps its name and gains what it is.

The empty material field is a second, different gap: the evidence is in the description but not in the field the filter reads. This article fixes both, because the shopper hits both in the same minute.

Three moves on the coats:

  1. Resolve the category against your platform's taxonomy, down to the leaf: Coats, not Apparel. Keep "Fall 26" as the collection.
  2. Give every product a type a stranger would use. Keep "Harbor". Add "Wool Coat".
  3. Put the attributes shoppers filter on into fields, then turn the filters on. Material, color, length. Writing "Material: Wool" doesn't make a filter appear; you enable it in Search & Discovery, and your theme has to support it.

Where it lands: names a machine can resolve

Here is one of the coats. Its description reads: "Harbor is our charcoal wool coat, cut knee-length for the coldest months. Fully lined."

Before After
Title Harbor Harbor Wool Coat
Category Fall 26 Apparel › Outerwear › Coats (collection: Fall 26)
Product type — Wool Coat
Material — (in the description) Wool
Color — (in the description) Charcoal
Length — (in the description) Knee-length
Filters enabled — Material · Color · Length, in Search & Discovery

Every attribute in the right column came from the store's own sentence. The category is a resolution against the platform's taxonomy, and the last row is a setting, not a fact. Do the same for the other two coats, and now "wool coat" finds three results, the Wool filter keeps all three, the Coats category has three coats in it, and the shopper who wanted a knee-length one gets there in two taps. "Harbor" is still the name on the hangtag.

The same resolution reaches further than your search bar. When your platform sends the catalog on to AI channels, it can send the resolved category instead of "Fall 26".

What to do this week

  1. Open your search analytics and pull the zero-result queries, and the searches that end after a filter is applied. Those are shoppers telling you what they call your products.
  2. Pick the ten most common. For each, check: do you sell it? Under what name, category and attributes?
  3. Resolve the category against your platform's taxonomy, to the most specific level it offers. Leave your collections as they are.
  4. Add a plain product type to every product that only has a proper name.
  5. Put the three attributes shoppers filter on most into fields, and enable those filters in your search app. Then type the way your customers type, apply a filter, and see what stays.

Practical example

A chocolate maker's product is called "Midnight Run". Category: "Chocolate". Description: "A 72% dark bar made from Tanzanian beans, bean to bar in our workshop. 2.5 oz. Vegan."

A shopper searches "72% dark chocolate", gets Midnight Run among the results, then filters Cocoa: 70–79% and Dietary: Vegan. Midnight Run disappears. (The filters exist because the maker's other bars have those fields filled in.)

Before you read on, decide what's ambiguous and what's a field left empty.

Ambiguous: the title. "Midnight Run" doesn't resolve to a chocolate, a cocoa percentage or an origin. Fix: keep it, add "72% Dark Chocolate Bar" as the product type and to the title.

Fields left empty, not ambiguous: cocoa percentage, origin, process, size, dietary. The sentence states them clearly; the filters read fields. Fix: Cocoa: 72% · Origin: Tanzania · Process: bean to bar · Size: 2.5 oz · Dietary: vegan, and enable the Cocoa and Dietary filters.

Not stated anywhere: whether it's organic or fair trade. Both stay empty.

That's the ambiguity failure mode from section 5.1 of the IEO Methodology, and its remedy: resolution against a controlled reference, with the attributes placed where the machine that filters can read them.


Check what's explicit, what's missing and what contradicts itself on one of your products → Run the free audit

To go deeper → The IEO Methodology, section 5.1 (doi.org/10.5281/zenodo.22416784) · nsolvia.com/ieo

Sources: Shopify Help Center, "Search behavior in your online store" (fields the search matches) · Shopify Help Center, "Adding filters" with Search & Discovery (filter sources, enabling filters, theme support).

← Free Delivery. But Will They Carry It Upstairs? · ⌂ IEO · Next: Your Brand Has Three Names Online. A Machine Sees Three Companies. →

Series: Interpretability Engine Optimization · Knowledge Domain: Interpretability (IEO)

Interpretability Engine Optimization (IEO)
The UNDERSTAND Layer
nsolvia.com/ieo