A practical guide to Shopify Search & Discovery filters: the limits that shape your plan, which filter sources to pick, how to clean values, AND versus OR logic, swatches, and a worked setup for two real catalogues.
Shopify Search & Discovery filters are the controls a shopper uses to narrow a collection or a search result down to the products that fit: their size, their budget, the metal they wear, the fabric they want in May. Set up well, they turn a page of 300 products into the 12 that matter to one person. Set up badly, they become a column of meaningless tags, a size list that reads L, M, S, XL, XS, and a colour filter offering both 'Navy' and 'navy blue'. This guide walks through how Shopify's filters actually work, the limits that should shape your plan before you add a single one, and the setup we would use for two quite different catalogues.
How filters behave here comes from Shopify's Help Center and its developer documentation on storefront filtering. Filters are configured in the admin but drawn by your theme, so where something depends on the theme, we say so.
What filters do, and what they don't
Filtering, sorting and collections are three different tools that merchants often mix up, so it is worth separating them first. A collection decides which products belong on a page. Sorting decides the order those products appear in. Filters let the shopper remove products from view, temporarily, based on attributes they choose. None of them replaces the others.
- A collection called 'Gold Earrings' answers the question: what is on this shelf?
- The sort order answers: which of those does a visitor see first?
- Filters answer: of those, which fit me? 'Under ₹25,000', 'Studs', 'In stock'.
That last point has a practical consequence. When a shopper applies filters, the remaining products still appear in an order, and that order comes from the page's sort. A filter that cuts 300 products to 40 has not decided which of the 40 comes first. If your sort is poor, a filtered page inherits the problem. We come back to this at the end, because it is where filters and merchandising meet.
Shopify's developer documentation also describes how filters combine. Different filters use AND logic, and values within the same filter use OR logic. So choosing Colour: Red and Size: M returns products that are red and available in M, while choosing Colour: Red and Colour: Green returns products that are red or green. That default suits most stores, and we cover the one exception, AND logic within a filter, further down.
Shopify Search & Discovery filters: the limits that shape your plan
Before you open the app, know the ceilings. Shopify's Help Center lists them, and several of them change what a sensible setup looks like.
- A store can have a maximum of 25 filters. That is store-wide, not per collection, so a jewellery store and its gift cards share the same 25.
- Each filter source can be used only once per store. You cannot make two different filters from the same metafield.
- A filter shows at most 100 values on the storefront. The app can hold up to 1,000.
- Collections that contain more than 5,000 products do not display filters, and searches with more than 100,000 results do not display filters either.
- Tag filters can draw on up to 5,000 unique tag values, and product option or attribute filters on up to 1,000 unique values.
- Grouped values are capped at 200 values per group and 1,000 groups across the store.
- Values for the Vendor and Tags filters are not translated. They show in the store's default language only.
- The price filter is not available for currencies other than the store's default currency.
Two of these deserve attention from Indian stores in particular. If you sell in English and Hindi, or in English plus another language through Shopify Markets, the Tags and Vendor filters will show English values to every shopper, which is a good reason to build filters from metafields instead. And if you sell abroad with local currency prices, international shoppers will not see a price filter, so do not lean on it as your only budget tool; collections such as 'Gifts under ₹5,000' still do that job for domestic visitors and in navigation.
Choosing filter sources: the decision that matters most
Shopify's Help Center groups filter sources into standard filters, which every store has, and custom filters built from your own data. The standard filters are Availability, Category, Price, Product type, Tags and Vendor. Custom filters can be built from product options, product metafields, category metafields, variant metafields and standard product attributes from Shopify's product taxonomy. Metafield filters work with these value types: single line text, a list of single line text, decimal, integer, true or false, metaobject reference, and a list of metaobject references.
Which source you choose decides how much clean-up you will be doing for the next two years. Here is how we think about each one.
- Availability. Almost always worth having. It lets a shopper hide what they cannot buy today, which matters most in catalogues where sizes sell out unevenly.
- Price. Useful when your price range is wide. In a catalogue where everything costs between ₹799 and ₹1,299, a price slider adds clutter and little else.
- Product type and Vendor. Fine if your data is already consistent. Vendor only makes sense to a shopper if you stock several brands; a single-brand D2C store should not show it.
- Category. Built on Shopify's Standard Product Taxonomy, so it is consistent by design, but the category names are Shopify's, which may be more generic than your shoppers' vocabulary.
- Tags. The quickest to start and the hardest to keep tidy. Every tag on every product can surface as a filter value, including the internal ones your team uses for operations.
- Product options. The natural source for size and colour, because they are already set on variants. Values come from whatever your team typed when creating variants, so 'M', 'Medium' and 'm' can all appear.
- Product and variant metafields. The most controlled option. You define the field once, decide its type, and every product uses the same values. More setup up front, far less cleaning later.
- Category metafields. Attributes attached to a product's taxonomy category, such as neckline or sleeve length for a shirt. Shopify says some are added automatically from AI predictions and others are suggested. They are backed by metaobject entries, so editing an entry, for example renaming 'black' to 'graphite', updates it on every product that uses it.
The rule we follow: use product options for the attributes that are genuinely variants (size, colour, length), use metafields or category metafields for the attributes that describe the whole product (material, occasion, fit, stone), and use tags as a filter only when the tag list has been designed to be shown to customers. A tag filter shows your tag list to the world, so it had better be a list you would print.
How to add a filter in the Search & Discovery app
Search & Discovery is Shopify's own free app. If it is not installed, install it from the Shopify App Store first; your theme also needs to support filters, which current Online Store 2.0 themes generally do. Shopify's Help Center gives the path as follows.
- 1In the Shopify admin, go to Apps, then Search & Discovery.
- 2Click Filters, then Add filter.
- 3Choose the filter source, for example Availability, a product option such as Size, or a metafield such as Material.
- 4Optionally rename the filter label, choose its logic, add a visual display, group values and set how values are sorted.
- 5Click Save, then open a collection on your storefront, on a phone as well as a laptop, and check what shoppers actually see.
To rename an existing filter, open it from the Filters list and change the Filter label field. This is worth doing more often than people think. A metafield called 'custom.metal_type' or an option called 'Ring Size (US)' can be shown simply as 'Metal' or 'Ring size'.
Cleaning filter values: grouping, sorting and empty values
Most bad filters are not bad because of the source. They are bad because of the values. Three settings fix most of it.
Grouping. In the filter's settings, select several values and click Create group, then name the group. 'Navy', 'Dark Blue' and 'Ink' can become 'Blue'. 'Yellow Gold 18K' and '18K Yellow Gold' can become one value. Grouping changes what the shopper sees without editing hundreds of products, which makes it the fastest repair for a messy catalogue. It is still a repair, so fix the product data underneath when you can.
Sorting. By default, values are sorted automatically in ascending alphabetical or numerical order. That is right for most text values and wrong for sizes: alphabetically, L comes before M and S, and XS lands at the end. Under the Sort section, choose Manually and drag the values into the order a shopper expects, XS to XXL or 5 to 22 for ring sizes. Shopify also offers a 'Reorder for me' option that suggests an order for you, which is worth checking rather than accepting blindly.
Empty values. Under Apps, Search & Discovery, Settings, the Filters section has an Empty values setting with three choices: hide them, show them at the end, or show them in the default order. Hiding empty values is the tidier choice for most stores, because a shopper who taps 'Emerald' and gets zero results learns to stop using your filters.
AND versus OR logic within a filter
By default, picking two values in the same filter widens the results: Red or Green. Shopify lets you switch to AND logic for three kinds of filters only: product tags, metafield lists and metaobject reference lists. With AND, the shopper only sees products that match every selected value.
When is that useful? When a product can genuinely hold several values at once and shoppers want all of them. A 'Features' list metafield on skincare holding 'fragrance-free', 'vegan' and 'non-comedogenic' is a good candidate: someone who ticks two of those wants products with both, not either. A 'Colour' filter is a bad candidate, because a shopper who ticks Red and Green almost always means 'show me either'.
Colour and image swatches
Text values work, but a row of colour swatches is faster to scan on a phone. Shopify supports swatches and images in filters, and the setup has specific requirements: the filter must be built from a metaobject-based metafield (a category, product or variant metafield that references metaobjects), the metaobject needs either a colour field or an image field holding a single value, it needs a field that names the value, and storefront access must be turned on for both the metaobject and the metafield definitions.
- 1In Apps, Search & Discovery, Filters, click Add filter.
- 2Choose a metafield-type filter source that references metaobjects, such as a colour category metafield.
- 3Check Include visual.
- 4Choose Swatch for colours or patterns, or Image for icons and logos, then select the fields that hold the colour or image and the name.
- 5Save, and check the result on a phone, where swatches are smallest.
Category metafields are often the easiest route, because the colour category metafield already uses metaobject entries.
Worked example 1: an Indian jewellery store with 600 products
Imagine a store selling gold, silver and lab-grown diamond jewellery, around 600 products across rings, earrings, pendants, bangles and chains. Ring sizes and chain lengths are variants. Everything else describes the whole product. Here is the filter set we would build, in the order we would show it.
- Availability, so a shopper can hide sold-out pieces.
- Price, because the range runs from a few thousand rupees to well over a lakh.
- Metal, from a metaobject-backed metafield with values Yellow Gold, White Gold, Rose Gold and Silver, shown as swatches.
- Purity, from a single line text metafield: 14KT, 18KT, 22KT, 925 Silver. Sorted manually so it reads logically.
- Stone, from a list metafield, because a piece can carry diamonds and emeralds at once: Diamond, Ruby, Emerald, Sapphire, Pearl, No stone.
- Occasion, from a list metafield: Daily wear, Office, Wedding, Gifting. Kept to a handful of values your shoppers would use.
- Ring size, from the product option, sorted manually in numerical order.
- Style, for example studs, hoops, drops, from a single line text metafield, so it only shows meaningful values in the earrings collection.
That is eight filters out of 25, leaving room for future needs. Notice what is missing: no Tags filter, no Vendor filter for a single brand, and no 'Collection' or 'Gender' filters that just repeat the navigation. Every filter maps to a question a shopper actually asks in a jewellery store: what metal, what budget, what for, what size.
Worked example 2: an apparel brand with sizes that sell out
Now take a D2C apparel brand with 250 styles, each in five to seven sizes and a few colours. The single biggest frustration for its shoppers is falling in love with a product and then finding their size gone. The filter set changes accordingly.
- Size first, from the product option, sorted manually XS to XXL. In apparel, size is the filter shoppers reach for before anything else.
- Availability, so a filtered size shows only what can be bought.
- Colour, from a colour category metafield with swatches, values grouped so 'Off-white', 'Ecru' and 'Cream' appear as one choice if your shoppers do not distinguish them.
- Fit, from a single line text metafield: Relaxed, Regular, Slim.
- Fabric, from a list metafield: Cotton, Linen, Modal, Blends.
- Price, only if the range is wide enough to be worth it.
One subtlety with size: a size filter is built from variant options, so check on your own storefront how a filtered result treats a product whose chosen size is sold out but whose other sizes are in stock. Pairing Size with Availability is the reliable way to give shoppers 'my size, in stock' without guessing at theme behaviour.
Filters on mobile: what to check
On a phone, filters usually live behind a button that opens a drawer, so a shopper sees none of them until they tap. That changes the priorities. On your own phone, with a real collection open, check the following.
- Can a shopper find the filter button without scrolling? If it disappears once they scroll the grid, they will not come back up for it.
- Is the most useful filter first? In apparel that is Size; in jewellery it is often Price or Metal. Check the order your theme shows them in.
- Are long value lists usable? A Tags filter with 60 values is unusable in a drawer.
- Is it obvious which filters are applied and how to clear them?
Filters, URLs and SEO
When a shopper applies a filter, Shopify reflects it in the page URL through parameters. Shopify's developer documentation gives examples such as filter.v.option.color=red for a variant option, filter.p.product_type=shoes for product type, filter.v.price.gte=20.40 for a minimum price, filter.p.m.custom.made_in=canada for a product metafield and filter.v.availability=1 for availability. That makes filtered views shareable, which is handy: you can link an Instagram story to a collection already filtered to one colour.
It also means each combination of filters produces another URL. Do not try to make those filtered URLs rank as landing pages. If 'gold hoop earrings' is a search worth winning, build a real collection for it, with its own title, description and handle, rather than hoping a filtered URL gets picked up. Filters are for shoppers who have already arrived.
Honest trade-offs
- Metafield filters take longer to set up than tag filters, because every product needs the field filled in. A tag filter can be live in five minutes and messy for years.
- Too many filters slow decisions on mobile. Eight good filters beat twenty mediocre ones, and the 25-filter cap is a ceiling, not a target.
- Grouping values hides bad data without fixing it. It is the right first step and the wrong last one.
- Swatches look better but depend on metaobjects and storefront access being set up properly. If the setup is not done, text values are perfectly good.
A 30-minute filter audit
- 1Open Apps, Search & Discovery, Filters and list every filter you have, with its source.
- 2Delete or hide any filter that repeats your navigation or that a shopper would not understand.
- 3For each remaining filter, open the values and group any duplicates or near-duplicates.
- 4Set manual sorting on every size-like filter: clothing sizes, ring sizes, lengths, purity.
- 5Set empty values to Hide under Settings unless you have a reason not to.
- 6Check your three biggest collections on a phone: filter button visible, best filter first, value lists short.
- 7Count products in any collection where filters do not appear; anything above 5,000 will not show them.
- 8Write down which attributes you want as filters next quarter and add the metafields to new products now, so the data exists when you need it.
Where filters stop and sort order starts
Filters help a shopper narrow down. They do not decide what appears first in what remains. A shopper who filters a 600-product jewellery store to 'Gold, Earrings, under ₹30,000' may still see 80 products, and on a phone only the first four to six are visible before the first scroll. Those products come from the collection's sort order. If that order is 'Best selling' on all-time numbers, or the order products were uploaded in, the filter has done its job and the page still shows the wrong things first.
That is the problem we built SellRank to solve. SellRank, our Shopify collection-sorting app, ranks the products in a collection by real performance, such as views, add-to-carts, orders, revenue, conversion rate or profit, and writes that order into Shopify's own manual sort. Because the order lives in Shopify itself, filtered results draw on it like any other sort order, with no theme edits and no code. You can preview the exact order before syncing, pin or demote products by hand, and set it to re-sort daily or weekly on the Grow plan and up.
If your filters are now clean and you want the products that remain to appear in the order that sells, see SellRank at /products/sellrank. There is a free plan for one collection with the full editor and live preview, so you can see the difference on your own store before deciding anything.
