Shopify code freeze before Black Friday

A Shopify code freeze is the date after which nobody touches your theme, your apps or your checkout until the sale is over. Black Friday 2026 is 27 November and Cyber Monday is 30 November, so the sensible freeze date this year is Friday 20 November. Not because change is bad. Because on 28 November you need to be able to say, with certainty, that whatever just went wrong did not go wrong because someone edited a Liquid file at midnight.
A freeze is not a blanket “change nothing” rule though, and treating it that way is how stores end up unable to fix a typo in a shipping banner. The useful version sorts changes by how fast you can undo them. A theme code edit is slow to undo under pressure, while apps that run as theme app extensions, like Rubik Variant Images, which filters the product gallery per variant, never write into your theme files at all.
That distinction is the whole post. One class of change can be rolled back in seconds, one takes an engineer and an hour, and the freeze exists to keep the second class away from your busiest weekend.
Shopify does this to itself, by the way. Their engineering team runs a feature freeze starting several weeks before BFCM, then tightens to a full code freeze in the final days where only critical fixes ship and everything else waits. That is the platform your store runs on, deliberately going quiet. Most merchants do the opposite and ship their biggest theme change of the year in the third week of November.
The short version
Short answer: freeze on Friday 20 November 2026, a week before Black Friday. Sort every pending change into code (frozen), settings (frozen but recoverable) and content (open all weekend). Anything that edits theme files stops first. Apps that run as theme app extensions never touch those files, so they carry far less freeze risk.
In this post
- What a Shopify code freeze actually covers
- Setting the date, counted backwards
- Three risk tiers, sorted by how fast you can undo them
- Why theme app extensions are the safe class
- The rollback plan you write before you need it
- What you can still change during the freeze
- Thaw day
- FAQ
- Related reading
What a Shopify code freeze actually covers
Borrowed from software release management, where the point was never caution for its own sake. It was diagnosis. When ten things change on Tuesday and something breaks on Wednesday, you have ten suspects and no time. When nothing changed, you have one suspect: load.
On a Shopify store the freeze covers five things. Theme code, whether hand edited or via a theme update. App installs and uninstalls. Checkout customisations and Shopify Functions. Anything touching the cart. And the payment or shipping configuration, which is the one people forget until a carrier rate stops calculating on the busiest morning of the year.
What it does not cover: product data, inventory, prices, discount codes, collection membership, banners, blog posts, email. Those change constantly during a sale and that is fine, because none of them can take the storefront down.
The practical consequence is that everything you want live for BFCM has to be finished, installed and tested before the date. If you have been meaning to fix variant swatches or a duplicated collection grid, that work belongs in October. Rubik Variant Images assigns a separate image set to each variant and filters the gallery on selection, and takes minutes to set up on one product, but the point of doing it early is not setup time. It is having a week of real traffic on the finished thing. Free plan, 5.0 stars across 435 reviews.
Setting the date, counted backwards
| Date (2026) | Gate | What closes |
|---|---|---|
| Fri 16 October | Build window closes | New features, new sections, new page templates. Anything a designer is still arguing about. |
| Fri 30 October | Install window closes | Last date to install or remove an app. Theme updates stop here too. |
| Fri 13 November | Configuration locked | Settings, styling, swatch shapes, section ordering. Content and data still open. |
| Fri 20 November | Code freeze | Critical fixes only, with two people signing off on each one. |
| Tue 1 December | Thaw | Not 30 November. Cyber Monday orders are still being placed at midnight. |
Two arguments about this table, both of which I will lose with somebody every year.
The first is 30 October for app installs. It feels aggressive. It is not, because an app’s real behaviour under load is not visible on the day you install it, and because uninstalling an app in November can leave orphaned settings behind that are harder to spot than the app was. Audit the stack once in October with the free app detector, decide what stays, and be done. If two apps are writing to the same variant picker you want to find that out in October, not on the 27th.
The second is thawing on 1 December instead of 30 November. Cyber Monday is a full day in every timezone you sell to. Shipping a change while the west coast is still checking out is a strange way to celebrate.
Three risk tiers, sorted by how fast you can undo them
Rank changes by rollback speed rather than by how big they feel. It produces a different, better order.
- Red, rollback measured in hours. Theme code edits, theme version updates, app installs and uninstalls, checkout extensions and Functions, anything touching the cart. These stop at the freeze, full stop.
- Amber, rollback measured in minutes. App settings, theme customiser settings, section ordering, swatch styling. Recoverable, but only if somebody wrote down what the value was before. Frozen by default, changeable with a note in a shared document.
- Green, rollback measured in seconds. Product titles and descriptions, images, prices, inventory, collection membership, discount codes, banner text, metafield values. Open all weekend. This is where your merchandising energy should go.
Notice how much lives in green. A common mistake is freezing so hard that the team stops merchandising, which is the one activity that actually moves numbers during a sale. You can reorder a collection, swap a hero image, change a price and rewrite a headline at 9am on Black Friday without any of it being a risk. Do that instead of touching Liquid.
Why theme app extensions are the safe class
Here is the technical distinction that decides which tier an app lands in, and it is worth knowing because app listings rarely spell it out.
The old model was script injection: the app pastes code into your theme files, or asks you to. That code is now part of your theme. Uninstall the app and the code often stays behind. Update the theme and the code is gone. Roll the theme back and you are restoring a snapshot that may or may not include it. Every one of those is a red tier event.
Theme app extensions work the other way round. The app’s code lives in the app, the theme just declares a slot, and your theme files are never written to. Which means rolling a theme back does not lose the app, updating a theme does not delete it, and the data (in the Rubik apps’ case, image assignments and product groups) sits in metafields on your products rather than in the theme at all.
That property is worth more in November than in any other month. If you do end up in an emergency theme rollback on the Saturday, an extension based app comes back with the restored theme and its configuration intact. You enable the embed and check placement, which is minutes, not a rebuild. The same holds on the collection side: Rubik Combined Listings stores product groups in metaobjects rather than in theme code, for the same reason.

None of this makes an extension based app risk free. It has to be installed and tested before the freeze like anything else. It just means the failure mode is “placement looks slightly off” rather than “the theme will not compile”.
“I’ve been using this app for awhile now, so I can confidently give this 5 stars. It’s everything I wanted and more. I had one small bug show up and Ümid found and fixed it within 2 minutes… seriously. Don’t hesitate on adding this to your store!”
Anonymous merchant, November 2025, Rubik Variant Images on the Shopify App Store
The rollback plan you write before you need it
Nobody writes this. Everybody needs it exactly once, at the worst possible time, and by then the person who knows the answer is asleep in another timezone.
It is a one page document. Six lines:
- The known good theme. On freeze day, duplicate the live theme and name it with the date, something like “BFCM 2026 frozen 20 Nov”. Do not touch it again. This is your restore point.
- Who can publish a theme. Names, not roles. Check they still have access, because staff accounts get pruned in October more often than you would think.
- The app list with support channels. Which apps are load bearing, and how you reach each vendor at 2am. Some answer in minutes over the weekend, some do not answer until Tuesday. Know which is which before you need to.
- The settings snapshot. Screenshot the app settings screens that matter. Recovering a swatch configuration from memory at 3am is a bad time.
- The decision rule. Written in advance: what level of breakage justifies a rollback, and who calls it. Deciding this during the incident always takes too long.
- The monitoring you will actually look at. One dashboard, one alert. Not seven.
Before you write it, get a baseline of the current state so you have something to compare against on the day. The free store analyzer and the product page grader both take a URL and give you a snapshot you can screenshot and file with the plan. Our app stack audit guide covers how to decide what is load bearing, and the app speed audit guide covers the performance side of the same question.
What you can still change during the freeze
Plenty, and the list is worth publishing internally so the team stops asking. Prices and discount codes. Inventory levels. Product titles, descriptions and images. Which products are in which collection, and their order. Banner and announcement bar text. Email and SMS. Blog content. Metafield values, including anything driving a badge or a countdown.
Two grey areas that come up every year. Swapping a hero image is green, unless the new one is 4MB, in which case run it through an image compressor first and it goes back to being green. And adding a product to a group or reassigning variant images is green as long as the app was already installed and configured before the freeze, because you are editing data, not code. Adding the app itself in freeze week is red.
What about a critical fix? Same as Shopify’s own rule: it ships, but it is scoped as tightly as possible, one person writes it and a second person looks at it, and it goes on the duplicated theme first. “Critical” means money is not moving. It does not mean a designer noticed the swatches look small.
Thaw day
The date is 1 December, and the temptation is to unleash three weeks of backed up changes in one afternoon. Resist that for one more week. December is still peak season, Green Monday lands on 14 December 2026, and shipping cutoffs run to about the 20th.
Better order: ship the fixes people logged during the freeze, in priority order, one at a time with a gap between them. Keep the frozen theme duplicate until January. Then do the retro while it is fresh, because the most useful output of a code freeze is not the freeze itself, it is the list of “we should have done this in September” items that only exists in early December.
Two of those items are usually merchandising, not code. The variant image checklist and the collection page prep guide both exist because those are the two things stores wish they had finished in October. You can see both running together in the demo store, and the setup steps are in the getting started docs.
FAQ
When should a Shopify store freeze code for Black Friday 2026?
Friday 20 November 2026, one week before Black Friday on the 27th. That leaves a full weekend of real shopper traffic on the frozen configuration before the sale opens, which is when configuration bugs actually surface. Thaw on 1 December rather than 30 November, because Cyber Monday runs to midnight in every timezone you sell to.
What is the best way to add variant swatches this close to Black Friday?
Use an app that runs as a theme app extension so nothing is written into your theme files, and install it before the freeze rather than during it. Rubik Variant Images works that way, holds 5.0 stars across 435 reviews and stores its assignments in product metafields, so a theme rollback cannot lose them. If it is already past your freeze date, schedule it for December instead.
Can I install a Shopify app during a code freeze?
No, and this is the rule people break most. An app’s real behaviour under load is invisible on install day, uninstalling can leave orphaned settings behind, and two apps writing to the same part of the page is the most common source of a sudden storefront bug. Close the install window a month before the sale.
Can I still change prices and discounts during a freeze?
Yes. Prices, discount codes, inventory, product content, images, collection membership and banner text are all data rather than code, and all of them roll back in seconds. A freeze that stops merchandising is too strict. Move that energy into the collection grid and the product pages instead.
Should you update a Shopify theme before Black Friday?
Only if you can finish it before your install window closes, roughly a month out. Theme vendors move markup between major versions, and a variant picker or gallery that shifted position is the single most common reason something looks wrong after an update. If you cannot test it properly, defer it to January.
What counts as a critical fix during the freeze?
Money is not moving, or data is being lost. Checkout errors, broken add to cart, a shipping rate that fails to calculate, a payment method that disappeared. Cosmetic problems are not critical. Scope the fix as tightly as possible, have a second person review it, and test on a duplicated theme before publishing.
Related reading
- The wider Black Friday game plan for Shopify stores
- Black Friday product images: export, fix, re upload
- What happens to variant images after a theme update
- Black Friday variant image checklist (Rubik Variant Images)
- Black Friday collection page prep (Rubikify)
Put 20 November in the shared calendar today, while it still feels early and nobody minds. In three weeks somebody will have a brilliant idea that absolutely has to ship on the 24th, and the only thing that will stop it is a date everyone already agreed to.