Technical SEO

Screaming Frog Alternatives: 7 Crawlers Compared for 2026

· · 17 min read

The best Screaming Frog alternative depends on the job you are replacing it for: Sitebulb for a desktop crawler with clearer reporting, JetOctopus or Oncrawl for cloud crawling joined to server logs, Lumar for enterprise monitoring, Ahrefs’ free Site Audit for small verified sites, and LibreCrawl or the Python library advertools when you want open-source code you can script. None of them is a straight swap, because each one makes a different trade on where the crawl runs and what it costs.

This article compares seven crawlers against five jobs: where the crawl runs, JavaScript rendering, log file integration, API and MCP access, and what a crawl actually costs. It ends with a scriptable crawler wrapped in an MCP server, tested on a local site, so you can see what the open-source route gives you and what it quietly leaves out.

Key takeaways

  • Screaming Frog is still the reference desktop crawler: free up to 500 URLs, $279 a year per user for the paid licence, and an official MCP server since version 24. Most people looking for an alternative are really looking for a different place to run the crawl, not a better crawler.
  • If you need crawl data joined to server logs, the cloud tools do it in one product. Screaming Frog sells log analysis as a separate desktop application.
  • AI access now differs by vendor in a way that matters: Sitebulb’s MCP is read-only and cannot start a crawl, while JetOctopus’s MCP can start, pause and schedule crawls.
  • Price per 1,000 URLs is the fairer comparison than monthly price. On the published plans checked 24 September 2026, JetOctopus’s entry plan works out at about $0.70 per 1,000 URLs a month; Lumar and Oncrawl publish no prices at all.
  • The open-source route is real but literal. A Python crawler reports only the fields you ask for and, without a headless browser, never sees links that JavaScript adds to the page.

What you are actually replacing

Screaming Frog’s SEO Spider is a desktop application. Its pricing page says the free version crawls up to 500 URLs and a licence removes the limit, at $279 per licence per year (checked 24 September 2026), with discounts from five licences. The page is explicit that “unlimited” means limited by your machine: the maximum you can crawl depends on allocated memory and storage.

Three things push people to look elsewhere:

  • Per-user licences. Two people need two licences, so a team of eight pays for eight seats even if only two people crawl in a given week.
  • The crawl lives on one laptop. Big crawls are bounded by that machine’s memory, and the data is not shared unless someone exports and uploads it.
  • Logs are a second product. Log analysis is the separate Log File Analyser, free for 1,000 log lines and one project, and £99 per licence per year for unlimited (checked 24 September 2026).

The AI argument for switching is weaker than it was a year ago. Screaming Frog’s version 24 release notes (19 May 2026) added an official SEO Spider MCP, so you can run crawls and work with the data from Claude and other assistants, alongside scheduled and command-line crawls that can now auto-compare the last two crawls. If “it doesn’t talk to AI” was your reason to leave, check that first.

For the wider tool stack around the crawler (rank tracking, log analysers and audit suites), see the best technical SEO tools in 2026. This page stays on crawlers.

The seven alternatives at a glance

Every price and limit below was read from the vendor’s own page on 24 September 2026. Where a vendor publishes no price, the table says so rather than guessing.

CrawlerWhere it runsJavaScript renderingLog filesAPI or MCPEntry price (checked 24 September 2026)
Screaming Frog (baseline)DesktopYesSeparate app, £99 a yearOfficial MCP, CLIFree to 500 URLs, then $279 a year per user
SitebulbDesktop or cloudYes, on all plansNoMCP (read-only)Desktop: see vendor. Cloud: from £95 a month
JetOctopusCloudYesYes, built inAPI and MCP (read-write)$349 a month, annual option
LumarCloudSee vendorSee vendorMCP serverQuote only
OncrawlCloudYesYes, built inSee vendorDemo only, no public pricing page
Ahrefs Site AuditCloudSee vendorNoSee vendorFree for verified sites, 5,000 crawl credits a month per project
LibreCrawlSelf-hosted web appYes (Playwright)NoDocumented API, pluginsFree, MIT licence
advertoolsPython library (Scrapy)Via a Playwright pluginNoYou build itFree, your own compute

“See vendor” means the vendor’s pages that I could read did not state it clearly enough to put in a table. Ask for it in the demo.

Choose by the job, not the brand

Most comparison pages rank these tools. That is less useful than asking which of five jobs you are hiring the crawler for, because the answer changes the shortlist.

Desktop or cloud

A desktop crawler is cheap and private: the data never leaves your machine, and the cost is fixed. Its ceiling is the machine. Sitebulb’s pricing FAQ makes the same point about its own desktop product: most work computers handle sites up to 500,000 URLs, which is the default limit, and you can raise it to 2 million while “stretching your computer beyond what it is capable of”.

A cloud crawler moves the ceiling to the vendor and makes the crawl shared. It costs more, and you pay by volume. Choose cloud when more than one person works from the same crawl, when you need scheduled crawls that run with the laptop shut, or when the site is past a few hundred thousand URLs.

JavaScript rendering

If the site is built with React, Vue, Next.js or a headless CMS, a crawler that reads only the raw HTML will report a different site from the one Google renders. Most tools in this list render JavaScript or can be made to, but how it is priced varies. Sitebulb lists JavaScript crawling on all plans at no extra cost; JetOctopus lists a JavaScript rendering crawl mode on every plan; LibreCrawl uses Playwright.

The test section below shows what happens when you skip rendering. For why it matters in the first place, JavaScript SEO covers how Google’s render queue works.

Log file integration

A crawl tells you what a bot could fetch. The server log tells you what it did fetch. Joining the two is how you find pages Googlebot ignores and sections that eat crawl budget.

JetOctopus and Oncrawl both build log analysis into the platform. Oncrawl’s log analyzer page says it tracks AI bots including OpenAI, Perplexity, Claude, Gemini and Mistral, and separates training bots from user-triggered bots. That distinction is the one that matters for AI crawler log analysis.

You do not need a platform to start. Log file analysis for SEO shows how far grep and awk get you before any tool is worth paying for.

API and MCP access

This is where the tools now differ most, and where the differences are easy to miss in a feature grid.

  • Screaming Frog: official MCP since version 24, which can run crawls, plus a command line for scheduled crawls.
  • Sitebulb: its MCP page says the MCP is read-only. It reads finished audits but does not start crawls, so you run or schedule the crawl in Sitebulb first.
  • JetOctopus: its MCP page describes read and write tools. The assistant can start, pause, resume and schedule crawls, and anything that spends quota shows a preview and asks for confirmation. It does not expose raw log files, only the log columns JetOctopus already stores.
  • Lumar: publishes a guide to getting started with the Lumar MCP server.
  • advertools and LibreCrawl: nothing out of the box, but they are code, so you can put any interface on them. The last section does exactly that.

Read-only is not a weakness if all you want is analysis. It is a limit if you want an assistant to run a regression crawl after a deploy. For the metrics side of the same stack, the best MCP servers for SEO compares Ahrefs, DataForSEO, Semrush, SE Ranking and Cloro.

Price per crawl

Monthly price hides the unit. Divide by the URLs a plan includes:

  • JetOctopus Growth: $349 a month on the annual option for 500,000 crawled URLs a month, which is about $0.70 per 1,000 URLs. The same plan includes 2 million log lines a month and unlimited seats and projects.
  • Sitebulb Cloud: plans start from £95 a month, and the smallest listed cloud plan covers 50,000 URLs a month, so roughly £1.90 per 1,000 URLs at the entry price. The next plan up covers 1 million URLs a month.
  • Screaming Frog, Sitebulb Desktop: a fixed licence, so the marginal crawl costs nothing but your machine’s time.
  • Ahrefs Site Audit on a verified site: free, within 5,000 crawl credits a month per project.
  • LibreCrawl and advertools: free software; the cost is the server or laptop you run them on.

All prices were checked on the vendors’ own pages on 24 September 2026. Cloud crawler pricing changes often, so treat the per-URL figures as a method, and rerun the division on the day you buy.

The seven crawlers

1. Sitebulb: the closest desktop swap

Sitebulb is the nearest like-for-like replacement: a desktop crawler for Windows and Mac, with a cloud version for teams. The difference is in the output. Screaming Frog gives you tables to interrogate; Sitebulb gives you prioritised “Hints” with explanations, which is faster to hand to a client or a developer.

Sitebulb’s desktop plans are Lite, capped at 10,000 URLs per audit, and Pro, at 500,000 URLs per audit by default. Pro adds structured data, hreflang, accessibility and scheduling reports that Lite lacks. There is a 14-day free trial equivalent to Pro, with no card. The desktop prices did not render in the page text I could read, so check them on the vendor page.

Sitebulb Cloud has no project limits, no extra charge for JavaScript crawling, and includes desktop licences on every plan except the smallest. It is the practical option for an agency that wants shared crawl data without enterprise pricing.

Choose it if you like the desktop model but want reports a non-specialist can act on.

2. JetOctopus: cloud crawling joined to logs and Search Console

JetOctopus is a cloud crawler built around the join between crawl data, server logs and Google Search Console. Its pricing page says all modules are included in every plan, with unlimited seats and projects; the feature list covers a JavaScript rendering crawl mode, crawl-to-crawl comparison, direct log integration, an API and the MCP. Plans scale by crawled URLs and log lines per month.

Its MCP is one of the two in this list that can act, not only read. You can ask an assistant for pages with Search Console impressions but no Googlebot visits in 30 days, and it answers by joining crawl, logs and Search Console at the URL level. There is a 7-day trial with a 10,000-URL crawl cap and no card.

Choose it if log analysis is part of every audit you run, or you want an assistant to start and schedule crawls, not only read them.

3. Lumar: enterprise monitoring and pre-release QA

Lumar, formerly Deepcrawl, is an enterprise platform rather than a crawler you pick up for one audit. Its homepage describes four apps: Analyze for crawling, Monitor for tracking changes across many domains, Protect for automated QA that integrates with a CI/CD pipeline and can halt builds when metrics fall below your thresholds, and Impact for reporting to stakeholders. It states that it holds a SOC 2 report at the Type 2 level.

Lumar’s pricing page is a form. There is no public price.

Choose it if you run many large sites, have a procurement process that needs SOC 2, and want SEO checks inside the release pipeline.

4. Oncrawl: cloud crawler with log and AI bot analysis

Oncrawl is a cloud crawler aimed at large, complex sites. Its crawler page lists full JavaScript rendering, custom extraction, crawl comparison over time, GA4 and Search Console integration, and alerts. The log analyzer is part of the platform, with the AI bot breakdown described above.

Oncrawl’s pricing URL returned a 404 when I checked on 24 September 2026, and every call to action on the platform pages is “Book a demo”. Budget for a sales conversation.

Choose it if you work on large ecommerce, marketplace or publisher sites and want logs and AI bot activity in the same tool as the crawl.

5. Ahrefs Site Audit: free for sites you can verify

If you only need to audit your own sites, Ahrefs Webmaster Tools, now renamed Ahrefs Free, gives you Site Audit at no cost on verified sites. It checks for over 170 technical and on-page issues. The limit is 5,000 crawl credits per verified project per month, and credits are only used on HTML pages that return 200, so redirects and broken URLs do not count against you.

The catch is in the name: verified websites only. You cannot crawl a prospect’s site or a competitor without a paid Ahrefs plan.

Choose it if you manage a handful of small sites you own and want scheduled health checks without paying for a crawler.

6. LibreCrawl: open-source and self-hosted

LibreCrawl is an MIT-licensed crawler built as a Python Flask web app. You run it with Docker or Python and open it in the browser. The README lists JavaScript rendering through Playwright, link analysis, a PageSpeed Insights integration, exports to CSV, XLSX, JSON and XML, a plugin system for custom tabs, and a documented API. It supports several concurrent users with isolated sessions.

One thing to check on its own marketing: LibreCrawl’s comparison table prices Screaming Frog at $259 a year, while Screaming Frog’s pricing page showed $279 when I checked. Open-source projects are not vendors, and their comparisons age.

Choose it if you want a Screaming Frog-style interface you can host yourself, share with a team and extend, and you are comfortable maintaining it.

7. advertools: the Python crawler you script

advertools is a Python library whose crawl() function wraps Scrapy for SEO. It has two modes: discovery, which follows links from a start URL, and list mode, which crawls a fixed set of URLs. Output is a JSON Lines file with one row per URL, which loads straight into pandas: title, meta description, canonical, headings, links, status, redirect chain, response headers and more.

You extend it with CSS or XPath selectors, which become columns, and you control politeness and scope through Scrapy’s own settings. The documentation notes it works with third-party plugins such as scrapy-playwright for rendering.

Choose it if your crawl is one step in a pipeline: a nightly check after deploys, a join against a Search Console export, or a tool an assistant calls.

Testing the scriptable route: a Python crawler behind MCP

The site’s angle on tools is that anything you can script, an assistant can call. So I wrapped advertools in a minimal MCP server and ran it against a five-page local test site. The site has a noindex page, a 301 redirect, a broken link, and a page whose heading and one link are added by JavaScript.

Environment: Python 3.11, advertools 0.18.0, Scrapy 2.19.0 and the MCP Python SDK 2.2.0, in a virtual environment. The server:

"""An MCP server that lets an assistant run a site crawl and query the result."""
import os, tempfile
from urllib.parse import urlparse
import advertools as adv
import pandas as pd
from mcp.server import MCPServer

mcp = MCPServer("site-crawler")
MAX_PAGES = int(os.environ.get("CRAWL_MAX_PAGES", "500"))

@mcp.tool()
def crawl_site(start_url: str, max_pages: int = 100) -> list[dict]:
    """Crawl a site from start_url following internal links (raw HTML, no JavaScript
    rendering). Returns one row per URL with status, title, h1, canonical,
    meta robots and redirect source."""
    out = os.path.join(tempfile.mkdtemp(), "crawl.jl")
    adv.crawl(
        start_url, out, follow_links=True,
        allowed_domains=[urlparse(start_url).hostname],
        css_selectors={"meta_robots": "meta[name=robots]::attr(content)"},
        custom_settings={"CLOSESPIDER_PAGECOUNT": min(max_pages, MAX_PAGES),
                         "CONCURRENT_REQUESTS_PER_DOMAIN": 2, "LOG_ENABLED": False},
    )
    df = pd.read_json(out, lines=True)
    cols = ["url", "status", "title", "h1", "canonical", "meta_robots", "redirect_urls"]
    df = df.reindex(columns=cols).astype(object).where(df.reindex(columns=cols).notna(), None)
    return df.to_dict(orient="records")

if __name__ == "__main__":
    mcp.run()

And the in-memory test, which calls the tool the way an assistant would, with no chat client involved:

import asyncio
from mcp import Client
import crawler_mcp

async def main():
    async with Client(crawler_mcp.mcp) as client:
        tools = await client.list_tools()
        print("tools:", [t.name for t in tools.tools])
        result = await client.call_tool("crawl_site", {"start_url": "http://localhost:8765/", "max_pages": 50})
        for row in sorted(result.structured_content["result"], key=lambda r: r["url"]):
            print(row["status"], row["url"], row["meta_robots"], row["redirect_urls"])

asyncio.run(main())

The output, unedited:

tools: ['crawl_site']
200 http://localhost:8765/ None None
200 http://localhost:8765/about/ noindex None
200 http://localhost:8765/app/ None None
404 http://localhost:8765/missing/ None None
200 http://localhost:8765/new-page/ None http://localhost:8765/old-page/

The crawl found the noindex page, the broken link and the redirect, and the assistant gets them back as structured rows it can reason over. That is the promise of the scriptable route, and it works.

What the test also showed

Four things did not work the first time, and each is a reason a scriptable crawler is a tool for people who read its output rather than trust it.

  1. The default output did not report meta robots. My first run, without the css_selectors line, returned the noindex page with nothing to say it was noindexed. The fields in advertools’ output table do not include a meta robots column, so you add a selector for it. A packaged crawler flags noindex by default; a library reports what you ask for.
  2. The JavaScript page was blank, and its link was never found. /app/ came back with no H1, because the heading is written by a script. The /js-only/ page it links to does not appear in the results at all. The crawler cannot report a page it never discovers. I could not install a headless browser in the sandbox I tested in, so I did not test the Playwright plugin; the result above is the raw-HTML crawl only.
  3. A port in the start URL filtered the whole crawl out. By default advertools takes the allowed domain from the start URL including the port (localhost:8765), and Scrapy then dropped every request as off-site. Passing the hostname as allowed_domains fixed it. It will not bite on a production domain, but it will on a staging server.
  4. advertools runs Scrapy as a separate command. Called from a virtual environment that was not on PATH, crawl() failed with “No such file or directory: ‘scrapy’”. When you register the server with an assistant, launch it from the environment’s own Python and make sure its bin directory is on the path.

None of these are defects. They are the difference between a product and a library, and the reason to test the server before connecting it to anything. The full pattern, including connecting a server to Claude and logging its calls, is in how to build an MCP server for your marketing stack.

When Screaming Frog is still the right answer

For a single consultant auditing sites up to a few hundred thousand URLs, Screaming Frog remains hard to beat on cost: a fixed licence, unlimited crawls on your own machine, and now an official MCP and scheduled comparisons. Most of the alternatives above win on a specific job, not overall.

Switch when one of these is true:

  • More than one person needs the same crawl data, every week.
  • You need log files joined to the crawl without a second tool and a manual merge.
  • The site is too big for the machine you crawl from.
  • You want the crawl inside a pipeline or an assistant, and you want to own the code.

Whichever you pick, the crawler is one input to an audit, not the audit. The technical SEO audit checklist sets out the order to work through what a crawl finds, and the 12-phase SEO and GEO audit is how I run the whole engagement. If you would rather hand the crawling and the fixes to someone who does this daily, that is what GEO and technical SEO covers.

Frequently asked questions

Is there a free alternative to Screaming Frog?

Yes. LibreCrawl and advertools are free and open source, and Ahrefs Site Audit is free for websites you can verify, within 5,000 crawl credits a month per project. Screaming Frog itself is free up to 500 URLs, which covers many small sites.

What is the best cloud alternative to Screaming Frog?

It depends on whether you need logs. JetOctopus and Oncrawl both combine cloud crawling with log analysis; JetOctopus publishes its prices and Oncrawl does not. Sitebulb Cloud is the cheaper cloud option if you do not need logs, and Lumar suits enterprise teams that want QA checks in the release pipeline.

Is Sitebulb better than Screaming Frog?

Neither is better overall. Sitebulb explains and prioritises issues, which makes its reports quicker to act on and easier to hand to clients. Screaming Frog gives you more raw data to interrogate and costs less for a single user who is comfortable working in tables.

Can an AI assistant run a site crawl?

Yes, through an MCP server. Screaming Frog’s official MCP and JetOctopus’s MCP can both start crawls; Sitebulb’s MCP is read-only and works on finished audits. You can also wrap a Python crawler such as advertools in your own MCP server, as tested above.

Do I need JavaScript rendering in a crawler?

You need it if content, links or metadata on the site are added by JavaScript. A raw-HTML crawl will miss them, and it cannot report pages it never discovers. Turn rendering on for at least a sample crawl of every template before trusting a raw-HTML crawl of the whole site.