Shopify XML Sitemap: Setup, Submission & Troubleshooting
Your XML sitemap tells search engines which pages on your site exist and when they were last updated. Shopify generates and maintains your sitemap automatically, which is one of the platform's SEO advantages. But there are still things you need to know to use it effectively.
Where Is Your Sitemap?
Your Shopify sitemap lives at `yourwebsite.com/sitemap.xml`. This is a sitemap index file that links to child sitemaps for products, collections, blogs, and pages.
What Does It Contain?
Sitemap Index File
The main file links to child sitemaps:
- `sitemap_products_1.xml` — All published products
- `sitemap_collections_1.xml` — All published collections
- `sitemap_blogs_1.xml` — All blog posts
- `sitemap_pages_1.xml` — All published pages
Child Sitemap Files
Each entry includes:
- URL (`<loc>`)
- Last modified date (`<lastmod>`)
- Change frequency (`<changefreq>`)
- Image URLs (`<image:loc>` and `<image:title>`)
Shopify supports up to 5,000 URLs per child sitemap and automatically creates additional files as needed.
Can You Edit the Sitemap?
Not directly. Shopify generates it dynamically from your published content. However, you can influence what appears:
Removing Pages from the Sitemap
Use the `seo.hidden` boolean metafield. Setting it to `true` removes the page from the sitemap.
Important caveat: `seo.hidden` also injects `<meta name="robots" content="noindex,nofollow">`. If you only want sitemap removal without noindex, you need a Liquid workaround:
```liquid {% capture content_for_header_fixed %} {{ content_for_header }} {% endcapture %} {% if product.metafields.seo.hidden == 1 or collection.metafields.seo.hidden == 1 %} {{ content_for_header_fixed | remove: '<meta name="robots" content="noindex,nofollow">' }} {% else %} {{ content_for_header }} {% endif %} ```
Bulk Editing Metafields
Use the bulk editor URL to set `seo.hidden` and canonical metafields for multiple products at once:
``` https://YOURSTORE.myshopify.com/admin/bulk?resource_name=Product&edit=metafields.seo.hidden:boolean&limit=250 ```
Submitting to Google Search Console
Initial Setup
- Verify your domain in Google Search Console (DNS verification or HTML tag method).
- Go to Index > Sitemaps.
- Enter `sitemap.xml` and click Submit.
- Google will process it and report the number of URLs discovered.
What to Check After Submission
- Status: Should show "Success" within a few hours.
- Discovered URLs: Compare against your expected page count.
- Coverage report: Look for errors like 404s or redirect issues.
Common Sitemap Errors
"Couldn't Fetch the Sitemap"
Usually a temporary issue. Resubmit after 24 hours. If persistent, check that your robots.txt is not blocking the sitemap URL.
"Indexed, Not Submitted in Sitemap"
Google found pages through crawling that are not in your sitemap—often pagination pages, vendor/type collection URLs, or `/collections/all`. This is usually not a problem unless you have manually removed important pages.
Pages in Sitemap That Should Not Be
If noindexed or blocked pages appear in the sitemap, use the `seo.hidden` metafield to remove them. The sitemap should only contain pages you want indexed.
Custom Sitemaps for Migrations
If you migrated from another platform and need to preserve an old sitemap for Google to reference:
- Upload the old sitemap XML file to Settings > Files.
- Create a URL redirect from `/old_sitemap.xml` to the CDN file URL.
- Submit both sitemaps in GSC during the transition period.
Best Practices
- Submit your sitemap once; Google re-fetches it regularly.
- Ensure noindexed/blocked pages are not in the sitemap—this sends conflicting signals.
- Monitor GSC's Coverage report monthly for new issues.
- For stores with product images, verify that image sitemaps are working correctly.
Written by
Simbelle Team
The Simbelle team builds AI-powered tools that help Shopify merchants grow their organic visibility. With deep expertise in SEO, e-commerce, and AI search optimization, we share practical strategies that work in the real world — not just in theory.
