NoindexWatch
Guides / Search Console statuses

Shopify robots.txt: what the default blocks and how to edit it safely

Updated

Shopify writes a robots.txt for every store, and its help center says the default works for most stores. It keeps crawlers out of the cart, checkout, customer accounts and sorted or multi-filter collection URLs. To change it you add a robots.txt.liquid theme template. Most stores don't need to, and a store that has an old template may be blocking more than the current default does.

Fetches your live robots.txt and tests the home page, a product, a collection, sorted and filtered collection URLs, search, a policy page, the cart and the account page for Googlebot, Bingbot and six AI crawlers. Free, no signup.

What the default blocks

Shopify's help center explains each default rule. Every rule sits in the User-agent: * group:

RuleWhy Shopify blocks it
Disallow: /adminCrawlers can't log in to the admin anyway.
Disallow: /cart/Cart links are unique to each customer.
Disallow: /checkout, /checkouts/Checkout pages.
Disallow: /account, /ordersPages that belong to one customer.
Disallow: /collections/*+*Tag-filtered collection URLs such as /collections/shirts/blue+cotton duplicate the collection page.
Disallow: /collections/*sort_by*Sorted collection URLs show the same products in a different order.

The file Shopify serves today has more than that. We fetched it from two stores on the current default on 20 October 2026 and ran it through our robots.txt matcher. It also blocks collection URLs with two or more filter parameters, the same rules under market prefixes such as /en-ca/, preview links and a few internal endpoints. It adds Allow lines so a product with the handle checkout or account stays crawlable, allows /account/login, and has a separate group for adsbot-google, because Google's ads crawler ignores rules for *.

What it does not block: the home page, products, collections, a collection with one filter (?filter.p.vendor=...), blogs, /search and /policies/ pages. Shopify's help center names Disallow: /search and Disallow: /policies/ as rules an older custom template can still output, though the current default no longer has them.

Old templates keep old rules

If your store's robots.txt still has Disallow: /search or Disallow: /policies/, your theme probably has a robots.txt.liquid template from an earlier version. Shopify's help center says such a template can output rules the current default no longer has, and that deleting the template restores the current default. Before you delete it, compare it with the default and copy out any rule you added on purpose. Then go to Online Store > Themes, click ... and Edit code on the theme, find robots.txt.liquid under Templates, and delete it.

A template whose content was replaced with plain text is the worse case. It never gets Shopify's updates. One store we looked at serves a short file like this with no collection rules at all, so every sorted and tag-filtered collection URL is open to crawlers. Shopify's help center calls this method "strongly not recommended".

How to edit robots.txt.liquid

Shopify calls this an unsupported customization: its support can't help with edits, and the help center warns that incorrect use can result in loss of all traffic. Remove any earlier workaround first, such as robots rules set in Cloudflare. Then:

  1. Save a copy of your current /robots.txt.
  2. Go to Online Store > Themes, click ... and Edit code on your published theme.
  3. Click Add a new template, choose robots, then Create template. The new template loops over Shopify's default groups, so it outputs the default file until you change it.
  4. Make one change, save, and test the live file before you change anything else. Changes apply at once; crawlers notice later.

Keep the loop and add to it, as in the examples from Shopify's developer documentation. To add a rule to the * group, here blocking internal search result URLs:

To drop one default rule, skip it inside the inner loop: {%- unless rule.directive == 'Disallow' and rule.value == '/the-path/' -%}{{ rule }}{%- endunless -%} in place of {{ rule }}. A rule for one crawler, such as a block for an AI training bot, goes as plain text after {% endfor %}:

Shopify's developer docs warn that the rendered template doesn't always match the generated file exactly. Compare the live file with the copy you saved. Google retired its robots.txt Tester in Search Console in 2023, even though Shopify's help page still mentions it. Paste the rendered file into our robots.txt tester with a few product and collection URLs, or use the form above on the live store.

Traps

  • Uploading a theme drops the template. Shopify's help center says uploading a theme from the Themes page in the admin doesn't import robots.txt.liquid; Theme Kit and Shopify CLI keep it. After a theme switch, your custom rules can be gone without any warning.
  • Blocking a URL doesn't remove it from Google. Google can still index a blocked URL if other pages link to it, without reading the page. To keep a page out, let Google crawl it and use noindex. See noindex on Shopify.
  • An AI crawler block has limits. Shopify's help center says robots.txt rules are advisory, and blocking AI crawlers there doesn't stop Shopify Catalog from sending your product data to the agentic storefronts you've turned on. That is a separate setting. Our AI crawler checker shows which AI bots your file blocks.

'Indexed, though blocked by robots.txt' on Shopify

Shopify's help center calls this Search Console status normal and usually not a cause for concern. Google found links to blocked URLs, such as cart, sorted or filtered collection URLs, and lists them in case the block was a mistake. If the example URLs are of that kind, leave them. If a product, a collection or the home page shows up there, test it against your live file with the form above. If it's allowed now, Google's data is out of date. If it's blocked, you have a template rule to fix. The full guide to this status covers both cases.

Hear about it when robots.txt changes

A theme switch or a template edit changes robots.txt for the whole store at once. NoindexWatch checks robots.txt every day against the home page and the product and collection URLs you choose. It tells you by email, Slack or Discord when Googlebot or an AI crawler loses access to one of them, and also watches noindex, canonicals and sitemap drops. The free plan covers 1 site with up to 20 URLs, checked daily, no card.

Sources: Shopify Help Center, Editing robots.txt.liquid; Shopify developer documentation, Customize robots.txt.liquid; Google Search Central documentation on robots.txt; live robots.txt files of Shopify stores fetched on 2026-10-20. Related: Blocked by robots.txt ยท robots.txt generator.