What this check tells you
A sitemap confirms which canonical public URLs the storefront publishes for discovery. It does not guarantee crawling, indexing, or an AI citation.
Three-store public check
Observed July 27, 2026:
| Store | Sitemap-index children | Product sitemap files | Product URLs counted | Target found |
|---|---|---|---|---|
| The Woobles | 13 | 3 | 1,553 | yes |
| Rhode | 101 | 25 | 2,675 | yes |
| HexClad UK | 5 | 1 | 98 | yes |
The Woobles and Rhode targets appeared under multiple market paths. For example, the Pierre kit appeared at base, en-gb, and en-ca URLs. That is not automatically duplicate inventory; it can represent international storefront alternatives.
Step 1: fetch the index
curl -sS -D sitemap-headers.txt \
https://example.com/sitemap.xml \
-o sitemap.xml
sed -n '1,40p' sitemap-headers.txt
rg -n '<loc>' sitemap.xml
Expected result: 200 and XML content. A challenge page saved as sitemap.xml is not a sitemap.
Step 2: extract child maps
rg -o '<loc>[^<]+' sitemap.xml | sed 's#<loc>##' > sitemap-children.txt
cat sitemap-children.txt
Shopify typically separates products, collections, pages, and blogs. Large or international catalogs can have several maps per type.
Step 3: verify a priority product
product_path='/products/example-product'
while read -r map; do
curl -sSL "$map"
done < sitemap-children.txt | rg -F "$product_path"
Use the canonical product path, not a collection-scoped URL.
Step 4: compare a product set
Export or maintain a list of priority public product handles. For each one record:
| Field | Value |
|---|---|
| expected product URL | canonical URL from storefront |
| found in sitemap | yes/no |
| sitemap market URL | complete URL |
| public status | final HTTP status |
| page canonical | canonical from HTML |
| indexability | meta robots and platform inspection |
Do not compare the sitemap count directly with Shopify Admin’s total product count. Draft, archived, unpublished, market-restricted, or unavailable-channel products may be intentionally absent.
Step 5: classify market URLs
A base URL plus en-ca and en-gb versions should be checked for:
- correct language and market content
- coherent currency and availability
- canonical and
hreflangstrategy - no redirect to an unrelated market
The presence of three URLs is not three separate products for competitor analysis.
Missing-product diagnosis
Check:
- product status and Online Store publication
- market availability
- canonical URL and handle
- password protection
- product page final status
- whether the sitemap has refreshed after publication
Shopify generates hosted sitemap files. Do not install an app merely to upload a competing root sitemap unless the architecture has a documented requirement.
Common failures
- root sitemap returns HTML challenge
- product map URL redirects repeatedly
- target product is published but absent after a reasonable refresh period
- sitemap contains an old handle that redirects to homepage
- market URL exposes wrong currency
- crawler can fetch sitemap but product page is blocked by WAF
Acceptance criteria
- root index and child maps return valid XML
- priority canonical products are present where expected
- old handles resolve directly to replacements
- market alternates are intentional and coherent
- sitemap URLs return usable public pages
- missing URLs have a catalog or routing explanation
Community discussion
Add to the article
Ask a technical question, share a storefront result, or challenge a conclusion with evidence.