Kuhrt.Codes Shopify

Script tags stop loading on storefronts

In effect

Storefront script tags stop loading · 141 days

Shopify blocks creating and updating storefront script tags on 2026-10-01 and stops loading them on 2027-03-01, so apps need theme app extensions or web pixels.

Timeline

  1. ReachedScriptTag create and update blocked
  2. Not reachedStorefront script tags stop loading

Who's affected

  • Merchants
  • App developers
  • Agencies

Script tags are the old way for an app to inject JavaScript into a store's storefront without touching the theme. Shopify is ending that in two steps. On 2026-10-01 apps can no longer create or update script tags. On 2027-03-01 Shopify stops loading them on storefronts.

This page covers script tags with the online_store display scope, the ones that run on storefront pages. Script tags that run on the order status page follow an earlier schedule, covered in Order status script tags. A tag with the all scope is affected by both.

What breaks

From 2026-10-01 (create and update blocked). scriptTagCreate and scriptTagUpdate return an error, and the REST POST and PUT requests on ScriptTag are rejected. This applies to every API version, so pinning an older version does not help. Existing script tags keep running. The scriptTags query and scriptTagDelete keep working.

In practice that means:

  • A new install cannot register the app's script.
  • An app cannot change the src of an existing tag, for example to ship a new cache-busting URL.

From 2027-03-01 (storefront cutoff). Shopify stops injecting script tags into storefronts. In Shopify's words, any feature that depends on the script will stop working for that store.

While both run. If you ship a replacement and leave the old tag in place, the script loads twice. Expect double-counted analytics events and duplicated UI until the tag is deleted.

Why Shopify is doing this

Shopify's storefront docs describe storefronts as the last place script tags still run. Script tags inject JavaScript without any theme change, give the merchant no per-store control over it, and have no isolation from the rest of the page. Theme app extensions replaced them in 2021, and script tags have been deprecated since. Shopify's pages do not give a deeper rationale, so treat anything beyond that as inference.

Timeline explained

  • 2026-10-01. Creating and updating is blocked. Nothing already running stops. From this date the replacement is the only option for a new store.
  • 2026-10-01 to 2027-03-01. Existing tags still load. This is your window to ship the replacement, confirm it works on each store, and delete the old tag.
  • 2027-03-01. Tags stop loading on storefronts.

On 2026-09-27 Shopify staff said they would keep monitoring usage through Q4 2026 and look at the topic again in January 2027. That is not a commitment to move either date. Plan for 2027-03-01.

How to check

If you build apps. Run the scriptTags query in the GraphQL Admin API with the token you already hold for each store, and check displayScope on each result. Read and delete stay available, so you can inventory and clean up after 2026-10-01.

Two limits to know about:

  • Leftover tags on closed, frozen or paused stores cannot be deleted through the API.
  • A tag with the all scope is also an order status tag. See Order status script tags.

If you run a store. Shopify's pages do not describe a merchant-side screen that lists script tags. Ask each app vendor whether their app loads storefront JavaScript through a script tag and what their replacement is.

Check whether your store is affected with the store checker.

How to fix

Pick the replacement by what the script does.

It renders or changes something on the storefront. Move it to an app embed block in a theme app extension. App embeds work on vintage and Online Store 2.0 themes, and the merchant turns them on per theme in the theme editor. App blocks, as opposed to embeds, only work on themes with JSON templates.

It only collects analytics, conversion or behavior data. Use a web pixel, created with webPixelCreate. The app user approves the write_pixels and read_customer_events scopes, and the merchant does not need to do anything else.

Suggested order of work:

  1. Build the theme app extension or web pixel.
  2. Ship it before 2026-10-01 if you can.
  3. Deep link the merchant into the theme editor with your embed activated, and confirm it is active on the published theme.
  4. Delete the old tag with scriptTagDelete only after the replacement is confirmed.
  5. Recheck if the store later publishes a different theme, because embeds are enabled per theme.

There is no programmatic way to enable an app embed for existing merchants. Shopify staff said so in August 2025 and made no commitment to add one. Two concerns from the community are still open: legacy themes without app blocks, and no bulk tool for deactivating tags.

Custom apps created in the admin

Admin-created custom apps cannot use app extensions, so they cannot use theme app extensions or web pixels. Your options depend on who owns the script:

  • Your own script on your own store. Move it into the theme, for example as a custom Liquid block or in the code editor. Editing theme code takes the theme off the automatic upgrade path.
  • An agency maintains it. The agency moves it into the theme.
  • A third-party service uses a pasted token. That service needs to ship a real app, or you need another vendor.

Need this migration handled?

I audit your store or app, build the replacement and ship it before the cutoff.

Work with me

Sources

Get alerts about Shopify deadlines