The Shopify script tag deprecation, explained — and how to migrate before the deadlines (Oct 2026 / Mar 2027)
On August 24, 2026, Shopify announced that script tags are deprecated and will stop running on March 1, 2027. For roughly a decade, script tags were the standard way Shopify apps injected JavaScript into storefronts — analytics pixels, live chat widgets, exit-intent popups, review badges, custom tracking. If your store (or your app) relies on any of them, there are now two hard deadlines, and the work to meet them is on you.
- October 1, 2026 — apps still shipping script tags can no longer be installed on new stores.
- March 1, 2027 — every remaining script tag stops being injected into storefronts. Pixels go dark, widgets vanish, silently.
- Auditing and cleanup remain fully supported —
scriptTagsqueries andscriptTagDeletekeep working after both deadlines.
This guide covers exactly what breaks on each date, who needs to act, the three-step migration (audit → replace → vendor chase), and the gotchas that bite people who wait.
The two deadlines, precisely
| Date | What happens | Who feels it |
|---|---|---|
| 2026-10-01 | The GraphQL mutations scriptTagCreate / scriptTagUpdate return userError, and the REST ScriptTag API rejects POST/PUT — on all API versions. Merchants installing an affected app see a dismissible warning banner. |
App vendors. Any app still shipping script tags stops working for new installs from this day. |
| 2027-03-01 | Shopify stops injecting all script tags into storefronts. | Merchants. Every remaining tag silently dies — analytics stop firing, chat boxes disappear, popups never trigger. |
Two properties of this deprecation make it nastier than usual:
- Pinned versions don't help. Normally you could freeze an old API version and buy years. Here, the breaking change applies to every version simultaneously — the oldest pinned version and the newest one fail the same way.
- It fails silently on the storefront. After March 1, 2027, there is no error page and no console message a merchant would notice. Your Meta pixel just stops firing. Your Klaviyo form just never appears. The only way to catch this before it costs you a quarter of data is to audit beforehand.
Who needs to act, and when
App vendors (you ship a Shopify app)
If your app creates script tags — today or historically, on any store — your app stops being installable on new stores on October 1, 2026. That is an existential deadline, not a cleanup chore. Your job: replace the script tag with a web pixel or an app embed block (see the decision table below), ship the update, and communicate the migration to merchants.
Merchants (you run a store)
Your existing tags keep running until March 1, 2027 — but every one of them depends on its app vendor migrating in time. The merchants who get hurt are the ones who discover a dead pixel in April 2027 because a vendor stalled. Your job: find out which apps still use script tags (not trivial — see below), pressure the vendors, and verify the replacement actually fires.
Agencies (you maintain client stores)
You have the merchant's problem multiplied across every client. An audit per store plus a migration tracker is the difference between a controlled Q1 and a support fire in March.
The merchant-side trap: no audit view exists
Here is the part that surprises people: the Shopify admin has no screen that lists a store's script tags. Installed apps are visible, but what they injected — and which of those injections are about to break — is not. The scriptTags API query requires developer credentials, so merchants who want to know "which of my tracking pixels die on March 1?" historically had exactly one option: email every app vendor and ask.
That gap is the reason TagGuard exists. The officially supported path for both auditing and cleanup is the API — scriptTags queries and scriptTagDelete keep working after both deadlines — so the practical move is a tool that runs the query for you and turns the raw list into a migration plan.
Step 1 — audit your store (free, 30 seconds)
npx scripttag-audit login # one-time OAuth consent
npx scripttag-audit scan --store my-store.myshopify.com
The open-source scripttag-audit CLI runs on your machine, talks directly to the Shopify Admin API (no account, no backend, no telemetry), and returns every script tag classified:
| Status | Meaning | Action |
|---|---|---|
| AFFECTED | Storefront tag — stops running 2027-03-01 | Migrate (step 2) |
| DEAD | Order-status-page leftover from the earlier deprecation | Delete (scriptTagDelete) — the CLI prints the mutation for you |
| UNKNOWN | Unrecognized scope/host | Verify with the vendor |
For each tag the CLI also guesses the vendor behind the host (85+ mappings — GA, Meta, Klaviyo, Hotjar, Tidio, Intercom…) and suggests the replacement path. It exits with code 1 while affected tags remain, so teams drop it into CI and treat a green run as "migration complete":
npx scripttag-audit scan --store my-store.myshopify.com --format json > report.json
npx scripttag-audit advise --report report.json # per-tag migration plan
Step 2 — pick the replacement (per tag)
| The tag does… | Migrate to | Merchant action |
|---|---|---|
| Analytics / conversion pixels (GA, Meta, TikTok, Hotjar…) | Web pixel extension — sandboxed, consent-aware, managed by the app | None. The vendor ships it; it replaces the tag automatically. |
| Visible widgets (chat, popups, reviews, push prompts…) | App embed block in a theme app extension | Yes: activate it in the theme editor — per theme. Re-check after every theme change. |
| Nothing (dead order-status tag) | Nothing — scriptTagDelete |
Optional cleanup; keeps the store tidy. |
Step 3 — chase the vendors
Most tags belong to apps, and the app vendor owns the migration code. What you control is the asking. The CLI generates the email for you — one per vendor, containing what was found on your store, both deadlines, and the two questions that actually matter: what is your migration plan and ship date, and will anything need re-activation in the theme editor afterward.
npx scripttag-audit advise --report report.json --email
Send those, then re-scan weekly until each affected tag is gone (deleted by the vendor) or replaced. A tag that disappears from the scan is your confirmation that the vendor finished — no email chains required.
A realistic timeline for merchants
- September – October 2026: audit now. You want the full inventory in hand before the holiday freeze.
- November – December 2026: touch nothing. Peak season is the wrong time to swap tracking infrastructure; tags keep running, so there is no urgency penalty.
- January – February 2027: the cleanup window. Vendors have shipped, you migrate and verify per theme, and re-scan until the report is clean.
- March 1, 2027: nothing left to break. That is the goal.
Gotchas that bite people who wait
- App embeds are per-theme. An embed block activated in your live theme does not carry over when you publish or switch themes. Theme change = re-activation checklist.
- October 1 is an install cliff, not a runtime cliff. Your existing tags keep running — but if you buy a new app between 10-01 and 03-01 and it still uses script tags, it simply won't work on your store.
- Dead order-status tags are clutter, not crisis. They stopped running long ago; delete them so your audit report only shows what matters.
- "The app updated" ≠ "the tag is gone." Some vendors ship the new web pixel but never delete the old script tag. Only a re-scan tells you which state you're in.
FAQ
Will my existing script tags stop working on October 1, 2026?
No. October 1 is an install cliff: scriptTagCreate / scriptTagUpdate start failing on all API versions, so apps still shipping script tags can no longer be installed on new stores. Your existing tags keep running until March 1, 2027.
Do pinned API versions protect against the deprecation?
No. The breaking change applies to every API version simultaneously — the REST API rejects POST/PUT and the GraphQL mutations return userErrors regardless of what version you pin.
What replaces Shopify script tags?
Two official replacements: web pixel extensions for analytics and conversion tracking (sandboxed, no merchant action needed), and app embed blocks for visible features like chat widgets and popups (merchants activate them per theme in the theme editor).
Can merchants see which script tags are installed on their store?
Not in the admin — there is no built-in script tag audit view. The scriptTags API query is the officially supported audit path, which is what the free TagGuard / scripttag-audit tooling uses.
Do I need to reinstall my apps after the migration?
Usually no. The vendor migrates the integration and the app update replaces the tag. The main merchant-side action is activating app embed blocks in the theme editor — once per theme, and again after every theme change.
What about script tags on the order status page?
That surface was deprecated earlier; displayScope: ORDER_STATUS is no longer even a valid value when creating tags. Existing ones are dead weight — delete them. The CLI marks them DEAD (cleanup).
Is there an official Shopify audit tool for script tags?
No. The official changelog keeps the read and delete APIs available and points developers to migrate to web pixels and app embeds, but Shopify has not shipped a merchant-facing audit screen. Third-party tools fill that gap — TagGuard is one, and its scanner is open source.