Shopify Filters Vanishing? Decoding the 100-Value Limit & Metafield Migration Mysteries
Hey store owners! As someone who spends a lot of time in the Shopify community, I often see incredibly insightful discussions. Recently, a thread caught my eye that really dives deep into a common, yet tricky, migration challenge: getting your collection filters to play nice after a big move. Our friend Chadventure kicked things off with a classic head-scratcher, and the community really rallied to help.
Chadventure was in the middle of a massive undertaking, upgrading their theme and migrating over 97,000 comic products. Their old theme used a tag-based system (like Series_Batman), which they painstakingly converted to a new product metafield called series. After all that hard work, they noticed something weird: some series were showing up in their collection filters, but others, like "Batgirl," were just… gone. Shopify's AI helper suggested indexing issues, but after five days, that seemed less and less likely.
Is It Just Indexing? Probably Not!
Many merchants, myself included, often jump to "indexing delay" as the first culprit for missing products or filter values. And while it's a valid thought, especially with 97,000 products, the community quickly pointed out that five days is usually more than enough time for Shopify to re-index, even for a catalog that size. The problem likely lay elsewhere.
The real breakthrough came from a few sharp community members, particularly alaattincagil and DiegoCosta2428, who immediately suspected a common, but often overlooked, limitation: the Shopify Search & Discovery app's 100-value filter cap.
The 100-Value Filter Cap Explained
Here's the deal: Shopify's Search & Discovery app, which powers those handy collection filters, has a built-in limit. It will only display a maximum of 100 distinct values per filter on your storefront. If your collection has 150 different comic series, only the first 100 (based on internal sorting) will actually appear in the filter sidebar. The old tag-based systems often didn't have this display limit, which is why Chadventure only encountered it after the upgrade.
This is where the community's troubleshooting genius really shone. They suggested a super quick test to confirm if the data itself was fine, even if the filter wasn't showing it:
How to Confirm the Filter Cap with a URL Test:
- Pick a missing series: Find a series (like "Batgirl") that you know should be in your collection but isn't showing up in the filter sidebar.
- Manually add it to the URL: Go to your collection page URL (e.g.,
/collections/your-collection). Then, append a filter parameter to it. It will look something like this:/collections/your-collection?filter.p.m.custom.series=BatgirlImportant: Replace
your-collectionwith your actual collection handle. Also, ensurecustom.seriesmatches your metafield's namespace and key exactly. If your namespace isn'tcustom, use yours. The series name (e.g.,Batgirl) must also be exactly as it's stored in your product metafield. - Check the results: If products from that series now appear, and the series name pops up in the filter sidebar, then your data and Shopify's index are working perfectly! The issue is purely with the filter sidebar's display limit.
Chadventure tried this, and guess what? It worked! The "Batgirl" series showed up when specified in the URL. This was a huge confirmation: the products were there, the metafields were correct, and Shopify had indexed everything. The problem was indeed the display limit in the filter sidebar. Chadventure even noted that only 13 series were showing, reinforcing the idea of a display constraint.
Beyond the Cap: Other Critical Checks
While the 100-value cap was likely the primary culprit here, the community also highlighted other crucial checks that are essential for any metafield-based filtering, especially after a large migration. These are vital if your URL test *doesn't* bring back your missing products:
1. Deep Dive into Metafield Definitions and Values:
- Storefront Access: Your metafield definition for
series(or whatever you're using) must have "Storefront access" enabled. Without it, Search & Discovery can't use it. - Product Metafield: Filters only work with product metafields. Variant metafields, for instance, can't drive filters.
- Data Type: Ensure the metafield definition uses the correct data type (e.g., "Single line text" or "List of single line text") that matches how you've stored your series names.
- Value Consistency: With 97,000+ products, it's easy for script-written values to have subtle inconsistencies. Compare a working product's
seriesvalue with a missing one, character by character. Look for:- Trailing spaces
- Mixed casing (e.g., "Batman" vs. "batman")
- Apostrophe differences (e.g., "Batman's" vs. "Batmans")
- Product Publishing: Are the missing products actually published to your Online Store channel? Sounds basic, but it's an easy oversight!
2. Theme vs. Search & Discovery App:
- Theme's Liquid Code: The new theme's Liquid code might be handling filters differently than the old tag-based system. Waisal.riyan suggested checking the code that builds the filter options for any conditions skipping values.
- Test with a Default Theme: If you suspect your custom theme, try duplicating your live theme and testing the collection with Shopify's standard filtering interface on the duplicate. This helps isolate if it's the theme or the Search & Discovery app itself.
3. Shopify Search & Discovery Settings:
- Empty Values: Cuongnm_trooix brought up a setting under
Apps > Search & Discovery > Settings > Filters > Empty values. While unlikely for a series name, if products were out of stock, and this was set to "Hide," it could potentially affect things. It's a quick check to rule out. - Collection Size Cap: DiegoCosta2428 also reminded us that collections with more than 5,000 products show NO filters at all. If your "small" collection is still massive, this could be an issue too.
Solving the 100-Value Cap
If you've confirmed you're hitting the 100-value limit, don't despair! There are practical solutions:
- Break Down Large Collections: This is often the most effective approach. Instead of one giant "All Comics" collection, create sub-collections based on:
- Publisher (e.g., "DC Comics," "Marvel Comics")
- Era (e.g., "Golden Age," "Modern Age")
- First letter of the series (e.g., "Series A-C," "Series D-F")
- Add a Second Filter: You could introduce another filter, like "Publisher," to help customers narrow down their choices first. However, a caution from the community: a second filter doesn't always shrink the value list of the *first* filter, so splitting collections is generally a safer bet for managing the 100-value cap directly.
Chadventure's epic migration of 97,000 products was a huge accomplishment, and it's great to see the community jump in to help troubleshoot these nuanced issues. If you're considering starting your own online store or migrating to a more robust platform like Shopify, remember that detailed troubleshooting and understanding platform limitations are part of the journey. The key is systematic investigation: start with the easiest tests, confirm your data integrity, and understand how your theme and Shopify's built-in apps interact. You've got this!