Tutorial12 min read

Website Crawler Tools Compared

Short answer

To crawl a whole site and list every URL on it, use Screaming Frog SEO Spider for a site you own: crawl from the home page, then export the internal URLs to CSV (free up to 500 URLs per crawl; a £199 or €245 yearly licence removes the limit). Use GNU Wget's --spider mode for a small site from the terminal, Scrapy for a large one, and the site audit in Semrush or Ahrefs if you already use them. For crawls of millions of pages across many sites, the free open-source choices are Apache Nutch (batch crawls on Hadoop), StormCrawler (continuous crawls on Apache Storm) and Heritrix (web archiving); Common Crawl's open archive saves you the crawl altogether. When a crawl sends thousands of requests to one site, ProxyField residential proxies give each request a new IP from $1.95/GB, starting with the Easy Trial: 1 GB for $2.95.

residential IPs
412M+
from, traffic never expires
$1.95/GB
Easy Trial
1 GB for $2.95
On this page 13 sections
  1. Website crawler tools compared
  2. List every URL of a website
  3. Free open-source crawlers for millions of pages
  4. Scrapy
  5. Crawlee
  6. Colly
  7. GNU Wget and HTTrack
  8. SEO crawlers (desktop and cloud)
  9. Online crawlers and crawling APIs
  10. Common Crawl: the open crawl of the web
  11. How to choose a website crawler
  12. Proxies for website crawlers
  13. Website Crawler Tools Compared FAQ

Quick picks:

Website crawler tools compared

Licenses, versions, prices and limits were checked on the projects' and vendors' own sites and repositories on October 23 and 25, 2026.

ToolTypeLanguage or platformPrice and licenseJavaScript pagesScaleBest for
Screaming Frog SEO SpiderDesktop SEO crawlerWindows, macOS, LinuxFree up to 500 URLs per crawl; paid licence £199 or €245 per year, renewed yearly, no URL limit (bounded by your memory and disk)Yes (Chromium rendering)Up to large sitesListing every URL and auditing your own site
SitebulbDesktop and cloud SEO crawlerWindows, macOS; browser (Cloud)Paid plans, a 14-day trial; no free planYes (Chrome rendering)Lite: 10,000 URLs per audit; more on higher plansVisual SEO audits
ScrapyCrawling and scraping frameworkPythonFree, BSD-3-ClauseThrough an add-onSingle machine to largeCrawling plus data extraction
CrawleeCrawling and scraping frameworkNode.js, PythonFree, Apache-2.0Yes, with its browser crawlersSingle machine to largeJavaScript-heavy sites
CollyCrawling frameworkGoFree, Apache-2.0NoSingle machineFast crawlers in Go
GNU WgetCommand-line downloaderLinux, macOS, WindowsFree, GPLNoSmall sitesLink checks, URL lists, mirroring
HTTrackWebsite copierWindows, LinuxFree, GPL-3.0NoSmall sitesOffline copies of a site
Apache NutchDistributed web crawlerJava, HadoopFree, Apache-2.0No by defaultMillions of pages and moreSearch-engine-style batch crawls
StormCrawlerLibrary for distributed crawlersJava, Apache StormFree, Apache-2.0 (v3.7.0)No by defaultLarge, continuousContinuous large crawls
HeritrixArchival crawlerJavaFree, Apache-2.0NoLargeWeb archiving (WARC files)
Semrush Site AuditHosted SEO auditBrowserPart of a Semrush subscriptionCheck your plan20,000 pages per audit on Pro and Guru, 100,000 on BusinessScheduled audits if you already pay for Semrush
Ahrefs Site AuditHosted SEO auditBrowserFree for sites you verify: 5,000 crawl credits per project per month; paid plans above thatCheck your planFree tier suits sites up to about 5,000 URLsAudits of your own verified site
Common CrawlOpen dataset of crawled pagesFiles on cloud storageFree to downloadNot applicableBillions of pagesResearch, AI, link data

Proxy support: Scrapy, Crawlee, Colly and Wget take a proxy URL (Scrapy and Wget also read the https_proxy variable), Screaming Frog has a proxy setting, and Nutch, StormCrawler and Heritrix take a proxy host and port in their configuration.

List every URL of a website

Start with the site's XML sitemap (listed in robots.txt or at /sitemap.xml), then crawl its links to find the pages the sitemap misses. Four ways to get the full list:

  1. Screaming Frog SEO Spider (no code): enter the start URL, let the crawl finish, then open the Internal tab and export the URLs to CSV or a spreadsheet. It can also crawl an XML sitemap on its own or check an uploaded list of URLs. The free version stops at 500 URLs per crawl; the paid licence, £199 or €245 per year, removes the limit and lets you save crawls.
  2. Semrush or Ahrefs Site Audit (hosted, no install): if you already pay for one of them, its audit crawls from the home page, the robots.txt sitemap or an uploaded URL list, and lists the crawled pages. Semrush allows 20,000 pages per audit on Pro and Guru and 100,000 on Business; Ahrefs gives 5,000 crawl credits per project per month free for a site whose ownership you verify.
  3. GNU Wget (one command, small sites): --spider visits pages without saving them and prints each URL it checks.
  4. Scrapy (code, any size): a CrawlSpider follows every internal link once and writes each URL with its status code.

The Wget command, with the lines reduced to page URLs (images, CSS and scripts dropped):

Shell
export https_proxy="http://<login>-country-us-city-new_york:<password>@gate.proxyfield.io:7000"  # optional
wget --spider --recursive --level=1 --wait=1 --no-verbose -e robots=on https://books.toscrape.com/ 2>&1 \
  | grep -oE 'URL: ?https?://[^ ]+' | sed -E 's/^URL: ?//' | grep -vE '/(static|media)/' | sort -u > urls.txt

We ran it without the proxy on October 25, 2026 (Wget 1.21.4) against books.toscrape.com, a public scraping sandbox: it downloaded 77 files in about 3.5 minutes, reported "Found no broken links." and left 74 page URLs in urls.txt. Replace --level=1 with --level=inf to follow links to any depth.

The Scrapy spider (save as list_urls.py):

Python
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule


class ListUrls(CrawlSpider):
    name = "list_urls"
    allowed_domains = ["books.toscrape.com"]
    start_urls = ["https://books.toscrape.com/"]
    rules = [Rule(LinkExtractor(), callback="parse_item", follow=True)]
    custom_settings = {"ROBOTSTXT_OBEY": True, "DOWNLOAD_DELAY": 1, "AUTOTHROTTLE_ENABLED": True}

    def parse_start_url(self, response):
        return self.parse_item(response)

    def parse_item(self, response):
        yield {"url": response.url, "status": response.status}

Run it with scrapy runspider list_urls.py -O urls.csv. Scrapy reads the same https_proxy variable, so the proxy line above applies to it too. Our test run on October 25, 2026 (Scrapy 2.19), stopped early with -s CLOSESPIDER_ITEMCOUNT=60, wrote 76 rows such as https://books.toscrape.com/catalogue/page-2.html,200 in about 2 minutes; without the limit it runs until no new links are left. Scrapy skips URLs it has already seen, so each URL appears once. The full method, with sitemaps and duplicate URLs: how to crawl a website.

Free open-source crawlers for millions of pages

Yes, there are: Apache Nutch, StormCrawler and Heritrix are free under the Apache-2.0 license and built for crawls of millions of pages across many sites. The software costs nothing; the servers, bandwidth, storage and the team to run them are the real cost, so a crawl at this scale needs a cluster and someone to operate it. If the pages you need are already public, Common Crawl publishes crawls of billions of pages as free open data, which can save the crawl altogether.

PickIf you needWhat it is
Apache NutchLarge scheduled batch crawls that feed a search indexA mature crawler on Apache Hadoop data structures; parses with Apache Tika and indexes into Apache Solr or Elasticsearch through plugins. Use the 1.x line: the project lists 1.x as active and 2.x as inactive, with no more releases or bug fixes (project status)
StormCrawlerA crawler that runs continuously and picks up new URLs as they comeA Java library (v3.7.0) for building distributed crawlers on an Apache Storm cluster, with modules for OpenSearch, Apache Solr and SQL storage; a toolkit more than a ready crawler (documentation)
HeritrixArchival copies of pages exactly as they wereThe Internet Archive's crawler, writing WARC files; needs Java 17 or later
ScrapyCustom extraction more than a ready crawl pipelineHandles millions of pages on known sites, but has no built-in distributed queue; you split the work across machines yourself

All four fetch plain HTML by default. StormCrawler can crawl with a headless browser through its Playwright or Selenium protocol, Scrapy through an add-on; plan for that only on the pages that need it.

How to start each one, from the projects' own guides (October 2026):

Shell
# Apache Nutch 1.x (binary release, Java installed): set http.agent.name in conf/nutch-site.xml first
mkdir -p urls && echo "https://example.com/" > urls/seed.txt
bin/crawl -s urls crawl 2            # usage: crawl [options] <crawl_dir> <num_rounds>

# StormCrawler: generate a project from the archetype, then follow its README
mvn archetype:generate -DarchetypeGroupId=org.apache.stormcrawler \
  -DarchetypeArtifactId=stormcrawler-archetype -DarchetypeVersion=3.7.0

# Heritrix (Java 17+): start it, then open https://localhost:8443/ and create a crawl job
$HERITRIX_HOME/bin/heritrix -a admin:CHANGE_ME

Guides: the Nutch tutorial, StormCrawler getting started and Heritrix getting started.

Scrapy

Scrapy is a Python framework that crawls and scrapes in one: it follows links, keeps a queue of URLs, skips duplicates, retries failures, throttles itself per site and exports items to JSON or CSV. Its CrawlSpider follows links by rules, such as "every URL under /products/". It does not render JavaScript by default; an add-on connects it to a headless browser. Introduction: what is Scrapy; proxy setup: Scrapy proxy setup.

Crawlee

Crawlee is a crawling and scraping library for Node.js and Python with plain HTTP crawlers and browser crawlers (Playwright, Puppeteer) behind one interface, plus queues, retries and sessions. Its ProxyConfiguration rotates through a list of proxy URLs; with a rotating gateway, one URL is enough. It suits sites that need a browser for some pages and not others.

Colly

Colly is a crawling framework for Go: fast, light on memory, with callbacks for each element, rate limits per domain and a proxy switcher. It does not render JavaScript. A good fit if your team works in Go; see Golang web scraping.

GNU Wget and HTTrack

GNU Wget crawls from the command line. With --spider it visits pages without saving them and reports broken links, as in the URL-list command above; with --mirror it copies a site for offline use. HTTrack does the mirroring job with a graphical interface on Windows. Both suit small sites; neither runs JavaScript.

SEO crawlers (desktop and cloud)

SEO crawlers crawl one site the way a search engine would and report what hurts its search performance: broken links, redirect chains, missing or duplicate titles and descriptions, thin pages, canonical and hreflang errors, orphan pages and crawl depth. Screaming Frog SEO Spider runs on Windows, macOS and Linux, is free up to 500 URLs per crawl, costs £199 or €245 per year without the limit, and exports its URL lists to CSV; Sitebulb runs on Windows and macOS, with a cloud version for very large sites, and has paid plans only. Hosted audits crawl on a schedule and share reports with a team: Semrush Site Audit (20,000 pages per audit on Pro and Guru, 100,000 on Business) and Ahrefs Site Audit (free for a verified site, 5,000 crawl credits per project per month). Many SEO crawlers render JavaScript and extract custom fields, which makes them simple scrapers too. Running one through proxies, for example to see a site from another country: proxies for SEO and proxies in SEO software.

Online crawlers and crawling APIs

Online website crawlers run in your browser: you paste a URL and get a list of pages, links or errors, with a free tier limited to a small number of URLs. They suit a quick check, not a recurring job. Crawling APIs take a start URL and return the crawled pages or their content, running the IPs and browsers on the provider's side, billed per page. For single pages, ProxyField's web scraping API fetches any URL as plain HTTP for $0.50 down to $0.20 per 1,000 successful results, or with JavaScript rendering for $2.00 down to $1.00, billed on successful results only. Contact sales.

Common Crawl: the open crawl of the web

Common Crawl is a nonprofit that crawls the web and publishes the results as free, open data: raw pages (WARC files), extracted text and metadata, with an index you can query by URL. Its crawler identifies itself as CCBot. If your question is about the web at large, such as which sites link to a domain or how often a phrase appears, start with Common Crawl before running a crawler of your own. Its data is a snapshot, so for current prices or rankings you still need a fresh crawl.

How to choose a website crawler

  1. What is the output?

    A list of every URL: Screaming Frog, Wget or Scrapy. A list of SEO issues: an SEO crawler. Data fields: Scrapy or Crawlee. Copies of pages: Wget or HTTrack. The web at large: Common Crawl.

  2. Does the site need JavaScript?

    Open the page source; if the content is missing, choose a crawler that renders pages, and render only the pages that need it.

  3. How many pages?

    Up to 500 on one site: Screaming Frog's free version. Thousands: any tool here. Millions across many sites: Nutch or StormCrawler, or a crawling API.

  4. Can you code?

    No: an SEO crawler or an online tool. Yes: a framework.

  5. Will the site limit you?

    A crawl sends many requests to one site; pace it, obey robots.txt, and spread the requests over many IPs once the site starts to limit you.

How crawlers work in general: what is a web crawler. Building your own: how to build a web crawler.

Proxies for website crawlers

A crawler that fetches a whole site sends hundreds or thousands of requests from one IP, which is what rate limits are built to stop. Rotating proxies give each request a new IP, and sticky sessions keep one IP for the pages that must share it. ProxyField works with Scrapy, Crawlee, Wget and any tool with an HTTP or SOCKS5 proxy setting, with country, region and city targeting and unlimited concurrent threads. Rotating datacenter proxies cost $0.29/GB down to $0.22/GB for sites that allow datacenter ranges; residential proxies cost from $1.95/GB for the rest. You pay per GB with no subscription; the traffic never expires, and all purchases are final. Crawl only what you are allowed to: is web scraping legal.

Website Crawler Tools Compared FAQ

Which website crawler tools are worth using to crawl a whole site and list every URL on it?

ProxyField recommends Screaming Frog SEO Spider for a site you own: crawl it and export the internal URLs to CSV, free up to 500 URLs per crawl or £199 / €245 a year without the limit. Use GNU Wget's --spider mode for a small site from the terminal, a Scrapy CrawlSpider for large sites, and the Semrush or Ahrefs site audit if you already pay for one. Start from the XML sitemap, then crawl the links to catch the pages it misses.

Is there a free open-source web crawler that can handle millions of pages, something along the lines of Nutch or StormCrawler?

Yes: Apache Nutch 1.x for batch crawls on Hadoop (2.x is inactive), StormCrawler 3.7.0 for continuous crawls on Apache Storm, and Heritrix for archiving, all free under Apache-2.0. Scrapy also reaches millions of pages on known sites if you split the work across machines yourself. The software is free; the servers, bandwidth and people to run a cluster are not, so check Common Crawl's free archive first.

What is the best free web crawler?

ProxyField's answer: it depends on the job, and all 8 open-source crawlers in the table are free. Use Scrapy for crawling plus data extraction in Python, Crawlee for JavaScript-heavy sites, GNU Wget for link checks and URL lists, and Apache Nutch or StormCrawler for very large crawls; Screaming Frog SEO Spider is free up to 500 URLs per crawl.

What is a web crawling tool?

Software that visits a website's pages by following links, to list them, check them or collect their content. Crawling tools range from SEO audit apps and command-line downloaders to code frameworks and distributed crawlers for millions of pages.

What is an open source web crawler?

A crawler whose source code is public and free to use under an open license, such as Scrapy (BSD-3-Clause), Crawlee, Colly, Apache Nutch, StormCrawler and Heritrix (Apache-2.0), or GNU Wget and HTTrack (GPL). You run it on your own machines and pay only for servers and, at volume, proxy traffic.

Can I crawl a website online for free?

Yes, within limits: online crawlers and the free tiers of SEO crawlers stop at a set number of URLs, 500 per crawl in Screaming Frog's free version and 5,000 crawl credits per project per month in Ahrefs' free site audit for a verified site. For a full crawl of a larger site without paying for a license, run an open-source tool such as Wget or Scrapy on your own computer.

What does SEO crawler software do?

It crawls a site the way a search engine does and reports problems: broken links, redirect chains, missing or duplicate titles, canonical and hreflang errors, slow or deep pages and pages no link points to. Many SEO crawlers can also render JavaScript and extract custom fields.

Is there an open crawl of the web I can use instead of crawling?

Yes. Common Crawl, a nonprofit, publishes its crawls of the web as free open data, with raw pages, extracted text and a URL index. It suits research, link analysis and AI work; for current prices or rankings you still need a fresh crawl.

Does a site need JavaScript crawling?

Only if its content or links appear after scripts run. Open the page source: if the links and text you need are in it, a plain HTTP crawler is enough and much faster. If they are missing, use a crawler that renders pages in a headless browser, and render only those pages.

What is the fastest web crawler?

Speed depends more on setup than on the tool: plain HTTP crawlers such as Scrapy, Colly or Crawlee's HTTP crawler fetch many pages at once, while browser rendering slows any crawler down. In practice the limit is the target site's tolerance, so a fast crawler spreads its requests over many sites or many IPs instead of hammering one.

Show 1 more questionShow fewer questions

What is a data crawler?

A crawler built to collect data rather than only to list pages: it follows links to the pages that hold records, such as products or job ads, and extracts their fields. It is a crawler and a scraper in one, as Scrapy and Crawlee projects usually are.

Easy Trial: 1 GB for $2.95.

Try for the price of 1 GB, no subscription, traffic never expires.