Web crawler

On this page 7

A web crawler is an automated program that systematically discovers and downloads web pages by following links and reading sitemaps, then hands the fetched content to systems that parse, render and index it. In SEO, crawling is the first gate of organic visibility: a page that is never crawled cannot be indexed, and a page that is not indexed cannot rank in search results or be cited by AI answer engines.

Crawlers are also called spiders, bots or robots, and the best-known example is Googlebot. Every crawler balances two goals that pull in opposite directions: coverage and freshness on one side, and politeness toward the servers it visits on the other.

How a web crawler works

A web crawler works as a continuous loop around a URL frontier, a prioritized queue of addresses waiting to be fetched. The crawler takes a URL from the frontier, checks whether robots.txt allows it, downloads the response, extracts new links and adds the ones it has not seen before back to the queue.

StageWhat the crawler doesSEO implication
DiscoveryCollects URLs from links, sitemaps and earlier crawlsOrphan pages without links are found late or never
SchedulingOrders URLs by priority and per-host politeness limitsImportant pages need strong internal links
Robots checkReads and caches robots.txt for the hostA wrong Disallow rule hides whole sections
FetchingResolves DNS, sends the HTTP request, stores the responseSlow or failing servers reduce crawl capacity
ParsingExtracts links, metadata and directives from the HTMLLinks must be standard anchors with an href
DeduplicationNormalizes URLs and detects identical contentParameter variants waste fetches
RevisitingSchedules refetches based on observed change ratesFrequently updated pages are recrawled sooner
Stages of the crawl loop and their SEO meaning

Modern search crawlers add a rendering step. Google, for example, queues fetched pages for a headless, evergreen Chromium browser that executes JavaScript and builds the final DOM, so links and content injected by scripts can be discovered. Rendering is far more expensive than fetching, which is why content that exists only after client-side rendering may be processed later than server-rendered HTML.

Crawlers also try to avoid redundant downloads. They send conditional requests with the If-Modified-Since or If-None-Match headers, and a server that answers with 304 Not Modified saves bandwidth for both sides while confirming that the stored copy is still current.

Types of web crawlers

Web crawlers differ mainly in who operates them and what they do with the data, and that purpose largely predicts how they behave. The table below groups the crawlers that typically appear in server logs.

CategoryExamplesPurposeTypical robots.txt behavior
Search engine crawlersGooglebot, Bingbot, YandexBotBuild and refresh a search indexRespect rules; user agent can be verified
AI crawlersGPTBot, ClaudeBot, PerplexityBotCollect training data or fetch pages for AI answersMajor operators publish and honor tokens
SEO audit crawlersDesktop and cloud site auditorsSimulate a search crawler on one siteConfigurable by the operator
Archival crawlersWeb archive botsPreserve snapshots of public pagesPolicies vary by archive
ScrapersPrice, content and lead scrapersExtract specific data for reuseOften ignore rules or fake user agents
Common crawler categories

A user-agent string alone proves nothing, because any client can claim to be Googlebot. Search engines therefore recommend verification by reverse DNS lookup followed by a forward lookup, or a check against the IP ranges they publish. Blocking unverified clients that impersonate search bots is a sound security practice; blocking the genuine crawler by mistake is one of the most damaging technical SEO errors.

How crawlers decide what to fetch and when

A search crawler decides what to fetch by combining crawl demand with crawl capacity. Demand reflects how valuable and how changeable a URL appears, judged from links, popularity, sitemap data and past change history. Capacity reflects how much load a host can take, which the crawler infers from response times and error rates. Together they form what SEO practitioners call crawl budget, a topic that matters mostly for large or fast-changing sites.

The HTTP status code is the most direct message a server sends to a crawler. Each code triggers a different behavior, and consistent codes help the crawler spend its effort where it matters.

Status codeCrawler behaviorEffect on the URL
200 OKProcesses the content and extracts linksEligible for indexing
301 or 308Follows the redirect; Googlebot follows up to 10 hopsSignals consolidate to the target
302 or 307Follows the redirect but keeps the source in viewTreated as temporary at first
304 Not ModifiedKeeps the stored copyNo reprocessing needed
404 or 410Reduces recrawl frequency over timeDropped from the index
429 or 503Slows down and retries laterKept temporarily; long outages cause drops
Other 5xx errorsReduces crawl rate for the hostPersistent errors lead to removal
How search crawlers react to status codes

Server health directly throttles crawling. When a site starts returning errors or slows down sharply, a well-behaved crawler backs off to avoid overloading it. This protects the server but delays the discovery of new and updated content, so fast, stable responses are a prerequisite for timely indexing.

Controlling what crawlers can access

Site owners control crawlers with a small set of mechanisms that work at different stages of the pipeline. Confusing these stages is the root of many crawling and indexing problems.

MechanismWhat it controlsCommon mistake
Robots.txtWhether a URL may be fetchedUsing Disallow to remove a page from the index
Meta robots tagIndexing and link following for an HTML pagePlacing noindex on a URL that robots.txt blocks
X-Robots-Tag headerThe same directives for any file type, such as PDFsForgetting it on non-HTML assets
XML sitemapDiscovery hints and last modification datesListing redirected or non-canonical URLs
Server authenticationAccess to private contentRelying on hidden URLs instead of login protection
Crawler control mechanisms compared

The most important distinction is that robots.txt blocks crawling, not indexing. A disallowed URL can still be indexed without its content if other pages link to it. Conversely, a noindex directive works only if the crawler can fetch the page and read it. Robots.txt itself is standardized in RFC 9309, which requires crawlers to parse at least 500 kibibytes of the file. The Crawl-delay line is not part of that standard; Bingbot honors it, while Googlebot ignores it.

Common crawling problems on websites

Most crawling problems come from site architecture that generates far more URLs than real pages, or from content the crawler cannot reach. Typical patterns include:

  • Spider traps, such as infinite calendars or relative-link loops, that produce endless unique URLs.
  • Faceted navigation that multiplies filter and sort combinations into millions of near-duplicate URLs.
  • Session IDs and tracking parameters in internal links, which split one page into many addresses.
  • JavaScript-only navigation using click handlers instead of anchors with an href attribute.
  • Soft 404 pages that return status 200 for missing content and keep consuming fetches.
  • Long redirect chains that waste requests and dilute signals before reaching the target.

The reliable way to diagnose these issues is server log analysis. Logs show which URLs verified crawlers actually request, how often and with which status codes, which reveals wasted crawl activity that no crawling tool or search console report can show completely.

In everyday language

A web crawler is a program that visits web pages automatically, the way a very fast reader might walk through a library and follow every reference to the next book. It reads a page, notes every link on it, and then visits those links too.

Search engines use crawlers to find out what exists on the web. If their crawler never reaches a page, the search engine simply does not know that page exists, so nobody can find it through search. Website owners can post rules at the entrance, in a file called robots.txt, that tell polite crawlers which rooms to skip.

The key point is simple: being found by the crawler comes first. Good content cannot appear in search results until a crawler has visited it.

Seen in the real world

An online outdoor equipment store with about 4,000 products noticed that new items took three weeks or more to appear in search results. Its SEO team analyzed one month of server logs and filtered them to verified Googlebot requests. They found that roughly 80% of Googlebot’s fetches hit filter URLs generated by faceted navigation, such as color, size and sort combinations, which together created more than one million crawlable addresses.

The team blocked the sort and multi-filter parameter patterns in robots.txt, removed tracking parameters from internal links, kept only canonical product and category URLs in the XML sitemap, and fixed a chain of three redirects on the main category paths. Single-filter pages with real search demand stayed crawlable.

Within six weeks, the logs showed that most Googlebot requests now reached product and category pages. New products were typically crawled within two days of publication and appeared in search results within a week, without any change to the content itself.