Shopify catalog prep for Black Friday: freeze it early
Every filter, swatch, and badge on your Black Friday sale reads a value stored on a product. Blank values and mismatched option names drop products out of the sale without erroring, and an edit takes up to 48 hours to reach the storefront. Audit the sale set, then set the date it stops changing.
You fix the spelling on a few hundred products on a Thursday night, refresh the collection, and the old values are still sitting there. Nothing failed loudly. So you assume the edit did not save, and you do the whole thing again.
Which product fields does your sale actually depend on?
Fewer than you think. Your filters read metafields, tags, variant options, vendor, and price. Badges read stock levels and the compare-at price. Sorting rules read inventory.
A field nothing reads can stay messy until January. A field your sale reads has to be right before you build the sale, because the sale gets built on top of whatever it says. That is the whole triage.
So the first thing you write is a list. Six fields, maybe eight. Write it before you open a single product, or you lose an afternoon tidying a description nobody filters on.
How long does a catalog edit take to show up?
Up to 48 hours. Shopify's own troubleshooting asks you to wait 24 to 48 hours for automatic reindexing before you treat a filter change as broken, and suggests a trivial edit and save to force one product through sooner.
That number is what turns a freeze date from discipline into arithmetic. An edit made on the 26th is not guaranteed to be live on the 27th. Count back from that, not from the hour your campaign goes out.
Which explains the Thursday night. The edit saved. It just had not been indexed, and doing it twice did not make it faster.
The eight-week checklist covers where the freeze date sits in the plan. The reason for it is narrower: your storefront runs a day or two behind your admin, and the last two days of November are the worst possible time to find that out.
How do you audit four hundred products without opening four hundred?
Export them and count columns instead. Product metafields appear in the product export as their own columns, but only once their definitions exist under Settings, Custom data. Variant metafields never appear there; those live in the variant bulk editor.
Then six counts. Most of them are a sort and a glance.
A count you can read in one row beats an afternoon of spot checks, because a spot check only ever finds the products you happened to open.
| What to count | Where you read it | The number that means trouble |
|---|---|---|
| Blank values per field | One column per field in the export | Any blank on a product going into the sale |
| Product option names | The option-name column, sorted | Two spellings of the same name, like a stray colon |
| Distinct values per field | The same column, deduplicated | Two entries separated only by a space or a plural |
| Products with no compare-at price | The compare-at column | Any product you intend to discount |
| Products in the sale collection | The collection page count | Anything approaching 5,000, where filters stop rendering |
| Filters already configured | Search and Discovery | Anything near 25, which is the whole store's budget |
Shopify tags are not case sensitive, so Approved and approved are the same tag and never split into two filter rows. Casing sprawl lives in metafield values and option names instead. Tag sprawl is a different animal: past 5,000 unique tags the admin stops suggesting them as you type, so you retype from memory and invent near-duplicates.
Which of your filters disappear for a shopper in another country?
Three of them, and Shopify documents each one plainly. The price filter does not display for currencies other than your store's default. The product tag filter only displays to shoppers browsing in your default language. Vendor filter values are always drawn from the default language, whatever the shopper picked.
Cross-border made up 16% of global orders across Shopify stores over BFCM 2025, per Shopify's press release published 2 December 2025. Not an edge case.
Nothing in your admin flags a filter that is missing for part of your traffic, and it looks correct in your own browser every time you check.
The test costs two minutes. Open your sale collection in a second market and a second language, then count the filters against what you see at home.
What should a catalog freeze forbid, and who does it bind?
Not everything, or nobody will honor it. Prices move. Inventory moves. Images and descriptions can be improved all the way to launch night.
What stops is narrower, and odd enough that it has to be written down: renaming an option, editing a value a filter reads, introducing a value that does not already exist, and bulk tidy-ups of any kind.
It binds everyone with product edit access, and that list is usually longer than the people in the room. Whoever runs the supplier import is on it. So is whoever fixes a typo when a customer emails about one.
Products still have to launch during those weeks, and they can. One built from values that already exist slots into the filters you have. One carrying a brand new value adds a filter row nobody has previewed and restarts the reindex clock.
Sledge builds filter groups from the metafields, tags, variant options, vendor, and price your catalog already carries. Case and spacing variants collapse on their own; genuinely different spellings you merge yourself, and you pick the label shoppers see. Each value carries a product count from the same request as the results, and a value matching nothing drops off the list rather than sitting there as a dead end. That does not excuse the audit. It does mean the mess you find has somewhere to go that is not a spreadsheet and a prayer.
Seven checks, and then you stop editing
- Write the field list first. Only what your filters, swatches, badges, and sorting rules read. Six or eight lines.
- Export the sale set, not the catalog. Define your metafields first, or their columns will not be in the file.
- Sort each column and count twice. Once for blanks, once for values that differ by a space, a colon, or a plural.
- Fix in bulk, then stop touching it. Give the reindex its 48 hours before you judge whether the fix worked.
- Open the storefront in a second currency and a second language, and note which filters vanish.
- Name the freeze date and the four edits it blocks, then send it to everyone who can edit a product.
- Agree what happens to a product that launches mid-freeze, before one does.
Questions, answered
Do I need to clean up my whole Shopify catalog before Black Friday?
No, and trying to is how the useful work runs out of time. Only the products going into the sale matter, and only the fields your filters, swatches, badges, and sorting rules read from them. A field nothing reads can stay messy until January without costing you a sale.
How long does a Shopify product edit take to show on the storefront?
Up to 48 hours for anything filters depend on. Shopify's own troubleshooting asks you to wait 24 to 48 hours for automatic reindexing before treating a filter change as broken. An edit made on 26 November is not guaranteed to be live for the sale on the 27th.
How do I find inconsistent product values across my Shopify catalog?
Export the products and count distinct values per column. Shopify's own guidance is that product option names have to match exactly across products, so "Color" and "Color:" behave as two different things. A sorted column shows both sitting next to each other in seconds.
Are Shopify tags case sensitive?
No. Shopify treats Approved and approved as the same tag, so casing is not where your duplicates come from. Look instead at metafield values and product option names, which do have to match, and at tags that differ by a real word rather than a capital letter.
What should a catalog freeze actually forbid?
Not every change. Prices, inventory counts, images, and descriptions can keep moving. What stops is anything a filter reads: renaming an option, editing a metafield value, adding a value that does not already exist, and bulk tidy-ups of any kind.
What if a new product has to launch during the freeze?
Launch it, but only with values that already exist elsewhere in the catalog. A new product reusing known values slots into the filters you already built. A new product carrying a new value adds a filter row nobody has seen and starts the reindex clock again.
How early does catalog work have to be done for BFCM?
Earlier than the freeze date alone suggests, because your storefront lags your admin. Shopify asks for 24 to 48 hours of reindexing before a filter change is guaranteed to show, so the last safe edit is two days before your first campaign lands rather than two days before the sale.
Why do some of my filters not show for international shoppers?
Three of them are scoped to your defaults and Shopify documents each one. The price filter does not display for currencies other than your store's default. The product tag filter only displays in your default language. Vendor filter values always come from the default language too.
The audit is a morning. The rebuild is a week.
Install free. On a paid plan, Growth Intelligence reads your catalog, searches, and orders, then names the fix worth making with a dollar estimate built from your own numbers and published uplift rates. It measures what that fix earned after.
14-day free trial · No code · Works with any theme · Uninstalls clean