Direct Answer: Shopify Default Crawler Behavior
By default, Shopify automatically serves a server-generated robots.txt file that blocks crawlers from accessing checkout paths (/checkout, /checkouts/, /cart, /orders), internal search queries (/search), and localized currency switchers. To customize these rules, you must create a templates/robots.txt.liquid file in your theme. Crucially, your Liquid template must iterate through `for group in robots.default_groups` to preserve Shopify's core security rules while appending your custom Disallow, Allow, or AI crawler directives.
How to Safely Customize Shopify's robots.txt.liquid Without De-indexing Collections
Technical deep dive into Shopify robots configuration quirks and indexing safety
Shopify manages crawler indexation through a native templating system introduced in Online Store 2.0. Rather than uploading a static robots.txt file to the server root (which Shopify's hosted architecture does not allow), Shopify renders the file dynamically via templates/robots.txt.liquid.
The Native Liquid robots.default_groups Architecture
In standard Shopify themes (such as Dawn, Sense, Spotlight, and Prestige), the default templates/robots.txt.liquid file contains the following core Liquid loop:
# robots.txt.liquid
{% for group in robots.default_groups %}
{{- group.user_agent -}}
{% for rule in group.rules %}
{{- rule -}}
{% endfor %}
{%- if group.sitemap != blank -%}
{{ group.sitemap }}
{%- endif -%}
{% endfor %}
This loop pulls Shopify's platform-managed disallow rules, protecting critical checkout infrastructure:
- Protected Checkout Endpoints:
/cart,/orders,/checkouts/, and/checkoutare automatically disallowed to prevent search bots from indexing abandoned carts and private user checkouts. - Internal Search & Policies:
/searchand/policies/are excluded to prevent crawl budget waste on thin search parameter URLs. - Faceted Collection Filters: Shopify by default adds directives preventing indexation of multi-tag collection permutations (e.g.,
/collections/*/*or URL parameters containingfilter.).
How to Safely Append Custom Rules in Shopify
When customizing your Shopify robots directives, never delete the for group in robots.default_groups loop entirely. Instead, inject your custom rules directly below or within conditional blocks:
# Appending Custom AI Restrictions in Shopify robots.txt.liquid
User-agent: GPTBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: Bytespider
Disallow: /
# Retain Shopify Platform Core Rules
{% for group in robots.default_groups %}
{{- group.user_agent -}}
{% for rule in group.rules %}
{{- rule -}}
{% endfor %}
{%- if group.sitemap != blank -%}
{{ group.sitemap }}
{%- endif -%}
{% endfor %}
How to Configure Shopify Robots Directives (Step-by-Step)
Four proven steps to safely deploy robots.txt rules in Shopify
- 1
Open Shopify Theme Code Editor
Log in to your Shopify Admin, navigate to Online Store > Themes, click the three dots (...) next to your active theme, and select 'Edit code'.
- 2
Create templates/robots.txt.liquid Template
In the left sidebar, click 'Add a new template', choose 'robots.txt' from the dropdown list, and name the file `robots.txt.liquid`.
- 3
Insert Custom Directives Inside Liquid Loop
Paste your customized directives into `robots.txt.liquid`, making sure to preserve the `for group in robots.default_groups` loop for core platform checkout protection.
- 4
Validate Syntax in OmniSEO Validator
Visit `https://yourstore.myshopify.com/robots.txt` in your browser, copy the rendered output, and paste it into our validator to confirm 100% RFC 9309 compliance.
Shopify Robots.txt FAQ
Troubleshooting crawler errors, file overrides, and CMS-specific directives
What happens if I delete robots.txt.liquid in Shopify?
Deleting `templates/robots.txt.liquid` from your Shopify theme does not leave your store without a robots.txt file. Instead, Shopify automatically reverts to serving its default, platform-managed robots.txt output, which safely blocks `/checkout`, `/cart`, `/orders`, and admin endpoints.
Why does Shopify disallow /checkout and /cart by default?
Shopify disallows `/checkout`, `/checkouts/`, `/cart`, and `/orders` to prevent search engine crawlers from wasting crawl budget on dynamic, non-indexable user cart sessions and private customer checkout pages that could trigger duplicate content flags.
How do I unblock collection filter parameters in Shopify robots.txt?
To unblock faceted collection filter URLs, locate the default disallow filter in `robots.txt.liquid` and add an explicit `Allow: /collections/*?filter.*` or customize the Liquid loop conditions to allow search engines to crawl specific indexing-friendly filter facets.
CMS & Framework Robots Directives
Switch presets to configure and validate robots.txt files for your specific tech stack
Generate and validate Shopify robots.txt.liquid directives. Fix default /checkout and /cart disallow rules, unblock collection filters, and manage AI scrapers safely.
Create and validate WordPress robots.txt files. Prevent Yoast and RankMath virtual file conflicts, protect /wp-admin/ while keeping admin-ajax.php accessible.
Validate and generate type-safe robots directives for Next.js App Router. Export MetadataRoute.Robots objects with dynamic sitemap arrays and AI crawler rules.