/ โ† Ecommerce Crawl Fixes / Shopify Crawl Issues
In this guide
  1. The URL families a Shopify store creates
  2. What the default robots.txt already does
  3. Editing robots.txt.liquid safely
  4. How the Shopify sitemap behaves
  5. Apps, themes and other hidden URL sources
  6. The fix, step by step
  7. What you cannot change on Shopify
  8. Questions and answers

The URL families a Shopify store creates

Every Shopify store, whatever the theme, exposes a similar set of URL patterns. Knowing them turns a crawl report full of unfamiliar addresses into a short list of decisions.

PatternExampleBlocked by default?Usual treatment
Product/products/linen-apronNoCrawl and index
Product through a collection/collections/kitchen/products/linen-apronNoCanonicalised by Shopify; fix theme links
Variant/products/linen-apron?variant=4211NoLeave; canonical points to product
Collection/collections/kitchenNoCrawl and index
Collection pages/collections/kitchen?page=3NoLeave crawlable so products are found
Sort order?sort_by=price-ascendingYesLeave blocked
One storefront filter?filter.v.option.colour=BlueNoDecide per store
Several filters?filter.v.option.colour=Blue&filter.p.vendor=AcmeYesLeave blocked
Single tag view/collections/kitchen/linenNoDecide per store
Combined tags/collections/kitchen/linen+blueYesLeave blocked
Vendor and type lists/collections/vendors?q=AcmeNoUsually hide or block
Everything list/collections/allNoDecide per store
Blog tag archive/blogs/news/tagged/recipesNoUsually noindex
Search, cart, checkout, account/search?q=apron, /cartYesLeave blocked

The "blocked by default" column reflects Shopify's default file at the time of writing. Shopify updates its defaults from time to time, so always check your own live /robots.txt rather than relying on any list, including this one.

๐Ÿ’ก Stores using Shopify Markets with subfolders, such as /en-ie/ or /fr/, repeat every family under each prefix. The default rules include matching versions for those paths, and any rule you add should too.

What the default robots.txt already does

Open https://your-store.example.com/robots.txt in a browser. The default file is long, with separate groups for all crawlers and for a few named bots, and it ends with a Sitemap: line. The rules that matter most for crawl waste block:

What the defaults leave open is just as important. A single filter, a single tag, vendor and type listings, /collections/all, blog tag archives and paginated collections are all crawlable. On a small store that is usually fine. On a store with many collections, each with a dozen filter values and a long tag list, the single-value views alone can outnumber the products several times over. That is the gap robots.txt.liquid lets you close.

Editing robots.txt.liquid safely

Shopify lets you customise robots.txt by adding a robots.txt.liquid template to your theme: in the admin, go to Online Store → Themes, choose Edit code on the live theme, and add a new template of type robots.txt. The new template starts with Liquid that reproduces the default rules. Keep that structure and add to it. Shopify's developer documentation shows this pattern for adding a rule to the group for all crawlers:

{% for group in robots.default_groups %}
  {{- group.user_agent }}

  {%- for rule in group.rules -%}
    {{ rule }}
  {%- endfor -%}

  {%- if group.user_agent.value == '*' -%}
    {{ 'Disallow: /collections/vendors*' }}
    {{ 'Disallow: /collections/types*' }}
    {{ 'Disallow: /*/collections/vendors*' }}
    {{ 'Disallow: /*/collections/types*' }}
  {%- endif -%}

  {%- if group.sitemap != blank -%}
    {{ group.sitemap }}
  {%- endif -%}
{% endfor %}

Because the loop outputs robots.default_groups, you keep every rule Shopify ships today and any it adds in future. Removing a default rule works the same way, with an unless test inside the rules loop that skips the rule you want to drop.

โš ๏ธ Do not replace the template with a hand-written static file. You would freeze today's defaults, lose any future changes Shopify makes, and risk dropping the Sitemap: line. Shopify also warns that incorrect edits can cause loss of traffic, and its support will not help with customised robots.txt files, so test every change.

Rules worth considering

Before blocking, remember that blocked pages cannot show Google a noindex tag. If a pattern is already indexed and you want it removed from results, use a noindex tag first, wait for the pages to drop out, then block. The general rules for choosing which filtered views to keep are in Fixing faceted URL explosion.

How the Shopify sitemap behaves

Shopify generates /sitemap.xml automatically as an index that links to child sitemaps for products, collections, pages and blog posts, split into several files on larger stores. You cannot edit it directly, but you can control what goes into it:

Submit /sitemap.xml in Search Console once. Shopify keeps it current as products are added and removed.

Apps, themes and other hidden URL sources

Many surprise URLs on Shopify stores do not come from Shopify itself. Check these when the crawl finds patterns that are not in the table above:

The fix, step by step

Step 1

Read your live robots.txt and sitemap

Open /robots.txt on your live domain and save a copy, so you have a record of the defaults before any change. Note which patterns are blocked for all crawlers, whether market subfolder versions are present, and which sitemap is declared. Then open /sitemap.xml and each child sitemap it lists, and check that the counts look roughly like your number of products, collections, pages and posts. Anything wildly higher needs explaining.

Step 2

Map the URL families your store exposes

Run the Ecommerce Crawl from the home page and group the URLs it finds by pattern: products, collection-path products, collections, paginated collections, filters, tag views, vendor and type lists, blog tags and app paths. Count each group and compare it with your product total. In Search Console, open Crawl Stats under Settings and check the example URLs to see which of those families Googlebot is actually requesting.

Step 3

Decide what to leave, block or hide

For each family, choose one treatment. Leave products, collections and pagination crawlable. Leave the default blocks in place. For single filters, tag views, vendor lists and /collections/all, decide whether any are genuine landing pages; if they are, create a proper collection instead. Families with no search value can be blocked in robots.txt, while individual resources you want kept live but out of results can be hidden with a metafield.

Step 4

Edit robots.txt.liquid without losing the defaults

Duplicate the live theme as a backup, then add a robots.txt.liquid template from the theme code editor. Keep the loop over robots.default_groups and add your extra Disallow lines only inside the group where the user agent is *. Add a matching rule for market subfolders where you use them. Save, reload /robots.txt in a private window, and test each new rule against URLs that must stay crawlable.

Step 5

Hide thin resources with the seo.hidden metafield

For pages and products that must stay live but should not appear in search, such as order confirmation pages, wholesale forms or internal campaign pages, add a metafield with namespace seo, key hidden and value 1. You can do this through a metafield definition in the admin, a bulk editing app or the Admin API. Check the resource has left the sitemap and that its page source now carries a noindex tag.

Step 6

Clean up theme and app links that create URLs

Search the theme code for links that add collection paths, parameters or tag combinations to internal links, and change product cards to use the plain product URL. Check each installed app for pages or parameters it adds, and remove leftover snippets from apps you have uninstalled. If a filter app uses its own parameters, add those to your robots.txt rules or configure the app so only the filters you want are output as crawlable links.

Step 7

Check Crawl Stats after the change

Open the robots.txt report in Search Console to confirm Google has fetched your new file without errors. Run the Ecommerce Crawl again and check that blocked families have disappeared from the list of reachable URLs. After four to six weeks, compare Crawl Stats with your earlier notes: requests for blocked patterns should fade, and the examples should be dominated by products and collections. Recheck after every theme change or new app.

What you cannot change on Shopify

Some things are fixed by the platform, and it saves time to know them before planning work:

Server capacity is rarely the limit on Shopify, because hosting is managed and generally fast. Crawl problems on Shopify stores are almost always about how many URLs exist, not how quickly they load. For broader background, the Shopify robots and sitemap fixes cover syntax errors and sitemap warnings.

Questions and answers

1. Can I edit robots.txt on Shopify?

Yes. Shopify lets you add a robots.txt.liquid template to your theme, which controls the file served at /robots.txt. The safest approach is to keep Shopify's loop over the default rule groups and add your own rules inside it, so you keep the defaults and any future updates. Shopify warns that mistakes can cause traffic loss and does not support customised files, so back up the theme and test every change before and after saving.

2. Should I block Shopify filter URLs?

Shopify already blocks URLs that combine two or more storefront filters, and sort orders, by default. Single filter values are left crawlable. Whether to block those depends on your store: if a single colour or brand filter matches real searches, a dedicated collection usually makes a better landing page, and the filter URL can then be blocked. Price range filters are rarely useful in search and are a common candidate for an extra rule.

3. Why does Search Console show collection-path product URLs?

Because your theme links to them. Shopify makes every product reachable through each collection it belongs to, and adds a canonical tag pointing to the plain product URL. Google follows the links, finds the duplicates, and reports them as alternate pages with a proper canonical tag. They are not an error in themselves, but changing product cards to link to the plain product URL stops crawlers being sent to the duplicates in the first place.

4. How do I remove a page from the Shopify sitemap?

Either take the resource off the Online Store sales channel, unpublish it, or set the seo.hidden metafield to 1 on it. The metafield is the right choice when the page must stay live for customers, such as an order tracking or wholesale sign-up page, but should not appear in search. It removes the resource from the sitemap and tells search engines not to index it. You cannot edit the sitemap file directly on Shopify.

5. Does Shopify Markets create duplicate content?

It can, if markets share a language and the content is identical. Shopify Markets serves each market on a subfolder, subdomain or separate domain and adds hreflang annotations that tell search engines which version is for which country, which is the correct way to handle same-language versions. Each market does add a complete copy of every URL family to the crawl, so any robots.txt rules you add should include matching versions for the market subfolders.

6. Is crawl budget a real problem for Shopify stores?

For most Shopify stores, no. Google says crawl budget matters mainly for large sites, and Shopify's hosting is fast enough that server capacity is rarely the constraint. It becomes worth attention on stores with thousands of products, many collections with filters or tags, several markets, or apps that add parameters to links. The first sign is usually a crawl or Crawl Stats report showing far more URLs than products, with many sitting in discovered but not indexed.

7. Will a password page stop Google crawling my store?

Yes. While the online store password is enabled, visitors and crawlers see only the password page, so nothing else can be crawled or indexed. This is useful while building a store, but it means Search Console will show little or nothing until the password is removed. Once you launch, remove the password, check that /robots.txt and /sitemap.xml load normally, submit the sitemap in Search Console and request indexing for the home page.

Map every URL your Shopify store exposes

The Ecommerce Crawl maps the URLs on your store, finds faceted navigation explosion and duplicate product URLs, flags out-of-stock products, surfaces orphans and measures how efficiently your crawl is spent.

Open Ecommerce Crawl Fixes โ†’
๐Ÿ’ฌ Got a problem?
Related Guides: All Ecommerce Crawl Fixes  ·  Shopify Ecommerce SEO  ·  Shopify Robots and Sitemap  ·  Faceted URL Explosion  ·  Learning Hub

About aiwebpageseo

aiwebpageseo.com is a data-driven SEO and AEO (Answer Engine Optimisation) platform providing a free suite of technical SEO tools. Rather than relying on AI-theorised assumptions, the platform analyses live URL performance, delivering objective diagnostics, page speed metrics, CLS debugging, and site crawl data alongside actionable technical tutorials.