🔒 SEO Vault

Shopify Canonical Tags Wrong After Theme Update: Fix Duplicate Content and Recover Dropped Rankings

A theme or app update quietly rewrote your canonical tags, so Google now treats filtered, sorted, or /collections/ URLs as separate pages — throwing "Duplicate without user-selected canonical" in Search Console and splitting the ranking signals that used to point at one URL. The reason it's hard to undo: Shopify versions your theme files but keeps no history of the canonical tag itself or any head/SEO field value, so once theme.liquid or an app overwrites it, there's no native way to see the old value or roll it back.

Step by step

  1. Confirm what actually broke. Open a product page and a collection page, view source (Cmd/Ctrl+U) and search for rel="canonical". Three red flags: the tag is missing entirely, it appears twice, or its href points to a filtered/sorted URL (?sort_by=, ?variant=, /collections/x/products/y) instead of the clean product URL. Then cross-check in Search Console under Pages, and open the "Duplicate without user-selected canonical" status to see exactly which URLs Google merged or dropped.
  2. Find the culprit. In Online Store > Themes, check whether a recent theme update or edit touched theme.liquid — Shopify's native canonical normally comes from <link rel="canonical" href="{{ canonical_url }}">. If you're seeing two canonical tags, an SEO or marketing app is injecting its own on top of the theme's. List every app you installed or updated around the date your rankings slipped; that timing usually points straight at what overwrote the tag.
  3. Restore the correct canonical, don't just patch it. If theme.liquid was changed, put back the native {{ canonical_url }} tag, or roll back via Online Store > Themes > Actions using the older theme version if it's still in your library. If an app added a duplicate, switch off its canonical setting or remove the app so only Shopify's tag remains. Then run URL Inspection in Search Console, click "Test Live URL" to confirm Google now reads the right canonical, and request indexing on the fixed pages.
  4. Make sure you can catch it next time without digging through theme code. Because Shopify keeps no history of canonical or SEO fields, a daily snapshot of every product and collection's canonical, meta title, description, tags and handle gives you a dated record to compare against. With that baseline, a sudden bulk change to these fields triggers an alert (often naming the app that touched them), and you can restore the previous correct value in one click instead of editing Liquid under pressure while rankings keep sliding.

Source: Google Search Console Help — Page Indexing report, "Duplicate without user-selected canonical" status; plus Shopify Community threads on theme/app updates overwriting canonical tags.

Related fixes

Never lose your SEO to an app again

SEO Vault keeps a daily snapshot of every SEO field on your store — meta titles, descriptions, alt-text, tags, handles (products AND collections) — and emails you the moment something changes in bulk, with the likely app responsible. One click restores yesterday's state, just the SEO fields. Free to monitor and get alerted; $14/mo for 1-click restore.

Protect my SEO — free →