ShipworkSite inspection
Checks

Crawlability

PaginationAre paginated pages set up right?Internal searchIs site search eating crawl budget?URL parametersAre parameters creating duplicates?Log analyserWhat does Googlebot actually crawl?Robots builderNeed a robots.txt file?Soft 404sAre pages “not found” but returning 200?JavaScriptCan crawlers see it without running JS?FreshnessIs my site quietly going stale?Robots.txtDoes robots.txt say what I think?

Indexing

Sitemap lastmodAre my sitemap dates valid?SitemapIs my sitemap actually fetchable?IndexingIs Google allowed to index my pages?CanonicalsIs Google indexing the wrong URL?Index signalsDo sitemap and index signals agree?Sitemap generatorNeed a sitemap.xml for my site?Bulk URL statusWhere does each of these URLs really land?Redirect builderNeed the redirect rules?RedirectsAre my URLs answering directly, over HTTPS?

On-page

Keyword ideasWhat are people searching for?SERP previewHow does my page look in Google?Content qualityAre your pages too thin or too alike?Image weightAre images slowing the page?CannibalizationAre pages competing with each other?On-page checkDoes the page use its target phrase?ImagesAre my images accessible and loading?Meta tag builderWhat should my title and share tags say?DuplicatesDo my pages compete for one query?

Links

Orphan pagesWhich pages can no link reach?Link graphHow deep do your pages sit?Anchor textDo links say what they point at?Outbound linksAre external links still alive?Broken linksAre internal links sending visitors nowhere?

Structured data

Rich resultsIs my markup eligible for a rich result?Structured dataIs my product schema valid?Schema coverageDo my key pages carry structured data?Social previewHow does my page look when shared?Schema vs pageDoes markup match the page price?Schema builderNeed valid JSON-LD?

International

Hreflang sitemapDo page and sitemap hreflang agree?HreflangDo my language versions link back?Hreflang builderNeed the hreflang tags?Page DoctorWhy is this page not doing well?Redirect planMy site has dead links — what redirects do I write?Sitemap diffIs anything missing from my sitemap?Robots simulatorWhat does my robots.txt actually block?Can Googlebot?Can Googlebot fetch this URL?
Every error, explainedGuides
Pricing Learn Error guides Run free audit

+1 free check

Welcome to Shipwork

Sign in free and your next check this month is on us.

Continue with GoogleContinue with email

We email you a 6-digit code. No password.

No card needed. Reports and watches follow you to any device.

Shopify sitemaps and the “could not fetch” error

You open your sitemap and it loads. Search Console insists it could not fetch it. Both statements are true, because you and Google are not asking the same question. This guide explains where the Shopify sitemap lives, the four causes behind nearly every fetch failure, and the exact fix order.

Where the Shopify sitemap lives

Shopify generates the sitemap automatically at the store root: an index file pointing at child sitemaps for products, collections, pages and blog posts. You do not build it and you cannot edit entries by hand; it mirrors the catalogue. Submit the exact root path in Search Console, on the property matching your real domain rather than the myshopify subdomain, and reference it from robots.txt. Most “my sitemap is broken” stories begin with a submitted path that no longer matches what the store serves.

sitemap.xmlproductscollectionspages: deadOne dead child poisons the whole submission.
Shopify serves an index of child sitemaps. The index can fetch fine while one dead child fails the entire submission in Search Console.

The four causes of “could not fetch”

  • Wrong submitted path. A stale URL, a trailing variant, or a subdomain property: the request 404s while the real file sits elsewhere. The most common version by far.
  • A dead child inside a healthy index. The index fetches fine, but one child sitemap it lists fails. Search Console reports the whole submission as unfetchable.
  • Bot protection answering differently. You are a warm browser session; the crawler is a cold request from an unknown network. A 403 to the crawler and a 200 to you look identical from your desk.
  • Stale Search Console state. The report keeps the old status until the next fetch, so a fixed sitemap still reads as failing for a while. Not every red status is a live problem.

“Success” with zero URLs

The crueler sibling: Search Console accepts the file and discovers nothing. Google fetched it but could not process the content. Malformed XML from a third-party app, a server timeout on very large catalogues, or robots rules that let the index through while blocking what it points at. Open a child sitemap directly; an index that lists dead children reports as unfetchable, and an index of empty children reports success with nothing inside.

The fix order

  1. Confirm the exact path the store serves at the root, and submit that: no guesses, no remembered URLs.
  2. Open a child sitemap directly and confirm it lists live URLs.
  3. Check the response to an outside request, not your browser: status code, timing and blocks.
  4. Remove the submission in Search Console, wait a few minutes, and resubmit to clear the cached state.
  5. Give it time. The report updates on Google schedule, not yours; a fixed sitemap reads as failing until the next fetch.

Dead URLs and crawl budget

A sitemap is a hint, not a guarantee, its job is to save the crawler time. Every dead or redirecting URL inside it does the opposite, spending crawl budget on pages that cannot rank instead of on products. Keep the sitemap honest and it compounds; let it rot and even healthy products get crawled less often.

Find out if this is happening to you

Shipwork fetches your sitemap from outside your network, follows the first child when it is an index, reads a subset of the URLs inside, and reports exactly what came back. Free, no account, no signup. Paste your store address.

Check my sitemap

Questions

Why does Search Console say “could not fetch” when the sitemap loads for me?
The three live causes are a wrong submitted path, a dead child sitemap inside the index, or bot protection answering the crawler differently: plus stale report state after a fix. Check in that order.
Should I submit sitemap.xml or each child sitemap?
The root index. Submitting children individually is for diagnosis, not routine setup.
How long after fixing until the error clears?
Until Google next fetches. Often days. The report keeps the old status meanwhile, so judge by a fresh outside fetch, not the dashboard.
Do I need a manual sitemap for Shopify?
Rarely. The automatic one mirrors the catalogue correctly for most stores; manual files add a second source of truth to maintain. Fix the underlying cause instead.

Keep reading