Back to blog
technical seo12 min read

Technical SEO for Ecommerce: Facets, Pagination and Crawl Budget in the Right Order

Google's ecommerce docs say which crawl problems matter. I ordered facets, pagination, canonicals and crawl budget by URLs touched, and each platform's default.

Aditi ChaturvediSeptember 25, 2026
Technical SEO for ecommerce: in the right order, in 5 steps: Facets; Pagination; Canonicals and variants; Crawl budget; Schema, stock, speed.
TL;DR

Technical SEO for ecommerce is seven jobs, and the order matters more than the list. I sorted them by how many URLs each one touches, using Google's own ecommerce documentation as the source for every rule:

  1. Facets: Parameter filters create what Google calls infinite URL spaces. Index a few single facets on purpose and disallow the rest in robots.txt.
  2. Pagination: One unique URL and one self-referencing canonical per page. Google no longer reads rel=next and rel=prev and says not to canonicalise to page one.
  3. Canonicals and variants: Variants get their own URL; the parameter-free URL is the canonical. Same URL in links, sitemap and the tag.
  4. Crawl budget: Google's guide is for 1 million+ pages, or 10,000+ that change daily. Facets push small stores over that line, which is why they come first.
  5. Schema, out-of-stock, speed: Merchant listing markup on every product, honest availability and 404s for gone products, then server health so the crawl capacity limit rises.

Shopify, BigCommerce and Magento each handle a different slice of this by default, WooCommerce handles almost none, and headless handles nothing. The platform table below says which.

Every page ranking for this keyword lists the same ten issues in no particular order. This one orders them by Google's own ecommerce documentation and by how many URLs each touches, then records what Shopify, WooCommerce, BigCommerce, Magento and headless stores do about each by default. Try CrawlRaven free: 1 site, no credit card →

The short answer: fix the problems in the order of URLs they touch

Technical SEO for ecommerce is the work of keeping a catalog-generated site crawlable, and the order matters more than the list. Facets first, because they create the most URLs. Then pagination, canonicals and variants, crawl budget, schema, out-of-stock handling and speed. That order comes from Google's ecommerce documentation, not from a tool's severity colours.

I read the eight Google documents that cover stores end to end and sorted their rules by how many URLs each touches. A facet rule touches an infinite space; a pagination rule touches every category times its pages; a speed fix touches every fetch but changes no URL.

Key Takeaways

  • →Facets before everything: Google's faceted navigation guide says parameter filters can generate infinite URL spaces. Index a few single facets on purpose; disallow the rest in robots.txt.
  • →Pagination is not a facet: Each page gets a unique URL and its own canonical. Google no longer reads rel=next and rel=prev, and says not to canonicalise the sequence to page one.
  • →Crawl budget is a symptom: Google's guide targets 1 million+ pages, or 10,000+ that change daily. Steps 1 to 3 are the fix; step 4 is where you check it worked.
  • →Platforms differ more than the guides admit: Shopify blocks stacked filters by default. BigCommerce canonicalises them. Magento ships with canonicals off. WooCommerce core writes none on archives. Headless does nothing.
  • →The audit runs in the same order: Facets, pagination, canonicals, crawl stats, schema, stock, speed. Each step clears the noise the next one would otherwise report.

The order of operations for ecommerce technical SEO

Here is the sequence and the Google document each step rests on, sorted by how many URLs it touches. The rest of the article expands one step at a time.

Order of operations

Seven ecommerce technical SEO jobs, sorted by how many URLs each one touches

1
Faceted navigation
Touches: An infinite URL space
Google says: Faceted navigation guide: parameter filters "can generate infinite URL spaces".
Rule: Index a handful of single facets on purpose. Disallow every other filter and sort in robots.txt.
2
Pagination
Touches: Every category, times its pages
Google says: Pagination guide: "Don't use the first page of a paginated sequence as the canonical page."
Rule: One unique URL and one self-referencing canonical per page, linked with plain <a href>.
3
Canonicals and variants
Touches: Every product, times its copies
Google says: URL structure guide: variants get their own URL; the parameter-free URL is the canonical.
Rule: Same URL in links, sitemap and canonical. Variant and collection-path copies point at one product URL.
4
Crawl budget
Touches: The whole hostname
Google says: Crawl budget guide: written for "1 million+" pages, or "10,000+" that change daily.
Rule: Read Crawl Stats and the Pages report before spending a sprint on it. Steps 1 to 3 are the fix.
5
Product structured data
Touches: Every product page
Google says: Product structured data guide: merchant listing markup for pages where people can buy.
Rule: One Product or ProductGroup per page with a truthful Offer. Validate the rendered HTML.
6
Out-of-stock handling
Touches: A rotating subset of products
Google says: Crawl budget guide: "Return a 404 or 410 status code for permanently removed pages."
Rule: Temporarily out: keep 200 and say OutOfStock. Gone for good: 404, 410 or a direct replacement.
7
Speed and server health
Touches: Every fetch, no URL
Google says: Crawl budget guide: the capacity limit falls when latency rises or the server returns 5xx or 429.
Rule: Stable time to first byte on category templates, 304 support, no rate limiting of Googlebot.
Steps 1 to 3 remove URLs. Step 4 is where you check whether removing them was enough. Steps 5 to 7 improve pages Google was already going to fetch.
  1. Faceted navigation (faceted navigation guide): an unbounded URL space.
  2. Pagination (pagination guide): every category times its pages.
  3. Canonicals and variants (URL structure guide): every product times its copies.
  4. Crawl budget (crawl budget guide): the whole hostname.
  5. Product structured data (Product structured data guide): every product page.
  6. Out-of-stock handling (crawl budget guide again): a rotating subset of products.
  7. Speed and server health (the crawl capacity limit): every fetch, no URL.

Practitioners learn this order the expensive way. One r/TechSEO post from September 2026 describes months of flat traffic before the author "found Googlebot burning most of its budget on faceted navigation URLs nobody needed indexed". The fix was steps 1 and 3.

Step 1: Faceted navigation, the infinite URL space

Google's faceted navigation guide is blunt about the cost. Parameter filters "can generate infinite URL spaces", which hurts two ways: overcrawling, because crawlers "can't determine whether the URLs are going to be useful without crawling first", and "slower discovery crawls".

The guide offers exactly two paths. If you do not need the filtered URLs indexed, prevent crawling. If you do, follow a short list of URL rules and accept that "crawling faceted URLs tends to cost sites large amounts of computing resources".

  • robots.txt. Google's preferred tool: "Oftentimes there's no good reason to allow crawling of filtered items".
  • URL fragments. Put filters after a #. Google "generally doesn't support URL fragments in crawling and indexing", so no URLs are created.
  • rel=canonical and rel=nofollow. Listed as options, then described as "generally less effective in the long term".
  • If you index facets anyway. Use the & separator, keep path filters in one fixed order, and "Return an HTTP 404 status code when a filter combination doesn't return results".
Facet decision matrix

Every filtered URL a store can emit, and what Google's own guidance says to do with it

One facet with search demand
Index
/shoes?brand=nike or /shoes/nike
Google's guidance
If you need facet URLs indexed, use '&' separators, keep path filters in one fixed order, and allow no duplicate filters.
Rule to implement
Indexable page: own copy, self-referencing canonical, linked from the category. Keep the list short.
Two or more facets stacked
Block crawling
/shoes?brand=nike&color=red&size=10
Google's guidance
Parameter filters "can generate infinite URL spaces"; disallow in robots.txt or move filters to URL fragments.
Rule to implement
Disallow the second parameter onward in robots.txt, or filter with fragments so no URL is created.
Sort order
Block crawling
/shoes?sort=price-asc
Google's guidance
Pagination guide: block alternative sort orders with noindex or discourage crawling with robots.txt.
Rule to implement
Disallow the sort parameter in robots.txt. A sort is never a page.
Price range, in-stock, rating toggles
Block crawling
/shoes?price=50-100&in_stock=1
Google's guidance
"Oftentimes there's no good reason to allow crawling of filtered items" (faceted navigation guide).
Rule to implement
Disallow in robots.txt. Nobody searches for a price bracket on your site.
Combination with zero results
404
/shoes?brand=nike&color=lime
Google's guidance
"Return an HTTP 404 status code when a filter combination doesn't return results."
Rule to implement
Serve a real 404 at that URL. Never redirect to a generic not-found page or show an empty 200.
Internal search results
Block crawling
/search?q=red+shoes
Google's guidance
Crawl budget guide lists internal search among the URLs to keep Google from reprocessing.
Rule to implement
Disallow /search in robots.txt. Most platforms already do.
Paginated category page
Crawl
/shoes?page=2
Google's guidance
"Give each page a unique URL" and do not canonicalise the sequence to page one.
Rule to implement
Crawlable, self-canonical, linked from the previous page. This is not a facet; do not block it.
Google calls rel=canonical and rel=nofollow on facet URLs "generally less effective in the long term" than robots.txt or fragments. Use them as a backstop, not the plan.

The facet rule to implement

The rule is per facet, not per site. Most stores have two or three single facets with real search demand (a brand, a material) and hundreds of combinations with none:

  1. List every parameter the template can emit. Filters, sorts, price ranges, stock and rating toggles, view modes, page size. On Magento that includes product_list_order and product_list_limit; on BigCommerce it starts with _bc_fsnf.
  2. Pick the indexable single facets. Pull the queries from Search Console, keep the facets with their own demand, and give each a fixed URL, its own copy and a self-referencing canonical tag.
  3. Disallow everything else. Stacked facets, sorts, price brackets and toggles go into robots.txt. Test the patterns with the free robots.txt tester before you deploy.
  4. 404 the empty combinations. No green fish in stock means a real 404 at that URL, not a redirect to a generic not-found page and not an empty 200.

A robots.txt shape that matches the matrix, for a store whose facets use key=value parameters:

# Block stacked facets, sorts and toggles; leave single facets crawlable
User-agent: *
Disallow: /*?*sort=
Disallow: /*?*price=
Disallow: /*?*in_stock=
Disallow: /*?*&*=
Disallow: /search

The rule has to outlive the sprint. A September 2026 r/TechSEO thread on problems that come back puts it in one line: "Parameter URLs are blocked, and a new filter creates another set." So write the default into the template: a new parameter is disallowed until someone argues it into the index.

Step 2: Pagination SEO, one URL and one canonical per page

Google's pagination guide lists three practices: link pages sequentially, use URLs correctly, and avoid indexing filtered or re-sorted versions of the list. The URL structure guide adds the line that explains why this is step 2: "We see the most URL mistakes in pagination URL structures."

  • Unique URL per page. "Give each page a unique URL. For example, include a ?page=n query parameter, as URLs in a paginated sequence are treated as separate pages by Google."
  • No canonical to page one. "Don't use the first page of a paginated sequence as the canonical page. Instead, give each page its own canonical URL."
  • rel=next and rel=prev are retired. "Google no longer uses these tags, although these links may still be used by other search engines."
  • No fragments. Google ignores text after a #, so a next link that differs only there may not be followed.
  • Titles may repeat. Pages in a sequence "don't need to follow" the distinct-title rule.
  • Link back to page one. Google calls it "a hint that the first page of a collection might be a better landing page".

Load more and infinite scroll get one paragraph in the guide, and it is the one that matters. Google's crawlers "don't 'click' buttons and generally don't trigger JavaScript functions that require user actions". A load-more button with no paginated URL behind it hides every product past the first screen.

The site structure guide closes the loop: "If category pages don't include direct links to all products in a category, Googlebot might not find all of your products by crawling alone." The head of a page-2 URL should look like this:

<!-- /shoes?page=2 -->
<link rel="canonical" href="https://example.com/shoes?page=2">
<a href="/shoes?page=1">Previous</a>
<a href="/shoes?page=3">Next</a>
<!-- No rel="next" or rel="prev" needed: Google no longer uses them -->

Step 3: Canonicals and product variants

Google's canonicalization guide ranks the signals plainly: a redirect is "A strong signal", a rel=canonical annotation is "A strong signal", and sitemap inclusion is "A weak signal". On a store the tag does most of the work, because the duplicates are meant to stay live.

Variants are the ecommerce-specific part. The URL structure guide asks that "each variant can be identified by a separate URL", a path segment like /t-shirt/green or a parameter like /t-shirt?color=green. Then the rule most platforms apply for free: "use the URL with the query parameter omitted as the canonical URL".

  • Collection-path copies. /collections/sale/products/x and /products/x are one page; the canonical points at the plain product URL. The Shopify canonical guide records what live stores emit.
  • Variant parameters. ?variant=, ?color=, ?size= canonicalise to the bare product URL unless the variant is really a different product.
  • Sort and filter parameters. Canonical to the unfiltered category, and blocked in robots.txt per step 1.
  • Market and domain copies. A second currency or language is a separate page with hreflang. A second domain serving the same catalog is a redirect.

The rule that ties it together is consistency: "Use the same URL in internal links, sitemap files, and <link rel="canonical"> tags." Self-referencing canonical on every indexable page, only those URLs in the sitemap, and one product checked four ways with the free canonical checker; duplicate content covers the general case.

Step 4: Crawl budget, and whether you actually have a crawl budget problem

Google's crawl budget guide opens by telling most sites to close it. It is for "Large sites (1 million+ unique pages)" that change weekly, "Medium or larger sites (10,000+ unique pages)" that change daily, and sites with a large share of URLs sitting in "Discovered - currently not indexed".

A 3,000-product store does not sound like that. With four facets and three sort orders on every collection it is, which is the argument for doing facets first. Crawl budget is the symptom; the URL space is the disease. The lever you own is perceived inventory, "the factor that you can positively control the most".

  • Consolidate duplicates so crawling goes to "unique content rather than unique URLs". That is step 3.
  • Block with robots.txt the pages you never want processed, including "differently sorted versions of the same page". That is step 1.
  • Do not use noindex for this. "Google will still request, but then drop the page when it sees a noindex meta tag or header in the HTTP response, wasting crawling time."
  • 404 or 410 removed pages. "A 404 status code is a strong signal not to crawl that URL again." Blocked URLs, by contrast, stay in the queue.
  • Kill soft 404s, keep sitemaps current with lastmod, avoid redirect chains, support 304. Each is a line in the guide's best-practice list.

One expectation to reset. Google "won't shift this newly available crawl budget to other pages unless Google is already hitting your site's crawl capacity limit". Blocking facets buys faster discovery and less server load, not a bigger crawl by itself.

To check where you stand: Crawl Stats in Search Console for the share of fetches going to parameter URLs, then the Pages report for Discovered - currently not indexed. Run a product URL and a facet URL through the free page indexability checker to confirm the signals agree with what you intended.

Step 5: Product structured data on every product page

Google's Product structured data guide draws one line first: product snippets are "For product pages where people can't directly purchase the product", merchant listings "For pages where customers can purchase products from you". A store wants merchant listing markup.

  • One entity per page. A Product, or a ProductGroup with one Product per variant. A reviews app that injects a second Product block is the usual fault.
  • An honest Offer. price, priceCurrency and availability that match what the page shows. Availability is also how step 6 gets communicated.
  • Variants as variants. Variant markup "can help Google better understand which products are variations of the same parent product".
  • Policies once, at Organization level. Merchant return policy and loyalty program markup nest under Organization, not on every product.
  • Feed plus markup. "Providing both structured data on web pages and a Merchant Center feed maximizes your eligibility to experiences."

Validate the rendered page, not the template, because apps and tag managers inject markup after the theme runs. Schema is step 5 because it changes how an already-crawled page is understood, not which pages get crawled. Rich result experiences are shown at Google's discretion, so treat eligibility as the goal and the stars as a bonus.

Step 6: Out-of-stock and discontinued products

Stock changes touch a rotating subset of product URLs, which is why this sits after the store-wide rules. Three states, three answers:

  • Temporarily out of stock. Keep the page live with a 200, set the Offer availability to OutOfStock, keep it in the sitemap and category links. Rankings and links survive the restock.
  • Permanently gone. "Return a 404 or 410 status code for permanently removed pages." If a direct replacement exists, redirect to it; never to the category or home page, which Google treats as a soft 404.
  • Empty category. The URL structure guide: "If a category has no items, use a noindex robots meta tag", and if the site removes the category from navigation, "consider returning a 404".

The failure mode to watch is the soft 404: a discontinued product still answering 200 with an empty template. The crawl budget guide says soft 404 pages "will continue to be crawled, and waste your budget". The Pages report lists them under Soft 404.

Step 7: Speed, which Google files under crawl capacity

Speed is last because it changes no URL, only how many fetches Google is willing to make. The crawl budget guide's crawl capacity limit rises when "response times (including latency and Time-to-First Byte) remain stable or improve" and falls on slower responses, "server errors (5xx HTTP status codes)" or "rate-limiting signals (such as HTTP 429)".

  1. Measure time to first byte on category templates. Google fetches those most, and a slow facet query behind a 200 is a capacity leak.
  2. Support 304 Not Modified. "If a page hasn't changed since Google last crawled it, returning a 304 code tells Google to reuse the cached version."
  3. Never rate-limit Googlebot with 429. Google reads it as a signal to crawl less, and the reduced limit takes time to recover.
  4. Only then look at Core Web Vitals, a page-experience question covered in the technical SEO audit checklist.

What each platform does by default: Shopify, WooCommerce, BigCommerce, Magento, headless

Google's URL structure guide says that on a platform "you can most likely skip this section, as the platform has most likely already considered these issues for you". That is true in different amounts. I checked each platform's documentation, core source or live demo store in September 2026.

Platform defaults

Where facets and pagination live on each platform, and what it does with them before you touch anything

Shopify
Verified on Dawn demo
Facets: ?filter.v.option.color=red (Search & Discovery app)
Pagination: ?page=2, self-canonical, 1 to 250 items per page
Default: Default robots.txt disallows sort_by, multi-tag (+) and multi-filter URLs. A single-filter URL canonicalises to the bare collection.
Your job: Decide which single-filter URLs deserve indexing; the platform leaves them crawlable.
WooCommerce
Verified in core source
Facets: ?filter_color=blue&query_type_color=or (layered nav)
Pagination: /shop/page/2/ from WordPress pagination_base
Default: WordPress core writes a canonical only on singular pages, so filtered and paginated archives carry none without an SEO plugin. Core robots.txt blocks nothing here.
Your job: Add an SEO plugin for archive canonicals, then disallow filter_ and orderby parameters yourself.
BigCommerce (Stencil)
Verified on Cornerstone demo
Facets: ?_bc_fsnf=1&Color=Black (product filtering)
Pagination: ?page=2, self-canonical
Default: Facet and sort URLs canonicalise to the bare category. Default robots.txt blocks search.php, cart, checkout and account, not facets.
Your job: Canonical is the only guard, which Google calls a weaker signal. Add robots.txt rules for _bc_fsnf if crawl stats show waste.
Magento / Adobe Commerce
Verified in core config
Facets: ?color=52&style_general=135 (layered navigation)
Pagination: ?p=2, plus product_list_order and product_list_limit
Default: Canonical tags are off by default for both categories and products (category_canonical_tag and product_canonical_tag are 0 in core config.xml).
Your job: Turn on both canonical settings, then block layered-nav and toolbar parameters in robots.txt.
Headless (Hydrogen, Next.js, Vue Storefront)
By construction
Facets: Whatever your components emit
Pagination: Whatever your router emits
Default: Nothing. No default robots.txt rules, no canonicals, no paginated URLs unless you build them.
Your job: Write the canonical, the robots.txt and real <a href> pagination. A load-more button alone hides every product past the first page.
Checked September 2026 against Shopify and Adobe documentation, WooCommerce and Magento core source on GitHub, and the Dawn and Cornerstone demo stores. A custom theme or app can change any row.
PlatformFacet URLPagination URLWhat it does by defaultHow I checked
Shopify?filter.v.option.color=red?page=2 (self-canonical)robots.txt disallows sort_by, multi-tag and multi-filter URLs; single filter canonicalises to the bare collectionVerified on the Dawn demo store
WooCommerce?filter_color=blue&query_type_color=or/page/2/No canonical on filtered or paginated archives from WordPress core; no robots.txt rule for filtersVerified in core source
BigCommerce?_bc_fsnf=1&Color=Black?page=2 (self-canonical)Facet and sort URLs canonicalise to the category; robots.txt blocks search.php, cart, checkout, not facetsVerified on the Cornerstone demo store
Magento?color=52 (layered navigation)?p=2Canonical tags off by default for categories and products; category path excluded from product URLs by defaultVerified in core config.xml and Adobe docs
HeadlessWhatever you buildWhatever you buildNothing by defaultBy construction
  • Shopify. Filters come from the Search & Discovery app as filter.v and filter.p parameters; the default robots.txt disallows sort_by, multi-tag and multi-filter URLs, and the paginate tag allows 1 to 250 items per page. See the Shopify robots.txt guide.
  • WooCommerce. Layered navigation writes filter_ and query_type_ parameters, sorting uses orderby, WordPress paginates at /page/2/, and core rel_canonical() returns early on anything not singular, so archives carry no canonical until an SEO plugin adds one.
  • BigCommerce. Stencil's product filtering emits ?_bc_fsnf=1 plus the facet, and the canonical on facet and sort URLs points at the bare category. The default robots.txt does not touch facets, so the canonical is the only guard.
  • Magento and Adobe Commerce. Layered navigation appends attribute parameters like ?style_general=135 (the example in Adobe's catalog URL documentation) and the toolbar paginates with ?p=2. In core config.xml, category_canonical_tag and product_canonical_tag both default to 0. Turn both on first.
  • Headless. Hydrogen, Next.js Commerce and Vue Storefront give you components, not defaults. Canonical, robots.txt, the 404 on empty combinations and real <a href> pagination are yours to write.

Two things I could not verify from a fetchable source: the admin menu path for Magento's canonical settings (the config keys are verified), and whether BigCommerce's product filtering is on every plan. Confirm both in your own admin.

How to audit an ecommerce site in this order

The order above is the audit order too, because each step clears the noise the next one would otherwise report. Seven checks, one per step:

  1. Facets. Crawl one collection and count URLs with two or more parameters, then confirm a stacked-facet URL is blocked in the robots.txt tester.
  2. Pagination. Fetch ?page=2 and read the canonical. It should be ?page=2, and the next link should be a plain anchor.
  3. Canonicals. Run one product through the canonical checker four ways: plain, collection path, variant parameter, second domain.
  4. Crawl budget. Crawl Stats, then the Pages report for Discovered - currently not indexed and Soft 404. Check the sitemap with the sitemap validator so only canonical URLs are listed.
  5. Schema. The Rich Results Test on a rendered product URL. Count the Product entities; the answer is one.
  6. Out of stock. Fetch ten discontinued products. Any 200 with an empty template is a soft 404.
  7. Speed. Average response time in Crawl Stats, then TTFB on the slowest category.

Doing this for one collection proves the template. Doing it for the whole store, and knowing which finding to fix first, is what the audit is for. CrawlRaven joins Search Console, GA4 and a 200-point crawl into one ranked plan.

Because Search Console and GA4 are built in, the ecommerce SEO audit and the technical SEO audit rank each finding by ranking impact. So the facet rule that frees crawl on your best-earning collection outranks the schema warning on a product nobody visits.

Free plan: 1 site, no credit card. Lifetime licences launched at $49 for 3 sites. Lifetime pricing steps up as licenses sell, so check the pricing page for the current batch. See pricing.

Opinion· Aditi's take: the audit tool's severity colour is not the order

Every crawler I have used paints missing schema and duplicate titles red and lists parameter URLs as a count. On a store the count is the problem and the red rows are noise until it is fixed. Sort by URLs touched, then by the collections that earn clicks, and the plan writes itself.

For the rest of the store review: the ecommerce SEO checklist covers the on-page and category work, SaaS SEO vs ecommerce SEO explains why crawl problems are an ecommerce problem first, and how to perform a technical SEO audit is the platform-agnostic walkthrough. Indexation covers the vocabulary.

Technical SEO for ecommerce FAQs

Facets and crawl budget

Should facet pages be noindexed or blocked? Blocked, if the goal is crawl budget. Google says noindex still costs the fetch, and calls canonical and nofollow "generally less effective in the long term" than robots.txt or fragments.

How do I know facets are wasting crawl budget? Crawl Stats shows which URLs Google samples; the Pages report shows how many products sit in Discovered - currently not indexed. Parameter URLs in the first and products in the second is the signature.

Pagination and canonicals

Does Google still use rel=next and rel=prev? No. The pagination guide says Google no longer uses them, though other engines may. Sequential <a href> links and a unique, self-canonical URL per page are what it relies on.

Should product variants have their own URLs? Yes, as a path segment or a query parameter, per Google's URL structure guide. When the parameter is optional, the URL without it is the canonical on every variant page.

Platforms and troubleshooting

My facet URLs are blocked but still indexed. Why? Robots.txt stops crawling, not indexing. URLs Google already knew stay indexed until it recrawls them, which it now cannot; blocked URLs "will stay part of your crawl queue much longer". Remove the links to them and wait.

Does blocking facets make Google crawl more products? Not by itself. Google says it will not shift the freed budget to other pages unless it was already hitting your crawl capacity limit. What you gain is faster discovery of new URLs and less server load.

Sources

Frequently asked questions

What is technical SEO for ecommerce?

Technical SEO for ecommerce is the work of keeping a catalog-generated site crawlable and indexable: faceted navigation, pagination, canonical tags for product variants, crawl budget, Product structured data, out-of-stock handling and server speed. Google publishes dedicated ecommerce guides for URL structure, site structure and pagination; this article orders their rules by how many URLs each touches.

What does Google recommend for faceted navigation?

Google's faceted navigation guide says parameter-based filters can generate infinite URL spaces. If the filtered URLs do not need indexing, prevent crawling with robots.txt or move filters into URL fragments. If they do, use the standard ampersand separator, keep path filters in one fixed order, and return a 404 when a combination has no results.

Should facet pages be noindexed or blocked in robots.txt?

Blocked, if the goal is crawl budget. Google's crawl budget guide says not to use noindex for this, because Google still requests the page and only drops it after seeing the tag, which wastes the fetch. It also calls rel=canonical and rel=nofollow on facet URLs generally less effective long term than robots.txt or fragments.

How do I know whether faceted navigation is wasting crawl budget?

Open Crawl Stats in Search Console and look at the sampled URLs, then filter the Pages report for Discovered - currently not indexed. Parameter URLs dominating the samples while product URLs sit in Discovered is the signature. Google lists a large share of Discovered URLs as one of three signs a site needs its crawl budget guide.

What is the correct pagination setup for ecommerce SEO?

Give every page a unique URL such as ?page=2, a self-referencing canonical, and a plain a href link from the previous page. Google's pagination guide says not to use the first page as the canonical, that page titles may repeat across the sequence, and that its crawlers do not click load-more buttons or trigger JavaScript to reveal content.

Does Google still use rel=next and rel=prev?

No. Google's pagination and incremental page loading documentation states that it no longer uses link rel=next and rel=prev to identify page relationships, although other search engines may still read them. Sequential a href links between pages and a unique, self-canonical URL per page are what Google relies on now.

Should product variants have their own URLs?

Yes, so Google can identify each one. Google's ecommerce URL structure guide recommends a path segment such as /t-shirt/green or a query parameter such as ?color=green per variant. If the parameter is optional, the URL without it should be the canonical on every variant page, which is what Shopify's ?variant= handling already does.

What should happen to out-of-stock product pages?

Keep a temporarily unavailable product live with a 200 status and OutOfStock availability in its Offer markup, so links and rankings survive the restock. For a product that will not return, Google's crawl budget guide says to return a 404 or 410, a strong signal not to recrawl, or redirect to a direct replacement.

Which ecommerce platform handles facets and pagination best by default?

Shopify does the most: its default robots.txt disallows sorted, multi-tag and multi-filter collection URLs, single filters canonicalise to the bare collection, and ?page=2 self-canonicalises. BigCommerce canonicalises facets and sorts to the category. Magento ships with canonical tags off for categories and products. WooCommerce core writes no canonical on filtered archives at all.

Aditi Chaturvedi
About the Author

Aditi Chaturvedi

15+ years of growing SaaS websites through SEO | Author, 200-Point Audit Checklist

Aditi has spent 15+ years helping SaaS companies scale organic traffic through technical SEO and content strategy. She is the author of the CrawlRaven 200-Point Audit checklist used by agencies and in-house teams to systematically improve search performance.

technical seo for ecommerceecommerce technical seofaceted navigation seopagination seocrawl budget seocrawl budget optimizationecommerce site structurecanonical tags ecommerceproduct structured dataecommerce seo

Reader runs or audits an online store on any platform, has a crawl export full of parameter URLs and duplicate warnings, and wants to know which technical fix to make first and which the platform already handles.

Facets, pagination and canonicals ranked by the collections that already earn clicks

Search Console and GA4 are built in, so the ranking is by impact, not severity colour

CrawlRaven joins Search Console, GA4 and a 200-point crawl into one ranked plan. On a store it groups every facet, sort and paginated URL family, then puts the crawl trap on your best-earning collection above the schema warning on a product nobody visits. Free plan for 1 site, no credit card required.

CrawlRaven connects Google Search Console and GA4, runs 200+ technical SEO checks, and joins all three into one prioritized fix list, so you know what is broken, what it is costing you, and what to fix first.

✓ No credit card required·200+ checks·GSC + GA4 + full-site crawl
Free plan — no credit card

Stop exporting. Start shipping.

Connect Search Console, import your Ahrefs or Semrush lists, and get one ranked plan. Start free with one site, or grab a limited lifetime deal from $39, only 5 licenses left.

3
Data sources joined
200+
Point audit checks
1
Ranked plan out