Theme changes are often not getting applied

Topic summary

A user reports that changes to theme.liquid in Shopify’s Flora theme are no longer appearing in the browser as expected.

To troubleshoot, they created a theme copy, stripped down theme.liquid to minimal HTML with a test comment (// AAA), saved and published it, then used curl to fetch the preview URL. The changes did not appear in the response.

Key responses:

  • One user notes that ?preview_theme_id parameter has been unreliable for several months, particularly when switching between theme previews without exiting preview mode first.

  • Another user explains that Shopify’s preview URLs are session-based and require browser cookies. Using curl (an unauthenticated request) will always return the live published theme, not the preview version. The solution is to open the preview link in a browser while logged into Shopify to properly view unpublished theme changes.

Status: Issue explained—the testing method (curl) was incompatible with Shopify’s preview system. No unresolved technical problem with theme changes themselves.

Summarized with AI on October 24. AI used: claude-sonnet-4-5-20250929.

Hi all, my store is using Flora theme. I used to be able to change theme.liquid and immediately see changes in browser - but not anymore.

To debug this, I created a copy of the main theme and gutten theme.liquid to be:

<!doctype html>
<html class="js" lang="{{ request.locale.iso_code }}">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <meta name="theme-color" content="">
    <link rel="canonical" href="{{ canonical_url }}">

    <script>
      // AAA
    </script>
    {{ content_for_header }}
  </head>
  <body>
    {{ content_for_layout }}
  </body>
</html>

Doing all of this in Shopify’s built-in VS code.
I then:

  1. Confirm that the theme is saved and published

  1. curlthe Preview URL:

❯ curl -vL 'https://STORE_URL/?_ab=0&_fd=0&_sc=1&preview_theme_id=180667482392' 2>&1 | grep AAA

And the changes are not there. If I inspect the returned content, I still see the original theme served, without my changes.

Am I doing something wrong or is it Shopify being buggy? I swear this used to work, even without copying the theme

I’ve noticed that ?preview_theme_id sometimes is not honoured immediately, especially if you previewed one theme and then want to preview another without “exit preview”.
Started at least a couple of months ago, i think.

When you preview a Shopify theme via the Preview URL (with ?preview_theme_id=…), that version of the site is session-based and had browser cookies it is not served to curl or unauthenticated requests.

So when you run the curl :

curl -vL ‘https://STORE_URL/?_ab=0&_fd=0&_sc=1&preview_theme_id=180667482392’

You are getting the live published theme, not your preview.

Open the preview link in a browser while logged into Shopify, then the preview theme will be properly served.