How to create Shopify theme preview links that don’t expire

When you’re working on a new Shopify theme, previews can be difficult to work with. The default links Shopify gives you expire after 2-3 days. Also, they run on temporary domains instead of your store’s real domain. And by default, checkout is blocked.
There’s a simple trick that solves all three of these problems. With a small adjustment to your store’s URL, you can generate a stable preview link that works on your own domain, doesn’t expire, and lets you walk through the checkout flow.
Why this matters
If you’ve ever tried sharing a Shopify theme preview with a colleague or client, you know the pain:
The link expires after a short while, having you send them a new one.
The preview runs on a Shopify-provided staging URL, not your domain.
Checkout can’t be tested (shows an error).
This bottlenecks the development process and creates a lot of back and forth.

Step-by-step: How to generate a stable preview link
Here’s the exact process, broken down simply:
Open the theme editor
In your Shopify admin, go to “Online Store” → “Themes”.
Find the theme you want to preview and click “Customize”.
Find the theme ID
Look at the URL in your browser.
Between
/themes/
and/editor
you’ll see a number. That’s your theme’s unique ID.Example:
https://yourstore.myshopify.com/admin/themes/123456/editor
→ Theme ID is123456
.
Build the preview link
Open your store’s homepage.
At the end of the URL, add
?preview_theme_id=123456
.Replace
123456
with your actual theme ID.
Example:
https://yourstore.com?preview_theme_id=123456
Important: If your homepage URL already has query parameters (like
?utm_source=test
), you’ll need to use&preview_theme_id=123456
instead of?
.Test and share
Load the new URL in your browser.
You’ll see your site running that theme on your real domain.
Copy the original link (as the parameter will be removed once you visit it), and share it with your team or client.
Where this is useful
If you wonder when you’d actually need this - a few practical cases:
Client review: You’re designing a new theme for a client. They can preview it at any time, without dealing with expiring links.
Checkout testing: You or your QA team can walk through checkout, which isn’t possible on the default preview links.
A/B design feedback: You can share two different theme IDs and let stakeholders switch between them directly on the store’s domain.
Collaboration: Developers, designers, and marketers can all access the same persistent link, cutting down back-and-forth.
FAQ
Does this work with password-protected stores? Yes. If your store is password-protected, people opening the preview link will still need to enter the store password first.
Will customers see the preview if they visit the store? No. Only people with the special preview link will see that theme. Normal visitors see the published live theme.
Can I use this for multiple themes? Yes. Just repeat the process for each theme ID you want to preview. Each ID generates its own link.
What if my link doesn’t work?
Check the URL carefully. If your homepage already has a query parameter, make sure you used &preview_theme_id=
instead of ?preview_theme_id=
.
Do preview links affect SEO or analytics? No. Search engines won’t index preview links, and they don’t interfere with your published store analytics.
Wrapping Up
By adding ?preview_theme_id=[ID]
to your store’s URL, you can generate stable, domain-based preview links that don’t expire and support checkout testing. It makes collaboration, testing, and client reviews much smoother.