Book now

Field notes on Shopify's semantic search: what the model actually reads, and what it finds in an unprepared catalog.

A shopper types "something to wear in the summer" into a Shopify search bar and gets shorts. The shopper never typed the word shorts. Nothing in the query names the product at all.

Under the rules every merchant learned, that result is impossible. Search matches strings, and no string in that sentence points at a pair of shorts.

The example comes from Shopify's own changelog, and it isn't a glitch. The engine underneath storefront search changed, and most catalogs haven't noticed yet.

The game we all learned

Storefront search used to be a matching game. The customer typed words, the engine looked for products containing those words, with a little prefix help on the last term so "snow" could find "snowboard".

Being findable was a craft of string placement. Synonyms went into tags. Misspellings went into tags. The tag field on a mature store reads like an archive of typos, lovingly maintained.

We built catalog operations on that model, and so did everyone else. If the machine matches strings, you feed it strings.

Someone swapped the engine

In June 2024, Shopify's changelog opened Semantic Search to the Shopify and Advanced plans through the free Search & Discovery app. Today the help center lists Grow, Advanced, and Plus. If your store qualifies, semantic understanding is simply part of online store search now; there is no switch to find.

The mechanism: an embedding takes your product's text and images and turns them into a long list of numbers, a point in a space where distance means similarity of meaning. The query becomes a point in the same space. The engine stops asking which products contain these words and starts asking which products sit near this meaning.

And it runs at platform scale. Shopify's engineering team describes pipelines generating roughly 2,500 embeddings per second, about 216 million a day, so an edited product gets re-read in near real time.

Nerd detail, skip freely: the pipelines are streaming Dataflow jobs, not nightly batches, because merchants expect an edit to be findable immediately. That freshness requirement is the whole reason the system is real-time.

Nobody typed 'shorts'. Search found them anyway. illustration 1

It reads the photos too

The help center is unusually specific about the inputs. Semantic understanding uses the product description plus image data, "text that's part of the image itself and colors". Straight from the pixels.

Shopify's own example: a search for "christmas party shoes" can surface red pumps. No product mentions christmas. The model connected christmas with red, and party shoes with pumps.

A product photo is now a search field.

Nobody typed 'shorts'. Search found them anyway. illustration 2

Missing keywords, missing meaning

Our first instinct was to file this under SEO with extra steps: keep stuffing, the model will sort it out. That instinct is backwards, and it took opening real catalogs to see why.

A description that says "Premium quality. Fast shipping. Order today." embeds to a point near every other description that says nothing. The old engine punished missing keywords. The new one punishes missing meaning, and meaning is exactly what thin product data doesn't have.

Across the 642,000+ SKUs we've processed, the most common defect is not wrong data. It's empty data: no material, no fit, no occasion, no use case, photos that quietly contradict the variant they're attached to. Under keyword search that was a conversion problem. Under semantic search it's a visibility problem, because the model can only embed what you gave it.

The fine print that decides if this is you

Semantic search runs on stores with fewer than 200,000 products, on the Grow, Advanced, and Plus plans, multilingual since September 2024, Japanese locale excepted. And it does not apply to predictive search: the suggestions under the search bar are still built from the words and phrases in your catalog, the old string machine.

Which means both engines are reading your catalog at once, and they want different things. The old one wants your strings. The new one wants your products to mean something.

What this asks of a catalog

  • Write descriptions that carry attributes a model can use: material, fit, season, occasion, use case. Meaning-bearing beats keyword-bearing.
  • Treat images as data. Colors and on-image text are being read, so a photo that contradicts its variant is now feeding the index.
  • Keep the synonym lists. Search & Discovery still uses them, and predictive search still lives on strings.
  • The work compounds: the same structured attributes feed Google, storefront filters, and now the vector.

Somewhere today a shopper is typing a sentence no merchant would ever put in a tag, and a model is deciding whether your products sit anywhere near it.

The shorts got found. Yours might not be.

If you want to know what the model sees when it reads your catalog, OKART's Infrastructure Stress-Test includes a product-data pass, read-only, delivered in 48-72 hours.

Sources

  1. Modifying search with Shopify Search & Discovery: semantic search requirements (product count, plans, locale, predictive search exclusion), the product attributes semantic understanding uses, and the christmas party shoes example.
  2. Semantic Search is now available on more plans: June 2024 rollout to more plans and the summer search example.
  3. Semantic Search now supports more languages: September 2024 multi-language expansion via the free Search & Discovery app.
  4. How Shopify improved consumer search intent with real-time ML: embedding pipeline throughput (2,500 per second, 216 million per day) and the real-time freshness requirement.
  5. Storefront search overview: AI-powered search behaviors, typo tolerance, and synonym groups in Search & Discovery.
  6. Storefront search parameters: prefix matching and storefront search query parameters.

Latest Stories

View all

Wholesale is a second catalog. Nobody staffs it.

Wholesale is a second catalog. Nobody staffs it.

Turn on Shopify B2B and nothing looks different. Same products, same admin, same dashboard. But behind the login there is now a second catalog, with its own prices and its own rules, and nobody's name on it.

Read moreabout Wholesale is a second catalog. Nobody staffs it.

The search box became a chatbot, and it has never heard of you

The search box became a chatbot, and it has never heard of you

Ask ChatGPT to recommend the kind of product you sell. It names three brands, none of them yours. The store ranks on Google, the reviews are real, and the machine cannot read you. Notes on what answer engines actually eat.

Read moreabout The search box became a chatbot, and it has never heard of you

642,000 SKUs later, every catalog has the same seven problems

642,000 SKUs later, every catalog has the same seven problems

Every store believes its catalog is a unique mess. We believed it too, for the first few projects. Then the field notes started photocopying themselves: the same seven problems, in every catalog we opened.

Read moreabout 642,000 SKUs later, every catalog has the same seven problems