Common issues with template experiments and how to resolve them.
The variant template isn't showing
Visit a targeted page and check the address bar for ?view=<suffix>.
No
?view=is added. You may be in the Control arm (assignment is deterministic per visitor — try an incognito window, or a different device). Also confirm you're on a page that matches the experiment's target URLs and page type.?view=is present but the page looks like the default. The suffix probably doesn't exist in your live theme. Shopify silently falls back to the default template when?view=points to a template it can't find. Confirmtemplates/<page-type>.<suffix>.json(or.liquid) exists in the live theme, and that the suffix in Cooee matches it exactly. See Managing your variant templates.Bots and automation are excluded. Cooee skips known bots and headless browsers, so they always see the control.
The variant shows on a product reached through a collection
Shopify serves the same product under several URLs — /products/<handle> and /collections/<collection>/products/<handle>. Cooee matches target URLs against the page's canonical path, so a product is matched consistently no matter which route the visitor took. You only need to list the canonical /products/<handle> path — you don't need to add the collection-nested variants.
Control visitors are seeing the variant
This almost always means the alternate template was assigned to a product or collection in Shopify admin. An admin template assignment is served to everyone visiting that page and overrides Cooee's control/variant split.
Fix: In Shopify admin, open the affected product/collection and set its template back to Default. Only configure the alternate template inside Cooee.
The variant looks broken or unstyled
Some themes load CSS/JS or render sections only when the template name is an exact match. On an alternate template the name includes the suffix (e.g. product.daypack), so an exact check fails and styles or scripts don't load.
Look for exact template checks in your global theme files and loosen them:
{% comment %} Breaks on alternate templates {% endcomment %}
{% if template == 'product' %} ... {% endif %}{% comment %} Works everywhere {% endcomment %}
{% if template contains 'product' %} ... {% endif %}
{% comment %} or check the page type {% endcomment %}
{% if request.page_type == 'product' %} ... {% endif %}
Search your theme code for template == in shared files (theme.liquid, layout, global sections) — not inside the templates themselves.
My change is affecting pages outside the test
If a change appears on pages that aren't in the experiment, you're likely editing a shared section (header, footer, or a global section reused across templates) rather than the alternate template itself. Shared sections affect your whole store. To test a global element, use a Theme A/B test instead of a template experiment.
An old ?view= is stuck in the URL
If a visitor bookmarked or shared a variant URL after the experiment ended, Cooee detects the stale parameter and strips it, returning them to the default template. No action is needed on your side.
Still stuck? Reach out to Cooee support with the experiment name and an example URL and we'll take a look.
