A client called me last spring convinced their filters were broken. They sold outdoor gear — maybe 800 products — and the "Material" filter on their collection pages was only surfacing about 40 of them. Everything else just vanished when you clicked "Merino wool" or "Gore-Tex."
The filters weren't broken. The data was.
This is one of the most common and least understood problems on Shopify, so it's worth explaining what's actually happening under the hood.
How Shopify filtering actually gets its data
Storefront filters (the "Filter" sidebar on collection and search pages) are powered by the Search & Discovery app — Shopify's free first-party app — and they can only filter on structured product data. That means:
- Product options and variants (Size, Color, and so on)
- Tags
- Metafields that you've explicitly enabled as filters
That last one is the piece people miss. A metafield is a structured field attached to a product — "Material: Merino wool," "Waterproof rating: 10k," "Fit: Relaxed." If the information lives in a metafield, Shopify can build a filter from it. If it only lives in the paragraph of description text, Shopify can't see it as an attribute at all.
So back to my client. Their "Material" field was populated for the 40 newest products, added after someone set up the metafield. The other 760 had the material written into the description ("...built from premium merino wool..."), which is great for a human reading the page and completely invisible to the filter engine.
The usual culprit, said plainly
Your attributes are trapped in prose.
Descriptions are written for people. Filters, search, collection rules, and — increasingly — the AI assistants that answer shopping questions all need the same facts as structured fields. When a product's real attributes only exist as sentences, every one of those systems is flying blind.
Fixing it without losing a month
You don't need to boil the ocean. Here's the order I'd go in:
1. Decide which attributes matter — per category. Apparel needs material, fit, and care. Electronics need compatibility and connector type. Don't invent 30 attributes; pick the 4–6 that shoppers actually filter by in your niche.
2. Create the metafields. Settings → Custom data → Products. Use the right type (a "single line text — list" or a defined choice list beats free text, because consistent values are what make a clean filter — "Blue" and "blue" and "navy blue" will show up as three separate filter options otherwise).
3. Backfill the existing catalog. This is the tedious part. For a few dozen products, the bulk editor is fine. For hundreds, export a CSV, fill the metafield columns, re-import — or use a tool that reads your existing descriptions and generates the attributes for you. (That's the whole reason we built Product Attributes AI: it reads what's already in your catalog and fills the structured fields so you're not doing 800 products by hand.)
4. Turn the filters on. Open Search & Discovery → Filters, add your metafields, and set how they display. This step does nothing until the data underneath exists, which is why so many people enable a filter and see empty results.
Why this is worth more than just filters
Here's the part that makes the tedium pay off. The same structured attributes feed a lot more than the filter sidebar:
- On-site search gets dramatically better when "waterproof jacket under $200" can match real fields instead of guessing from text.
- Automated collections can use rules like "Material is Merino wool" to build themselves.
- Rich results and AI answers. When someone asks ChatGPT or Google's AI for "a beginner snowboard under $400," the engines that can actually answer are reading structured product data and schema, not your description prose.
So it's not really a filter project. It's a "make your catalog machine-readable" project, and filters are just the most visible symptom that it's not.
A 10-minute audit you can run right now
Open a busy collection on your live store, click a filter, and count the results. Then go into the admin and check how many products in that collection actually have the matching metafield populated. If those two numbers are far apart, you've found your problem — and it's the same one my outdoor-gear client had.
The good news: unlike a lot of store issues, this one has a definite fix. Structure the data once and every downstream system — filters, search, collections, AI — gets better at the same time.