Skip to main content

Bare query strings no longer bust the cache for assets

Action required

We're enhancing Shopify's asset caching to improve load times. As part of this update, we are modifying the URL query parameters recognized for cache busting.

Effective March 24, 2026, bare query strings (a ? followed by a value with no key) will not refresh cached assets. Previously, these strings appeared to refresh assets because altering the URL could bypass the cache; this incidental behavior will be discontinued.

If your asset URLs are generated with Liquid filters (such as asset_url), you’re already compatible—no changes are necessary.

What’s changing

Referencing assets (e.g., images, fonts) with a URL containing a bare query string will no longer refresh the cached asset when the value is updated.

For example:

image.png?123

The same applies within CSS:

background-image: url('image.png?123');

What to do

Use the appropriate Liquid filter to generate URLs (e.g., asset_url, file_url). Shopify handles versioning and updates the URL automatically whenever the asset changes.

In templates:

{{ 'image.png' | asset_url }}

This outputs a URL with a version parameter:

image.png?v=1384022871

In CSS, use a .css.liquid file to incorporate Liquid:

background-image: url('{{ "image.png" | asset_url }}');

Why this matters

Continuing to use bare query strings may result in stale assets being served until the cache expires. Using Liquid filters ensures that the correct, current version of each asset is delivered, enhancing performance by enabling more effective CDN and browser caching.

Learn more

Was this section helpful?