umbrella Multi Storefront & SEO

Shopify SEO

Shopify sitemap.xml: where it is, and can you edit it?

Every Shopify store’s sitemap is at /sitemap.xml on its domain — yourdomain.com/sitemap.xml — and that is the URL you submit to Search Console. Can you edit it? Not directly — the file is generated and there is no field, app permission or theme hook that changes what goes in it. There are four things you can actually do, and one of them is a trap on a multi-brand store.

Behaviour described here was checked against Shopify’s documentation and a live store on .

Why can’t you edit Shopify’s sitemap directly?

Because it is generated, not stored. Shopify builds /sitemap.xml and its child files from your catalogue and updates them when you add a product, collection, page or article. There is no file in your theme to edit, no admin setting that filters it, and no app permission that rewrites it — apps can write theme files, and the sitemap is not one.

So every real option below either changes what goes into the generated file, or changes which file crawlers are pointed at. Nothing edits the file itself.

1. Change what is published

The sitemap lists what your storefront publishes. A product set to draft, a page unpublished, an article not yet live — none appear. This is the only lever that needs no technical work at all.

Its limit is that it is all or nothing: removing something from the sitemap this way also removes it from your storefront. It is the right tool for retiring a product and the wrong one for every other question on this page.

2. The seo.hidden metafield — and why it is a trap on a multi-brand store

Setting the seo.hidden metafield to 1 on a product, collection or page drops it from the sitemap and adds a noindex instruction to the page. On an ordinary single-domain store this is a legitimate tool.

On a store serving several brands from several domains, do not use it. All of your domains render the same theme, so the noindex it injects is not scoped to one domain — it applies wherever that page is served, including the brand domain that is supposed to own it. You would be hiding the product from the one storefront you wanted it discovered on, in order to hide it from the others. Umbrella deliberately does not use this metafield for exactly this reason.

3. robots.txt.liquid — the one file you can edit

Shopify has allowed a robots.txt.liquid template in the theme since 2021. It is the only part of this system that is genuinely yours to write, and it does two useful things: it can Disallow the generated sitemap paths, and it can add or replace the Sitemap: directive that tells crawlers where to look.

Because it is a Liquid template it can branch on request.host, so one template can emit a different Sitemap: line per domain without hardcoding any of them.

What it cannot do is change a single byte inside the generated sitemap. It changes what is pointed at, not what is in it — which is why it only solves anything when paired with option 4.

4. Publish a sitemap you control, and point robots.txt at it

This is the only route that changes sitemap contents, and it is explicitly supported rather than a workaround. Google’s own documentation describes hosting a site’s sitemap on a different host and referencing it from that site’s robots.txt; cross-host references are valid and multiple Sitemap: directives are allowed. Submitting one for a domain you do not own is what requires verifying both properties in Search Console — see Search Console with several brand domains.

The work is real: generating the XML, keeping it current as the catalogue changes, sharding it past the 50,000-URL limit, and hosting it somewhere that stays up. Umbrella does that for multi-brand stores specifically — one sitemap per storefront, listing only that brand’s URLs — and the documentation covers the setup.

Which one do you actually want?

  • Retiring a product — option 1. Change its status.
  • Hiding one page from search on a single-domain store — option 2, and it is fine there.
  • Pointing crawlers somewhere else — option 3.
  • Several brands on several domains, each needing its own sitemap — options 3 and 4 together. Neither works alone: a sitemap nobody is pointed at is ignored, and suppressing Shopify’s without publishing a replacement removes the discovery path entirely.

If it is the last one, why every Shopify domain serves the same sitemap explains what your store is doing today, and the four ways to run several brands on Shopify covers what each arrangement costs.