Developer Changelog / Deprecation notice

Script tags deprecation
They stop working on the storefront on March 1, 2027

Starting October 1, 2026, you can no longer create or update them; starting March 1, 2027, Shopify stops injecting script tags into the storefront. Pinning an API version won't buy you time. You need to move to a theme app extension App embed block or a Web pixel.

On this page
  1. Understand it in 30 seconds: what stops, and when
  2. Timeline
  3. What stops / what remains
  4. Who is affected
  5. Choosing where to migrate (two options)
  6. What to do (3 steps)
  7. 5 points developers should know
  8. 3 use cases you can apply at work
  9. One-line summary for proposals

1Understand it in 30 seconds: what stops, and when

A script tag is a mechanism for loading JavaScript into the storefront without touching theme code.
on October 1, 2026 you can no longer create new ones, and on March 1, 2027 they stop working. The storefront is the last place script tags run; they have already stopped working on the order status page.

October 1, 2026: creation and updates stop

scriptTagCreate / scriptTagUpdate returns a user error. In the REST Admin API, the ScriptTag resource rejects POST and PUT. Existing script tags still run at this point.

March 1, 2027: injection itself stops

Shopify stops injecting script tags into the storefront. If your app loads JavaScript via a script tag, you need to replace it before then.

Pinning an API version won't buy you time.This deprecation applies toall API versions, including older ones. "We pin a stable version, so we're fine for a while" does not hold.

2Timeline

Now Create, update, run all possible Migration prep window 2026-10-01 scriptTagCreate / Update → user error REST POST / PUT rejected Existing script tags still run 2027-03-01 Storefront injection stops JavaScript no longer loads What it looks like after migration embed / pixel Finish your inventory and replacement here
The roughly five months between the two dates are a period where existing script tags keep working but new ones can't be created.During this window you can no longer deliver script tags to newly installed stores, so the practical deadline is not March 2027 but October 2026— it's safer to treat it that way.

3What stops / what remains

Stops

2026-10-01

scriptTagCreate

Starts returning a user error. You cannot create new script tags.

2026-10-01

scriptTagUpdate

Starts returning a user error. You cannot modify existing script tags.

2026-10-01

REST ScriptTag POST / PUT

The REST Admin API resource also rejects creates and updates.

Remains (usable for inventory and cleanup)

scriptTags query

Keeps working. Useful for auditing the script tags you still have.

scriptTagDelete mutation

Keeps working. Lets you delete script tags you no longer need after migrating.

Reading and deleting remain; creating and updating go away.This asymmetry is the premise for your migration plan. You can still take inventory and clean up after October 1, 2026.

4Who is affected

WhoHow this deprecation appliesWhat to do
display_scope: online_store script tag-creating apps In scope for this deprecation Replace with an App embed block or a Web pixel
display_scope: order_status script tags Already covered by a separate, earlier deprecation See the earlier "Order status script tags" announcement
Apps that don't use script tags Not affected
On the Order status page, script tags have already stopped working.The storefront was the last holdout, and this deprecation closes it.

5Choosing where to migrate (two options)

Your current script tag What does it do? Tracking only Renders UI or features Web pixel No action required from app users App embed block Users enable it in the theme editor Still works after 2027-03-01 Delivery that doesn't depend on script tags

App embed block (the default choice)

The replacement for script tags is the App embed block.Bundle and distribute it as a theme app extension, and app users enable it in the theme editor.

Web pixel (for tracking only)

If your script onlycollects analytics and conversion data, use a Web pixel. No action is required from app users.

6What to do (3 steps)

1

Inventory: scriptTags shows what's still out there

query still works after the deprecation, so map out which stores still have which script tags.

2

Replace: set up an embed / pixel

For UI or functionality, move to a theme app extension's App embed block; for tracking only, move to a Web pixel.

3

Clean up: scriptTagDelete

Delete the existing script tags from stores that have migrated. The delete mutation stays available.

An App embed blockhas to be enabled by the app user in the theme editor. Shipping it from the developer side alone won't turn it on, soinclude merchant communication in your migration tasks. Web pixels don't require this extra step.

75 points engineers need to know

ALL ver.

1. Pinning a version won't help

The deprecationapplies to every API version, old ones included. The usual breaking-change assumption — "we pinned a stable version, so we have some breathing room" — doesn't hold this time.

C/U R/D

2. Only half of CRUD dies

Create / Update will return a user error, but thescriptTags query and scriptTagDelete keep working. The audit and cleanup path is deliberately left intact.

3. Both GraphQL and REST are affected

Not just GraphQL's scriptTagCreate / scriptTagUpdate , but also POST / PUT on the REST Admin API's ScriptTag resource are rejected. Legacy apps built on REST are hit on the same date.

4. The real deadline is October 2026

Existing script tags keep working until March, but from October onwardCan't deliver script tags to new stores. For apps that keep getting new installs, if the migrated version isn't shipping by October, stores with missing functionality will start appearing.

5. The migration target you choose changes how much work falls on users

App embed blocks are distributed via theme app extensions, andapp users must enable them in the theme editor. Web pixels, usable for tracking-only purposes, on the other handrequire no action from app users. Even within the same "migration off script tags,"whether you take on activation-rate risk differs, so sorting scripts by purpose is the first step in a migration plan.

83 use cases you can apply to your work

USE CASE 1

A full inventory of script tags across your own and client apps

Problem
Script tags nobody can trace — who added them, and when — remain across multiple apps and multiple installed stores, and you have no idea what breaks in March 2027.
Action
scriptTags Use the query to mechanically list script tags across all installations → display_scope extract the ones whose online_store is set as in scope for this change → label them by purpose (UI or tracking) and assign a migration target.
Impact
You pin down "which app, which store, which feature stops working" before the deadline, so you can estimate migration effort and the scope of your announcements.
Technical notes
scriptTags The query and scriptTagDelete keep working after deprecation, so you can still build the inventory and deletion batches on or after October 1, 2026. The replacement implementation, however, cannot wait.
script tag embed pixel
USE CASE 2

Move tracking scripts to web pixels and eliminate the "waiting for activation" gap

Problem
If you move conversion tracking and analytics that ran as script tags straight into app embed blocks, tracking data goes missing until app users enable them in the theme editor.
Action
Sort your scripts into "those that render UI or features" and "those that only collect analytics and conversion data," and move the latter to web pixels.
Impact
Web pixels require no action from app users, so you avoid tracking gaps and the risk of low activation rates during migration.
Technical notes
If a single script tag handles both tracking and UI, split it first, then decide the migration target. The granularity of that split determines your operational cost after migration.
Migration progress
USE CASE 3

Designing merchant migration announcements and activation follow-up

Problem
Because app embed blocks don't run until app users enable them in the theme editor, some stores won't have functionality restored even after you ship the migrated version.
Action
Ship activation instructions alongside the migrated release → scriptTags periodically use the query to find stores that still have the old script tags, and re-notify only the stores that haven't migrated.
Impact
Reduces the number of stores that suddenly lose functionality when injection stops on March 1, 2027, and avoids a surge of support inquiries.
Technical notes
The changelog doesn't say how to define the criteria for "migration complete." You need to define them yourself — for example, using whether any legacy script tags remain as a proxy metric.

9One-line summary you can use in a proposal

"Script tags can no longer be created or updated as of October 1, 2026,stop running on the storefront on March 1, 2027.
and pinning an API version won't get you around it, so move UI and functionality to an App embed block (theme app extension), and
analytics-only use cases to Web pixels. For taking inventory, the scriptTags query and scriptTagDelete are still available."