← All posts

Why your Shopify size filter shows sizes that are sold out

A Shopify size filter ignores stock on its own. Availability is a separate filter the shopper has to tick, and only then can Shopify check that the size they picked is in stock. Until they tick it, a size sold out on one product still returns that product, unless you build the collection from only the sizes in stock.

A shopper ticks size 8 on your trainers collection. Twelve pairs come back. The first one they open has 8 greyed out, and so does the second. A week into the season, your kids range is worse: every age size still sits in the filter, and half of them lead to a button that says Sold out.

Three shopkeepers point at glowing bottle shapes on a wall display and a shelf, one frowning at the sizes that are gone.

Why does a Shopify size filter ignore stock?

Availability feels like a product setting: a shoe is in stock or it isn't. Shopify doesn't file it that way. It tracks stock for each size and color, and the size filter reads sizes the same way.

So a size filter on its own asks one question: does this product come in size 8? A sold-out size 8 still answers yes. Tick a second filter, and a product has to match both. In stock is that second question, and nothing asks it until the shopper ticks the box.

Tick both, and Shopify checks the exact size the shopper picked. A shoe whose size 8 is sold out drops out of the results. A size with nothing left in stock in the collection counts zero, and the Empty values section in Search & Discovery's settings can hide it or move it to the end of the list. On 2026-09-15 we ran that test on a public store using Search & Discovery, without changing anything there. One size returned three products alone and two with In stock ticked, and the product that left was sold out in that size.

Three traps inside Shopify's own filter

Out of stock doesn't mean sold out. The Out of stock value returns any product with at least one size or color sold out. A tee in stock in every size but XS shows under Out of stock and under In stock at once. On the store we tested, four of the eight products under Out of stock still had other sizes or colors to sell.

Continue selling counts as in stock. A size set to Continue selling when out of stock can still be bought at zero, so a size on pre-order stays in the filter. That's right while you take pre-orders. It's wrong when the box was ticked by accident and never unticked.

A size filter built on tags can't see stock. Tags and details saved on the whole product describe the product, not one size. Pair a size-8 tag with In stock and Shopify only checks that the shoe has some size in stock. In stock can check the size only when sizes come from the product's Size option, a size detail saved on each size, or Shopify's Shoe size category field linked to that option.

Four fixes, and what each one costs

All four fixes below assume filters already work on your theme. The Dawn and Horizon walkthroughs cover that part.

Pre-tick In stock from the menu. Open each collection on your store, tick In stock, copy the address from your browser, and paste it as that collection's link in your menu. Shoppers arrive with In stock ticked, so the first size they pick checks stock. The cost: fully sold-out products disappear from that first view too, and a shopper can untick the box. Anyone landing from Google, or from an ad that points at the normal collection link, skips the menu and gets the unfiltered page.

Pay a developer to tick it for the shopper. A developer can make your theme tick In stock whenever a size is picked. You pay for their time, and a theme update drops the change when it clashes with the new version, so check it after every update. A quick version can also miss shoe sizes that come from Shopify's Shoe size category field.

Move a tag-based size filter onto the Size option. In Search & Discovery, add a filter whose source is the Size option, or a size detail saved on each size, and delete the tag filter. Shoppers see the same sizes, and In stock can check them, but only once it is ticked.

Build the collection from in-stock sizes. Since July 2026, a collection can use Variants instead of Products as its source, meaning only the sizes and colors that match a condition such as Inventory stock is greater than 0. Filters on that collection then offer only the sizes it includes, so the size filter skips sold-out sizes without In stock ticked. The cost: a product sold out in every size leaves the collection, a store can have at most 100 collections built this way, and a size on pre-order at zero stock drops out too. The Variants option is new, so test a sold-out size on one collection before you rebuild the rest.

One setting looks related and isn't. Search & Discovery's Out-of-stock products option hides sold-out products or lists them last in search results and in the suggestions that drop down as shoppers type, not on collection pages.

Can a size filter check stock without In stock ticked?

Sledge is a Shopify filter and search app that can check stock inside the size filter itself. In the display settings for Sledge filters, the switch Show out of stock variant filter items ships turned on. Switch it off, and a Size: M filter returns only products that still have M in stock. The size list offers only sizes with stock behind them. Nobody ticks In stock, and nothing needs redoing after a theme update. The count beside each size follows the same stock rule as the results.

Sledge counts a size as in stock whenever Shopify lets shoppers buy it, so pre-order and continue-selling sizes still count, as they do in Shopify. Sledge also checks size and color separately. Pick Red and M, and a product whose Red M is sold out can still appear while other Red sizes and other M colors are in stock. Sizes saved as tags or as a detail on the whole product can't be checked size by size here either.

Fully sold-out products have two settings of their own in Sledge: one hides them, one moves them below everything in stock. The sort guide compares the two. The filter comes with every paid plan, from Pro at $29.99 a month after a 14-day free trial.

Shopify alone, a free fix, or Sledge?

Shopify alone Menu link or developer fix Sledge, switch off
Size picked alone Returns sold-out sizes, unless the collection is built from in-stock sizes Checks stock, because In stock is already ticked Checks stock
Size plus In stock Checks the size picked Checks the size picked Nothing extra to tick
What the shopper sees first Sizes sold out on some products, until In stock is ticked or the collection is built from in-stock sizes From the menu, In stock pre-ticked, and it can be unticked; a developer's fix ticks it when a size is picked Sizes with stock only
Pre-order and continue-selling sizes Count as in stock Count as in stock Count as in stock
Size plus color, that one pair sold out Test it on your store Test it on your store Can still show the product
After a theme update Unchanged Menu link holds; a developer's change may need redoing Unchanged
Price Free Free, plus a developer's time From $29.99/month, 14-day free trial

If sizes rarely sell out, the menu link is enough and costs nothing. If a kids range turns over every week, the filter should check stock without asking the shopper to.

// FAQ

Questions, answered

Does Shopify's In stock filter check the size the shopper picked?

Yes, when the size filter is built on the Size option, a size detail saved on each size, or Shopify's Shoe size category field linked to the Size option. Shopify then drops products whose picked size is sold out. A size filter built on tags or a detail saved on the whole product can't do that, so In stock only checks that some size is available.

Can In stock be ticked by default in Search & Discovery?

Not from a setting. Search & Discovery has no option to pre-select a filter value. The workaround is a menu link: open the collection, tick In stock, copy the address from your browser, and use it as the collection's link in your menu. Shoppers arrive with In stock ticked. It also hides fully sold-out products on that first view, and a shopper can untick it.

Why does a product that is still in stock show under Out of stock?

Because stock is checked size by size and color by color. The Out of stock value returns any product with at least one size or color sold out, so a tee in stock in every size except XS appears under Out of stock and under In stock at the same time. Only a product sold out in every size and color appears under Out of stock alone.

Do pre-order sizes count as in stock?

Yes, when the pre-order works by letting a size sell at zero stock. Shopify's Continue selling when out of stock setting keeps that size available to buy, so the In stock filter counts it, and so does Sledge, which follows the same setting. To count a size as sold out at zero, untick that setting for that size.

Sell the sizes you still have.

Start the 14-day free trial, turn on Sledge filters, and switch one setting to filter sizes by stock. On Pro and up, Growth Intelligence puts a dollar estimate on the next fix.

14-day free trial · No code · Works with any theme · Uninstalls clean