Spider Traps (Crawler Traps)

Spider traps (crawler traps) are site structures that generate effectively infinite URLs — faceted filters, calendars, session IDs, redirect loops — and quietly drain crawl budget. How to find and fix them.

First published: Jun 22, 2026 · Last updated: Jul 18, 2026 · Advanced
demand #2 in Crawling#5 in How Search Works#21 in Technical SEO#29 on the site
1 evidence signal on this page

A spider trap (crawler trap) is any part of a site that mints an effectively infinite number of URLs — faceted filters, endless calendars, session IDs, sort/tracking params, infinite pagination, redirect loops, relative-link explosion — so crawlers burn their budget on near-duplicate junk instead of your real content. Google named the problem 'infinite spaces' back in 2008; in a February 2026 Search Off the Record recap of Google's 2025 year-end crawling report, Gary Illyes put faceted navigation and action parameters at roughly 75% of the crawling issues Google sees (50% faceted nav, 25% action parameters, plus smaller shares from tracking params and plugins). It mainly hurts large, new, and ecommerce sites; small sites rarely need to care. Detect it in your server logs first — the signature is one URL pattern eating a disproportionate, lopsided share of crawl hits relative to your own site's normal baseline, not a fixed percentage that applies everywhere — then fix it at the source — ideally stop generating the URLs, or robots.txt-disallow / noindex / 404 in the right order. Canonical and nofollow help but don't stop the crawling, and order matters: block too early and the noindex never gets seen.

TL;DR — A spider trap (crawler trap) is any structure that generates effectively infinite URLs — faceted nav, calendars, session IDs, sort/tracking params, infinite pagination, redirect loops, relative-link explosion — so crawlers waste capacity on near-duplicate junk. Google has long described these patterns as “infinite spaces.” The impact is usually greatest on large, new, or ecommerce sites, though smaller sites can still create traps. Find it in logs first; fix it at the source. Robots.txt stops crawling but not indexing, noindex needs crawl access to be seen, canonical is a slow hint — so the order of your fixes matters.

Evidence for this claim Faceted navigation can generate effectively unbounded URL spaces that consume crawling resources; Google recommends controlling crawlable combinations. Scope: Current Google faceted-navigation crawl guidance. Confidence: high · Verified: Google Search Central: Managing faceted navigation Evidence for this claim Large duplicate or low-value URL inventories can waste crawl activity, while most smaller sites do not need specialized crawl-budget management. Scope: Current Google crawl-budget guidance. Confidence: high · Verified: Google Search Central: Crawl budget management

What a spider trap actually is

A spider trap — synonymous with crawler trap — is a part of a site that spawns an effectively infinite, or impractically large, number of URLs, so a crawler keeps requesting low-value, near-duplicate, or empty pages and burns its crawl budget before it reaches your real content. Google’s term for the underlying phenomenon is “infinite spaces” (or “infinite URL spaces”).

The key word is effectively. A trap doesn’t have to be truly infinite — “de facto infinite” is plenty. A few filters that combine in any order produce an astronomical number of URLs for the same handful of products. The problem isn’t that any single URL is bad; it’s the combinatorial explosion.

And here’s why crawlers can’t just sidestep it. As Google’s faceted-navigation documentation puts it, “Because the URLs created for the faceted navigation seem to be novel and crawlers can’t determine whether the URLs are going to be useful without crawling first, the crawlers will typically access a very large number of faceted navigation URLs.” Gary Illyes said the same thing more plainly: once a crawler discovers a set of URLs, it can’t judge whether that URL space is good until it has crawled a large chunk of it. The trap works precisely because the bot has to walk into it to find out it’s a trap.

Why spider traps hurt SEO

The damage is opportunity cost. Google is explicit: “If crawling is spent on useless URLs, the crawlers have less time to spend on new, useful URLs.” The web, as Google notes, is “a nearly infinite space, exceeding Google’s ability to explore and index every available URL” — so a finite crawl pool spent on your junk is content that never gets discovered.

This is a crawl-budget problem, and crawl budget is an efficiency concern, not a ranking signal. More crawling doesn’t lift your rankings — as I’ve written in my crawl budget guide, “More crawling doesn’t mean you’ll rank better, but if your pages aren’t crawled and indexed they aren’t going to rank at all.” That’s the real stakes: a bad enough trap on a large site can leave genuinely important pages stuck in “Discovered – currently not indexed” because the budget went to junk.

Who actually needs to care? Google’s own crawl-budget guide scopes itself to large sites (1 million+ unique pages, changing at least weekly), medium-or-larger sites (10,000+ unique pages) that change daily, and any site with a large share of its URLs sitting in “Discovered – currently not indexed” — plus, by extension, ecommerce sites with faceted catalogs, which are the fastest way to hit those numbers. Google calls these rough estimates, not exact thresholds. Most small sites get crawled fully regardless and can stop reading here. The trap scenario is exactly the case where crawl budget does matter — and Google frames the whole concept around crawl capacity (how much your server can take) and crawl demand (how much Google wants to crawl), not a fixed quota handed to every site.

This isn’t a new or rare problem

Google named “infinite spaces” back in 2008, in a post titled To infinity and beyond? No!, calling out endless calendars and stacked search-result filters as the source, and naming robots.txt and nofollow as the fixes. (That post is old and JS-rendered, so I’m paraphrasing it rather than quoting it.)

What’s striking is that it never went away — it scaled. Google ran a Crawling December blog series on faceted navigation back in December 2024, and more recently, on a Search Off the Record episode recapping Google’s 2025 year-end crawling report, Gary Illyes broke down what’s actually driving crawl waste: faceted navigation and action parameters together account for roughly 75% of the crawling issues Google sees — 50% from faceted navigation, 25% from action parameters (URL parameters that trigger an action rather than changing page content). The remaining quarter is smaller stuff: about 10% from “irrelevant” parameters like session IDs and UTM tags, 5% from plugins and widgets that generate problematic URLs, and 2% from other edge cases like double-encoded URLs. Eighteen years on, faceted navigation is still, by a wide margin, the single biggest source of the problem.

Types of spider traps

The catalogue, with the one-line tell for each. (See the Cheat Sheets tab for the matching one-line fixes.)

  • Faceted navigation / filter combinations — the #1 trap. Users pick a few filters; the crawler tries every permutation. Google: “This often means a very large number of possible combinations of filters, which translates to a very large number of possible URLs.”
  • Infinite calendars — “next month / next year” links with no horizon. A bot can walk forward indefinitely (Illyes’ memorable example was a calendar widget generating a valid URL for the year 3000).
  • Session IDs in URLs?sid=, jsessionid, etc. mint a unique URL per visitor for identical content.
  • Sort / order parameters?sort=price, ?order=desc. Google says “differently sorted versions of the same page” shouldn’t be crawled.
  • Infinite scroll / looping pagination — endless “load more” / “next” that never terminates or duplicates linked content. Google flags “infinite scrolling pages that duplicate information on linked pages.”
  • Redirect loops / long chains — A → B → A forever, often from a mistyped rewrite rule.
  • Relative-URL / path explosion — malformed relative links that keep appending directories (/abc/def/abc/def/abc/def/…) until the server gives up.
  • Internal search result pages — search URLs treated as crawlable content; a sitewide search on a single letter can mint a million pages.
  • Dynamic / “magic” URLs — a URL that accepts arbitrary text or IDs and still returns 200.
  • Tracking / “action” parameters — UTM tags and add-to-cart/compare actions create de-facto-infinite URL variants (this is the “action parameters” half of Google’s 75%).

How to detect a spider trap

  • Server logs first — this is the fastest tell. Your logs show exactly which URLs bots hit and how often. There’s no fixed universal threshold for what counts as “too much” — the signature is a lopsided, disproportionate share of crawl hits concentrated on one junk URL pattern relative to your own site’s normal baseline, not a specific percentage that applies everywhere. (Yoast founder Joost de Valk has written that in his own experience it’s “not uncommon” for a trap to take up 20-30% or more of all crawls — a useful gut-check for how skewed a real trap can get, not a benchmark to test your site against.) (See log file analysis.)
  • Run a crawl — Screaming Frog, Ahrefs Site Audit, Sitebulb. Watch for a crawl that won’t finish, URLs that keep getting longer (path explosion), or an exploding count of parameter combinations.
  • Google Search Console — a ballooning “Discovered – currently not indexed” count, a swelling Soft 404 report (autogenerated empty pages), Crawl Stats skewed toward junk paths, or the “Googlebot encountered an extremely high number of URLs” message.
  • A site/index sanity check — when a tiny fraction of indexed URLs actually drive traffic, you’re probably feeding a trap.
  • Search operatorssite: plus inurl: on a known parameter string.
  • Bing — Site Scan and Crawl Control in Bing Webmaster Tools.

How to fix and prevent spider traps

The fixes, roughly best to last-resort — and the sequencing matters, because these controls do different jobs.

  1. Best fix: don’t generate the URLs. Stop minting crawlable URLs at the source. The cleanest version is JavaScript/fragment-based filtering so filters update the page without creating a new crawlable address (Google’s faceted-nav doc and SEJ both recommend converting facet parameters to URL fragments). Everything below is a patch by comparison.
  2. Pick which facets deserve indexing, block the rest. Google: “Oftentimes there’s no good reason to allow crawling of filtered items, as it consumes server resources for no or negligible benefit.” Allow one unfiltered listing plus the individual item pages; block the combinatorial filtered space.
  3. robots.txt disallow the trap patterns for spaces you don’t need indexed. This is Google’s primary recommendation for filtered/sorted junk. Caveat: robots.txt blocks crawling, not indexing — see the sequencing note below.
  4. noindex to remove already-indexed junk. If the junk is already in the index, you can’t robots-block it first — Google has to be able to crawl the page to see the noindex. The correct order is: keep it crawlable, let noindex deindex it, then (optionally) robots.txt-disallow to stop future crawling. Block too early and the noindex never gets seen.
  5. Return 404/410 for empty filter combinations. Google: “Return an HTTP 404 status code when a filter combination doesn’t return results.” And “Eliminate soft 404 errors. Soft 404 pages will continue to be crawled, and waste your budget.”
  6. rel="canonical" to consolidate sorted/variant URLs to the clean version — useful, but slow and a hint, not a directive. Google: it “may, over time, decrease the crawl volume of non-canonical versions of those URLs.” It doesn’t stop the crawling, and Bing warns “relying on canonical tag is not necessarily the perfect solution to fix all your duplicate content problems.”
  7. rel="nofollow" on filter links — only works if you apply it to every link, internal and external. Google: “Every anchor pointing to a specific URL must have the rel=“nofollow” attribute in order for it to be effective.”
  8. Per-trap fixes: cap calendar links past a sane horizon and noindex distant dates; strip session IDs out of URLs (use cookies); fix redirect loops so the source redirects straight to the final destination; use absolute URLs and server rules to stop relative-link explosion; noindex/disallow internal search pages.

If you keep clean URL parameters and a stable parameter order, you also avoid minting needless variants in the first place. Note that Google retired its URL Parameters tool in 2022, so robots.txt / canonical / noindex now carry that load on Google’s side. On Bing, the equivalent is URL Normalization — you tell Bing which parameters to ignore.

One nuance: don’t break legitimate pagination

The over-correction trap is real too. When people panic about “infinite” pagination, they often block or canonicalize all paginated pages — and create a new problem. As I’ve written about pagination, “Blocking the pages from crawling will again make it more difficult to find content on the website, end up orphaning pages,” and canonicalizing every page to page one “makes it harder for search engines to find and index valuable content, and also cuts off the flow of PageRank.” Distinguish a genuine infinite/looping pagination trap from legitimate finite pagination — keep the finite version crawlable.

Where this sits

Spider traps are a crawl-efficiency problem, so they live next to crawl budget (what the trap drains) and log file analysis (how you catch it). If you’ve read the crawling hub, this is the failure mode that makes crawl budget worth managing on the sites where it matters.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin an expert quote first.