Shopify BFCM code freeze: which changes should wait (and which can still ship)

Shopify BFCM code freeze: which changes should wait (and which can still ship)
Here is the recommendation up front. Start your Shopify BFCM code freeze at least two weeks before Black Friday and keep it in place until the Tuesday after Cyber Monday. During the freeze, hold back theme code edits, app installs and removals, checkout customizations, and structural changes to navigation, search and collections. Content, pricing, discounts and merchandising can keep moving, but only through a controlled lane where every change gets verified on the live storefront. The rest of this article explains what to freeze, what can still ship, and who should own each step.
A freeze is not about being cautious for its own sake. In the busiest week of the year, the cost of a broken add-to-cart button is many times higher than on a normal Tuesday, and your team has the least spare time to investigate. You want the store in a known, tested state before the traffic arrives.
What a Shopify BFCM code freeze should cover
The test for whether a change belongs in the freeze is simple. If the change can alter how a shopper finds a product, adds it to cart, or pays, it waits. If it only changes words, images or prices on a page that already works, it can usually go through the controlled lane.
That puts these changes inside the freeze:
Theme code edits, including Liquid, JavaScript and CSS, plus switching to a new theme version
Installing, removing or reconfiguring apps that inject scripts into the storefront
Checkout customizations, payment method changes and shipping logic changes
Changes to main navigation, search configuration, collection filters and product templates
New tracking pixels or tag manager containers that load on every page
If you are still building your overall plan, our BFCM preparation timeline covers the weeks before the freeze in more detail.
The freeze checklist: when, action, owner, evidence

Each checkpoint below has a single owner and a piece of evidence that proves it happened. Evidence matters because "I checked it" is not something you can review at 2am on Black Friday.
Six weeks before Black Friday
Action: Agree the freeze dates and the list of frozen change types. Publish them where everyone, including agencies and freelancers, can see them.
Owner: Ecommerce lead or head of operations.
Evidence: A shared freeze document with start date, end date and an approver for exceptions.
Four weeks before
Action: Ship the last planned theme work and any new apps. Anything not ready by now moves to January.
Owner: Development lead or agency project manager.
Evidence: A changelog entry for each release, and passing automated test flows for checkout, search, cart editing and mobile navigation after each one.
Three weeks before
Action: Run a full regression pass on the production theme. Run a broken-link scan across campaign landing pages and collections.
Owner: QA owner, or whoever runs storefront checks on your team.
Evidence: Test results with no open failures, and a broken-link report with every 404 either fixed or redirected.
Two weeks before: freeze starts
Action: Lock theme publishing permissions to a small group. Duplicate the live theme as a rollback copy.
Owner: Store owner or ecommerce lead.
Evidence: A named backup theme, a staff permission list, and a baseline test run you can compare against later.
Freeze period through Cyber Monday
Action: Allow only controlled-lane changes. Keep test flows running on a schedule and monitor Shopify and your third-party apps.
Owner: On-call operator for each day of the sale period.
Evidence: Scheduled test history, monitoring alerts with timestamps, and a log of every change made during the freeze.
The Tuesday after Cyber Monday: thaw
Action: Release the backlog in small batches, not all at once.
Owner: Development lead.
Evidence: Test flows passing after each batch before the next one goes out.
Changes that should wait until after Cyber Monday
Some requests always show up in November. They sound small. Most of them are not.
"Just a quick theme tweak"
A one-line CSS fix to a product page can hide a quantity selector on certain mobile viewports. A Liquid change to a section used across templates can break the cart drawer on pages nobody thought to check. If the change touches theme files, it waits.
New apps, even free ones
A new upsell, review or bundle app adds scripts to your storefront and sometimes alters cart behavior. Uninstalling an app can be just as risky, because leftover code often stays in the theme. If an install truly cannot wait, follow the steps for verifying checkout after a new app before you call it done.
Navigation and search restructuring
Reorganizing menus or changing search settings during peak traffic changes how shoppers reach products at exactly the moment you can least afford confusion. Plan the new structure now and launch it in December.
Changes that can still ship during the freeze

A freeze that blocks everything gets ignored. Merchandising and marketing teams need to keep working, so give them a lane with guardrails.
These changes can usually go ahead:
Product descriptions, images and banner copy on existing templates
Price changes and discount codes set up in Shopify admin
Adding products to existing collections
Email and ad creative that links to pages already tested
The guardrail is verification. Discounts can collide with bundle apps at checkout. A new campaign landing page can link to a product that was archived last week. After each controlled-lane change, rerun the relevant test flow and check the links on the affected pages. Our checkout testing checklist is a good reference for what to cover when discounts go live.
How to handle emergency changes during the freeze
Something will break during the sale period that is not your fault. A third-party app degrades, a payment provider has an incident, or a script starts throwing errors after a vendor update. You need a fast path that does not turn into a free-for-all.
Keep the process short:
The on-call operator confirms the issue with a failed test or a monitoring alert, not a single customer email.
The exception approver named in the freeze document signs off on the fix.
The fix ships, the relevant test flows rerun, and the change goes in the freeze log.
Monitoring your apps is half of this. Many BFCM incidents start outside your theme entirely, which is why it pays to monitor your app stack for degradation alongside your own storefront. When a test does fail, AI-assisted diagnosis helps the on-call person understand what broke and where to look, which matters when the developer who wrote the code is offline.
How to prove the freeze is working
A freeze is only as good as your ability to show the store is behaving the same way it did when you locked it. That is where continuous verification earns its place.
With Shoptest, you can run automated test flows on checkout, search, cart editing, mobile navigation, collection filters and quick add to cart on a schedule throughout the freeze. If a flow that passed on the baseline run starts failing, you know something changed, even if nobody admits to touching anything. Shopify and app monitoring flags problems with the services your storefront depends on, and scheduled broken-link scans catch campaign pages pointing to products that no longer exist.
The result is a timestamped record of storefront health across the whole sale period. Operators get early detection instead of discovering problems from support tickets, and the post-BFCM review has real data behind it.
Set your freeze date this week
If Black Friday is about a month away, you are at the four-week checkpoint now. Pick the freeze start date, name the owner and the exception approver, and get the remaining theme and app work out the door. Then put a baseline in place so you have something to compare against.
A good first step is a free website scan to see where your store stands today. From there, Shoptest can keep your critical customer journeys under continuous verification through Cyber Monday, so your team can protect revenue instead of refreshing the checkout page by hand.


