# The Shopify Sitemap, Explained: Limits, Gaps and the New Agentic Sitemap

Source: https://www.smartecomseo.com/blog/shopify-sitemap-agentic-discovery/  
Published: 2026-09-08  
Updated: 2026-09-29

What Shopify's sitemap.xml contains in 2026, how it splits big catalogs, what it leaves out, and what the new sitemap_agentic_discovery.xml and /agents.md files do.

## Key takeaways

- Shopify's sitemap.xml is an index of child sitemaps for products, collections, pages, blogs, metaobject pages, each Markets subfolder and, since 2026, AI agents.
- Product sitemaps on the stores we checked were split into files of 1,000 products, far below Google's 50,000-URL limit.
- sitemap_agentic_discovery.xml lists a single URL, /agents.md, which Shopify calls the canonical agent-facing description of a store.
- You can override /agents.md, /llms.txt and /llms-full.txt with theme templates, but the agents.md template only gets the request and agents objects.
- The agentic sitemap is plumbing, not a ranking factor: product data quality decides what AI shopping agents recommend.

Every Shopify store publishes a sitemap at `/sitemap.xml`. You can't edit it, you can't turn it off, and most of the time you shouldn't want to. But on a big catalog it's worth knowing exactly what it contains, what it leaves out, and what changed in 2026, when Shopify added a new child sitemap for AI agents: `sitemap_agentic_discovery.xml`.

Everything below comes from Shopify's documentation and from fetching the sitemaps of live Shopify stores (Allbirds, Lovisa, Princess Polly, Kylie Cosmetics, Brooklinen and Shopify's own Dawn demo) in September 2026.

## What the Shopify sitemap looks like today

`/sitemap.xml` is a sitemap index: a list of other sitemaps. Here's Allbirds' index as we fetched it (IDs shortened):

```xml
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <!-- This is the parent sitemap linking to additional sitemaps for products,
       collections and pages as shown below. The sitemap can not be edited
       manually, but is kept up to date in real time. -->
  <sitemap><loc>https://www.allbirds.com/sitemap_agentic_discovery.xml</loc></sitemap>
  <sitemap><loc>https://www.allbirds.com/sitemap_products_1.xml?from=1878…&amp;to=7369…</loc></sitemap>
  <sitemap><loc>https://www.allbirds.com/sitemap_pages_1.xml?from=1544…&amp;to=9489…</loc></sitemap>
  <sitemap><loc>https://www.allbirds.com/sitemap_collections_1.xml?from=4234…&amp;to=2794…</loc></sitemap>
  <sitemap><loc>https://www.allbirds.com/sitemap_blogs_1.xml</loc></sitemap>
  <sitemap><loc>https://www.allbirds.com/sitemap_metaobject_pages_1.xml</loc></sitemap>
</sitemapindex>
```

The `from` and `to` values are resource IDs. Each child file covers a range of product, page or collection IDs.

| Child sitemap | What it lists | Notes |
| --- | --- | --- |
| `sitemap_products_N.xml` | Home page (first file only) and every published product | One `<image:image>` per product: the primary image, with its title |
| `sitemap_collections_N.xml` | Published collections, including `/collections/all` | Collection image where one is set |
| `sitemap_pages_N.xml` | Online Store pages (`/pages/...`) | Includes utility pages you may not want indexed |
| `sitemap_blogs_1.xml` | Blog index pages and articles | Article featured images |
| `sitemap_metaobject_pages_1.xml` | Metaobject entries published as web pages | Only when you use metaobject pages |
| `sitemap_agentic_discovery.xml` | One URL: `/agents.md` | New in 2026, covered below |
| `/en-xx/sitemap_*.xml` | The same set for each Markets subfolder | Listed in the root index |

If you use separate domains for international markets, Shopify generates sitemap files for each domain and you submit each one separately in Search Console.

## The limits that matter on a big catalog

### Files are split at 1,000 products

Google allows up to 50,000 URLs or 50 MB per sitemap file. Shopify splits much earlier. On Lovisa's store we counted 11 product sitemaps: the first held 1,001 URLs (1,000 products plus the home page), the next nine held exactly 1,000 each, and the last held 222. Princess Polly had 18 product files. Collection files were not split at a fixed count in the stores we checked, so don't rely on a number there.

The practical point: a 10,000-SKU store has at least 10 product sitemaps. Search Console's Sitemaps report shows discovered pages for each child file, and the Page indexing report can be filtered to submitted pages, which is the fastest way to see how much of the catalog is actually indexed.

### You can't edit it

There is no setting to add, remove or reorder URLs in the generated file. You control what's in it by controlling what's published:

- **Unlisted status** (products): Shopify's help center says Unlisted products are hidden from search engines, Shopify Catalog and the sitemap, but still reachable by direct URL. Use it for bundle components, warranty add-ons and B2B-only items.
- **The ****`seo.hidden`**** metafield** (products, pages, articles): set to `1` to remove the page from the sitemap and add `noindex`. Developers on Shopify's community forum reported in 2025 that it only adds the robots tag when the metafield type is integer, so use an integer definition.
- **Unpublishing** from the Online Store channel or setting a product to Draft.

If you need extra URLs submitted (for example, a sitemap an app generates for landing pages), you can add a `Sitemap:` line in `robots.txt.liquid`. Shopify's docs show this as a custom rule outside the default groups.

### `lastmod` on products is not telling you much

Google ignores `changefreq` and `priority`, and uses `lastmod` only if it's "consistently and verifiably" accurate. In every product sitemap we pulled on September 24, 2026 (on Allbirds, Lovisa, Kylie Cosmetics and the Dawn demo store), every product entry carried that same day's date. Collections and blog posts had varied, plausible dates.

That means you can't use product `lastmod` as a signal of freshness, and Google probably doesn't either. Real freshness signals on product pages come from content changes Google can see when it recrawls: price, availability, reviews, copy.

### Markets: one full sitemap set per subfolder

With Markets subfolders, the root index lists a complete set of child sitemaps for each one (`/en-au/sitemap_products_1.xml` and so on), each containing that market's URLs. The files we checked carried no hreflang annotations (no `xhtml:link` entries). Shopify puts hreflang in the page `<head>` instead, which Google accepts as an equally valid method.

The side effect: a store with 15 market subfolders submits 15 copies of its catalog. If those subfolders are English duplicates with no local pricing, content or demand behind them, they add crawl load without adding rankings. Decide which markets deserve their own URLs before switching them on; our [international SEO](/shopify-seo-services/international-seo/) work starts with exactly that question.

## What the sitemap leaves out

Not being in the sitemap doesn't block indexing. But these URL types are never listed, which is usually correct:

- Collection tag pages (`/collections/sofas/leather`)
- Filtered and sorted collection URLs (`?filter.…`, `?sort_by=`)
- Vendor and type pages (`/collections/vendors?q=…`)
- Blog tag pages (`/blogs/news/tagged/…`)
- Collection-path product URLs (`/collections/x/products/y`)

If Search Console shows lots of these indexed, the problem is internal linking and canonicals, not the sitemap. Our [duplicate content guide](/blog/shopify-duplicate-content/) covers each one.

The opposite gap matters more: pages that *are* in the sitemap but not linked from anywhere. A product that's published but not in any collection shows up in the sitemap and nowhere else. Google can index it, but it gets almost no internal authority. Compare the sitemap URL list to a crawl to find these orphans.

## The new agentic sitemap and /agents.md

In 2026 Shopify started serving new agent-facing files on every Online Store:

- **`/agents.md`**: a Markdown document Shopify's docs call "the canonical, agent-facing description of a store".
- **`/llms.txt`**** and ****`/llms-full.txt`**: alternate URLs that mirror `/agents.md` by default.
- **`/.well-known/ucp`**: the store's Universal Commerce Protocol (UCP) profile, with an MCP endpoint at `/api/ucp/mcp`.
- **`/sitemap_agentic_discovery.xml`**: a child sitemap that lists `/agents.md`.

On Allbirds, the agentic sitemap is this, in full:

```xml
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://www.allbirds.com/agents.md</loc>
    <changefreq>weekly</changefreq>
  </url>
</urlset>
```

`/agents.md` itself is served as `text/markdown`. On the stores we checked, the default version tells agents how to use UCP (discover, search the catalog, create a cart and checkout, with buyer approval required for payment), lists the read-only URLs (`/products/{handle}.json`, `/collections/{handle}/products.json`, `/search`, the sitemap), links the store's policies, and recommends Shopify's Shop skill for personal shopping agents. The newer default robots.txt carries a comment header pointing agents to the same files.

### Can you customize agents.md?

Yes. Shopify's developer changelog (May 28, 2026) added three theme templates: `templates/agents.md.liquid`, `templates/llms.txt.liquid` and `templates/llms-full.txt.liquid`. The lookup order:

| URL | Template used |
| --- | --- |
| `/agents.md` | `agents.md.liquid`, then Shopify's default |
| `/llms.txt` | `llms.txt.liquid`, then `agents.md.liquid`, then Shopify's default |
| `/llms-full.txt` | `llms-full.txt.liquid`, then `agents.md.liquid`, then Shopify's default |

Two constraints to know before you edit:

1. **Restricted Liquid.** Only `request` and a special `agents` object are available. `shop`, `collections`, `pages` and the other usual globals render blank. The `agents` object gives you `store_name`, `store_url`, `ucp_discovery_url`, `mcp_endpoint_url`, `ucp_versions`, `currency` and `sitemap_url`.
2. **You own it once you add it.** A custom template replaces Shopify's managed file, which otherwise stays in sync with Shopify's agent capabilities.

A minimal custom version that keeps the endpoints dynamic and adds brand context looks like this:

```liquid
# Agent Instructions — {{ agents.store_name }}

This document describes how AI agents can interact with {{ agents.store_url }}.

## About the store
We sell commercial-grade outdoor kitchens and built-in grills. All prices are in {{ agents.currency }}.

## Commerce Protocol (UCP)
- Discovery: `GET {{ agents.ucp_discovery_url }}`
- MCP endpoint: `POST {{ agents.mcp_endpoint_url }}`

## Read-only browsing
- Sitemap: {{ agents.sitemap_url }}
- Buying guides: {{ agents.store_url }}/blogs/guides
```

Shopify's docs warn against putting contact details or other private merchant data in the file, because it's cached broadly and served to every agent.

> **Customize only for a reason:** For most stores, the managed `agents.md` is the right choice. It updates when Shopify adds UCP versions. Add a template only when you need something the default lacks, such as pointing agents at your buying guides or clarifying B2B terms, and put a reminder on the calendar to review it.

The `agents.md` file is served only at the bare primary domain, with no Markets subfolder version.

## Does the agentic sitemap help you rank in ChatGPT?

Not directly. It's plumbing. The agentic sitemap makes `/agents.md` easy to find, and `/agents.md` tells agents where the structured endpoints are. Which products an AI assistant recommends still depends on the data behind those endpoints: product titles, descriptions, options, images, prices, availability and the attributes Shopify Catalog syndicates to AI channels.

Shopify's help center says eligible products are discoverable by AI channels through Shopify Catalog, and names ChatGPT, Microsoft Copilot, Google AI Mode and Gemini among them. For high-ticket products, the assistant also reads the open web: reviews, comparisons and your buying guides. That's where the work is. Our [ChatGPT Shopping](/geo-agency/chatgpt-shopping/) service covers product data and the content AI assistants cite, and our [llms.txt generator](/tools/shopify-llms-txt-generator/) helps if you want a custom `llms.txt` that diverges from `agents.md`.

**Is your catalog ready for AI shopping agents?** We check your product data, agents.md, schema and the pages ChatGPT and Google AI Mode cite for your category. [Get an AI visibility audit](/geo-agency/ai-visibility-audit/)

## Reading your sitemap in Search Console

Submit `sitemap.xml` once. Search Console recognizes it as an index and lists each child sitemap underneath with its own "Discovered pages" count. A few things that look like problems but usually aren't:

- **`sitemap_agentic_discovery.xml`**** shows one discovered page.** That's expected: it only lists `/agents.md`.
- **Product sitemap URLs contain ****`?from=`**** and ****`to=`****.** Those are ID ranges, not tracking parameters. The files move as you add products, so don't submit the child files individually.
- **Discovered pages exceed indexed pages.** Normal on any catalog. What matters is the indexed share of submitted pages and whether it's improving.

What is a problem: a "Couldn't fetch" status that persists for days (check the storefront password first), or a large drop in discovered product URLs, which usually means products were unpublished from the Online Store channel by a bulk edit or an app.

## A monthly sitemap routine for big catalogs

1. **Confirm the index loads** and lists every child file you expect, including each Markets subfolder.
2. **Compare counts.** Products in the sitemap vs. active products in the admin. A gap means publishing or status problems.
3. **Filter the Page indexing report to submitted pages** and note the indexed share. Split the "not indexed" examples into products, collections and blog posts to see where the gap is.
4. **Look for junk.** Test pages, "copy-of" collections, old landing pages. Unlist, hide or delete them.
5. **Check ****`/agents.md`**** and ****`/.well-known/ucp`** still load and show the right store name.
6. **Submit to Bing Webmaster Tools** as well as Google. On one of our client stores, Bing drove $25,000+ of $150,000+ organic revenue in four months.
7. **Find orphans** by comparing sitemap URLs with a crawl.

Headless storefronts (Hydrogen or custom front ends) don't always get this generated set; several large brands we checked served their own sitemap formats. If you're headless, check what your front end actually outputs.

For the full list of technical checks beyond the sitemap, see the [Shopify SEO checklist for big catalogs](/blog/shopify-seo-checklist/), or talk to us about [technical SEO](/shopify-seo-services/technical-seo/).

## FAQs

### Where is the Shopify sitemap?

Every Online Store serves it at yourdomain.com/sitemap.xml. It is a sitemap index linking to child sitemaps for products, collections, pages, blogs and, where used, metaobject pages, plus sitemap_agentic_discovery.xml and a set for each Markets subfolder. Submit sitemap.xml once in Google Search Console and Bing Webmaster Tools, and once per extra domain.

### How do I remove a product from the Shopify sitemap?

Set the product status to Unlisted, which Shopify says hides it from search engines, Shopify Catalog and the sitemap while keeping the URL reachable. Alternatively, add the seo.hidden metafield with an integer value of 1, which also adds noindex. Draft products and products not published to the Online Store channel are not listed either.

### What is sitemap_agentic_discovery.xml on Shopify?

It is a child sitemap Shopify added in 2026. On the stores we checked it lists one URL, /agents.md, with a weekly change frequency. Its job is to help crawlers and AI agents find the agent-facing file that describes how to browse and transact with the store through the Universal Commerce Protocol.

### Can I edit agents.md or llms.txt on Shopify?

Yes. Add templates/agents.md.liquid in your theme to replace the managed agents.md, which then also serves /llms.txt and /llms-full.txt unless you add llms.txt.liquid or llms-full.txt.liquid. The template can only use the request and agents objects. Shopify recommends the managed default for most stores.

### Why do all my products show the same lastmod date in the Shopify sitemap?

In every product sitemap we pulled on the same day, all products carried that day's date, while collections and blog posts had varied dates. The reason isn't documented. Google only uses lastmod when it is consistently accurate, so don't rely on it; real content changes on the page matter more.