Shopify Sitemap: Where It Is, What It Leaves Out, and How to Submit It
Your Shopify sitemap is already live at /sitemap.xml. Here's what it links, which products it quietly drops, and how to submit and debug it in Search Console.

Shopify builds your sitemap for you and will not let you touch it. What you can control is what goes in, where Google reads it, and how you find the entries that are wrong:
- Where it is: yourstore.com/sitemap.xml on every domain the store serves. It is a sitemap index linking child files for products, collections, pages, blogs and, on newer stores, metaobject pages and an agents.md pointer.
- What it leaves out: Unlisted products, anything with the seo.hidden metafield set to 1, draft and archived products, products not published to the Online Store channel, collection-path duplicates, and every paginated or filtered URL.
- What it keeps: Sold-out products that are still Active, and anything you noindexed only through theme.liquid. A noindex tag never removes a URL from the file.
- Markets: Each subfolder market gets its own child sitemaps inside the same root index. Subdomains and country domains get a separate index you submit separately.
- Submitting and debugging: Submit the index once per domain in Search Console, then filter the Page indexing report by that sitemap. A 404 in the sitemap is usually Google's memory of the file, not the live file.
"shopify sitemap" gets 260 US searches a month at a keyword difficulty of 22 (DataForSEO, US, September 2026). Most of the results tell you where the file is and stop.
The first result for this query tells you the file is at /sitemap.xml and stops. This one opens real stores' files, lists what Shopify drops, and shows how to find the entries that are wrong. Try CrawlRaven free: 1 site, no credit card →
Where the Shopify sitemap is
Your Shopify sitemap is at yourstore.com/sitemap.xml, on every domain the store serves. You did not make it, you cannot edit it, and the file says so itself. Open Allbirds' copy and the second line is a comment: "The sitemap can not be edited manually, but is kept up to date in real time."
That sentence is the whole Shopify sitemap story, and most guides stop there. The interesting questions start after it: what Shopify decides to leave out, what happens when a store sells in eight markets, and why Search Console keeps reporting a product you deleted in March.
I read a lot of Shopify crawls through CrawlRaven's ecommerce mode, and on September 25, 2026 I opened the live sitemaps of five stores to write this. Everything below is either from Shopify's own documentation or from those files.
Key Takeaways
- →One index, five or six child files: /sitemap.xml links sitemap_products_1.xml, sitemap_collections_1.xml, sitemap_pages_1.xml and sitemap_blogs_1.xml, plus metaobject pages and an agents.md pointer on current stores.
- →Status decides listing: Active and published means listed. Unlisted, Draft, Archived, unpublished from the Online Store channel, or seo.hidden = 1 means gone. A sold-out Active product stays.
- →Noindex is not removal: A robots meta tag in theme.liquid leaves the URL in the sitemap. Search Console then reports it as submitted and excluded.
- →Markets multiply the index: Rothy's root index lists 181 child sitemaps across 35 subfolder markets. A subdomain or country domain gets its own index to submit.
- →Search Console remembers: A 404 or redirect "in the sitemap" is usually Google's memory of an old read. Check the live child file before you blame Shopify.
Your /robots.txt names the same file in a Sitemap: line, once per rule group. Look for it on the primary domain: the myshopify.com address answered 404 on the stores I checked.
What is inside the Shopify sitemap index
The root file is a sitemap index: a list of other sitemaps, not of pages. Google's sitemap documentation caps any single sitemap at 50,000 URLs or 50 MB uncompressed, and an index is how a site stays under that. Shopify splits by resource type first, then by ID range when a type outgrows one file.
What /sitemap.xml links to on a Shopify store
The child sitemaps, file by file
Here is what allbirds.com/sitemap.xml linked on September 25, 2026, with the URL count inside each child file.
| Child sitemap | What it lists | Allbirds, Sept 25 2026 |
|---|---|---|
sitemap_products_1.xml | The homepage, then every live product | 295 URLs (294 products plus the homepage) |
sitemap_collections_1.xml | Collection pages, including /collections/all | 1,346 URLs |
sitemap_pages_1.xml | Online Store pages | 175 URLs |
sitemap_blogs_1.xml | Blogs and blog posts | 82 URLs |
sitemap_metaobject_pages_1.xml | Metaobject pages the theme publishes | Present, menu image pages |
sitemap_agentic_discovery.xml | A single entry: /agents.md | 1 URL |
Three things in that table matter for diagnosis:
- The products file starts with the homepage. The first
<url>insitemap_products_1.xmlis the root URL, with no lastmod, which is why Allbirds shows 295 entries for 294 products. - The product, page and collection links carry
?from=and?to=ID ranges. ColourPop's index listssitemap_products_1.xmlandsitemap_products_2.xmlwith consecutive ranges, which is how Shopify keeps each file under the 50,000-URL limit. - Collections outnumber products on a lot of stores. Allbirds has 1,346 collection URLs against 294 products, because every colour, size and campaign gets a collection. They are listed whether or not they have unique copy, a classic Shopify SEO audit finding.
Two newer files show up on current stores. sitemap_metaobject_pages_1.xml lists pages built from metaobjects. sitemap_agentic_discovery.xml holds one entry, /agents.md, on every store I checked. I found no Shopify documentation for it; treat it as the AI-agent equivalent of robots.txt and leave it alone.
What each URL entry carries
A product entry in the live file carries four things:
<loc>: the canonical/products/handleURL, never the/collections/name/products/handleduplicate.<lastmod>: a full timestamp with timezone, for example2026-09-25T02:08:48-07:00. Google's docs say it uses lastmod when it is "consistently and verifiably" accurate, so a store that bulk-resaves the catalog every night is teaching Google to ignore the field.<changefreq>:dailyfor products and collections,weeklyfor pages and blogs. Google ignores changefreq and priority entirely, so this tells you nothing about crawl rate.<image:image>: the "primary product image" Shopify's help page mentions, with its title. 294 of 295 product entries on Allbirds carried one.
What Shopify leaves out of the sitemap
This is the part the ranking pages skip. Shopify spreads the rules across three help documents, so here they are in one table, with what I saw in live files.
| Resource or state | In the sitemap? | Where you control it |
|---|---|---|
| Active product published to the Online Store | Listed | Product status and Publishing |
| Sold-out product that is still Active | Listed | Inventory does not change listing (my reading of the status docs) |
| Collection, page or blog post | Listed | Publish it, or set the post to visible |
| Product set to Unlisted | Not listed, noindex and nofollow added | Product status |
| Product, page or post with seo.hidden = 1 | Not listed, hidden from search engines | Metafield |
| Draft or Archived product | Not listed, not on the storefront | Product status |
| Product not published to the Online Store channel | Not listed, no live URL | Publishing section |
| /collections/x/products/y duplicate | Not listed, canonical points to /products/y | Theme |
| Paginated, filtered, tag and ?variant= URLs | Not listed | robots.txt.liquid for crawling |
| Noindex added in theme.liquid only | Still listed | Theme code |
| Store in password (private) mode | File exists, Google cannot fetch it | Online Store preferences |
What ends up in a Shopify sitemap, by resource state
The sourced rules, in Shopify's words where it has them:
- Unlisted products. The product details documentation says "the noindex and nofollow meta tags are added to the page, and the product is removed from your store's XML sitemap file".
- The seo.hidden metafield. Per the hiding a page guide, a value of 1 hides a page, post or product "from sitemaps, search engines, and your online store search".
- Not published to the Online Store channel. Shopify's searchability page requires Online Store publishing for a product to appear on the store at all, so a Shop-only or wholesale-only product has no web URL to list.
- Password mode. The file exists, but "a sitemap reader (such as Google) can't access it if your website is set to private mode". Search Console shows this as Couldn't fetch.
The observed exclusions matter too. Across Allbirds' four child files (1,898 URLs) I found zero ?page= URLs, zero collection-path duplicates and zero ?variant= URLs. Filters, tags and sort orders are absent as well. If Google indexes those, it found them through internal links, not the sitemap.
Sold out is an inventory number. Unlisted is a product status. Shopify only pulls a product from the sitemap on a status or publishing change, so a sold-out Active product stays listed and keeps ranking, which is what you want for a restock. To take it out of search without losing the URL, unlist it.
How to hide a product or page from the Shopify sitemap
There are three sanctioned routes, and they do different things. Pick by what you want to keep.
- Unlist the product (products only). Products, select the product, then the actions menu, then Unlist products. The URL keeps working, the sitemap entry goes, noindex and nofollow are added, and the product leaves collections, storefront search and recommendations. Right for bundle-only SKUs and early-access links.
- Set seo.hidden = 1 (products, pages, blog posts). Settings, then Metafields and metaobjects: add a definition with namespace and key
seo.hidden, type Integer, maximum value 1, then set it to 1 on the item. It leaves the sitemap and search engines, but a hidden product still shows in storefront collections and recommendations. - Noindex in theme.liquid (anything). An
if handle containsblock around a robots meta tag. Most tutorials teach this route, and it is the only one that does not touch the sitemap: Search Console shows the URL as submitted and excluded by noindex, harmless but noisy.
If an app already owns seo.hidden, the admin says the namespace and key are taken. Shopify's guide shows how to add a definition to the existing metafield instead.
Per-market and per-language sitemaps with Shopify Markets
Shopify's international SEO documentation says sitemaps "are generated automatically and include all market-specific URLs". How that shows up depends on the URL structure you chose.
- Subfolder markets stay inside the root index. On September 25, 2026,
rothys.com/sitemap.xmlheld 181 entries: the 6 root files plus 5 child sitemaps for each of 35 markets, from/en-ca/and/en-gb/to/pt-br/. Each market's products file starts with that market's homepage,rothys.com/en-ca. - Subdomain and country-domain markets get their own index.
yourstore.ca/sitemap.xmlis a separate file, and Shopify's guide says to verify and submit the sitemap for each domain. - Languages are added for you. A French translation of the Canadian market becomes
/fr-ca/with its own child files.
One caveat from the live files. The documentation says each sitemap URL "includes hreflang annotations", but the Rothy's product sitemaps I fetched, root and /en-ca/, carried no xhtml:link alternates. The hreflang tags are in the page head instead. Google accepts either, so this is a documentation gap, not an SEO problem.
/en-gb/products/ URLs it read from the old index: every one now 404s, and none is in the current file.Why you cannot edit the Shopify sitemap (and what to do instead)
There is no file to edit. Shopify renders the sitemap on request, there is no FTP, and the theme has no sitemap template. The Liquid sitemap object that shows up in search results is a property of robots.txt.liquid: it outputs the Sitemap: line for a rule group, nothing more.
What you can do instead, in order of how often it is the right answer:
- Change the resource, not the file. Status, channel publishing and
seo.hiddencover nearly every "remove this URL" request. A December 2025 community thread put it plainly: "automatically excluding URLs from Shopify's auto-generated sitemap isn't really possible." - Fix the URL and let the sitemap follow. Renaming a collection does not change its handle; a merchant in June 2023 found "the URL of the collection in the Search Engine Listing doesn't update". Edit the handle under Search engine listing and tick the redirect.
- Serve a supplementary file for a one-off job. Upload a hand-built XML file under Content, then Files, redirect
/custom-sitemap.xmlto it, and submit that URL. It suits a migration's legacy URL list. Shopify will never link it and it never updates itself, so retire it afterwards. - Sitemap apps. They mostly produce that same supplementary file. I would not pay monthly for what a redirect does once.
How to submit the Shopify sitemap to Google Search Console
Submitting takes a minute. The steps around it are what save you a support ticket later.
- Open
yourstore.com/sitemap.xmlin a browser. You should see XML. If you see the password page, the store is in private mode and Google cannot read the file either; deactivate it, at least while you verify and submit. - Verify the property. Our Search Console setup guide for Shopify walks both routes: a Domain property through DNS (durable), or the HTML tag in theme.liquid (fast, and lost on the next theme update).
- Go to Indexing, then Sitemaps. Type
sitemap.xmlinto the Add a new sitemap box (the domain is prefilled) and click Submit. That is the whole index; do not submitsitemap_products_1.xmlor a market file separately. - Wait for Success and read Discovered pages. Google fetches the sitemap immediately, then rereads it "at a pace unrelated to the regular site crawl". Discovered pages should sit near your child-file total; Allbirds' four main files add up to 1,898.
- Repeat for each extra domain. A subdomain or country-domain market is its own property and its own
sitemap.xml. Subfolder markets are already inside the root index. - Submit to Bing Webmaster Tools as well. Same URL. Our Shopify SEO checklist lists it because ChatGPT browses on Bing's index.
- Filter the Page indexing report by the sitemap. Click the sitemap row, then See page indexing. Every indexation status you now see is about URLs Shopify put in the file. If the whole store is missing from Google, work through why a Shopify store is not showing up on Google before you blame the sitemap.
From a live store to a sitemap row Search Console can report on
Google's Sitemaps report documentation adds two rules that explain most confusion. The report "shows only sitemaps that were submitted using this report or the API", so a file found through robots.txt has no row until you add it. And once Google has read a sitemap, "it will remember that information".
Shopify sitemap not updating: what is really happening
"My sitemap isn't updating" is the most common complaint on the community forum, and in nearly every thread the live file was fine. In August 2025 a merchant reported sitemap_blogs_1.xml missing three new posts. The replies suggested caches and cron jobs, none of which exist on Shopify.
Three layers can be stale, and only one of them is yours to refresh:
- The live file. Shopify updates it "when you add a new webpage, product, collection, image, or blog post". Open the child file directly and search for the new handle. If it is there, Shopify is done.
- Your browser. A tab you opened yesterday is yesterday's file. Reload it.
- Google's copy. The Sitemaps report shows what Google read last time. Resubmitting the index is the one nudge you have. In a May 2025 thread the merchant confirmed the new collections file was live, resubmitted, and Search Console kept reporting the old one as Couldn't fetch.
For a single new URL, do not wait on the sitemap. Google's recrawl guidance lists the URL Inspection tool first.
Diagnosing a sitemap URL that returns 404 or redirects
In June 2024 a merchant wrote that "there are 700+ urls in the sitemap that are 404'ing". That number almost never comes from the live file. It comes from Search Console's Page indexing report, which keeps every URL Google ever read from your sitemap, including products you deleted long ago.
- Is the URL in the live child sitemap? Fetch the file, not the report. Our free sitemap checker reads the index, follows the child files and requests every URL, one status code per entry. If the URL is not in the file, the entry is Google's memory: redirect it or wait.
- Is it a redirect because you changed a handle? Editing a URL under Search engine listing with the redirect box ticked puts the new handle in the sitemap and 301s the old one. Search Console reports the old URL as Page with redirect. That is correct; leave it.
- Is it a market that no longer exists? In August 2024 a merchant saw
/en-gb/products/404s appear for every new product with Markets switched off. Check the root index for stale prefixes, and whether a theme or app still emits those links. - Did an app create the resource? Page builders, bundle apps and spam bots create pages and products that get sitemap entries. Deleting them in the app removes the entry; deleting the app sometimes does not.
- Is the file itself well formed? Rare on Shopify, but a proxy or headless layer can serve HTML at
/sitemap.xml. The sitemap validator checks the file against the sitemaps.org protocol and the 50,000-URL and 50 MB limits. - What changed since last week? Save the child file today and diff it against a later copy with the sitemap comparison tool. URLs that vanish between runs are the ones a status change, an app or a market switch removed.
Doing that by hand every week is how the 700-URL backlogs happen. CrawlRaven joins Search Console, GA4 and a 200-point crawl into one ranked plan, and its ecommerce mode for Shopify compares the sitemap against the crawl and against Search Console's indexing report.
The output is one list: sitemap URLs that are not indexed, with the reason and the traffic at stake. Lifetime licences launched at $49 for 3 sites. Lifetime pricing steps up as licenses sell, so check the pricing page for the current batch. See pricing.
Shopify sitemap FAQs
Finding and reading it
Where is my Shopify sitemap? At yourstore.com/sitemap.xml on every domain the store serves. It is an index linking child files for products, collections, pages and blog posts, and robots.txt names the same URL.
Does Shopify Markets create a sitemap per market? Yes. Subfolder markets get child sitemaps inside the root index; Rothy's index held 181 entries across 35 markets on September 25, 2026. Subdomain and country-domain markets get a separate sitemap.xml you submit on its own.
Hiding and editing
How do I hide a product from the Shopify sitemap? Set its status to Unlisted: the entry goes, noindex and nofollow are added, and the direct URL keeps working. For a page or blog post, add the seo.hidden metafield and set it to 1.
Does a noindex tag remove a page from the sitemap? No. A noindex added in theme.liquid leaves the URL in the file, and Search Console reports it as submitted but excluded. Use Unlisted status or seo.hidden so the sitemap and the tag agree.
Troubleshooting
Why is my Shopify sitemap not updating? Usually it is, and Google's copy is what lags. Open the child file directly and search for the new handle. If it is there, resubmit the index and use URL Inspection for the page you care about.
Why does the sitemap list a URL that 404s? Check the live child file first. Most of these entries are Search Console's memory of a deleted product or a removed market subfolder. If the URL really is in the file, look for an app-created resource or a stale market prefix.
What to do this week
The sitemap is the one part of Shopify SEO you cannot break by editing, which makes it a good place to start an audit.
- Open every child file once and note the counts. A collections file three times the size of the products file is a thin-content problem waiting in the Shopify SEO audit.
- Submit the index per domain, then filter Page indexing by sitemap and read the not-indexed reasons for those URLs only.
- Move hidden products to Unlisted or
seo.hiddenso the sitemap and the meta tags stop disagreeing. - Check the market prefixes in the root index against the markets you sell in.
For why a store's bottleneck is the crawl rather than content, read our comparison of SaaS SEO vs ecommerce SEO. The XML sitemap glossary entry covers the format itself.
Sources
- Shopify Help Center: Finding and submitting your sitemap
- Shopify Help Center: Hiding a page from search engines
- Shopify Help Center: Product details page (product status and unlisted products)
- Shopify Help Center: Managing searchability
- Shopify Help Center: International SEO for markets
- Shopify.dev: robots.txt.liquid template
- Shopify.dev: Liquid sitemap object
- Google Search Central: Build and submit a sitemap
- Google Search Console Help: Sitemaps report
- Google Search Central: Ask Google to recrawl your URLs
- Shopify Community: Dealing with excessive 404 errors (December 2025)
- Shopify Community: Sitemap.xml contains out of date URLs (June 2023 to June 2024)
- Shopify Community: My blog XML sitemap is not updating (August 2025)
- Shopify Community: Issues with sitemap and indexing (May 2025)
- Shopify Community: Shopify generates 404 pages with en-gb extensions (August 2024)
- Live sitemap files fetched September 25, 2026: allbirds.com, colourpop.com, brooklinen.com, hexclad.com and rothys.com. Keyword volumes and difficulty: DataForSEO Labs, United States, September 2026.
Frequently asked questions
Where is my Shopify sitemap?
At the root of every domain your store serves: yourstore.com/sitemap.xml. Shopify generates it automatically as a sitemap index that links child files for products, collections, pages and blog posts, and lists the same URL in your robots.txt. If your store uses a subdomain or a country domain for a market, that domain has its own sitemap.xml.
Does Shopify automatically generate an XML sitemap?
Yes. Every Shopify store generates sitemap.xml with links to products, the primary product image, pages, collections and blog posts, and updates it when you add or change any of them. Shopify's own file carries a comment saying it cannot be edited manually but is kept up to date in real time.
Can I edit my Shopify sitemap?
No. There is no FTP access, no template for the file, and the Liquid sitemap object only exists for robots.txt.liquid. You control the contents indirectly: product status, the Online Store channel, the seo.hidden metafield and Markets settings decide what is listed. A hand-built file can be served through a redirect, but Shopify will never reference it.
How do I submit my Shopify sitemap to Google Search Console?
Verify the domain, open Indexing, then Sitemaps, type sitemap.xml into the Add a new sitemap box and click Submit. Google reads the index and follows every child file, so you never submit sitemap_products_1.xml on its own. Repeat once for each subdomain or country domain your store uses. Subfolder markets are already inside the root index.
How do I hide a product from the Shopify sitemap?
Set the product status to Unlisted. Shopify removes it from the sitemap, adds noindex and nofollow meta tags, and hides it from collections and storefront search while the direct URL still works. For a page or blog post, add the seo.hidden metafield and set it to 1, which removes it from the sitemap and search engines too.
Why is my Shopify sitemap not updating?
Usually it is. The live file changes when you add or edit a product, page, collection, image or post; what lags is Google's copy. Search Console keeps what it read last time and rereads on its own schedule, so the report can show stale counts for days. Open the child file directly before you judge.
Why does my Shopify sitemap list a URL that returns 404?
Check whether the URL is in the live child sitemap at all. Most of these come from Search Console's Page indexing report, which remembers every URL Google ever saw in a sitemap, including deleted products. If the URL really is in the live file, suspect a removed market subfolder or a resource an app created and deleted.
Does Shopify Markets create a sitemap for each market?
Yes. Subfolder markets get their own child sitemaps listed inside the root index: Rothy's index on September 25, 2026 held 181 entries covering 35 market subfolders such as /en-ca/ and /en-gb/. Subdomain and country-domain markets get a separate sitemap.xml at that domain, which you verify and submit on its own.
Are out-of-stock products included in the Shopify sitemap?
Yes, as long as the product is still Active and published to the Online Store channel. Sold out is an inventory state, not a product status, and Shopify's documentation ties sitemap listing to status and publishing. If you want a sold-out product out of search, set it to Unlisted or use the seo.hidden metafield rather than deleting it.
Does a noindex tag remove a page from the Shopify sitemap?
No. A noindex added in theme.liquid keeps the URL in the sitemap, and Search Console will report it as submitted but excluded by noindex. Only Unlisted status, the seo.hidden metafield, unpublishing from the Online Store channel, or deleting the resource removes the entry. Use the status or metafield route so the sitemap and the tag agree.
15+ years of growing SaaS websites through SEO | Author, 200-Point Audit Checklist
Aditi has spent 15+ years helping SaaS companies scale organic traffic through technical SEO and content strategy. She is the author of the CrawlRaven 200-Point Audit checklist used by agencies and in-house teams to systematically improve search performance.