The best practice for Shopify’s Search & Discovery app—specifically for large, diverse catalogs—is to organize your filters by Data Type, not by Product Line.
Here is the strategy to solve the “God-Filter” problem while staying within the 25-filter limit.
The Core Principle: Context-Aware Faceting
Shopify’s Search & Discovery app follows a “Sparse Data” rule: If none of the products on the current page have data for a specific filter, that filter is automatically hidden.
-
Scenario: You define a “Capacity (Liters)” filter and a “Clothing Size” filter.
-
Result: When a customer views your “T-Shirts” collection, the “Capacity” filter disappears (because shirts don’t have capacity data). When they view “Storage Bins,” the “Clothing Size” filter disappears.
You do not need to create manual “T-Shirt Size” or “Table Size” filters. You simply need to separate your data by its syntax (how the data looks).
The Solution: The “Data-Type” Taxonomy
Instead of creating 90 filters for 90 collections, or 1 giant “God Filter,” you should create roughly 10–15 Universal Metafields based on the nature of the measurement.
This allows you to cover all 90,000 items without hitting the limit. Here is a recommended structure:
1. Split “Size” by Syntax (3-4 Filters)
The “God Filter” problem usually comes from mixing dimensions (10x10) with standard sizes (XL) or volume (50L). Split them into distinct Metafield Definitions:
-
custom.apparel_size: For S, M, L, XL, or numeric clothing sizes.
-
custom.dimensions: For Length x Width x Height strings (e.g., “10x10x5”).
-
custom.capacity_volume: For Liters, Gallons, Ounces.
-
custom.shoe_size: (Optional) If you sell shoes, keep this distinct from apparel to avoid mixing “Size 10” (shoe) with “Size 10” (pants).
2. Consolidate “Attribute” Filters (3-5 Filters)
Some attributes are safe to mix because they share values across product lines.
-
custom.material: “Cotton” (Shirts) and “Wood” (Tables) can happily coexist in one filter. In a search result, seeing both is helpful context.
-
custom.color: Always keep this global.
-
custom.compatibility: Use this for “Version,” “Fits With,” or “Model Year.”
3. Use Boolean (Checkboxes) for Features (5-10 Filters)
Instead of a dropdown text list, use True/False Metafields for key features.
-
custom.is_waterproof
-
custom.is_eco_friendly
-
custom.made_in_usa
Why This Fixes Your Search Experience
You mentioned the issue where a generic search (e.g., “Blue”) brings up irrelevant filters. With the Data-Type strategy, the search experience becomes intuitive:
The filters act as a secondary category selector. The user effectively “chooses their path” by selecting the filter relevant to the item they want.
Implementation Plan
Since you admitted your data is “dirty” and inconsistent, you cannot implement this purely in the front end. You need to map the data first.
-
Define the 12-15 Golden Metafields: Go to Settings > Custom Data > Products and create the definitions above (Apparel Size, Dimensions, Material, etc.).
-
The “Migration” (Clean Up): You likely have this data currently stored in tags or a generic size field.
-
Tool Recommendation: Use an app like Matrixify (Excel-based).
-
Action: Export your products. Filter by your 9 Dummy Categories. Move the data from your messy legacy columns into the new accurate columns (e.g., Move “XL” to custom.apparel_size, move “10x10” to custom.dimensions).
-
Configure Search & Discovery: Add your new 12-15 Metafields as filters.
- Tip: You can rename the display labels. You could name both
apparel_size and dimensions as “Size” in the display, but I recommend keeping them distinct (“Size” vs “Dimensions”) to aid the user in Search results.