Crawlability Issues: What Breaks Crawling and How to Fix It
Crawlability issues are the technical conditions that stop search engines from discovering, accessing, or fetching your pages. A triage-first guide to the four buckets — blocked access, broken links, failing servers, bloated URL inventory — how to find them, and how to fix them.
Crawlability is how well search engine crawlers can discover, access, and fetch your pages — and a crawlability issue is anything that breaks that. Almost every issue falls into one of four buckets: access is blocked (robots.txt, login walls, 403s, blocked JS/CSS), links are broken or uncrawlable (JS-only nav, orphan pages), the server is failing or throttling (5xx, DNS failures, slow/truncated fetches, redirect chains), or the URL inventory is bloated (spider traps, parameter duplicates, soft 404s). Crawlability is upstream of indexing and ranking — necessary but not a ranking factor, and distinct from indexability. This hub triages the common, high-impact problems and points you to the deep dives.
TL;DR — CrawlabilityCrawlability is how well search engine crawlers can discover, access, and fetch a site's pages. A crawlability issue is any technical condition — blocked access, broken links, server failures, or bloated URL inventory — that stops pages from reaching the index. is whether search engines can find and reach your pages. A crawlability issue is anything that gets in the way — a page blocked in
robots.txt, a link botsA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. can’t follow, a server that keeps erroring, or a flood of junk URLs. If a page can’t be crawled, it can’t be indexedStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed., and if it’s not indexed, it can’t show up in search. Fix the access problem first; everything else is downstream.
What crawlability is
Before a page can rank, a search engine has to crawl it — send out a bot (GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. for Google, BingbotBingbot is Microsoft Bing's primary web crawler — the bot that discovers, fetches, and renders pages to build the Bing index. That index also powers Yahoo, DuckDuckGo, Ecosia, and Microsoft Copilot, so Bingbot's reach is far wider than Bing's own search-market share. for Bing) to discover the URL and download the page. Crawlability is just how easily that can happen. A crawlability issue is any technical thing that stops or slows it down. Evidence for this claim Google describes Search as crawling, indexing, and serving, and not every page proceeds through every stage. Scope: Google Search processing model. Confidence: high · Verified: Google: How Search works
Think of search as a pipeline: discover → crawl → render → index → serve. That five-step breakdown is my own practical way of organizing the work — Google’s official model groups discovery and renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. inside a broader “crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor.” stage rather than listing them separately. Either way, crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. is near the front, and everything after it depends on it. So a crawlability problem is the worst kind of SEO problem — it doesn’t matter how good your content is if the bot never gets to read it.
The four kinds of crawlability problems
Almost every issue fits in one of four buckets. This is a triage shortcut, not an
exhaustive list — things like a missing sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. or a stray noindex tag live just
outside these four. When something isn’t getting foundA 302 (\"Found\") is a temporary redirect: it forwards users to a new URL while telling search engines the original URL should stay in the index. It's a weak canonicalization signal, not the zero-equity dead end of SEO folklore., work out which bucket
you’re in first:
- Access is blocked. Your
robots.txtdisallows the page, it’s behind a login, a firewall returns a “403 ForbiddenAn HTTP 403 client-error status code meaning the server understood the request but refuses to fulfill it — access is denied, whether or not credentials are involved. For SEO, a 403 served to Googlebot on a page meant to be public and indexable usually points to a misconfigured rule; a persistent 403 keeps a page out of the index either way.,” or the CSS/JS the page needs is blocked. - Links are broken or uncrawlable. Your navigation only works with JavaScript clicks instead of real links, or a page has nothing linking to it at all (an “orphan”).
- The server is failing. It returns errors (500s), the domain won’t resolve, it’s painfully slow, or pages bounce through long redirect chainsA → B → C instead of A → C. Each hop loses link equity and adds latency..
- The URL inventory is bloated. Filters, calendars, and tracking tags spawn endless near-duplicate URLs, so bots waste their time on junk instead of your real pages.
The thing most people get wrong
Blocking a page in robots.txt does not remove it from Google. It only stops
Google from reading it. The page can still show up in results (without a
description) if other sites link to it. If you actually want a page gone, you let
it be crawled and add a noindex tag instead. Evidence for this claim Google says robots.txt controls crawler access and is not a mechanism for keeping a page out of Google. Scope: Google robots.txt behavior; noindex must remain crawlable to be observed. Confidence: high · Verified: Google: robots.txt introduction
And crawling is not ranking. Getting crawled more often won’t move you up the results — crawling is a gate you have to get through, not a score.
Want the full triage framework, how to find issues in Search ConsoleGoogle's free tool for monitoring crawling, indexing, and search performance. and your server logs, and the fixes for each one? Switch to the Advanced tab.
TL;DR — CrawlabilityCrawlability is how well search engine crawlers can discover, access, and fetch a site's pages. A crawlability issue is any technical condition — blocked access, broken links, server failures, or bloated URL inventory — that stops pages from reaching the index. is the degree to which crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. can discover, access, and fetch your pages; a crawlability issue is anything that breaks that. Almost all of them fall into four buckets — access blocked (robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere., login walls, 403s, blocked JS/CSS), links broken (JS-only nav, orphans, deep pages), server failing (5xx, DNS, slow/truncated fetches, redirect chainsA → B → C instead of A → C. Each hop loses link equity and adds latency.), and URL inventory bloated (spider trapsA spider trap (also called a crawler trap) is a site structure that generates an effectively infinite number of URLs — from faceted filters, calendars, session IDs, or redirect loops — so crawlers waste their budget on low-value, near-duplicate pages instead of your real content., parameter duplicates, soft 404sA soft 404 is a URL that returns a success status code (usually 200 OK) even though the page is empty, missing, or shows a 'not found' message. It isn't a status code a server sends — it's a label search engines apply after comparing the response code against the rendered content, and they treat the page like a 404 for indexing.). Crawlability is upstream of indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. and ranking — necessary to rank but not a ranking signal, and distinct from indexability. Diagnose with GSCA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. (Page IndexingThe Google Search Console report (formerly Index Coverage) showing how many of your URLs are indexed vs. not indexed, and grouping the not-indexed ones by reason., Crawl Stats, URL Inspection) and server logs; fix the access problem first, then the inventory. This hub triages each issue and links to the deep dives.
What crawlability is (and what it isn’t)
Crawlability is stage one of the search pipeline — discover → crawl → render → index → serve. Evidence for this claim Google describes Search as crawling, indexing, and serving, and not every page proceeds through every stage. Scope: Google Search processing model. Confidence: high · Verified: Google: How Search works Every failure here is upstream of indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. and ranking. The term itself is an SEO umbrella, not a Google one: Google’s own model names three Search stages — crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor., indexing, and serving — and folds URL discoveryURL discovery is how search engines find URLs to crawl — by pull (following links and reading sitemaps) and by push (you notify them via IndexNow, the Indexing API, or WebSub). It's the find step that comes before a page is ever fetched. and renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. into crawling rather than giving them their own top-level stages. The five-step pipeline and the four-bucket triage below are my synthesis for organizing that work into something actionable — useful for locating a problem fast, but not a citation for how Google’s systems are formally staged internally.
Three “not equals” prevent most of the confusion in this space:
- Crawlability ≠ indexability. A page can be perfectly crawlable but blocked
from the index by a
noindextag — or technically crawlable but still not indexed because of quality signals. Crawlability is a necessary but not sufficient condition for indexing. (See crawled – currently not indexedA Google Search Console Page Indexing status meaning Googlebot fetched the page but Google decided not to index it — usually a content- or site-quality signal, not a technical error. for the downstream quality case.) - Crawling ≠ ranking. Crawling is required to appear in results, but as Google puts it, “an increased crawl rateCrawl rate is how fast a search engine crawler fetches pages from your site — the number of simultaneous requests it makes and the delay between them. Google sets it automatically based on your server's health; it's the supply side of crawl budget, not a ranking factor. will not necessarily lead to better positions in Search results… while crawling is necessary for being in the results, it’s not a ranking signal.”
- Crawling ≠ rendering. Google renders the page and runs JavaScript in a separate step — “during the crawl, Google renders the page and runs any JavaScript it finds using a recent version of Chrome” — and that renderer runs in its own queue that can lag behind the initial fetch.
The full pipeline lives in the crawling hub; this article is the triage layer for when it breaks.
The four buckets of crawlability issues
Use these to locate your problem fast. Each one gets a short treatment here with a
link to the deep dive — don’t try to fix what you can’t yet categorize. This is a
triage lens, not an exhaustive classification: sitemapsA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., noindex, canonical tagsA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content.,
nofollowrel=\"nofollow\" is a value of the HTML link rel attribute that tells search engines you don't vouch for a linked page and don't want to pass ranking signals to it. Since 2019–2020 Google treats it as a hint, not a directive — and it does not reliably block crawling or indexing., mobile parity, and duplicate contentThe same or very similar primary content reachable at more than one URL. There's no general duplicate content penalty — the real costs are possible signal dilution, the wrong URL getting chosen, and less-efficient crawling. are all real problems, but most of
them belong to discovery, indexability, rendering, or crawl efficiency
rather than a pure access/fetch failure — they get their own pages linked below
instead of being folded into this hub as a flat audit checklist.
1. Access is blocked
Robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. blocking (intentional or accidental). A Disallow rule stops
crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. from fetching the URL at all. Google is explicit that this is the wrong
tool for removing pages: “A robots.txt file tells search engine crawlers which
URLs the crawler can access on your site… It is not a mechanism for keeping a web
page out of Google.” The classic accidents: a staging-site Disallow: / pushed to
production, a CMSA content management system (CMS) is software that lets users create, manage, and publish digital content — like blog posts and pages — without writing raw code. WordPress, Drupal, and Joomla are the most common open-source CMS platforms. plugin adding an overly broad rule, or blocking the *.js/*.css
resources the page needs to render. Evidence for this claim Google says robots.txt controls crawler access and is not a mechanism for keeping a page out of Google. Scope: Google robots.txt behavior; noindex must remain crawlable to be observed. Confidence: high · Verified: Google: robots.txt introduction (See robots.txt and the GSC status
blocked by robots.txtA Google Search Console Page Indexing status: the URL was excluded from indexing because your robots.txt disallows crawling it. Usually intentional and benign — robots.txt blocks crawling, not indexing..)
The noindexNoindex is a directive that tells search engines to keep a page out of their index, so it won't appear in search results. It works only on pages a crawler can actually fetch — a page blocked in robots.txt can never be noindexed. + disallow trap. This one bites constantly. If you both disallow a
page in robots.txt and put a noindex on it, Google can never fetch the page to
see the noindex — so the page can stay indexed via external links. To deindex a
page, allow crawling and add noindex. Never use disallow to deindex. I wrote
up the live experiment behind this in
Indexed, though blocked by robots.txt:
“crawling and indexing are two different things.”
Login walls and 401s. If content sits behind an interactive login or OAuth flow GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. can’t complete, it’s simply unreachable — can’t be crawled or indexed. That’s not the same claim as “every paywall is uncrawlable,” though: publishers can choose to expose gated or subscription content to crawlers differently than to a regular visitor, so treat “requires a login Googlebot can’t get past” and “metered/paywalled” as separate cases rather than assuming every paywall behaves the same way. (See blocked 401.)
403 ForbiddenAn HTTP 403 client-error status code meaning the server understood the request but refuses to fulfill it — access is denied, whether or not credentials are involved. For SEO, a 403 served to Googlebot on a page meant to be public and indexable usually points to a misconfigured rule; a persistent 403 keeps a page out of the index either way.. Before reaching for an IP allowlist, work through the likely causes in order rather than assuming the first one you find is the only one:
- robots.txt — confirm the exact path isn’t disallowed for that crawler’s user-agent; this is the single most common cause and the fastest to rule out.
- Intermittent or cached blocks — re-test the same URL more than once, from more than one vantage point. A WAF/CDN rule that only trips occasionally, or a stale cached 403, can look like a permanent block when it isn’t.
- User-agent blocks — a WAF/CDN rule denying a specific bot string (and remember the string alone can be spoofed, so don’t stop the investigation here).
- IP-range blocks — the firewall, CDN, or geoGenerative Engine Optimization — visibility inside AI answer engines. rule denying Googlebot’s actual IP ranges or datacenter geography. Only whitelist verified Googlebot — confirmed via reverse + forward DNS, not just the user-agent header — once you’ve actually located which layer is blocking it. (See blocked 403 and blocked other 4xx.)
Blocked JS/CSS. Google renders in a headless Chrome. If robots.txt blocks
*.js/*.css, or a CDN refuses Googlebot the resources, the rendered page looks
broken — content that only appears after rendering may not be indexed, and links
that only appear after JS may not be followed. Test with URL Inspection → Live Test
and look at the rendered screenshot.
When the question is whether ChatGPT, Claude, or another AI system can fetch the site, compare each named crawler's effective robots policy with the AI-Crawler Access Checker Free
- Enter the public site or robots.txt URL you want to review.
- Compare search, training, and user-triggered agents instead of treating every AI bot as one crawler.
- Treat an allowed verdict as access-policy evidence, not proof of indexing, citation, or security.
The completed access table lists three crawlers. OAI-SearchBot from OpenAI is verifiable and allowed because no rule matches. ClaudeBot from Anthropic is marked unverifiable and allowed because no rule matches. GPTBot from OpenAI is verifiable and blocked by Disallow slash on line 2.
2. Links are broken or uncrawlable
Non-crawlable links. “Google can only crawl your link if it’s an <a> HTML
element with an href attribute. Most links in other formats won’t be parsed and
extracted by Google’s crawlers.” That rules out <a routerLink="...">,
<span href="...">, and <a onclick="goto(...)">. If your main navigation is
JS-only click handlers, whole sections of the site may never be discovered. (See
the rendering section of the crawling hub and my
JavaScript SEO Issues & Best Practices.)
Orphan pagesAn orphan page is a page on your site that no other page links to internally. Because crawlers discover pages by following links, an orphan page is effectively invisible to search engines unless it's in an XML sitemap or linked from an external site.. A page with no internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them. pointing to it can only be found via a sitemap or external link. Links are the dominant discovery channel, so an orphan often shows up as discovered – currently not indexedA Google Search Console Page Indexing status meaning Google knows the URL exists but hasn't crawled it yet — the Last Crawl date is empty. Often a crawl-capacity or crawl-demand (site-quality) signal. in GSC. A sitemap entry aids discovery; it doesn’t replace the link signal. Fix: link the page from a relevant hub or category page. (See discovery and crawl depthCrawl depth usually means click depth — how many clicks it takes to reach a page from the homepage by following internal links. It can also mean a crawler setting that limits how many levels deep a crawl goes before it stops..)
Deep pages. Pages buried many clicks from the homepage get crawled later and less often. Keep important pages shallow (see crawl depth).
3. The server is failing or throttling
5xx server errors. A 500/502/503/504 returns an error instead of
content. Sustained 5xx makes Googlebot throttle — “they try not to crawl the site
too fast to avoid overloading it… HTTP 500 errors mean ‘slow down’” — and
eventually drop already-indexed pages. If robots.txt itself returns 5xx, it’s not
an instant, indefinite site-wide halt: Google’s published behavior is staged —
crawling stops for about 12 hours first, then Google may fall back to the last
known-good robots.txt for up to 30 days, and what happens after that depends on
the cached rules and whether the site is generally reachable. Note the 503
nuance: a 503 with a Retry-After
header is the correct response for planned short downtime; only weeks of it cause
harm. Google buckets 429 (too many requests) with the same back-off behavior.
(See server error (5xx) and crawl rate.)
DNS failures. Upstream of HTTP entirely: if the domain doesn’t resolve — expired registration, a botched nameserver migration, broken apex-domain resolution — there’s no server response to even return a 5xx. Sustained DNS failure drops the whole site. Catch it in GSC Crawl Stats → Host StatusThe at-a-glance availability indicator at the top of Google Search Console's Crawl Stats report. It shows whether Googlebot hit significant problems reaching your site in the last 90 days across three checks — robots.txt fetching, DNS resolution, and server connectivity., or faster with external uptime monitoring.
Slow responses and fetch truncation. Google’s politeness mechanism throttles based on server health, so slow responses mean fewer crawls. And there’s a hard byte limit: as of Google’s March 2026 Inside Googlebot update, Googlebot fetches roughly 2 MB per URL (down from the old 15 MB figure), with PDFs up to 64 MB. Go over and the fetch is truncated, not rejected — only the downloaded portion is indexed. If your critical content sits below 2 MB of bloat, it can get cut off.
Redirect chainsA → B → C instead of A → C. Each hop loses link equity and adds latency. and loops. Each redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. hop costs a crawl credit, and long chains have a negative effect on crawling; Google follows only about five hops before it may give up on the destination. Loops time out and land in redirect error in GSC. Common cause: stacked www → non-www → HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' hops from successive migrations. (See crawl budgetThe number of URLs an engine will crawl in a timeframe., which lists redirect chains as crawl waste.)
4. The URL inventory is bloated
Spider trapsA spider trap (also called a crawler trap) is a site structure that generates an effectively infinite number of URLs — from faceted filters, calendars, session IDs, or redirect loops — so crawlers waste their budget on low-value, near-duplicate pages instead of your real content.. Structures that generate effectively infinite URLs — faceted filter combinations, calendar “next month” links with no end, session IDs in URLs, infinite paginationPagination splits a large set of content — product listings, blog archives, search results — across multiple sequentially numbered URLs. For SEO, each paginated page should be crawlable, indexable, and self-canonical; Google no longer uses rel=prev/next, but Bing still does.. Crawlers burn budget on near-duplicate junk while real pages get crawled less. Google has called faceted navigationFaceted navigation (faceted search, product filtering) lets visitors refine a list of products or content by attribute — price, color, size, brand, rating. The SEO problem: each filter combination can spawn a distinct crawlable URL, turning a small catalog into millions of near-duplicate pages that waste crawl budget and dilute ranking signals. and action parameters responsible for the bulk of its crawling issues, and “infinite spaces” has topped the crawl-waste list since 2008. There’s no fixed universal threshold for what counts as “too much” — the signature is a lopsided, disproportionate share of hits concentrated on one junk URL pattern relative to your own site’s normal baseline, not a specific percentage that applies everywhere. (See spider traps.)
URL parametersThe `?key=value` data tacked onto the end of a URL after a question mark — used for tracking, sessions, filtering, sorting, and search — and one of the biggest sources of duplicate URLs and wasted crawling in SEO.. Query strings (?key=value) create multiple URLs for the same
content — active params (sort/filter/pagination) make near-duplicates; passive
params (tracking, session IDs) make pure duplicates. Both waste budget and dilute
link signals. Note: Google retired its URL Parameters tool in April 2022 (it
found only ~1% of configs useful and now handles most cases automatically) — don’t
tell people to use it. Bing still has an Ignore URL Parameters tool. Current fix:
consistent parameter ordering, rel=canonical for passive params, robots.txt
disallow only for genuine traps. (See url parameters and canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it..)
Soft 404sA soft 404 is a URL that returns a success status code (usually 200 OK) even though the page is empty, missing, or shows a 'not found' message. It isn't a status code a server sends — it's a label search engines apply after comparing the response code against the rendered content, and they treat the page like a 404 for indexing.. A page that’s functionally “not found” (empty search results,
gutted out-of-stock product) but returns 200 OK. Google keeps crawling it because
the status says it’s there, wasting budget for no indexable content. Fix: return a
real 404 or 410 (410 Gone is marginally faster for removal). A genuine 404
is a strong signal not to crawl that URL again.
Crawl budget exhaustion (large sites only)
This is the bucket-4 problem at scale, and it’s worth its own warning: most sites never hit it. Google says plainly, “if your site doesn’t have a large number of pages that change rapidly, or if your pages seem to be crawled the same day that they are published, you don’t need to read this guide.” John Mueller has put a number on it — 100,000 URLs is usually not enough to affect crawl budget. It realistically matters at ~1M+ pages changing weekly or 10k+ changing daily. Budget is per hostname, and all of Google’s crawlers (image, video, news, ads) draw from the same per-site pool. The warning light is a large and growing discovered – currently not indexed count. (Full treatment in crawl budget; I also wrote When Should You Worry About Crawl Budget?.)
How to find crawlability issues
Google Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results..
- Page Indexing reportThe Google Search Console report (formerly Index Coverage) showing how many of your URLs are indexed vs. not indexed, and grouping the not-indexed ones by reason. surfaces the named failures: blocked by robots.txt, server error (5xx), not found (404), redirect errorA Google Search Console Page Indexing status meaning Googlebot couldn't follow a redirect — a chain too long, a loop, a URL over the max length, or a bad/empty URL in the chain. It's a broken redirect to fix, not the normal \"Page with redirect.\".
- Crawl Stats reportA Google Search Console report (under Settings) that shows how Google has crawled your site over the last 90 days — total requests, download size, and average response time, broken down by response code, file type, Googlebot type, and purpose. It's only available for root-level properties (a Domain property or a URL-prefix property verified at the site's root). shows response-code trends, average response time, and a host-status panel that flags DNS, robots.txt, and server-connectivity problems. (See crawl stats report.)
- URL Inspection (Live Test) shows what Googlebot actually fetched and rendered for a single URL — the rendered screenshot is the fastest way to catch blocked JS/CSS.
- “Discovered – currently not indexed” is the crawl warning light: Google knows the URL but hasn’t fetched it (usually a linking or priority problem).
Server log file analysisLog file analysis is reading a web server's raw access logs to see exactly which URLs search engine crawlers actually requested, when, how often, and what status code they got. Unlike crawl tools or Search Console, logs are the unsampled, ground-truth record of what really happened. is the ground truth. Logs show exactly which URLs bots hit, how often, and with what status — and they’re the only way to tell real Googlebot (verified via reverse + forward DNS) from bots faking the user-agent. A spider trap shows up as a lopsided share of hits to one URL pattern. (See log file analysis.)
Site audit crawlers — Ahrefs Site Audit and Screaming Frog SEO Spider — simulate a crawl and surface redirect chains, blocked URLs, orphan pages, and crawl depth in one pass.
Crawlability vs. indexability: don’t confuse them
In short: crawlability is whether a bot can reach the page; indexability is whether Google chooses to store it once fetched. Once crawlability is fixed, indexability is the next gate.
The GSC status is a useful starting hypothesis, not a guaranteed diagnosis. Discovered – currently not indexed usually points to a crawl scheduling/priority problem (add internal links, raise site quality). Crawled – currently not indexed most often points to a content/quality problem downstream of crawlability (thin, duplicate, or intent-mismatched content) — but Google doesn’t publish an exhaustive causal mapping for that status, and overlapping factors like rendering delays, canonicalization signals, or indexing-eligibility checks can produce the same label. Treat the status as your first lead, confirm with URL Inspection and logs, and don’t throw crawl fixes at what turns out to be an indexability problem, or vice versa.
How Bing crawlability differs from Google
A few practical differences worth knowing if you optimize for both:
- IndexNowIndexNow is an open push protocol that lets you instantly tell participating search engines (Bing, Yandex, Naver, Seznam, and Yep) which URLs you've added, changed, or removed via a simple HTTP request — and one submission is shared across all of them. Google does not use it. — Bing (and Yandex, Naver, Seznam, Yep) take it for instant change notification; Google does not participate. Don’t expect IndexNow to help Google crawlability.
- Crawl Control — Bing still has a manual grid in Bing Webmaster ToolsMicrosoft's free portal for monitoring and improving how a site appears in Bing search — the peer to Google Search Console, plus IndexNow instant indexing, richer backlink data, and keyword volumes. Because Bing's index also feeds Microsoft Copilot, it doubles as a window into AI-search visibility. to schedule crawl hours; Google removed its crawl-rate slider in January 2024.
- Ignore URL Parameters — Bing still offers it; Google retired its equivalent in April 2022.
lastmod— Bing weights it more heavily as a recrawl signal; Google largely ignores inaccuratelastmod.
Fabrice Canel of Microsoft Bing sums up Bing’s philosophy as “Less is more for SEO… Less URLs to crawl, better for SEO” — which is the whole crawlability game in one line. (See bingbotBingbot is Microsoft Bing's primary web crawler — the bot that discovers, fetches, and renders pages to build the Bing index. That index also powers Yahoo, DuckDuckGo, Ecosia, and Microsoft Copilot, so Bingbot's reach is far wider than Bing's own search-market share..)
Where to go next
This hub is the map; the deep dives do the work. For access controls, see robots.txt and noindex. For the server side, see server error (5xx), crawl rate, and redirect error. For inventory bloat, see spider traps, url parameters, and crawl budget. For discovery and links, see discovery, crawl depth, and orphan pages. And for the whole pipeline in one place, start at the crawling hub.
AI summary
A condensed take on the Advanced version:
- CrawlabilityCrawlability is how well search engine crawlers can discover, access, and fetch a site's pages. A crawlability issue is any technical condition — blocked access, broken links, server failures, or bloated URL inventory — that stops pages from reaching the index. = how well crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. can discover, access, and fetch your pages. A crawlability issue is anything that breaks that. It’s stage one of the pipeline (discover → crawl → render → indexStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. → serve — Patrick’s practitioner synthesis; Google’s own model groups discovery and renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. inside a broader “crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor.” stage), so it’s upstream of everything.
- Three “not equals”: crawlability ≠ indexability (a crawlable page can still be
noindex’d); crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. ≠ ranking (“not a ranking signal,” per Google); crawling ≠ renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. (JS runs in a separate, lagging step). - Four buckets: (1) access blocked — robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere., login walls/401, 403 from
WAF/CDN, blocked JS/CSS; (2) links broken — JS-only nav with no
<a href>, orphan pagesAn orphan page is a page on your site that no other page links to internally. Because crawlers discover pages by following links, an orphan page is effectively invisible to search engines unless it's in an XML sitemap or linked from an external site., deep pages; (3) server failing — 5xx (throttles then drops), DNS failures (whole site), slow/truncated fetches (~2 MB limit), redirect chainsA → B → C instead of A → C. Each hop loses link equity and adds latency. (~5 hops); (4) inventory bloated — spider trapsA spider trap (also called a crawler trap) is a site structure that generates an effectively infinite number of URLs — from faceted filters, calendars, session IDs, or redirect loops — so crawlers waste their budget on low-value, near-duplicate pages instead of your real content., parameter duplicates, soft 404s (200 OKHTTP 200 OK is the standard 2xx success status code, meaning the server received, understood, and fulfilled the request and is returning the resource. It's the code every page you want indexed should return — but a 200 alone doesn't guarantee Google will index the page. with no content). - The big trap: noindexNoindex is a directive that tells search engines to keep a page out of their index, so it won't appear in search results. It works only on pages a crawler can actually fetch — a page blocked in robots.txt can never be noindexed. + disallow = Google never sees the noindex. To deindex, allow crawling + noindex; never use robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. to remove a page.
- Crawl budgetThe number of URLs an engine will crawl in a timeframe. only matters for huge/fast-changing sites (~1M+ pages weekly; 100k URLs usually doesn’t). Per hostname, shared across all Google crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index..
- Diagnose with GSC (Page IndexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed., Crawl Stats, URL Inspection) and server logs (the ground truth; only way to verify real bots). Fix access first, then inventory.
- Bing differs: IndexNowIndexNow is an open push protocol that lets you instantly tell participating search engines (Bing, Yandex, Naver, Seznam, and Yep) which URLs you've added, changed, or removed via a simple HTTP request — and one submission is shared across all of them. Google does not use it. (not Google), Crawl Control, Ignore URL ParametersThe `?key=value` data tacked onto the end of a URL after a question mark — used for tracking, sessions, filtering, sorting, and search — and one of the biggest sources of duplicate URLs and wasted crawling in SEO.,
heavier
lastmodweighting.
Official documentation
Primary-source documentation on what breaks crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor..
- In-Depth Guide to How Google Search Works — the crawl → indexStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. → serve pipeline, URL discoveryURL discovery is how search engines find URLs to crawl — by pull (following links and reading sitemaps) and by push (you notify them via IndexNow, the Indexing API, or WebSub). It's the find step that comes before a page is ever fetched., and the “slow down” throttling mechanism.
- Crawling and Indexing hub — robots, sitemapsA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it., and crawl controls in one place.
- Introduction to robots.txt — what robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. does and (crucially) doesn’t do.
- Make your links crawlable — the
<a href>requirement and the link formats Google can’t follow. - Optimize your crawl budget — capacity + demand, the crawl-waste categories, and who actually needs to care.
- Overview of Google crawlers and fetchers — user-agentsA user agent is the HTTP request header a client (browser, crawler, or bot) sends to identify itself. For crawlers, a short user-agent token — a substring of that string — is what robots.txt rules actually target., IP ranges, and how Google’s crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. identify themselves.
- Inside Googlebot (March 2026) — current byte limits (~2 MB per URL, 64 MB PDFs) and truncation behavior.
- Page Indexing report help — what each crawl/index status code means.
Bing / Microsoft
- bingbot Series: Maximizing Crawl Efficiency — Bing’s definition of crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. and its “crawl efficiency north star.”
- Bing Webmaster Tools — Crawl Control — schedule BingbotBingbot is Microsoft Bing's primary web crawler — the bot that discovers, fetches, and renders pages to build the Bing index. That index also powers Yahoo, DuckDuckGo, Ecosia, and Microsoft Copilot, so Bingbot's reach is far wider than Bing's own search-market share.’s crawl hours (Google has no equivalent).
- IndexNow — the push protocol Bing and others use for instant change notification (not Google).
Quotes from the source
On-the-record statements from Google and Bing. Each link is a deep link that jumps to the quoted passage on the source page.
Google — robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. is not a removal tool
- “A robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. file tells search engine crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. which URLs the crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. can access on your site.” — Google Search Central docs. Jump to quote
- “It is not a mechanism for keeping a web page out of Google.” Jump to quote
- “The instructions in robots.txt files cannot enforce crawler behavior; it’s up to the crawler to obey them.” Jump to quote
Google — crawlable links
- “Google can only crawl your link if it’s an
<a>HTML element with anhrefattribute.” — Make your links crawlable. Jump to quote - “Most links in other formats won’t be parsed and extracted by Google’s crawlers.” Jump to quote
Google — server health and renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM.
- “They try not to crawl the site too fast to avoid overloading it. This mechanism is based on the responses of the site (for example, HTTP 500A 500 Internal Server Error is a generic HTTP status code — RFC 9110 defines it as an unexpected condition that stopped the server from fulfilling the request, and nothing more. The request may have been fine — something broke server-side while generating the response. For SEO, an isolated 500 is typically retried, but persistent, site-wide 500s get Google's documented response: slower crawling and, if the errors don't clear, eventual removal from the index. errors mean ‘slow down’).” Jump to quote
- “During the crawl, Google renders the page and runs any JavaScript it finds using a recent version of Chrome.” Jump to quote
Google — crawl budgetThe number of URLs an engine will crawl in a timeframe. and crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. vs. ranking (2017 crawl-budget post; relayed via Search Engine Land’s verbatim reproduction)
- “An increased crawl rateCrawl rate is how fast a search engine crawler fetches pages from your site — the number of simultaneous requests it makes and the delay between them. Google sets it automatically based on your server's health; it's the supply side of crawl budget, not a ranking factor. will not necessarily lead to better positions in Search results… while crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. is necessary for being in the results, it’s not a ranking signal.” Read the coverage
- “If your site doesn’t have a large number of pages that change rapidly, or if your pages seem to be crawled the same day that they are published, you don’t need to read this guide.” — Large site crawl-budget guide. Jump to quote
Fabrice Canel, Microsoft Bing
- “Crawling is the process by which bingbotBingbot is Microsoft Bing's primary web crawler — the bot that discovers, fetches, and renders pages to build the Bing index. That index also powers Yahoo, DuckDuckGo, Ecosia, and Microsoft Copilot, so Bingbot's reach is far wider than Bing's own search-market share. discovers new and updated documents or content to be added to Bing’s searchable index.” Jump to quote
- “Less is more for SEO. Never forget that. Less URLs to crawl, better for SEO.” — relayed via Search Engine Land. Read the coverage
The crawlability triage checklist
Run these in order — access problems first, because they’re the most catastrophic and the most common:
- robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. doesn’t disallow anything you want indexedStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. (check for a stray
Disallow: /from staging, and that*.js/*.cssaren’t blocked). - No page uses noindexNoindex is a directive that tells search engines to keep a page out of their index, so it won't appear in search results. It works only on pages a crawler can actually fetch — a page blocked in robots.txt can never be noindexed. + disallow together (the noindexNoindex is a directive that tells search engines to keep a page out of their index, so it won't appear in search results. It works only on pages a crawler can actually fetch — a page blocked in robots.txt can never be noindexed. can never be seen — to deindexDeindexing means getting a URL to stop appearing in Google's search results. There's no single delete button — the right method depends on whether you own the page, whether removal is temporary or permanent, and whether the content should still exist., allow crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. and add noindex).
- Important content isn’t behind a login wall / 401 or returning 403 to verified GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. (check WAF/CDN/geoGenerative Engine Optimization (GEO) is the practice of optimizing content and brand presence so AI-powered search engines and assistants — Google AI Overviews, ChatGPT, Perplexity — cite, recommend, or mention you when generating answers. Google's position is that it's still SEO. rules).
- Navigation uses real
<a href>links, not JS-only click handlers. - No orphan pagesAn orphan page is a page on your site that no other page links to internally. Because crawlers discover pages by following links, an orphan page is effectively invisible to search engines unless it's in an XML sitemap or linked from an external site. — every page you care about is linked from at least one other crawlable page.
- Server returns fast, stable responses — minimal 5xx; planned downtime uses 503 + Retry-After.
- DNS resolves reliably (check GSC Host StatusThe at-a-glance availability indicator at the top of Google Search Console's Crawl Stats report. It shows whether Googlebot hit significant problems reaching your site in the last 90 days across three checks — robots.txt fetching, DNS resolution, and server connectivity. + external uptime monitoring).
- No redirect chainsA → B → C instead of A → C. Each hop loses link equity and adds latency. longer than a hop or two, and no loops.
- Critical content sits under the ~2 MB fetch limit (not below page bloat).
- No spider trapsA spider trap (also called a crawler trap) is a site structure that generates an effectively infinite number of URLs — from faceted filters, calendars, session IDs, or redirect loops — so crawlers waste their budget on low-value, near-duplicate pages instead of your real content. generating infinite URLs (calendars, facets, session IDs).
- URL parametersThe `?key=value` data tacked onto the end of a URL after a question mark — used for tracking, sessions, filtering, sorting, and search — and one of the biggest sources of duplicate URLs and wasted crawling in SEO. aren’t spawning crawlable duplicates (consistent ordering, canonicals for passive params).
- No soft 404sA soft 404 is a URL that returns a success status code (usually 200 OK) even though the page is empty, missing, or shows a 'not found' message. It isn't a status code a server sends — it's a label search engines apply after comparing the response code against the rendered content, and they treat the page like a 404 for indexing. — “not found” pages return a real
404/410, not200. - GSC Crawl Stats reviewed for response-code spikes and average response time.
- Server logs checked for crawl waste and important URLs bots never reach.
The mental models
1. The four buckets. Every crawlabilityCrawlability is how well search engine crawlers can discover, access, and fetch a site's pages. A crawlability issue is any technical condition — blocked access, broken links, server failures, or bloated URL inventory — that stops pages from reaching the index. issue is one of: access blocked, links broken, server failing, or inventory bloated. Categorize before you fix — the bucket tells you which tool to reach for.
2. The pipeline — discover → crawl → render → indexStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. → serve. Locate which stage a page is failing at before changing anything. Was it discovered? Crawled? Rendered? Indexed? Served? A fix aimed at the wrong stage does nothing.
3. The three “not equals.”
- CrawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. ≠ indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. (a robots-blocked page can still be indexed via links).
- CrawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. ≠ ranking (crawl rateCrawl rate is how fast a search engine crawler fetches pages from your site — the number of simultaneous requests it makes and the delay between them. Google sets it automatically based on your server's health; it's the supply side of crawl budget, not a ranking factor. isn’t a ranking signal).
- Crawling ≠ renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. (JS runs in a separate, lagging step).
4. The deindexDeindexing means getting a URL to stop appearing in Google's search results. There's no single delete button — the right method depends on whether you own the page, whether removal is temporary or permanent, and whether the content should still exist. decision rule.
Want a page gone from search? Allow crawling + noindex. Want botsA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. to skip a
URL space entirely (and don’t care about indexing)? robots.txt disallow.
Never use disallow to deindex — the bot can’t see your noindexNoindex is a directive that tells search engines to keep a page out of their index, so it won't appear in search results. It works only on pages a crawler can actually fetch — a page blocked in robots.txt can never be noindexed. through a block.
5. Fix the source, then block. For inventory bloat, stop generating the junk URLs first (the clean fix), and only then block whatever remains in robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere.. Blocking alone doesn’t reclaim budget unless you’re already at your server’s capacity ceiling.
6. Severity triage.
Site-wide first (DNS failure, robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. Disallow: /, robots.txt returning 5xx) →
section-wide (JS-only nav, a blocked directory) → page-level (one redirect chainA → B → C instead of A → C. Each hop loses link equity and adds latency.,
one orphan). Stop the bleeding before you tweak.
Crawlability issues — cheat sheet
The four buckets and their signature symptoms
| Bucket | Common issues | Where it shows up |
|---|---|---|
| Access blocked | robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. disallow, 401 login, 403 WAF, blocked JS/CSS | GSCA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results.: Blocked by robots.txtA Google Search Console Page Indexing status: the URL was excluded from indexing because your robots.txt disallows crawling it. Usually intentional and benign — robots.txt blocks crawling, not indexing.; URL InspectionA Google Search Console feature that reports how Google sees one specific URL on a property you own. By default it shows the last-indexed snapshot; a separate \"Test live URL\" mode fetches the current version. rendered screenshot |
| Links broken | JS-only nav, orphan pagesAn orphan page is a page on your site that no other page links to internally. Because crawlers discover pages by following links, an orphan page is effectively invisible to search engines unless it's in an XML sitemap or linked from an external site., deep pages | GSC: Discovered – currently not indexedStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed.; audit crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. |
| Server failing | 5xx, DNS failure, slow/truncated fetch, redirect chainsA → B → C instead of A → C. Each hop loses link equity and adds latency. | GSC: Server error (5xx), Redirect errorA Google Search Console Page Indexing status meaning Googlebot couldn't follow a redirect — a chain too long, a loop, a URL over the max length, or a bad/empty URL in the chain. It's a broken redirect to fix, not the normal \"Page with redirect.\"; Crawl Stats |
| Inventory bloated | spider trapsA spider trap (also called a crawler trap) is a site structure that generates an effectively infinite number of URLs — from faceted filters, calendars, session IDs, or redirect loops — so crawlers waste their budget on low-value, near-duplicate pages instead of your real content., parameter duplicates, soft 404sA soft 404 is a URL that returns a success status code (usually 200 OK) even though the page is empty, missing, or shows a 'not found' message. It isn't a status code a server sends — it's a label search engines apply after comparing the response code against the rendered content, and they treat the page like a 404 for indexing. | Server logs (lopsided hits); growing Discovered – not indexed |
Status codes bots care about
200— fetched fine (but a “not found” page returning 200 is a soft 404).301/308— permanent redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. (keep chains short; ~5 hops max).403/401— access denied / auth required (check WAF, verify it’s not real GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. being blocked).404/410— gone; strong do-not-crawl signal (410a touch faster).429/500/503— “slow down” / try later;503+Retry-Afteris correct for planned downtime; sustained = crawl drops.
Fast facts
- Fetch limit: ~2 MB per URL (PDFs 64 MB) — truncated, not rejected, beyond.
- Redirect hops Google follows: ~5 before it may abandon the destination.
- Crawl budgetThe number of URLs an engine will crawl in a timeframe. rarely matters under ~100k URLs; budget is per hostname.
- GSC URL ParametersThe `?key=value` data tacked onto the end of a URL after a question mark — used for tracking, sessions, filtering, sorting, and search — and one of the biggest sources of duplicate URLs and wasted crawling in SEO. tool: retired April 2022. Manual crawl-rate slider: removed Jan 2024.
- IndexNowIndexNow is an open push protocol that lets you instantly tell participating search engines (Bing, Yandex, Naver, Seznam, and Yep) which URLs you've added, changed, or removed via a simple HTTP request — and one submission is shared across all of them. Google does not use it. = Bing/Yandex/others, not Google.
Patrick's relevant free tools
- Log File Analyzer — Drop a server access log and see crawl budget by bot and section, status-code waste, an AI-vs-search breakdown, and a spoofer report that names impostors faking a crawler user-agent. Parses nginx, Apache, IIS/W3C, and JSON logs entirely in your browser — nothing is uploaded.
- Googlebot Verifier — Check whether an IP claiming to be Googlebot, Bingbot, GPTBot, ClaudeBot, or another crawler is genuine — published IP ranges plus forward-confirmed reverse DNS, with the real network owner named for spoofers. IPs are checked in memory and never stored.
- Raw vs. Rendered HTML Checker — See what's in your page's initial HTML versus after JavaScript runs — headless-Chrome rendering only when the page actually needs it, a rendering-strategy verdict (SSR / prerendered / CSR / hybrid), ~15 calibrated JavaScript-SEO checks (noindex, canonicals, robots.txt blocking, links, soft 404s), a side-by-side raw-vs-rendered diff, and shareable reports.
Tools for finding crawlability issues
- Google Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. — Page Indexing reportThe Google Search Console report (formerly Index Coverage) showing how many of your URLs are indexed vs. not indexed, and grouping the not-indexed ones by reason. — surfaces the named failures: blocked by robots.txtA Google Search Console Page Indexing status: the URL was excluded from indexing because your robots.txt disallows crawling it. Usually intentional and benign — robots.txt blocks crawling, not indexing., server error (5xx), not foundA 302 (\"Found\") is a temporary redirect: it forwards users to a new URL while telling search engines the original URL should stay in the index. It's a weak canonicalization signal, not the zero-equity dead end of SEO folklore. (404), redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. error, and the discovered/crawled – currently not indexedStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. states.
- GSC — Crawl Stats reportA Google Search Console report (under Settings) that shows how Google has crawled your site over the last 90 days — total requests, download size, and average response time, broken down by response code, file type, Googlebot type, and purpose. It's only available for root-level properties (a Domain property or a URL-prefix property verified at the site's root). — response-code trends, average response time, and a host-status panel that flags DNS, robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere., and connectivity problems. (See crawl stats reportA Google Search Console report (under Settings) that shows how Google has crawled your site over the last 90 days — total requests, download size, and average response time, broken down by response code, file type, Googlebot type, and purpose. It's only available for root-level properties (a Domain property or a URL-prefix property verified at the site's root)..)
- GSC — URL InspectionA Google Search Console feature that reports how Google sees one specific URL on a property you own. By default it shows the last-indexed snapshot; a separate \"Test live URL\" mode fetches the current version. (Live Test) — see exactly what GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer. fetched and rendered for one URL; the rendered screenshot is the fastest blocked-JS/CSS check.
- Server log file analysisLog file analysis is reading a web server's raw access logs to see exactly which URLs search engine crawlers actually requested, when, how often, and what status code they got. Unlike crawl tools or Search Console, logs are the unsampled, ground-truth record of what really happened. — the ground truth: which URLs bots actually hit, how often, and what they got back. The only way to verify real Googlebot (reverse + forward DNS) and to spot a spider trapA spider trap (also called a crawler trap) is a site structure that generates an effectively infinite number of URLs — from faceted filters, calendars, session IDs, or redirect loops — so crawlers waste their budget on low-value, near-duplicate pages instead of your real content.’s lopsided hit pattern. Tools: Screaming Frog Log File Analyser, or pipe logs into BigQuery / a log platform. (See log file analysis.)
- Site audit crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. — Ahrefs Site Audit and Screaming Frog SEO Spider simulate a crawl and surface redirect chainsA → B → C instead of A → C. Each hop loses link equity and adds latency., blocked URLs, orphan pagesAn orphan page is a page on your site that no other page links to internally. Because crawlers discover pages by following links, an orphan page is effectively invisible to search engines unless it's in an XML sitemap or linked from an external site., and crawl depthCrawl depth usually means click depth — how many clicks it takes to reach a page from the homepage by following internal links. It can also mean a crawler setting that limits how many levels deep a crawl goes before it stops..
- Ahrefs Webmaster Tools — free crawl + audit for sites you verify.
- Bing Webmaster ToolsMicrosoft's free portal for monitoring and improving how a site appears in Bing search — the peer to Google Search Console, plus IndexNow instant indexing, richer backlink data, and keyword volumes. Because Bing's index also feeds Microsoft Copilot, it doubles as a window into AI-search visibility. — crawl info, Crawl Control, and Site Scan; plus the Ignore URL ParametersThe `?key=value` data tacked onto the end of a URL after a question mark — used for tracking, sessions, filtering, sorting, and search — and one of the biggest sources of duplicate URLs and wasted crawling in SEO. tool Google retired.
Test yourself: Crawlability issues
Five quick questions on what breaks crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. and how to fix it. Pick an answer for each, then check.
Why can’t the crawler reach the page?
Triage a crawlability failure
Incident playbook: an important section disappears from crawling
- Confirm scope. Test representative URLs and compare first-failure time with releases, firewall changes, and server incidents.
- Check the fetch path. Resolve DNS, TLS, redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't., status codes, authentication, and response completeness. Fix failures before deeper SEO analysis.
- Check crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. access. Test the exact URLs against robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. and verify that WAF/CDN rules do not block verified bots.
- Check discovery. Crawl from the homepage and section hubs. If URLs are orphaned or JS-click-only, restore normal anchor links and sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. membership.
- Check renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. and inventory. Confirm required resources load and identify traps or duplicate paths consuming requests.
- Validate recovery. Re-fetch representative URLs and watch verified crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. logs; if access works but indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. does not recover, move to an indexability diagnosis.
URL returns 200 in a browser but crawlers get 403
Likely causes, in the order I check them: robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. disallow for that user-agentA user agent is the HTTP request header a client (browser, crawler, or bot) sends to identify itself. For crawlers, a short user-agent token — a substring of that string — is what robots.txt rules actually target., then an intermittent or cached block (re-test more than once), then a user-agent-specific WAF/CDN rule, then an IP-range or geoGenerative Engine Optimization (GEO) is the practice of optimizing content and brand presence so AI-powered search engines and assistants — Google AI Overviews, ChatGPT, Perplexity — cite, recommend, or mention you when generating answers. Google's position is that it's still SEO. block. Fix: confirm which layer is actually responsible before touching anything, verify the crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index.’s IP via reverse + forward DNS, inspect edge logs, and narrow the blocking rule. Confirm: the verified crawlerA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. and a normal user both receive the intended response.
Page exists but crawlers never request it
Likely causes: orphaning, JS-only controls, broken paginationPagination splits a large set of content — product listings, blog archives, search results — across multiple sequentially numbered URLs. For SEO, each paginated page should be crawlable, indexable, and self-canonical; Google no longer uses rel=prev/next, but Bing still does., or missing sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. discovery. Fix: add crawlable <a href> links from relevant pages and include the canonical URLHow search engines pick one canonical URL among duplicates and consolidate signals onto it. in the correct sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing.. Confirm: a site crawl reaches it and later server logsLog file analysis is reading a web server's raw access logs to see exactly which URLs search engine crawlers actually requested, when, how often, and what status code they got. Unlike crawl tools or Search Console, logs are the unsampled, ground-truth record of what really happened. show a verified crawler fetch.
Crawl tools report blocked resources
Likely causes: robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. rules cover CSS, JavaScript, or API resources required for renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM.. Fix: allow the required resources without exposing private endpoints. Confirm: rendered output contains the same primary content and links available to users.
Crawl volume spikes on junk URLs
Likely causes: faceted parameters, calendars, internal search, session identifiers, or infinite navigation. Fix: remove crawlable generation paths and consolidate or block only after understanding index and rendering effects. Confirm: equivalent log windows show the pattern declining while valuable URLs stay discoverable.
Prompt: turn crawl evidence into a triage table
Analyze the crawlability evidence below. For each URL, classify the failure as access, discovery/linking, server/redirect, rendering/resource, or URL-inventory. Cite only the supplied evidence, list missing checks, and return symptom → likely cause → safest fix → pass/fail verification. Keep crawlability separate from indexability.
[PASTE STATUS, HEADERS, ROBOTS TEST, CRAWL PATH, RENDERED HTML, AND LOG OBSERVATIONS] Prompt: review a robots.txt change safely
Review this proposed robots.txt change against the supplied sample URLs and user agents. Build an allow/block matrix, identify the winning rule, flag required resources or valuable pages that would become blocked, and propose the smallest safe change. Do not claim the file removes URLs from the index.
[PASTE CURRENT FILE, PROPOSED FILE, USER AGENTS, AND URL SAMPLES] Check a URL list for crawl responses
while IFS= read -r url; do curl -L -sS -o /dev/null -w '%{http_code}\t%{url_effective}\t%{time_total}\n' "$url"; done < urls.txtPowerShell equivalent:
Get-Content .\urls.txt | ForEach-Object { try { $r = Invoke-WebRequest -Uri $_ -MaximumRedirection 10; "{0}`t{1}" -f $r.StatusCode,$r.BaseResponse.ResponseUri } catch { "ERROR`t$_" } } Find non-crawlable link controls in rendered HTML
Run this in the browser DevTools Console. It lists elements with click behavior that are not normal links:
[...document.querySelectorAll('[onclick], [role="link"]')].filter(el => !el.matches('a[href]')).map(el => ({text: el.textContent.trim(), html: el.outerHTML.slice(0, 300)}));The result is a review queue, not proof that every item should become a link.
Resources worth your time
My related writing
- Indexed, though blocked by robots.txt — why a blocked page can still be indexedStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed., and the noindexNoindex is a directive that tells search engines to keep a page out of their index, so it won't appear in search results. It works only on pages a crawler can actually fetch — a page blocked in robots.txt can never be noindexed.-vs-disallow trap.
- The Story of Blocking 2 High-Ranking Pages With Robots.txt — my first-party experiment on what actually happens when you block ranking pages.
- When Should You Worry About Crawl Budget? — who needs to care, and what wastes budget.
- JavaScript SEO Issues & Best Practices — the renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. side: when JS-dependent links and content break discovery.
- Meet the New Web Crawlers — who’s actually crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. you now, from Cloudflare Radar data.
My speaking
- How Search Works (SlideShare) — my walkthrough of crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor., renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM., indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed., and ranking. (Standing disclaimer: “This is my understanding of systems… not going to be 100% complete or accurate.”)
From around the industry
- Google’s Crawling December series — the best concentrated set of official crawl explainers (GooglebotGooglebot is Google's web crawler — the software that fetches pages so Google can index and rank them. It comes in two variants, Googlebot Smartphone (primary, under mobile-first indexing) and Googlebot Desktop, and runs an evergreen Chromium renderer., HTTP cachingCaching stores a copy of a page or resource — in a browser, a CDN edge node, or a search crawler's own cache — so it can be served again without regenerating or re-downloading it. It isn't a direct ranking factor, but it feeds page speed and crawl efficiency., faceted nav, CDNs).
- Google Explains Crawl Budget for Webmasters (Search Engine Land) — verbatim reproduction of Gary Illyes’ 2017 crawl-budget post, including the “not a ranking signal” line.
- Google: 100,000 URLs Usually Won’t Impact Crawl Budget (Search Engine Roundtable) — the John Mueller quote that sets the scale.
- The five infrastructure gates behind crawl, render, and index (Search Engine Land) — Fabrice Canel’s “less is more for SEO” framing of crawl efficiency.
- Google Explains Googlebot Byte Limits and Crawling Architecture (Search Engine Journal) — coverage of the March 2026 update; 2 MB per URL, 64 MB PDFs, truncation.
- Googlebot File Size Limit (DebugBear) — what happens when a page exceeds the fetch limit (truncation, not rejection).
Crawlability
Crawlability is how well search engine crawlers can discover, access, and fetch a site's pages. A crawlability issue is any technical condition — blocked access, broken links, server failures, or bloated URL inventory — that stops pages from reaching the index.
Related: Crawling, Crawl Budget, Indexing
Crawlability
Crawlability is the degree to which search engine crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. can discover, access, fetch, and process the pages on a site. A crawlability issue is any technical condition that prevents or degrades that access — so pages get missed entirely, fetched inefficiently, or rendered incorrectly, and never make it to the indexStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed..
Crawlability sits at stage one of the search pipeline — discover → crawl → render → index → serve — so every failure here is upstream of indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. and ranking. You can have perfect content, strong links, and clean structured dataStructured data is a standardized way of labeling page content (using the schema.org vocabulary in JSON-LD, Microdata, or RDFa) so search engines can understand its meaning. It's not a direct ranking factor — its value is rich results and entity understanding. and still rank for nothing if crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index. can’t get to the page. That five-step breakdown is a practitioner synthesis for organizing the work, not Google’s own model, which names three Search stages (crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor., indexing, serving) and folds URL discoveryURL discovery is how search engines find URLs to crawl — by pull (following links and reading sitemaps) and by push (you notify them via IndexNow, the Indexing API, or WebSub). It's the find step that comes before a page is ever fetched. and renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. into crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. rather than listing them separately.
The term is an SEO umbrella, not a Google term. Google talks about URL discoveryURL discovery is how search engines find URLs to crawl — by pull (following links and reading sitemaps) and by push (you notify them via IndexNow, the Indexing API, or WebSub). It's the find step that comes before a page is ever fetched., crawl budgetThe number of URLs an engine will crawl in a timeframe., crawl capacity, and crawl demandCrawl demand is the 'want' side of crawl budget — how much a search engine wants to crawl a site or URL, driven by popularity, staleness, and perceived inventory (plus temporary spikes from site moves). It's distinct from crawl rate/capacity, the 'can' side.; “crawlability” is how SEOs group the barriers that break any of those steps. Most issues fall into one of four buckets: access is blocked (robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere., login walls, 403s, blocked JS/CSS), links are broken or uncrawlable (JS-only navigation, orphan pagesAn orphan page is a page on your site that no other page links to internally. Because crawlers discover pages by following links, an orphan page is effectively invisible to search engines unless it's in an XML sitemap or linked from an external site.), the server is failing or throttling (5xx, DNS failures, slow responses, redirect chainsA → B → C instead of A → C. Each hop loses link equity and adds latency.), or the URL inventory is bloated (spider trapsA spider trap (also called a crawler trap) is a site structure that generates an effectively infinite number of URLs — from faceted filters, calendars, session IDs, or redirect loops — so crawlers waste their budget on low-value, near-duplicate pages instead of your real content., parameter duplicates, soft 404sA soft 404 is a URL that returns a success status code (usually 200 OK) even though the page is empty, missing, or shows a 'not found' message. It isn't a status code a server sends — it's a label search engines apply after comparing the response code against the rendered content, and they treat the page like a 404 for indexing.). This is a triage lens, not an exhaustive classification — sitemapsA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., noindex, canonicals, and mobile parity are related but distinct problems that live outside these four buckets.
Crawlability is necessary but not sufficient for indexing: a page can be perfectly crawlable and still not be indexed because of a noindex tag or quality signals. That’s why diagnosis starts by asking which stage a page is failing at before changing anything.
Related: Crawling, Crawl Budget, Indexing
Build-time retrieval analysis plus live signals for this exact article. The automatic chunk report includes a deterministic readiness score and is ready without a model download.
Search Console
sampleGA4 traffic (28d)
sampleCloudflare traffic (7d)
sampledCrUX field data (28d, phone)
sampleGoogle NLP entities
localChangelog
Updated Jul 17, 2026.
Editorial summary and recorded change details.Summary
Corrected the robots.txt 5xx and spider-trap-threshold claims to match current evidence, and qualified several places where the article stated more certainty than the underlying sources support.
Change details
-
Replaced the 'robots.txt 5xx halts crawling site-wide' claim with Google's staged behavior: ~12-hour halt, then up to 30 days on the last known-good file, then cached/availability-dependent.
-
Removed the unsupported universal 20-30% spider-trap log threshold in favor of a relative-baseline description.
-
Qualified the paywall/login-wall claim so it no longer implies every paywall is uncrawlable, and softened the 'crawled - currently not indexed = content problem' claim to acknowledge overlapping causes.
-
Labeled the five-step pipeline and four-bucket taxonomy as Patrick's practitioner synthesis rather than Google's official model, and added an ordered, attributed diagnostic sequence (robots.txt, then intermittent/cache, then user-agent, then IP) for 403 blocks.
Full comparison unavailable — no prior snapshot was archived for this revision.