URL hygiene is the upkeep your addresses need after pages move. Each old URL should redirect once, straight to its new home. Internal links should point at the final address, never at a redirect or a deleted page. And every page should name one canonical URL that agrees with your links and your sitemap. When the three disagree, a crawler has to guess where the page lives.
Front Door is our most basic test of whether an AI crawler can reach and read a page at all. It was failed by 41% of the 216 Shopify storefronts we scored in June 2026. Addresses that lead nowhere are one of the ways a store fails it.
None of these problems show up for a shopper. A redirect chain still lands on the right product. A canonical tag that points at an old address is invisible on the page. That is why they last for years. This guide is about what happens over time, as products are retired, collections are renamed and themes change. For what the address itself tells a machine, see our companion guide to Shopify URL structure.
What goes wrong when pages move?
Three things usually go wrong.
The first is a redirect chain. Say a product moved in 2023 and again in 2025. The oldest address now sends a crawler to the second, and the second sends it to the third. Google's documentation says its crawlers follow up to 10 redirect hops by default, and that other crawlers may have different limits. A chain that ends in a deleted page leads nowhere at all.
The second is a dead internal link. A menu item, a blog post or a footer link still points at a product you removed. Google's Page indexing report lists such pages under "Not found (404)" and suggests a 301 redirect if the page has moved.
The third is a canonical that disagrees with everything else. Google treats a redirect and a rel="canonical" link as strong signals and a sitemap as a weak one. It asks site owners not to give different canonical URLs for the same page in different places. It also asks them to link internally to the canonical URL. A page that names one address in its canonical tag while the menu links to another sends mixed signals.
How does Shopify handle canonicals for duplicate product URLs?
Shopify can show the same product at more than one address. A product reached through a collection has an address that contains /collections/ and /products/, and a variant adds ?variant= to the end. Shopify's article on canonical URLs covers this case. For products and variants, it says, the canonical URL is the default product page with no collection or variant selected.
So a default Shopify theme already handles this. The problems come later. An app, a custom snippet or an edited theme file can change the canonical tag. A theme update can then bring the default back or take it away again. Our guide to inspecting canonical tags shows how to read the tag on any page.
| URL problem | What it teaches AI | The fix |
|---|---|---|
| Redirect chain (301→301→301) | “Your structure is unstable” | Point links straight at the final URL |
| Links to 404 pages | “Your index is unreliable” | Fix or remove broken internal links |
| Contradictory canonicals | “I cannot tell which page is real” | One self-referencing canonical per page |
| Duplicate variant URLs | Signal split across near-copies | Canonicalize variants to the product |
Why can a stale sitemap hide new pages?
Shopify splits a store's sitemap into files by type. The index at /sitemap.xml lists them, and the products, pages and collections files carry a range of IDs in their addresses, such as sitemap_pages_1.xml followed by from and to values. We read that format on a live Shopify store on November 9, 2026.
When you publish new pages, the range can change, and the index points at a new address. A search engine still holding the old address may keep reading the old range until it downloads the index again. The fix is to resubmit /sitemap.xml in Search Console and request indexing for the new pages. Our guide to sitemap health covers the other ways a sitemap drifts.
How do I clean this up on my store?
You can do this pass in about an hour with Search Console and your Shopify admin.
- In Search Console, open Indexing > Pages. Look at the reasons "Page with redirect", "Not found (404)", "Redirect error" and "Duplicate, Google chose different canonical than user". Export each list.
- For every 404 that was a real product, collection or post, go to Content > Menus in Shopify and click View URL Redirects. Click Create URL redirect, put the old path in Redirect from and the closest live page in Redirect to, and click Save redirect.
- For every chain, open the list of URL redirects and edit each old entry so it points straight at the final address.
- Open your main menu and footer under Content > Menus. Check that every item links to a live, final address and not to a redirect.
- Open three products through a collection on the live store. Right click, choose View page source and search for "canonical". The address should be the plain /products/ URL with no collection and no ?variant=.
- Open /sitemap.xml and compare the file addresses with the ones listed in Search Console under Indexing > Sitemaps. If they differ, resubmit /sitemap.xml.
- Put five important URLs into URL Inspection and confirm that the Google selected canonical matches the canonical you declared.
Redirect errors in step 1 name chains that are too long or loop back on themselves. Fix those first, since Google reports that it could not reach the page at all.
How does a houseplant shop clear 140 dead addresses after three years of seasonal stock?
A houseplant shop on Shopify carries 300 products, and about a third of them are seasonal. Every spring the owner retires sold out plants and renames a few collections. After three years the Page indexing report shows 140 URLs under "Not found (404)" and 60 under "Page with redirect".
The 404 list turns out to be mostly retired plants that blog posts still link to. The owner redirects each one to the collection it belonged to, such as /collections/trailing-plants, and then edits the twelve blog posts that still linked to them. Six redirects form chains, because the "Indoor Plants" collection was renamed twice. Each old entry now points straight at /collections/houseplants. A care guide app had also replaced the theme's canonical tag on product pages with the collection path. Removing the app's snippet brings back the plain /products/ canonical.
How often should I check URL hygiene?
Check after every change that moves pages: retiring products, renaming collections, changing handles, installing an app that edits the theme, or switching themes. A short pass once a month catches these problems before they pile up. Our guide to AI visibility drift covers the theme and app changes that most often undo this work.
A paid plan reads more pages on every scan than the free scan does. The Advanced plan reads 150 pages each time for $249 once, or $199.20 a month with monthly monitoring. You get every finding and a fix plan you can hand to a developer.
Questions owners ask
What is a canonical tag?
A canonical tag is a line in a page's code that names the preferred URL when several URLs show the same content. Google treats it as a strong signal, and it asks that the canonical agree with your redirects, your sitemap and your internal links.
Do redirects hurt AI visibility?
A single 301 redirect from an old address to its new home is the right tool when a page moves. The problems are chains of redirects, loops, and redirects that end on a deleted page. Point each old address straight at the final one.
How many redirects will Google follow?
Google's documentation says its crawlers follow up to 10 redirect hops by default, and that other crawlers may have different limits. Aim for one hop, since you cannot know the limit of every AI crawler.
Why does Shopify create duplicate product URLs?
Shopify can show a product at its own address, through a collection path and with a ?variant= parameter. Shopify's article on canonical URLs says the canonical for products and variants is the default product page with no collection or variant selected. Those duplicates therefore point back to one address.
Why is a new Shopify page not showing up in Google?
A stale sitemap is one common cause. Shopify's sitemap files carry ID ranges in their addresses, and new pages can move the index to a new range. Resubmit /sitemap.xml in Search Console, then request indexing for each new page.
Sources
We opened every source below on November 9, 2026.
- How HTTP status codes affect Google's crawlers, Google, for the 10 hop limit.
- How to specify a canonical URL, Google Search Central, for signal strength and consistency.
- Redirects and Google Search, Google Search Central.
- Page indexing report, Search Console Help, for the reason names.
- Canonical URLs, Shopify Partners blog, for product and variant canonicals.
- URL redirects, Shopify Help Center.