System design interview questionHard

Design a Web Crawler

Design a scalable web crawler like Googlebot to index the internet.

1. Problem Statement

We need to design a scalable web crawler that performs 10 billion successful page fetches per month, including recrawls. How would you approach this?

2. Architecture Discussion Map

Use this as one discussion aid, not a single correct answer. Your design should follow from the requirements, scale, and trade-offs you establish.

Rendering architecture diagram...
Mermaid Source (For AI Bots)
graph LR
    A["Design a Web Crawler"]
    A --> F1["URL Frontier Prioritization & Politeness"]
    A --> F2["Distributed Traversal Avoiding cycles & duplicates"]
    A --> F3["Content Deduplication SimHash/Checksums"]
    A --> F4["DNS Resolution Caching to prevent bottlenecks"]
    A --> F5["Storage Raw Pages in Blob Storage, Metadata in a Scalable Table"]

3. Key Focus Areas

  • 1
    URL Frontier (Prioritization & Politeness)
  • 2
    Distributed Traversal (Avoiding cycles & duplicates)
  • 3
    Content Deduplication (SimHash/Checksums)
  • 4
    DNS Resolution (Caching to prevent bottlenecks)
  • 5
    Storage (Raw Pages in Blob Storage, Metadata in a Scalable Table)

4. What the Interviewer Looks For

The interviewer probes these areas, and the report grades the interview against them.

  • Requirements and capacity
  • URL frontier and prioritization
  • Politeness, robots, and host scheduling
  • Deduplication and crawl-trap defense
  • Fetching, DNS, storage, and fault tolerance

Want interactive feedback?

Practice drawing this system component-by-component on a live whiteboard while the interviewer probes at your target level.

Continue to Dashboard

Core Concepts

Distributed SystemsRobots.txtGraph Traversal

Continue preparing

Build a complete software engineer mock interview plan

Use this scenario in a focused preparation plan

Related System Design

Design a Distributed Message Queue

Design a high-throughput distributed message queue similar to Apache Kafka, with durable replay from stored offsets.

Related System Design

Design a Key-Value Store

Design a distributed key-value store like Dynamo or Cassandra with high availability.

Related System Design

Design a Notification System

Design a scalable notification service that sends emails, SMS, and push notifications to millions of users.