Website Crawler Tools Compared
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
- Website crawler tools compared
- List every URL of a website
- Free open-source crawlers for millions of pages
- Scrapy
- Crawlee
- Colly
- GNU Wget and HTTrack
- SEO crawlers (desktop and cloud)
- Online crawlers and crawling APIs
- Common Crawl: the open crawl of the web
- How to choose a website crawler
- Proxies for website crawlers
- Website Crawler Tools Compared FAQ
Quick picks:
- List every URL of a site: Screaming Frog, Wget or Scrapy.
- Audit your own site for SEO: a desktop or cloud SEO crawler.
- Crawl and extract data with Python: Scrapy.
- Crawl JavaScript sites with Node.js or Python: Crawlee.
- Millions of pages, free and open source: Apache Nutch, StormCrawler or Heritrix.
- No crawling at all: Common Crawl.
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.
| Tool | Type | Language or platform | Price and license | JavaScript pages | Scale | Best for |
|---|---|---|---|---|---|---|
| Screaming Frog SEO Spider | Desktop SEO crawler | Windows, macOS, Linux | Free 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 sites | Listing every URL and auditing your own site |
| Sitebulb | Desktop and cloud SEO crawler | Windows, macOS; browser (Cloud) | Paid plans, a 14-day trial; no free plan | Yes (Chrome rendering) | Lite: 10,000 URLs per audit; more on higher plans | Visual SEO audits |
| Scrapy | Crawling and scraping framework | Python | Free, BSD-3-Clause | Through an add-on | Single machine to large | Crawling plus data extraction |
| Crawlee | Crawling and scraping framework | Node.js, Python | Free, Apache-2.0 | Yes, with its browser crawlers | Single machine to large | JavaScript-heavy sites |
| Colly | Crawling framework | Go | Free, Apache-2.0 | No | Single machine | Fast crawlers in Go |
| GNU Wget | Command-line downloader | Linux, macOS, Windows | Free, GPL | No | Small sites | Link checks, URL lists, mirroring |
| HTTrack | Website copier | Windows, Linux | Free, GPL-3.0 | No | Small sites | Offline copies of a site |
| Apache Nutch | Distributed web crawler | Java, Hadoop | Free, Apache-2.0 | No by default | Millions of pages and more | Search-engine-style batch crawls |
| StormCrawler | Library for distributed crawlers | Java, Apache Storm | Free, Apache-2.0 (v3.7.0) | No by default | Large, continuous | Continuous large crawls |
| Heritrix | Archival crawler | Java | Free, Apache-2.0 | No | Large | Web archiving (WARC files) |
| Semrush Site Audit | Hosted SEO audit | Browser | Part of a Semrush subscription | Check your plan | 20,000 pages per audit on Pro and Guru, 100,000 on Business | Scheduled audits if you already pay for Semrush |
| Ahrefs Site Audit | Hosted SEO audit | Browser | Free for sites you verify: 5,000 crawl credits per project per month; paid plans above that | Check your plan | Free tier suits sites up to about 5,000 URLs | Audits of your own verified site |
| Common Crawl | Open dataset of crawled pages | Files on cloud storage | Free to download | Not applicable | Billions of pages | Research, 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:
- 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.
- 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.
- GNU Wget (one command, small sites):
--spidervisits pages without saving them and prints each URL it checks. - Scrapy (code, any size): a
CrawlSpiderfollows 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):
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.txtWe 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):
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.
| Pick | If you need | What it is |
|---|---|---|
| Apache Nutch | Large scheduled batch crawls that feed a search index | A 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) |
| StormCrawler | A crawler that runs continuously and picks up new URLs as they come | A 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) |
| Heritrix | Archival copies of pages exactly as they were | The Internet Archive's crawler, writing WARC files; needs Java 17 or later |
| Scrapy | Custom extraction more than a ready crawl pipeline | Handles 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):
# 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_MEGuides: 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
-
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.
-
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.
-
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.
-
Can you code?
No: an SEO crawler or an online tool. Yes: a framework.
-
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.
Related pages
Easy Trial: 1 GB for $2.95.
Try for the price of 1 GB, no subscription, traffic never expires.