Skip to main content

Integration

IndexNow for Shopify

Shopify does not let you drop a file at the root of your store's domain, and files you upload land on cdn.shopify.com, which is a different host. The key file therefore needs a small workaround.

Protocol facts last checked 2026-09-24.

What Shopify does and does not do

Shopify maintains your sitemap index (/sitemap.xml with product, collection, page and blog sitemaps) and pings some engines about it. It has no native IndexNow support at the time of checking, and Files uploaded in the admin are served from cdn.shopify.com, which does not count as your host for IndexNow.

Hosting a key on a Shopify domain

The method that returns 200 on the store's own host uses a theme template with an alternate layout:

  1. In the theme code editor add a template templates/page.indexnow.liquid containing {% layout none %}{{ page.content | strip_html | strip }}.
  2. Create a page whose content is exactly the key, assign the indexnow template, and set its handle so the URL is /pages/<key>.
  3. Use that URL as keyLocation, with the caveat below.

Caveat. The protocol requires the key file to be a .txt path and scopes the key to the file's directory, so /pages/<key> does not satisfy it on its own. A URL redirect from /<key>.txt to that page (Online Store → Navigation → URL redirects) keeps the request on the same host; endpoints have accepted same-host redirects in practice, but this is not documented behaviour. Check the result with the key checker, which follows same-host redirects and reports the final status and content type, and confirm a real submission returns 200, not a lingering 202, before relying on it.

If your store uses a Shopify Plus or headless setup with a proxy or Cloudflare in front, serve the file there instead; see IndexNow on Cloudflare.

What to submit from a Shopify sitemap

  • Products and collections: they change most and matter most.
  • Pages and blog articles from their sitemaps.
  • Skip variant URLs (?variant=…) and filtered collection URLs: they are non-canonical and are rejected by AutoIndexNow's eligibility rules anyway.

Set up monitoring

Add your store host in AutoIndexNow with the key and keyLocation, verify, and run the initial crawl. The sitemap index is followed automatically. Product updates (price, stock text) that do not change the page's main content are ignored by the change detection; title, description and body changes are submitted.

Troubleshooting

  • 403: the key file is served from cdn.shopify.com or the redirect leaves the host.
  • Content mismatch: the page template still wraps the key in the theme layout. Confirm {% layout none %} is present.
  • Many "changed" pages after a theme update: expected once; ask AutoIndexNow to re-baseline by saving the ignore rules if the theme rotates content.

A 200 or 202 from an IndexNow endpoint means the request was accepted, not that the URL is indexed. Google does not participate in IndexNow.