Should Shopify merchants trust a theme change that hasn’t been checked on the live store?

You paste a snippet into your theme. The deploy passes. An app says the setup is complete.
That is not the same as a shopper seeing the change.
A Shopify store can hold several themes, but only one is published at a time. You might have changed an unpublished theme. You might be looking at a preview URL. Or the theme may be live, but the code only runs on one template and you checked another.
We treat a theme change as unfinished until we can see its result on the public store.
That rule came from our own work. We once looked at lunalink.ai dozens of times without noticing that every page scrolled sideways on mobile. The navigation needed 430 pixels. The phone viewport gave it 375. The site looked fine on a desktop, and the deploy had worked exactly as instructed. It was still broken for a phone visitor.
A deploy is not a publish
Shopify separates uploading or pushing a theme from publishing it. A successful `shopify theme push` can update a theme in your library without changing the theme customers see.
Start in Shopify admin:
- Go to Online Store → Themes.
- Find the theme marked Live.
- Confirm that this is the theme you changed.
- Open View store, or open your store’s normal domain directly.
Do not rely on a preview link alone. Shopify keeps unpublished themes as drafts, and those drafts can have their own preview links. A preview may show your work perfectly while the public storefront still shows something else.
Then open the relevant public URL. If you changed a product template, check that product. If you changed collection code, check a collection. If you added a site-wide script, check at least a product page and the homepage.
Use a fresh browser session if you can. An incognito window is a simple way to avoid being misled by an old session or a page you already had open.
Check for the thing you expected to change
Do not settle for “the page loads.” Decide what proof should exist before you start.
For example:
- A banner change: check for the new sentence.
- A CSS change: check for the new class or visible layout change.
- A script: check for its script URL or tracking identifier.
- A metafield: check the product or collection where it should appear.
- An `llms.txt` file: open `https://yourstore.com/llms.txt` directly.
This makes the check less vague. You are not asking whether the store seems okay. You are checking whether a specific output made it to the public URL.
Say you add a compatibility note to a product template using a product metafield. Seeing the metafield filled in inside Shopify admin proves the value exists. It does not prove the theme is reading it.
Shopify themes can display metafields through a compatible dynamic-source setting or through Liquid in a template. If neither connection exists, the value stays in admin and never reaches the storefront.
Open a product that has the metafield value. Read the page as a shopper would. If the note is not there, inspect the template connection before assuming the metafield save failed.
Use page source and Inspect for different questions
“View source” and “Inspect” are useful, but they answer different questions.
In Chrome, press Ctrl+U to open page source. This shows the original HTML returned to the browser. Search it for a distinctive string from your change.
Good search terms include:
- A new CSS class, such as `product-fit-note`
- A sentence generated by Liquid
- A script URL
- A tracking ID
- A JSON key
- A unique line from an AI-facing file
If your new Liquid output should be present in the initial page HTML, source is a quick check.
But source does not show the final page after JavaScript runs. For that, right-click the page and choose Inspect. Chrome’s Elements panel shows the rendered HTML after scripts and other resources have run.
This difference matters for tracking and app code. You can search the source, find nothing, and conclude the code is missing when it actually loads later through JavaScript.
We nearly made that mistake with our own analytics. We searched the homepage HTML for the tracking snippet, found nothing, and almost declared the system dead. It was running. The key lived in the compiled JavaScript bundle, not in the first HTML the server sent.
If you expect a script or asset to load, open DevTools and check Sources too. It lists resources loaded by the page, including HTML, CSS, JavaScript, and images. Search for the file name or identifier you expected.
Use this sequence:
1. Check the visible page on the public URL. 2. Search page source for server-rendered output. 3. Use Inspect for the final rendered page. 4. Check Sources when the change depends on a loaded asset or script.
Each step answers a slightly different question.
Check AI-facing files at their real address
Files intended for crawlers need the same treatment. A generated file in your local project is not proof that it exists on your store.
Open the public URL directly. For example:
```text https://yourstore.com/llms.txt ```
Read what comes back. Check the status in the browser. Confirm the file contains the current store details and links you expected.
We designed Descriva without theme-write permission on purpose. Fewer permissions means less to trust. The trade is that theme-level work, such as a custom `llms.txt`, reaches the merchant as a template to paste.
That is why the final step matters. Descriva reads the live URL afterwards. It does not assume a pasted template worked because the instructions were followed.
You can use the same habit without any app: paste the change, publish the right theme, then open the exact public URL yourself.
Check mobile where the customer will use it
A desktop browser can hide problems that are obvious on a phone.
Shopify’s theme editor has a mobile preview button. Use it before publishing if you are working on layout, navigation, product content, or popups. Then check the live URL on a real phone as well.
Look for simple failures:
- The page scrolls sideways.
- Navigation items run off screen.
- Buttons overlap text.
- A popup blocks the add-to-cart button.
- A new metafield creates an awkward empty space.
- A tracking or chat element covers part of the page.
Our 59-pixel horizontal scroll was easy to verify once we used a phone-sized viewport. The hard part was remembering to look.
A theme change is not complete when code is saved. It is complete when the public store shows the intended result on the page and device that matter.
Before you move on, pick one recent theme or metafield change and open its real public URL in a fresh browser window. Check the visible result, then search for one distinctive string in source or Inspect.