Every Shopify store has a sitemap that Shopify builds and updates automatically at https://yourdomain/sitemap.xml. It is an index that links to child sitemaps for products, collections, pages and blog posts, and it changes on its own whenever you publish, edit or remove something. You cannot edit the file, but you control what goes in it through what you publish and hide. This guide covers where to find it, what it lists, how to keep a page out, international stores, submitting it and the usual errors. For sitemaps in general, see the XML sitemap guide.
Quick answer
- Address:
https://yourdomain/sitemap.xmlon your primary domain. There is nothing to create or switch on. - Contents: products, collections, pages and blog posts published to the Online Store, each product with its main image.
- Not editable. Control it through visibility: unpublished items, unlisted products and items hidden with the
seo.hiddenmetafield stay out. - Password-protected stores (including stores still in setup) block the sitemap for search engines.
- International domains: each domain has its own sitemap; submit each one.
- Submit the primary domain's
/sitemap.xmlin Google Search Console, and check it with the sitemap checker.
Where is my Shopify sitemap?
Add /sitemap.xml to your store's primary domain:
https://example-shop.com/sitemap.xmlIt sits at the root of every domain connected to the store. Shopify's default robots.txt names it on a Sitemap: line too, so crawlers find it without being told. Use your primary domain, the one visitors see, not the yourstore.myshopify.com address, which redirects to it.
What the Shopify sitemap includes
The file at /sitemap.xml is a sitemap index. It links to child sitemaps by type, with names such as:
| Child sitemap | Lists |
|---|---|
sitemap_products_1.xml?from=…&to=… | Products, each with its main product image |
sitemap_collections_1.xml | Collections |
sitemap_pages_1.xml | Pages created under Online Store → Pages |
sitemap_blogs_1.xml | Blog posts |
According to Shopify's help centre, a new child sitemap starts once one passes 5,000 URLs, so a large catalogue has several product files. The files update automatically when you add or change a product, collection, page, blog post or image.
Two details that work in your favour:
- Product URLs are listed in their canonical form,
/products/handle, not the collection-scoped/collections/…/products/handleversions your theme may link to. Those carry a canonical to/products/handleanyway. - Only items published to the Online Store sales channel are listed. Drafts, archived products and items available only on other channels stay out.
What stays out, and how to keep a page out
Because the file cannot be edited, you control it through visibility:
- Unpublish the item from the Online Store channel. It disappears from the store and the sitemap.
- Set a product to Unlisted. Shopify's help centre describes this status for products reachable only by a direct link: it keeps them out of the sitemap, search engines, collection pages, store search and recommendations.
- Use the
seo.hiddenmetafield. Add a metafield with namespaceseo, keyhidden, type integer, and set it to1on a product, page or blog post. Shopify removes the item from the sitemap and adds anoindexrobots tag, while it stays visible in the store. This suits thank-you pages, landing pages for ads and internal pages.
Things you cannot do with the built-in sitemap: add URLs Shopify does not generate, remove whole types (such as all blog posts), or change <lastmod> values. Files you upload to Shopify are served from its CDN, not from your root, so you cannot replace /sitemap.xml with your own. What you can and cannot fix on Shopify covers the other platform limits.
Password protection and new stores
While a store is password-protected, including during setup before you pick a plan, search engines cannot read the sitemap or the pages: every request gets the password page. Search Console then reports the sitemap as "Couldn't fetch". Remove the password under Online Store → Preferences once you launch, then submit the sitemap.
International stores: Markets, languages and domains
If you sell in several languages, Shopify adds the translated pages to the sitemap of each domain automatically, with hreflang annotations linking the language versions. The same applies to markets on subfolders, subdomains or separate domains: when you add a market, its URLs are added to the sitemaps.
With separate international domains, each domain has its own /sitemap.xml. Shopify's help centre says to submit the sitemap for each domain, and you verify each domain in Search Console, or use one Domain property per root domain. hreflang in sitemaps vs in HTML explains the hreflang side.
How to submit your Shopify sitemap to Google
- Verify the store in Google Search Console. A Domain property is simplest: add the TXT record Google gives you at your domain's DNS provider, or under Settings → Domains in Shopify if Shopify manages your DNS. A URL-prefix property can use the HTML meta tag instead, pasted into the
<head>oftheme.liquidin the theme code editor. - Open Indexing → Sitemaps, enter
https://yourdomain/sitemap.xmland click Submit. - Repeat for each international domain, if you have them.
- Add it to Bing Webmaster Tools, or import the property from Search Console there.
Submit only /sitemap.xml, not the child files; Google reads them from the index. How to submit a sitemap to Google explains the statuses you will see afterwards.
Common Shopify sitemap errors and fixes
"Couldn't fetch"
Usually the store is still password-protected, or you submitted the myshopify.com address, which redirects. Remove the password, submit the primary domain's sitemap, and allow a day or two: a freshly submitted sitemap often shows "Couldn't fetch" until Google processes it.
"Indexed, not submitted in sitemap"
Search Console lists pages Google indexed that are not in the sitemap. On Shopify these are usually collection-scoped product URLs, tag-filtered collection URLs, or /collections/all. They are not errors in the sitemap. If Google indexes duplicates, check that your theme links to /products/handle and that canonicals point there.
A page you hid still appears
Search engines take time to recrawl. Check the page source for <meta name="robots" content="noindex"> after setting seo.hidden, then request removal in Search Console if it is urgent.
Products missing from the sitemap
Check that the product is Active, published to the Online Store sales channel and not Unlisted, and that it has no seo.hidden metafield. The sitemap updates automatically once all four are right.
Deleted products still listed in Search Console
The sitemap drops them immediately, but Google remembers the URLs and reports them as "Not found (404)". Redirect deleted products that had traffic or links to their closest successor or collection with Shopify's URL redirects screen, which also imports a CSV. Let the others stay 404.
How to check your Shopify sitemap
The sitemap checker reads your robots.txt and /sitemap.xml, recognises the index, counts the child sitemaps and checks their status, and requests up to 25 listed URLs to confirm they answer 200. On Shopify, the file format is always valid; what the checker finds are listed products that redirect or return 404, which point at a redirect or a publishing setting to fix.
To check every product URL rather than a sample, open a child sitemap, copy its <loc> values, and paste them into the bulk URL checker, up to 1,000 at a time.
Common mistakes
- Submitting the
myshopify.comsitemap instead of the primary domain's. - Launching with the store password still on, so nothing can be crawled.
- Using an app to publish a second sitemap that duplicates the built-in one. Search engines then get two lists of the same pages.
- Hiding pages with a theme-level
noindexonly, so they stay in the sitemap. Useseo.hidden, which does both. - Forgetting the international domains when submitting.
Questions people ask
Does Shopify create a sitemap automatically?
Yes. Every Shopify store gets a sitemap at /sitemap.xml on each of its domains, with child sitemaps for products, collections, pages and blog posts. It updates itself whenever you publish or change content, and Shopify's robots.txt points crawlers to it. There is nothing to install or switch on; you only need to submit it in Google Search Console.
Can I edit my Shopify sitemap?
No, the file is generated by Shopify and cannot be edited or replaced. You control its contents through visibility instead: unpublish an item, set a product to Unlisted, or add the seo.hidden metafield with the value 1 to keep a product, page or blog post out of the sitemap and out of search results.
Why does my Shopify sitemap show "Couldn't fetch" in Search Console?
Usually because the store is still password-protected, so Google gets the password page instead of the sitemap, or because the submitted address is the myshopify.com domain, which redirects. Remove the password, submit the sitemap of your primary domain, and give Google a day or two, since new submissions often show this status until they are processed.
Are Shopify product images in the sitemap?
Yes, each product entry in Shopify's product sitemap includes the product's main image as an image sitemap entry. Additional product images are not listed, but Google finds them on the product page as long as they are ordinary images in the HTML. Good alt text on every image helps more than extra sitemap entries.