Answers that do not mention Moz
82 of 82 answers this week do not mention Moz. Topic: Website crawlers. Week of 14th to 20th Sep 2026. Showing 1 to 60 of 82, newest first.
"I manage a 10k+ page ecommerce site, what crawler should i use to find broken links and infinite redirect loops efficiently on a budget"
For a 10k-page ecommerce site, I’d optimize for crawl efficiency, redirect-chain detection, exportability, and low recurring cost. You don’t need an enterprise crawler unless you’re doing daily monitoring, log analysis, or millions of URLs.
My shortlist:
| Tool | Cost profile | Best fit for your case | Notes |
|---|---|---|---|
| Screaming Frog SEO Spider | Low annual cost; free tier limited | Best overall value | Excellent for finding 404s, redirect chains, redirect loops, bad canonicals, orphan URLs, etc. Paid version removes crawl limits. theStacc |
| Sitebulb | Monthly subscription | Easier reporting and prioritization | Good if you want less manual analysis and clearer audit reports. PikaSEO |
| SiteOne Crawler | Free/open source | Cheapest DIY option | Useful if you’re comfortable running command-line tools and exporting data. squirrelscan |
| Ahrefs Site Audit / Semrush Site Audit | Higher monthly cost | If you already pay for SEO suites | Better for ongoing dashboards than a one-off technical crawl. theStacc |
My recommendation for a 10k ecommerce site
Best budget setup: Screaming Frog + scheduled checks
Use Screaming Frog SEO Spider as your primary crawler. A 10k URL crawl is well within its comfort zone, and it gives you the raw data you need:
- Response Codes
- 404 broken pages
- 500 server errors
- 301/302 redirects
- Redirect reports
- redirect chains (A → B → C)
- redirect loops (A → B → A)
- Bulk exports
- URL
- source page containing the broken link
- anchor text
- status code
- redirect destination
For ecommerce, I’d also enable:
- JavaScript rendering (important if your storefront is React/Vue/Angular)
- XML sitemap crawl
- Crawl of staging environments before releases
- Custom extraction for product IDs, canonical tags, structured data
CrawlBudget## A cheap monitoring workflow
For ongoing protection:
- Run a full crawl weekly or after deployments.
- Export:
- all 4xx URLs
- all 3xx URLs
- redirect chains
- pages with internal links to redirects
- Compare exports week-over-week.
- Add a CI check if your developers deploy frequently.
A useful rule:
- One big crawl occasionally → Screaming Frog
- Non-technical stakeholders need reports → Sitebulb
- Continuous enterprise monitoring → cloud crawlers
Ecommerce-specific gotchas to check
For a 10k product/category site, don’t only look for broken links. Also crawl for:
- Product pages returning soft 404s
- Category pages redirecting through multiple hops
- Internal links pointing to old product URLs
- Canonical URLs that redirect
- Faceted navigation creating infinite URL combinations
- Pagination loops
- Out-of-stock product handling
- Broken image URLs
- JavaScript-rendered links that crawlers miss
If your store is on Shopify, Magento, WooCommerce, BigCommerce, or a custom stack, the ideal crawler settings differ quite a bit.
Behind this answer: no web searches, 4 tracked brands mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
For a 10k-page ecommerce site on a budget, I’d use Screaming Frog SEO Spider.
Why it fits
- 10k URLs is well within its paid crawl capacity: the paid version has an unlimited crawl limit. The current listed price is $245/year per license; the free version is capped at 500 URLs. Screaming Frog
- It directly identifies 404/4xx errors, 5xx errors, redirects, redirect chains, and redirect loops. Its Redirect Chains report explicitly flags loops. Screaming Frog Screaming Frog
- You can export the offending URLs and the pages linking to them, which is particularly useful for fixing broken internal links at scale. Screaming Frog
- It can also follow redirects all the way to the final destination, so you can distinguish a clean 301 from a multi-hop chain or loop. Screaming Frog
My budget shortlist
| Crawler | Fit for 10k pages | Cost/value | Particularly useful for |
|---|---|---|---|
| Screaming Frog | Excellent | $245/year | Broken links + redirect chains/loops |
| Sitebulb Lite | Excellent | About $18/mo | Easier visual auditing; 10k URL limit |
| Sitebulb Pro | More than needed | About $42/mo | Larger/deeper technical audits |
| JetOctopus | Overkill | Much more expensive | Huge sites, logs, enterprise crawling |
Sitebulb Lite is interesting if you prefer a more visual interface: its Lite plan is limited to 10,000 URLs per audit, while Pro goes to 500,000. Sitebulb G2 JetOctopus is aimed more at large-scale crawling/log analysis; its current paid plans start far above what I'd consider necessary for a 10k-page site. Tech SEO Platform
How I'd configure Screaming Frog
For your particular problem, I'd do two passes:
- Full Spider crawl
- Start at the homepage.
- Crawl internal links.
- Check Response Codes → Client Error (4xx) for broken links.
- Check Response Codes → Server Error (5xx).
- Check Redirects → Redirect Chains.
- Filter the chain report for Loop = True. Screaming Frog
- Targeted redirect audit
- Feed it your sitemap, old URL database, or known redirect list using List Mode.
- Enable Always Follow Redirects.
- Export the complete redirect chains.
This catches redirects that aren't necessarily discoverable through your normal internal linking. Screaming Frog Screaming Frog
One ecommerce-specific warning: faceted navigation and URL parameters can turn a nominally 10k-page site into hundreds of thousands of crawlable URLs. Screaming Frog specifically recommends controlling query strings/excluding problematic URL patterns when parameterized URLs cause crawl explosions. Screaming Frog
So if you're spending as little as possible, Screaming Frog paid + a carefully configured crawl is probably all you need. If you'd rather have prettier diagnostics and guided prioritization, Sitebulb Lite is the main alternative I'd test.
Behind this answer: no web searches, 2 tracked brands mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
Answer 3 of 4, 17th Sep 2026, unknown, does not mention you
For a 10k-page ecommerce site, I’d start with a crawler that can handle a few hundred thousand URLs, gives you redirect-chain/loop visibility, and doesn’t force you into an expensive enterprise SEO platform.
My shortlist:
| Tool | Best fit | Cost profile | Broken links | Redirect loops/chains |
|---|---|---|---|---|
| Screaming Frog SEO Spider | Best budget choice for technical audits | Free tier, then paid license | Excellent | Excellent |
| Sitebulb | Easier reporting and prioritization | Subscription | Excellent | Excellent |
| Ahrefs Site Audit | If you already pay for SEO tools | Subscription | Good | Good |
| Semrush Site Audit | Marketing teams needing broader SEO suite | Subscription | Good | Good |
Screaming Frog Bulk URL Checker## My recommendation for your case: Screaming Frog SEO Spider
For a 10k URL ecommerce site on a budget, it is probably the best value:
- Finds:
- 404 broken internal links
- 5xx server errors
- redirect chains
- redirect loops
- bad canonical targets
- orphaned pages (when paired with sitemaps/GSC exports)
- Lets you export CSVs your dev team can fix.
- Runs locally, so you are not paying per crawl. Screaming Frog
A good workflow:
- Crawl mode: Spider
- Start URL: your homepage
- Enable:
- Crawl all subdomains only if needed
- Follow internal redirects
- Crawl canonicals
- Crawl XML sitemap URLs separately
- After crawl:
- Response Codes → Client Error (4xx) → fix broken links
- Response Codes → Redirection (3xx) → export chains
- Reports → Redirect Chains → find loops/hop issues Screaming Frog
If your ecommerce site is JavaScript-heavy
If you use something like React, Next.js, Vue storefronts, or a heavily client-rendered Shopify/custom frontend:
- Use Screaming Frog with JavaScript rendering enabled.
- Consider a second crawl using a browser-rendering crawler if important links are injected after page load.
Budget alternatives
Free / nearly free
- Screaming Frog free version: enough for testing but a 10k-page site will likely require the paid license. Screaming Frog
- Open-source/self-hosted crawlers can work if you have engineering time, but setup and maintenance usually cost more than the license. squirrelscan
If you want prettier reports
Sitebulb is easier for non-technical stakeholders because it turns crawl findings into prioritized reports and visualizations. Bulk URL Checker
Ecommerce-specific settings I would use
For a 10k-page store:
- Respect robots.txt initially (avoid accidentally crawling faceted navigation explosions).
- Crawl:
- category pages
- product pages
- blog/content pages
- XML sitemap URLs
- Watch for:
/category?filter=colorstyle infinite URL combinations- products removed but still internally linked
- redirect chains from old product URLs
- HTTP → HTTPS → www → non-www chains
- expired inventory pages redirecting incorrectly
A practical setup would be:
Weekly: Screaming Frog crawl of key templates + sitemap URLs
Monthly: Full 10k-page crawl
After migrations/catalog changes: Full crawl + redirect audit
For your size, I would not pay for an enterprise crawler unless you are doing millions of URLs, frequent migrations, or need log-file analysis.
Behind this answer: no web searches, 4 tracked brands mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
Answer 4 of 4, 16th Sep 2026, unknown, does not mention you
For a 10k-page ecommerce site, I’d use a desktop crawler rather than paying for a cloud crawler every month.
My pick: Screaming Frog SEO Spider
Screaming Frog is particularly well suited to this job because it can identify 404/5xx errors, redirects, redirect chains, and redirect loops, and you can control how many redirects it follows. Screaming Frog Screaming Frog Screaming Frog
The paid license is currently £199/year on Screaming Frog's UK pricing page, with an unlimited crawl limit; the free version is capped at 500 URLs. Screaming Frog
Another good option: Sitebulb Lite
Sitebulb Lite has a 10,000-URL-per-audit limit, which happens to match your site size almost exactly. It also detects broken links and redirect problems, including URLs redirecting to broken URLs and redirects back to themselves. Sitebulb Sitebulb
Its crawler lets you control threads and URLs/second, which is useful for running a relatively fast crawl without hammering your ecommerce server. Sitebulb Support
What I'd actually do
For your specific requirement, I'd start with Screaming Frog:
- Crawl the XML sitemap + internal links, rather than relying exclusively on navigation.
- Exclude faceted-search/parameter URLs that can explode the crawl.
- Check:
4xxand5xxURLs- internal links pointing to redirects
- redirect chains
- redirect loops
- redirects ending in
4xx/5xx - Export the offending URLs and fix them in batches.
- Run the crawl again after deployment.
For a 10k-page ecommerce site, don't let filters, sort parameters, internal search, or tracking parameters turn 10k pages into hundreds of thousands of crawl URLs. Screaming Frog provides controls for query strings and crawl limits specifically for this kind of situation. Screaming Frog
Budget-wise: if this is an occasional audit, Sitebulb Lite's 10k limit is attractive. If you're going to be doing regular technical crawls, I'd lean toward Screaming Frog's paid desktop license because you're not paying according to the number of URLs crawled.
One important distinction: if by "infinite redirect loops" you mean application-level loops that only occur for particular cookies, user agents, locales, or checkout states, I'd supplement the crawler with a small scripted HTTP check. A crawler can find normal HTTP redirect cycles, but it won't necessarily reproduce every state-dependent redirect bug.
Sitebulb Lite has a 10,000-URL-per-audit limit, which happens to match your site size almost exactly. It also detects broken links and redirect problems, including URLs redirecting to broken URLs and redirects back to themselves. sitebulb.com sitebulb.com
Its crawler lets you control threads and URLs/second, which is useful for running a relatively fast crawl without hammering your ecommerce server.
Behind this answer: no web searches, 2 tracked brands mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
"we're an seo agency crawling client sites with heavy javascript, how do i pick a tool that renders js and captures ajax-loaded urls"
For an SEO agency, I’d choose based on what you need to discover:
- Rendered DOM links/content (what a browser sees after JS executes)
- Network/AJAX-discovered URLs (XHR/fetch/API calls that may create pages)
- Scale (hundreds vs millions of URLs)
- Audit workflow (client reports, exports, repeatability)
A lot of SEO crawlers can execute JavaScript, but not all of them capture AJAX behavior the same way. A crawler that only parses the post-render DOM may still miss URLs that exist only inside API responses.
Shortlist for an SEO agency
| Tool | Best for | JS rendering | AJAX/API URL discovery | Scale |
|---|---|---|---|---|
| Screaming Frog SEO Spider | Agency audits, deep technical SEO | Excellent (Chromium-based) | Good for rendered links; less focused on raw API traffic | Small–large sites |
| Sitebulb | Client-facing JS SEO audits | Excellent (Chrome crawler) | Good for rendered DOM differences | Small–medium |
| Lumar | Enterprise crawling | Strong | Better enterprise controls | Very large |
| Oncrawl | Data-heavy enterprise SEO | Strong | Good integrations | Very large |
| Custom Playwright/Puppeteer crawler | Maximum control | Excellent | Best (network interception) | Depends on engineering |
Sitebulb Screaming Frog## The key question: do you mean "AJAX-loaded URLs"?
There are two different things people call this:
A) "Find links that appear after JavaScript runs"
Example:
<div id="products"></div>
<script>
fetch('/api/products')
.then(...)
.then(products => {
// inserts:
<a href="/product/widget-123">
})
</script>
You want the crawler to see:
/product/widget-123
A Chromium crawler is usually enough. Screaming Frog and Sitebulb both compare or extract rendered output so you can identify links introduced after JS execution. Sitebulb Support Screaming Frog
B) "Capture every API request made by the browser"
Example:
GET /api/products?page=2
GET /graphql
GET /search?q=boots
GET /inventory/sku123
This is a different problem. You need network interception.
For this, I’d lean toward a custom crawler using:
- Playwright
- Puppeteer
- Chrome DevTools Protocol
You can capture:
- XHR
- fetch
- GraphQL calls
- JSON responses
- redirects
- script-generated URLs
Example architecture:
URL queue
↓
Playwright Chromium
↓
page.goto()
↓
listen to network events
↓
capture:
- request URLs
- response URLs
- JSON payloads
- DOM links
↓
normalize URLs
↓
crawl queue
My agency-oriented recommendation
For normal client SEO audits
Use:
Screaming Frog + JavaScript rendering enabled
Good fit when you need:
- crawl reports
- canonicals
- metadata changes
- JS-only links
- exports for clients
It renders pages in a headless browser and crawls the resulting HTML after JavaScript execution. Screaming Frog
For JS-heavy ecommerce / React / Angular sites
Use a two-pass approach:
- Normal crawl
- Rendered crawl
- Compare:
- URLs discovered only after JS
- content differences
- blocked resources
- API behavior
For sites where navigation is entirely API-driven
Build or add a Playwright layer.
Examples:
- infinite-scroll marketplaces
- faceted search apps
- SaaS dashboards
- headless commerce
- SPAs with no
<a href>links
Evaluation checklist before buying
Run the same 1,000 URLs through each candidate and measure:
Discovery
- Does it find URLs created after hydration?
- Does it find URLs loaded after clicking?
- Does it wait for lazy-loaded content?
- Does it capture infinite scroll?
Rendering fidelity
- Chromium version?
- Custom user agent?
- Mobile viewport?
- Cookie/session support?
- Login flows?
Data extraction
Can you export:
- rendered HTML?
- DOM links?
- network requests?
- API endpoints?
- response bodies?
- screenshots?
Speed/cost
JS crawling is much slower because every URL becomes a browser session. Screaming Frog specifically notes that JS crawling is more resource intensive because resources must be downloaded and executed before crawling the rendered page. Screaming Frog
If I were building an agency stack
I’d probably do:
- Screaming Frog → standard technical audits
- Sitebulb → polished client reporting
- Playwright crawler → edge cases where AJAX/API discovery matters
- Google Search Console URL Inspection → spot-check Google’s rendered view
The biggest mistake is choosing a crawler that "supports JavaScript" but only checks the final DOM. For complex JS sites, you want visibility into both rendered links and network activity.
Behind this answer: no web searches, 3 tracked brands mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
If you're choosing a crawler for an SEO agency, I’d treat “renders JavaScript” and “discovers URLs from AJAX/API activity” as two separate capabilities. A crawler can execute JS perfectly well while still missing URLs that only appear in XHR/fetch responses.
What I’d evaluate
| Capability | Why it matters |
|---|---|
| Real Chromium rendering | Executes React/Vue/Angular/Next.js/etc. rather than just parsing source HTML |
| Rendered DOM extraction | Finds <a href> links injected after JS execution |
| Network/XHR inspection | Captures URLs requested through fetch, XHR, GraphQL, etc. |
| Response-body parsing | Critical if an API returns URLs as JSON rather than inserting <a> elements |
| Click/interaction scripting | Needed for accordions, filters, infinite scroll, “load more,” menus, etc. |
| Configurable wait conditions | networkidle alone isn't reliable for apps with persistent connections |
| URL discovery vs. page navigation separation | Lets you collect API-discovered URLs without necessarily crawling every API endpoint |
| JS console/error capture | Extremely useful for explaining why a rendered page differs from the raw HTML |
| Rendered HTML + screenshots | Makes client-facing debugging much easier |
| Scale/concurrency controls | Browser rendering gets expensive quickly across agency-scale crawls |
| Custom extraction | Lets you extract URLs from arbitrary DOM/JS/network data |
| Robots/canonical/status handling | Necessary if this is an actual SEO crawler rather than a generic browser crawler |
Google itself renders JavaScript with an evergreen Chromium-based renderer, and after rendering it can discover links that JavaScript injected into the DOM. Google for Developers Google for Developers
But there's an important distinction: Google's rendering behavior isn't the same thing as “crawl every URL appearing in every API response.” Google says its renderer processes XHR requests to understand page content, while URL discovery is primarily based on crawlable links, sitemaps, and redirects. Google for Developers Google for Developers
The architecture I'd want
For an agency crawler, I'd favor something conceptually like:
Seed URLs
↓
HTTP crawler
↓
Chromium renderer
├── final DOM
├── rendered links
├── JS console/errors
└── network events
├── document
├── fetch/XHR
├── GraphQL
└── other requests
↓
URL extraction
↓
┌───────────┴───────────┐
↓ ↓
crawlable URLs API-discovered URLs
↓ ↓
queue discovery dataset
That last distinction is important. Don't automatically treat every network URL as a crawl target. Otherwise you'll end up crawling analytics endpoints, JSON APIs, image CDNs, telemetry, personalization calls, and dozens of irrelevant resources.
Instead, I'd maintain at least two datasets:
- SEO URLs — URLs found in rendered
<a href>, canonical tags, structured data, sitemaps, redirects, etc. - Network-discovered URLs — URLs observed in XHR/fetch/GraphQL/network responses, with the source page and request type recorded.
Then you can report something like:
/category/shoes→ rendered page → XHR/api/products?page=2→ response contains 48 product URLs → 46 aren't present as HTML links.
That's much more useful in an SEO audit than simply saying “JavaScript is enabled.”
One particularly important test
Build a small benchmark suite of deliberately nasty client sites:
- React SPA where links appear only after hydration.
- Infinite scroll where subsequent products arrive through XHR.
- Load More button requiring interaction.
- GraphQL endpoint returning product/category URLs.
- JSON API containing URLs but never rendering them as links.
- Client-side router using
history.pushState. - Lazy-loaded content triggered by viewport visibility.
- JS-generated canonical/meta/structured data.
- Authentication/session-dependent rendering.
- A site with a never-ending analytics connection, to test whether your wait strategy hangs.
For each, record:
raw HTML URLs
rendered DOM URLs
network request URLs
URLs extracted from network responses
URLs discovered after interactions
Then compare the crawler's output against a known ground truth.
The key question when comparing products
Don't ask vendors:
“Does your crawler support JavaScript?”
Ask:
“Can your Chromium crawler capture fetch/XHR/GraphQL requests, inspect their response bodies, extract URLs from those responses, and put those URLs into a separate crawl/discovery queue?”
That question will separate genuine browser-based crawlers from tools that merely render the page.
Also test how they wait for rendering. A fixed 5-second delay is much less useful than configurable conditions such as DOM selectors, network activity, or custom browser-side JavaScript.
And for SEO validation, I'd retain a Google-equivalent rendered view as a separate comparison. Google explicitly notes that rendering can have limitations and that its renderer is stateless between page loads, so “works in Chrome” doesn't automatically mean “Google can process it.” Google for Developers Google for Developers
If you're deciding between Screaming Frog, Sitebulb, JetOctopus, Lumar, Oncrawl, or building your own Playwright/Chromium crawler, I can also give you a feature-by-feature comparison specifically for AJAX/XHR URL discovery at agency scale.
Then compare the crawler's output against a known ground truth.
The key question when comparing products
Don't ask vendors:
“Does your crawler support JavaScript?”
Ask:
“Can your Chromium crawler capture fetch/XHR/GraphQL requests, inspect their response bodies, extract URLs from those responses, and put those URLs into a separate crawl/discovery queue?”
That question will separate genuine browser-based crawlers from tools that merely render the page.
Also test how they wait for rendering. A fixed 5-second delay is much less useful than configurable conditions such as DOM selectors, network activity, or custom browser-side JavaScript.
And for SEO validation, I'd retain a Google-equivalent rendered view as a separate comparison. Google explicitly notes that rendering can have limitations and that its renderer is stateless between page loads, so “works in Chrome” doesn't automatically mean “Google can process it.”
Behind this answer: no web searches, 3 tracked brands mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
Answer 3 of 3, 17th Sep 2026, unknown, does not mention you
If you're choosing a crawler for an SEO agency, I’d evaluate it less on “does it render JavaScript?” and more on what it does after JavaScript executes—especially whether it discovers links/URLs injected by XHR/fetch/AJAX.
What I’d test
Use a representative client site with at least one page where:
- The initial HTML contains few/no product/content links.
- JavaScript makes an XHR/fetch request.
- The response is used to build DOM elements containing
<a href="...">. - Those URLs aren't present in the original HTML.
- Content appears after a delay or after hydration.
- Ideally, test an SPA where navigation uses
history.pushState().
Then score each crawler on these capabilities:
| Capability | Why it matters |
|---|---|
| Headless Chromium execution | Executes React/Vue/Angular/Next/etc. |
| Rendered-DOM link extraction | Actually discovers <a> elements created by JS |
| AJAX/XHR/fetch handling | Gives the browser enough time for API-loaded content |
| Configurable render/wait timeout | Critical when APIs respond asynchronously |
| Network-idle / load-state controls | Better than blindly waiting N seconds |
| JS-only link reporting | Lets you prove which URLs weren't in source HTML |
| URL discovery from rendered pages | Determines whether those URLs enter the crawl queue |
| History API support | Important for SPAs |
| Source vs rendered comparison | Useful for diagnosing SEO differences |
| Scale/concurrency controls | Rendering 100k URLs is a very different problem from rendering 500 |
| API/export | Important if you're incorporating crawl data into agency workflows |
| Screenshots / rendered HTML | Extremely useful when a client says “but it works in Chrome” |
Two obvious tools to put through the test
Screaming Frog SEO Spider explicitly supports JavaScript rendering using headless Chromium. In JavaScript mode it extracts content and links from rendered HTML as well as discovering links in the raw HTML. It also has a specific workflow for identifying links that exist only after JavaScript executes. Screaming Frog Screaming Frog
That makes it particularly interesting for your “AJAX-loaded URLs” requirement: its documentation describes exporting JavaScript-only links and adjusting the AJAX timeout (5 seconds by default). Screaming Frog
Sitebulb has a Chrome Crawler that renders pages with headless Chrome and compares response HTML against rendered HTML. Its Response vs Render functionality specifically identifies links created or modified by JavaScript. Sitebulb Support Sitebulb Support
The important distinction
Don't confuse:
“The crawler can render AJAX content.”
with:
“The crawler will discover URLs produced by AJAX and recursively crawl them.”
Those are separate capabilities.
For example:
GET /category
│
└── initial HTML
│
└── app.js executes
│
└── fetch("/api/products")
│
└── JSON response
│
└── JS creates:
<a href="/product/123">
<a href="/product/456">
You want the crawler to ultimately produce:
/category
/product/123
/product/456
—not merely show /product/123 in a rendered screenshot or rendered DOM while never putting it into the crawl frontier.
My recommended agency benchmark
Before committing to a platform, build a 10–20 URL JavaScript test suite and run every candidate against exactly the same site.
Include:
- Links in initial HTML
- Links inserted synchronously by JS
- Links inserted after
fetch() - Links inserted after XHR
- Links appearing 2–5 seconds after load
- Links generated after React/Vue hydration
- SPA
pushState()URLs - Infinite-scroll URLs
- Links behind “Load more”
- Links whose existence depends on an API response
Then measure:
A. Discovery
- Did it find the URL?
B. Crawl expansion
- Did it actually schedule the discovered URL for crawling?
C. Timing
- How long did it wait for the URL to appear?
D. Fidelity
- Did it reproduce what a real Chrome session sees?
E. Scale
- How many rendered URLs/hour can you realistically process?
That last one is important: rendering is substantially more expensive than fetching raw HTML. Sitebulb, for example, notes that its Chrome crawler downloads page resources and therefore takes considerably longer than its HTML crawler. Sitebulb Support
One trap I'd specifically test
Don't rely on a fixed AJAX timeout alone.
Suppose your client has:
fetch('/api/products')
.then(...)
.then(renderProducts)
If the crawler snapshots the DOM at 1 second but the API responds at 1.8 seconds, it can incorrectly conclude that the page has no product links.
Screaming Frog exposes an AJAX timeout specifically for this scenario, while Sitebulb exposes more granular Chrome crawler/load settings. Screaming Frog Sitebulb Support
For an agency, I'd therefore prioritize render lifecycle controls + rendered-link extraction + crawl-frontier behavior over raw “JavaScript support.”
If you tell me roughly how many URLs you crawl per client (10k / 100k / 1M+) and whether you need an API, I can narrow this into a practical Screaming Frog vs Sitebulb vs Lumar/enterprise vs building your own Playwright crawler comparison.
B. Crawl expansion
- Did it actually schedule the discovered URL for crawling?
C. Timing
- How long did it wait for the URL to appear?
D. Fidelity
- Did it reproduce what a real Chrome session sees?
E. Scale
- How many rendered URLs/hour can you realistically process?
That last one is important: rendering is substantially more expensive than fetching raw HTML. Sitebulb, for example, notes that its Chrome crawler downloads page resources and therefore takes considerably longer than its HTML crawler.
Behind this answer: no web searches, 3 tracked brands mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
"for a news site with 50k articles, which crawler handles rate limits and sitemaps while finding duplicate content and broken assets"
For a 50k-article news site, I’d lean toward sitebulb.com as the best single-tool fit for your requirements.
| Requirement | Sitebulb |
|---|---|
| ~50k URLs | ✅ Easily within its stated 500k-URL/audit capacity Sitebulb |
| XML sitemaps | ✅ Can use sitemaps as crawl sources and compare sitemap URLs against crawled URLs Sitebulb Support Sitebulb Support |
| Rate limiting | ✅ Configurable threads and maximum URLs/second Sitebulb Support |
| Exact duplicates | ✅ |
| Near-duplicate articles | ✅ Dedicated duplicate/similarity analysis Sitebulb Support |
| Broken links/assets | ✅ Tracks links plus images, CSS, JS, fonts and their status/resources Sitebulb Support |
| JavaScript-heavy site | ✅ Has a Chrome crawler in addition to its HTML crawler Sitebulb Support |
| Large crawl analysis | ✅ Strong reporting/filtering across the crawl |
Why it fits a news site particularly well
The duplicate/near-duplicate detection is important for news because you can have syndicated stories, updated versions, tag/category URLs, printer pages, AMP/alternate URLs, and parameterized URLs that look different but contain essentially the same article. Sitebulb can identify both substantially duplicate HTML and similar content. Sitebulb Support
For discovery, I'd configure it to crawl both internal links and all XML sitemaps. That lets you identify things like:
- Articles in the sitemap that aren't internally linked.
- Internally discovered articles missing from the sitemap.
- Sitemap URLs returning 404/5xx.
- Non-indexable URLs accidentally included in sitemaps.
- Duplicate/near-duplicate articles.
- Broken images, JS, CSS and other resources.
- Parameterized URLs generating crawl waste.
Sitebulb specifically provides sitemap-vs-crawl comparisons and flags broken/non-indexable sitemap URLs. Sitebulb Support
One alternative
screamingfrog.co.uk is also very capable, particularly if you want a highly configurable desktop crawler. Its near-duplicate system uses a MinHash similarity algorithm, with a configurable similarity threshold. screamingfrog.co.uk
For 50k URLs + sitemap coverage + duplicate content + broken assets + controlled crawl rate, though, Sitebulb is the cleaner all-in-one choice.
If you tell me whether the site is WordPress, a custom CMS, or something like Drupal, I can also suggest the exact crawl configuration (threads, URL/sec, sitemap setup, exclusions, duplicate threshold, and what to monitor for 50k articles).
Behind this answer: no web searches, 2 tracked brands mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
For a 50,000-article news site, I’d shortlist Screaming Frog SEO Spider and Sitebulb, with Screaming Frog as the more flexible choice if you want detailed control.
| Requirement | Screaming Frog | Sitebulb |
|---|---|---|
| 50k+ URLs | Yes — licensed version supports up to 5M by default, with database storage for large crawls Screaming Frog Screaming Frog | Yes |
| XML sitemaps | Yes — can discover via robots.txt or specify sitemaps directly Screaming Frog | Yes, including sitemap-vs-crawl comparisons Sitebulb Support Sitebulb Support |
| Rate/crawl controls | Strong — extensive crawl limits and configuration | Strong — configurable crawl speed/limits Sitebulb Support |
| Duplicate content | Excellent — exact + configurable near-duplicate detection using MinHash Screaming Frog | Good |
| Broken links/assets | Excellent — 4xx/5xx links and resource problems | Excellent — links plus images, CSS, JS, fonts and HTTP responses Sitebulb Support |
| JavaScript-rendered articles | Yes | Yes, via Chrome crawler Sitebulb Support |
| Large-crawl storage | Excellent — database storage specifically designed for scale Screaming Frog | Good |
| Reporting/visual analysis | Very detailed | More approachable |
My pick: Screaming Frog
For a news site, the particularly useful combination is:
- Sitemaps + normal crawl: make the sitemap URLs an additional discovery source so you catch orphaned articles as well as normally linked pages.
- Near-duplicate detection: useful for syndicated stories, updated versions, tag/archive pages, and articles that differ only slightly. Screaming Frog's near-duplicate system can be tuned by similarity threshold and content area. Screaming Frog
- Asset crawling: identify broken images, CSS, JS and other resources rather than checking only article URLs.
- Crawl limits: restrict problematic URL patterns such as search, filters, tracking parameters and infinite pagination.
- Database storage: important at 50k+ URLs because you can retain and compare crawls rather than treating every audit as disposable. Screaming Frog
Sitebulb is the alternative I'd choose if the people reviewing the results aren't SEO/crawler specialists. Its sitemap reporting is particularly nice: it can explicitly show URLs that are only in sitemaps or not in sitemaps, while its Resources report covers images, CSS, JavaScript and fonts. Sitebulb Support Sitebulb Support
One caveat on rate limits: if by "rate limits" you mean the crawler should automatically respect the publisher's robots.txt/Crawl-delay instructions, that's worth checking separately from simply having a configurable crawl speed. For example, Ahrefs explicitly documents that its crawler follows Crawl-delay and respects robots.txt. Ahrefs
For your specific workload, I'd configure Screaming Frog roughly as: sitemap + website crawl → database storage → controlled crawl speed → exclude search/parameter traps → crawl resources → enable near-duplicates → run recurring crawls and compare changes.
Behind this answer: no web searches, 3 tracked brands mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
Answer 3 of 3, 16th Sep 2026, unknown, does not mention you
For a 50k-article news site, I’d use Scrapy if you’re building the crawler yourself. It gives you the most control over all four requirements:
| Requirement | Scrapy |
|---|---|
| Rate limiting | Excellent — AutoThrottle, concurrency limits, delays |
| Sitemap crawling | Built in via SitemapSpider |
| Duplicate URLs | Built in request fingerprinting/dupe filtering |
| Duplicate articles/content | You implement content hashing/similarity |
| Broken links/assets | Excellent — inspect HTTP status codes for HTML, images, CSS, JS |
| 50k URLs | Easy for a properly configured crawl |
| Custom news-site logic | Excellent |
Scrapy includes an AutoThrottle extension and a built-in duplicate-request filter, so it is particularly well suited to a controlled crawl rather than simply hammering 50,000 URLs. Scrapy Documentation
The architecture I'd use
sitemap.xml / sitemap index
↓
URL queue
↓
Scrapy
↙ ↓ ↘
rate extract assets
limit article links
↓ ↓
content hash HTTP checks
↓
duplicate DB
For a news site, I'd crawl from both the sitemap and internal links. Sitemaps are particularly useful for rapidly changing content, and Google recommends news sites use a news sitemap. Google for Developers Google for Developers
For duplicate detection, don't rely on Scrapy's duplicate-request filter. That catches duplicate requests/URLs, not two different URLs containing essentially the same article. Store something like:
url
canonical_url
title
published_at
content_hash
simhash
status_code
canonical_target
asset_url
asset_status
Then:
- Exact duplicate: normalized article text → SHA-256 hash.
- Near duplicate: SimHash/MinHash or TF-IDF/cosine similarity.
- Syndicated stories: compare article-body similarity while ignoring boilerplate.
- URL duplicates: normalize query parameters, trailing slashes, tracking parameters, etc.
- Canonical problems: compare
<link rel="canonical">against the sitemap URL. Google explicitly uses canonicalization and similarity signals to cluster duplicate URLs. Google for Developers Google for Developers
Rate limiting
I'd configure something along these lines:
AUTOTHROTTLE_ENABLED = True
AUTOTHROTTLE_START_DELAY = 1
AUTOTHROTTLE_MAX_DELAY = 30
AUTOTHROTTLE_TARGET_CONCURRENCY = 1.0
CONCURRENT_REQUESTS_PER_DOMAIN = 4
DOWNLOAD_DELAY = 0.25
RETRY_HTTP_CODES = [429, 500, 502, 503, 504]
Then make your crawler respect robots.txt and back off aggressively on 429/5xx.
One important distinction
If by "crawler" you mean a finished SEO auditing product rather than a framework, I'd look at a crawler such as Screaming Frog SEO Spider or Sitebulb instead. For 50k articles, though, if you want to repeatedly crawl the site, store historical results, detect article-level near-duplicates, and integrate the results with your CMS/data warehouse, Scrapy is the more programmable foundation.
Also, 50k URLs is not particularly large from a sitemap perspective: Google's sitemap index format supports up to 50,000 sitemap entries per index, although individual sitemap files have their own URL limits. Google for Developers
If you tell me whether you want Python/open-source, a no-code SEO crawler, or a cloud crawler, I can narrow this down to 2–3 concrete choices and show the architecture for 50k articles.
For duplicate detection, don't rely on Scrapy's duplicate-request filter. That catches duplicate requests/URLs, not two different URLs containing essentially the same article. Store something like:
Behind this answer: no web searches, 2 tracked brands mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
"I'm a freelance seo doing technical audits, which lightweight crawler gives good redirect-chain visualization and exportable reports"
Sitebulb is probably the best fit if client-facing visualization and reports matter. Its redirect-chain data exports to CSV/Google Sheets, and it has interactive visualizations plus customizable PDFs. Sitebulb Support Sitebulb
For a more lightweight, spreadsheet-first workflow, Screaming Frog SEO Spider is excellent: its Redirect Chains report explicitly maps hops, loops, source/final URLs, and exports cleanly. screamingfrog.co.uk screamingfrog.co.uk
Quick pick: Sitebulb for polished freelance deliverables; Screaming Frog for lean technical auditing.
Behind this answer: no web searches, 2 tracked brands mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
For a freelance technical-SEO workflow, Sitebulb is probably the closest match to what you’re asking for.
Sitebulb has particularly strong visualizations and client-ready reporting: its Desktop crawler handles up to 500k URLs per audit, includes crawl maps and other interactive visualizations, and supports customized PDF reports plus CSV/Google Sheets exports. Sitebulb Sitebulb Support
How I’d compare the main options
| Crawler | Redirect-chain handling | Visualization | Client reports | Lightweight feel |
|---|---|---|---|---|
| Sitebulb | Dedicated redirect-chain export | Excellent | Excellent PDF/exports | Good |
| Screaming Frog | Excellent, very granular | Good, but more data-table oriented | Good | Excellent |
| JetOctopus | Excellent | Good | Good | More cloud/scale-oriented |
Sitebulb: Its Redirect report has a dedicated Export Redirect Chains function, and it can export to CSV/Google Sheets. Its broader visualization system includes crawl maps, trees and directory visualizations. Sitebulb Support Sitebulb Support
Screaming Frog: If by "lightweight" you mean fast desktop utility with minimal overhead, this is the one I'd look at. Its Redirect Chains report maps the chain, shows hop counts, identifies the source and flags loops; its All Redirects export also records the full hops. Screaming Frog Screaming Frog
JetOctopus: Useful if you're more interested in cloud crawling and larger sites. It has a dedicated Redirect Chains table and stores the complete chain/hop information. Tech SEO Platform
My practical take
If your typical deliverable is:
crawl → identify redirect chains → show client/dev exactly what redirects to what → export evidence → put findings into an audit
I'd lean Sitebulb because the visualization + reporting layer is unusually well suited to client-facing audits. Its HTML crawler is also its quickest crawler mode, while Chrome crawling is available when you actually need JS rendering. Sitebulb Support
If you instead want the smallest, most utilitarian crawler that you can fire up for a quick 5–50k URL investigation, I'd lean Screaming Frog.
sitebulb.com · screamingfrog.co.uk
If you tell me your typical crawl size and whether you need white-label PDFs, I can narrow it down further—including some less-obvious lightweight alternatives.
Behind this answer: no web searches, 2 tracked brands mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
Answer 3 of 3, 16th Sep 2026, unknown, does not mention you
For a freelance technical SEO workflow, I’d shortlist these:
| Crawler | Redirect-chain handling | Visualization | Exports / client reporting | Best fit |
|---|---|---|---|---|
| Sitebulb | Excellent; dedicated Redirects report and chain export | Excellent — crawl/site visualizations | Excellent — PDF, CSV/XLSX, Google Sheets | Client-facing audits |
| Screaming Frog SEO Spider | Excellent; detailed chain/loop reports | Good, but more data-oriented | Excellent; extensive CSV exports | Fast, hands-on technical audits |
| JetOctopus | Excellent; full chain + hop count | Good | Good | Larger/cloud crawls |
My pick: Sitebulb
For what you specifically described—lightweight + good redirect visualization + reports you can hand to clients—I'd lean Sitebulb.
It has a dedicated Redirect Chains export, and its Site Visualisations provide interactive crawl maps where you can inspect URL details and crawl paths. It also supports customized PDF reports plus CSV/XLSX and Google Sheets exports. Sitebulb Support Sitebulb Support Sitebulb Support
Screaming Frog if you prioritize raw technical data
Screaming Frog is arguably the better choice if your audits are very URL/data-heavy. Its Redirect Chains report maps the chain, shows hop counts, identifies the source, and flags loops; it can also follow redirects all the way to the final destination in List mode. Screaming Frog Screaming Frog
JetOctopus for cloud-based work
JetOctopus has a dedicated Redirect Chains table that shows the entire chain and redirect-chain length, which is handy when you're diagnosing migrations or messy legacy redirects. TechSEO AI
Bottom line: If you're doing audits for clients and want something that turns findings into presentable evidence quickly, I'd choose Sitebulb. If you already live in spreadsheets and want maximum crawling/control flexibility, choose Screaming Frog.
If you tell me roughly how many URLs you crawl per site (e.g. 10k / 100k / 500k) and whether you need white-label PDF reports, I can narrow it down further.
Behind this answer: no web searches, 2 tracked brands mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
"we have a staging environment that blocks bots, what crawler options let me authenticate and render js to audit the site safely"
Yes. For a staging site that requires authentication and relies on JavaScript, I’d use a real browser crawler rather than a traditional HTTP-only spider.
Good options
- Playwright — probably the most flexible choice if you want a custom audit crawler. It runs a real Chromium/Firefox/WebKit browser with JavaScript enabled and can reuse authenticated cookies/local storage/IndexedDB via
storageState. Playwright Playwright
- Authenticate once with a dedicated staging account.
- Save the browser state.
- Crawl URLs using that state.
- Capture rendered DOM, network requests, console errors, screenshots, accessibility data, etc.
- Particularly good if you want the audit integrated into CI.
- OWASP ZAP — a strong choice if "audit" means security-oriented crawling/scanning, rather than just discovering URLs. ZAP supports browser-based authentication and its modern Client/AJAX Spiders can crawl JavaScript-heavy applications while authenticated. ZAP ZAP
- Browser-based authentication is useful for ordinary login flows.
- Client Script Authentication is useful for complicated flows, including recorded login sequences. ZAP ZAP
- Its Automation Framework lets you put authentication and scanning configuration into a reproducible YAML plan. ZAP
- Playwright + ZAP together — a particularly useful setup if you want both complete rendered-site coverage and security findings. Playwright handles the application's browser/session behavior; ZAP can observe and scan the resulting traffic.
Safest staging setup
I'd structure it roughly like this:
Dedicated staging test account
↓
Playwright authenticates
↓
Authenticated browser context
↓
Crawl/render only staging
↓
Collect DOM + links + JS/network behavior
↓
Optional ZAP proxy/passive scan
For the authentication, avoid putting real credentials in crawler configuration. Playwright's documented approach is to create an authenticated state file and reuse it, while keeping that file out of source control because it can contain cookies and other credentials. Playwright
If your staging bot block is based on User-Agent/IP, I'd also avoid trying to "bypass" it covertly. The cleaner approach is to explicitly allowlist your crawler's staging IP/service account or provide a staging-only bot exception. That makes the audit reproducible and prevents accidentally testing the production anti-bot defenses.
What I'd pick
For a site audit/crawl: Playwright.
For a security audit: ZAP with Browser/Client Script Authentication + Client/AJAX Spider.
For a CI security audit of a modern authenticated SPA: Playwright + ZAP, with a dedicated low-privilege staging account and strict staging-only target scope. ZAP specifically notes that modern JavaScript applications are best crawled with its browser-based spiders, because traditional form/JSON authentication doesn't necessarily authenticate those browser instances. ZAP
If you tell me whether your staging auth is SSO/OAuth, basic auth, username/password, or something like Cloudflare Access, I can give you a concrete crawler configuration for it.
Behind this answer: no web searches
ChatGPT answered from its own knowledge, without searching the web.
For a staging site you control, good options are:
- Playwright — authenticate once, save
storageState, then crawl with a real Chromium browser so JS renders normally. Playwright - OWASP ZAP + Ajax/Client Spider — supports browser-based authentication and client scripts, specifically suited to authenticated modern JS apps. ZAP ZAP
- OWASP PTK Agent — can wrap Playwright/Puppeteer/Selenium/Cypress journeys and combine authenticated browser execution with security analysis. OWASP Foundation
For safety, use a dedicated staging account, read-only permissions where possible, throttle the crawler, restrict it to the staging hostname, and disable destructive workflows.
Behind this answer: no web searches
ChatGPT answered from its own knowledge, without searching the web.
Answer 3 of 3, 16th Sep 2026, unknown, does not mention you
For a staging site that intentionally blocks bots, you usually want a crawler that can do three things:
- Authenticate (login flow, cookies, headers, SSO)
- Render JavaScript (real Chromium/browser execution)
- Run safely inside your network or with allowlisted access (rather than weakening bot protections)
Good options:
| Tool | Auth support | JS rendering | Good fit |
|---|---|---|---|
| Screaming Frog SEO Spider | Basic auth, form login, cookies via embedded Chrome | Yes | Traditional SEO/technical audits on staging |
| Semrush Site Audit | Credentials, some authenticated crawling workflows | Yes (plan dependent) | Managed SEO audits and reporting |
| Playwright | Full browser automation, any login flow | Yes (Chromium/Firefox/WebKit) | Custom QA/security/accessibility crawls |
| Puppeteer | Full browser automation | Yes (Chromium) | Lightweight custom crawlers |
| SiteOne Crawler | Varies by setup | Yes | Local/self-hosted audits |
| Krawlify | Uses your existing browser session/cookies | Yes | Sites where bot detection blocks headless crawlers |
Screaming Frog Semrush SiteOne Crawler KrawlifyFor a staging environment, I’d typically choose one of these patterns:
Option 1: Run a browser-based crawler with a test account (most flexible)
Use Playwright:
- Launch Chromium
- Log in with a dedicated staging user
- Save the authenticated storage state
- Crawl routes
- Capture:
- rendered DOM
- screenshots
- console errors
- failed network requests
- accessibility/performance metrics
Example flow:
create staging-audit-user
↓
Playwright login once
↓
save cookies/session
↓
crawl authenticated URLs
↓
generate audit artifacts
This avoids pretending to be a search bot and keeps the staging controls intact.
Option 2: Allowlist your crawler instead of disabling protection
For a WAF/bot-management setup:
- Add a staging-only rule:
- allow your CI runner IP
- allow your crawler service IP
- require a secret header
- keep rate limits low
- Keep normal bot blocking enabled for everyone else
Example:
if environment == staging
and request header X-Audit-Key == secret
then allow
else apply normal bot rules
This is safer than globally turning off bot protection.
Option 3: Use your existing logged-in browser session
Useful when staging uses SSO/MFA and automated login is awkward:
- Open Chrome
- Authenticate normally
- Attach crawler to the browser session
- Crawl with existing cookies
Tools like Krawlify are designed around this model. Krawlify
Things to avoid
- ❌ Spoofing Googlebot/Bingbot user agents to bypass protection
- ❌ Sharing employee accounts with crawlers
- ❌ Putting staging credentials into third-party SaaS without approval
- ❌ Disabling WAF rules globally
A practical stack I’d use
For a modern React/Next/Vue app:
- Playwright + Chromium for crawling
- axe-core for accessibility checks
- Lighthouse CI for performance
- CI pipeline runner with staging-only credentials
- Export:
- screenshots
- HAR files
- JSON findings
- HTML report
If you tell me what blocks the crawler (Cloudflare, Akamai, basic auth, SSO, robots.txt, custom middleware, etc.) and what you’re auditing (SEO, accessibility, security, regression testing), I can narrow the setup.
Behind this answer: no web searches, 2 tracked brands mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
"I want to analyze server logs and crawling data to prioritize broken links by traffic, what tools or workflows work best for that"
Yes. The most useful setup is to join three datasets at the URL level:
- Server/access logs — what users and bots actually requested.
- Crawler output — what URLs are internally discoverable and what links point to them.
- Traffic/search data — how much real value each affected URL has.
That lets you distinguish “a 404 exists” from “a 404 is repeatedly requested, linked internally, and has meaningful traffic.”
A practical workflow
1. Crawl the site
Use a crawler such as screamingfrog.co.uk to export at least:
- URL
- Status code
- Inlinks / referring URLs
- Anchor text
- Indexability
- Canonical
- Redirect target
- Depth
- Sitemap inclusion
For every 4xx/5xx URL, you ideally want to know which internal pages link to it.
2. Parse server logs
Pull 30–90 days of access logs and aggregate by requested URL:
URL
status_code
request_count
unique_visitors_or_ips
Googlebot_requests
Bingbot_requests
bytes
response_time
last_seen
Log data is particularly valuable because a crawl is only a simulation; logs show which URLs were actually requested. They can also expose URLs that your crawler doesn't discover, including historical or externally linked URLs. Screaming Frog Screaming Frog
For a relatively turnkey workflow, Screaming Frog Log File Analyser is specifically designed for this. It can import Apache, NGINX, IIS and other log formats, identify 4xx/5xx responses, and combine log data with crawl exports. Screaming Frog Screaming Frog
3. Join the datasets
The interesting table becomes something like:
| Broken URL | 404 requests | Bot requests | Internal links | Referring traffic | Last seen |
|---|---|---|---|---|---|
/old-product | 12,430 | 2,100 | 37 | 8,400 | today |
/category/foo | 2,100 | 340 | 12 | 1,200 | yesterday |
/old-pdf | 850 | 0 | 0 | 600 | 3 days ago |
Screaming Frog's Log File Analyser has an Imported URL Data feature specifically for matching crawl exports or other URL datasets against log data. Screaming Frog Screaming Frog
4. Build a prioritization score
I wouldn't rank purely by number of 404s. A better model is something like:
priority =
user_traffic_score
+ internal_link_score
+ search_bot_score
+ external_link_score
+ request_frequency_score
+ business_value_score
+ recency_score
For example, give extra weight to:
- Real user requests — stronger evidence of actual impact.
- Many internal inlinks — indicates a broken site architecture.
- Googlebot/Bingbot requests — indicates search engines are still encountering it.
- External referring traffic/backlinks — potentially valuable legacy URLs.
- High-value destination/content — stronger reason to restore or redirect.
- Recent and recurring requests — more actionable than a URL requested once two years ago.
Conversely, thousands of requests generated by a single noisy bot shouldn't automatically outrank a broken URL receiving genuine user traffic.
5. Separate “fix” from “redirect” candidates
This is an important second layer.
404 + strong internal linking + obvious replacement exists
→ fix the internal links and/or restore the resource.
404 + substantial external traffic/backlinks + clear successor
→ investigate a relevant 301 redirect.
404 + high bot traffic but no users + obsolete URL
→ investigate why bots keep discovering it; don't blindly redirect everything.
404 + essentially no traffic/inlinks + obsolete URL
→ usually lower operational priority.
The logs can also reveal inconsistent response codes—for example, URLs that were broken historically but now work—which is why looking at the time dimension matters. Screaming Frog
If you want a more automated stack
For a larger site, I'd build:
NGINX/Apache/CDN logs → object storage → SQL warehouse → crawler export → URL-level scoring → dashboard
For example:
Cloudflare / NGINX / ALB logs
↓
S3 / BigQuery
↓
SQL aggregation
↓
┌─────────┴──────────┐
│ │
Crawler data Analytics/GSC
│ │
└─────────┬──────────┘
↓
URL issue table
↓
priority_score
↓
Looker / Power BI / CSV
The key is to retain the raw URL-level events and calculate aggregates rather than just exporting a list of 404s. That makes it possible to re-rank the backlog whenever traffic, crawling, or business priorities change.
If you tell me what your stack looks like (e.g. NGINX + GA4 + Search Console + Screaming Frog, or Cloudflare + BigQuery + Python), I can lay out the exact schema, SQL, and prioritization formula I'd use.
404 + high bot traffic but no users + obsolete URL
→ investigate why bots keep discovering it; don't blindly redirect everything.
404 + essentially no traffic/inlinks + obsolete URL
→ usually lower operational priority.
The logs can also reveal inconsistent response codes—for example, URLs that were broken historically but now work—which is why looking at the time dimension matters.
If you want a more automated stack
For a larger site, I'd build:
NGINX/Apache/CDN logs → object storage → SQL warehouse → crawler export → URL-level scoring → dashboard
For example:
Behind this answer: no web searches, 1 tracked brand mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
For prioritizing broken links, the strongest workflow is usually not just “find 404s” — it is a join between:
- What is broken (crawl data)
- How often it is hit (server/CDN logs)
- Who is hitting it (users, bots, referrers)
- How valuable the affected URL is (traffic, conversions, links, revenue)
A good setup looks like this:
Recommended workflow
1. Crawl the site to build the broken-link inventory
Use a crawler to collect:
- Broken internal links (source page → broken destination)
- Status codes (404, 410, 500, redirect chains)
- Anchor text
- Number of internal links pointing to the broken URL
- Page templates affected
Common tools:
- Screaming Frog SEO Spider — strong for finding broken links and exporting source URLs/inlinks. The GTM Exchange
- Sitebulb — useful if you want more visual audits.
- Ahrefs Site Audit — useful when you also care about backlinks and external references.
Output table:
| broken_url | source_url | status | internal_links | anchor |
|---|---|---|---|---|
| /old-product | /category/page | 404 | 42 | "Product name" |
2. Parse server/CDN logs to measure real impact
Your logs should include:
- timestamp
- requested URL
- HTTP status
- referrer
- user agent
- response time
- bytes sent
- IP/request ID if available
Then calculate:
- Total hits to each broken URL
- Human traffic vs bots
- Top referrers
- Googlebot hits
- Trend over time
For SEO-focused log analysis, tools like Screaming Frog Log File Analyser, OnCrawl, and Botify are commonly used because they combine crawl behavior with server log data. Ighenatt Samuel Ochoa
For engineering-heavy teams:
- BigQuery
- ClickHouse
- Elasticsearch + Kibana
- Datadog
- Grafana Loki
- AWS Athena
A typical SQL aggregation:
SELECT
url,
COUNT(*) AS hits,
COUNTIF(user_agent LIKE '%Googlebot%') AS bot_hits,
COUNT(DISTINCT referrer) AS referring_pages
FROM access_logs
WHERE status_code IN (404,410)
GROUP BY url
ORDER BY hits DESC;
3. Add business value signals
Join your broken URL list with:
- Google Analytics / GA4 sessions
- Search Console clicks/impressions
- Conversion events
- Backlinks
- Revenue data
Example priority scoring:
Priority Score =
(404 hits × 5)
+ (human visits × 10)
+ (Googlebot hits × 3)
+ (backlinks × 8)
+ (conversion value × 10)
This prevents spending time on:
/random-old-image.jpgwith 3 bot hits
while fixing:
/best-selling-productreceiving 20,000 visitors/month and returning 404
Practical stack recommendations
Small/medium site (<100k URLs)
- Screaming Frog SEO Spider
- Screaming Frog Log File Analyser
- Google Analytics
- Search Console
- Spreadsheet or Looker Studio dashboard
Simple monthly workflow.
Large site (millions of URLs)
- CDN logs (Cloudflare, Fastly, CloudFront)
- Data warehouse (BigQuery/Snowflake/ClickHouse)
- Scheduled crawler
- SQL models
- Dashboard in Looker/Tableau/Grafana
Pipeline:
CDN logs
↓
Log parser
↓
Broken URL table
↓
Join:
- crawl data
- analytics
- backlinks
- revenue
↓
Priority queue
↓
Jira/Linear tickets
Useful prioritization rules
I would usually rank fixes like this:
- 404s receiving real user traffic
- 404s linked internally from high-value pages
- 404s with backlinks
- 404s crawled frequently by search engines
- Broken URLs repeated across templates
- Low-volume cleanup items
Template-level problems deserve special attention: one broken link in a navigation component can create thousands of broken URLs.
A dashboard I would build
Columns:
| URL | 404 hits | Human hits | Bot hits | Source pages | Backlinks | Revenue impact | Action |
|---|---|---|---|---|---|---|---|
| /product-a | 15k | 14k | 500 | 320 | 40 | High | Restore/redirect |
| /old-blog | 800 | 50 | 750 | 2 | 0 | Low | Ignore |
This turns broken links from an SEO audit list into a ranked engineering backlog.
| URL | 404 hits | Human hits | Bot hits | Source pages | Backlinks | Revenue impact | Action |
|---|---|---|---|---|---|---|---|
| /product-a | 15k | 14k | 500 | 320 | 40 | High | Restore/redirect |
| /old-blog | 800 | 50 | 750 | 2 | 0 | Low | Ignore |
This turns broken links from an SEO audit list into a ranked engineering backlog.
Behind this answer: no web searches, 4 tracked brands mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
Answer 3 of 4, 17th Sep 2026, unknown, does not mention you
Yes. The most useful workflow is to combine server-log evidence, a site crawl, and analytics/Search Console data, then calculate a priority score for each broken URL.
Recommended stack
- Server logs → BigQuery / ClickHouse / Athena: best for determining which broken URLs are actually being requested by humans and bots.
- Screaming Frog SEO Spider: good for discovering broken internal links and, importantly, identifying the source pages that contain each broken link.
- Google Search Console: useful for organic-search clicks/impressions, indexing problems, and Googlebot crawl behavior. Its Crawl Stats report exposes response codes, crawl volume, response times, and Googlebot types. Google Help Google Help
- GA4 or another analytics platform: useful for estimating the value/traffic of the pages containing the broken links.
- SQL + a dashboard (Looker Studio, Metabase, Grafana, etc.): turn the above into a repeatable prioritization pipeline.
The key idea: prioritize the broken link, not just the 404
Suppose you have:
| Source page | Broken target | Human visits to source | 404 requests | Organic value |
|---|---|---|---|---|
/pricing | /old-plans | 42,000 | 8,500 | High |
/blog/foo | /foo-bar | 800 | 120 | Medium |
/archive/2018 | /xyz | 5 | 2 | Low |
I'd prioritize /pricing → /old-plans even if another URL has more raw 404s, because a broken link on a heavily trafficked page is a much stronger user-impact signal.
A practical scoring model
For every broken target URL, calculate:
priority =
human_404_requests
× source_page_traffic_weight
× business_value_weight
× link_count_weight
× seo_weight
You don't necessarily need a sophisticated ML model. A weighted score is easier to explain and maintain.
I'd use roughly these inputs:
- Human requests to the broken URL
- Requests from real browsers/users.
- Strongest direct evidence of user impact.
- Number of distinct source pages linking to it
- 1 broken link on a high-traffic page can matter more than 50 links buried in low-traffic pages.
- Traffic to source pages
- Pull sessions/users/pageviews from analytics.
- This captures the opportunity to fix the actual user journey.
- Organic-search value
- Search Console clicks/impressions for the source page and/or target URL.
- Search Console provides page-level performance data including clicks, impressions, CTR and position. Google Help
- HTTP status / failure type
- 404/410 isn't necessarily equivalent to a 500.
- A 5xx error deserves immediate attention because it may indicate an operational problem rather than a genuinely removed URL.
- Bot traffic
- Keep Googlebot/Bingbot separate from human traffic.
- A URL requested thousands of times by crawlers but never by humans shouldn't automatically outrank a URL breaking a major user journey.
The workflow I'd build
1. Crawl the site
Run Screaming Frog or a similar crawler and export something like:
source_url
target_url
anchor_text
status_code
redirect_chain
link_type
This gives you the relationship graph:
/page-A ─────┐
├──> /missing-page
/page-B ─────┤
│
/page-C ─────┘
That relationship is crucial. A raw access log can tell you /missing-page gets 404s, but it doesn't necessarily tell you which internal pages are causing the problem.
2. Parse your access logs
Normalize every request into something like:
timestamp
host
method
path
status
user_agent
referrer
ip_hash
response_bytes
response_time
Then classify requests:
human
googlebot
bingbot
other_bot
monitoring
unknown
Be conservative about bot detection—user-agent strings alone aren't perfect.
Then aggregate:
SELECT
path,
COUNT(*) AS requests,
COUNT(DISTINCT user_id_or_session) AS users,
COUNTIF(is_bot = FALSE) AS human_requests,
COUNTIF(is_googlebot) AS googlebot_requests
FROM access_logs
WHERE status = 404
GROUP BY path;
The exact SQL will depend on your log platform.
3. Join crawl data to logs
This is where it becomes particularly useful:
broken_target
↓
source pages
↓
source-page traffic
↓
404 requests
↓
bot requests
↓
organic/search value
For example:
/missing-product
Linked from:
/category/shoes 31,200 monthly visits
/blog/running-guide 8,400 monthly visits
/archive/2019 120 monthly visits
404 requests:
humans: 4,812
Googlebot: 1,932
other bots: 744
That gives you enough information to make an actionable decision.
One particularly useful table
I'd ultimately produce a table like:
| Priority | Broken URL | Source pages | Human 404s | Source traffic | Googlebot | Suggested action |
|---|---|---|---|---|---|---|
| P1 | /old-product | 14 | 4,812 | 120K | 1,932 | Replace links / 301 |
| P1 | /checkout-help | 3 | 2,104 | 58K | 841 | Restore page |
| P2 | /old-guide | 27 | 431 | 18K | 220 | Replace internal links |
| P3 | /legacy-widget | 1 | 7 | 90 | 0 | Remove link |
This makes the output useful to engineering/SEO/content teams rather than just being another list of 404s.
Don't rely on Search Console alone
Search Console is valuable, but it shouldn't be your primary source for this particular analysis.
Google explicitly says its Links report is not a comprehensive list of every internal/external link, and its data is sampled/deduplicated. Google Help
Likewise, Crawl Stats represents Google's crawling activity rather than all user traffic, and Google notes that its crawl totals can differ from server logs. Google Help
So I'd think of the sources this way:
┌── Server logs ── actual requests
│
Broken links ────┼── Crawler ────── link relationships
│
├── Analytics ──── user/page traffic
│
└── Search Console organic/search impact
**Server logs tell you what's happening.
The crawler tells you why it's happening.
Analytics tells you how much users care.
Search Console tells you the search dimension.**
For a large site, I'd put the raw logs into BigQuery/ClickHouse, run the crawler on a schedule, and have a daily SQL job generate the prioritized broken-link table. That scales much better than trying to do the whole exercise in a spreadsheet.
If you tell me roughly how big the site is and what your logs look like (Nginx, Apache, Cloudflare, AWS ALB, etc.), I can lay out a concrete schema + SQL pipeline for it.
The exact SQL will depend on your log platform.
3. Join crawl data to logs
This is where it becomes particularly useful:
broken_target
↓
source pages
↓
source-page traffic
↓
404 requests
↓
bot requests
↓
organic/search value
For example:
Behind this answer: no web searches, 1 tracked brand mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
Answer 4 of 4, 16th Sep 2026, unknown, does not mention you
For prioritizing broken links, the strongest workflow is usually crawl discovery + server log evidence + traffic/value signals. A crawler tells you what is broken; logs and analytics tell you what matters most. The GTM Exchange Screaming Frog
Recommended workflow
1. Build a broken-link inventory (crawl layer)
Run a full crawl and export:
- Broken destination URL
- HTTP status (
404,410,500, timeout, redirect loop) - Source page(s) containing the link
- Anchor text
- Number of occurrences
- Crawl date
Common tools:
- Screaming Frog SEO Spider — strong for technical audits, exports, inlinks, redirects, and large crawl inventories. The GTM Exchange
- Sitebulb — useful if you want more visual audit reporting.
- Ahrefs / Semrush — useful when you want broken links combined with SEO/backlink context.
Output example:
| Broken URL | Source page | Status | Link count |
|---|---|---|---|
/old-product | /category/shoes | 404 | 42 |
/docs/api-v1 | /developer-guide | 404 | 8 |
2. Parse server logs (traffic layer)
Your access logs answer:
"Are real users or bots hitting this broken URL?"
Extract:
- Requests to broken URLs
- Unique visitors (if available)
- Referrers
- User agents
- Timestamp trends
- Geographic/device data if relevant
Typical stack:
Small/medium sites
- Nginx/Apache logs → CSV → BigQuery/Postgres → dashboards
Large sites
- CloudFront / Fastly / Cloudflare logs
- BigQuery or Snowflake
- Datadog, Splunk, or Elastic
Useful fields:
timestamp
request_url
status_code
referrer
user_agent
response_time
bytes_sent
3. Join crawl data with traffic data
Create a priority score instead of fixing every 404 equally.
Example:
Priority Score =
(Organic Traffic Weight × 5)
+ (User Requests × 3)
+ (Internal Link Count × 2)
+ (Backlink Value × 4)
+ (Conversion Value × 5)
Then rank:
| URL | 404 hits/month | Internal links | Organic sessions | Priority |
|---|---|---|---|---|
/pricing-old | 4,200 | 120 | 8,000 | Critical |
/blog/post-2017 | 12 | 3 | 50 | Low |
4. Add search-engine crawl data
For SEO-focused sites, compare:
- URLs Googlebot requested
- URLs returning errors
- Crawl frequency
- Important pages never crawled
Tools:
- Screaming Frog Log File Analyser — analyzes server logs and bot crawl behavior. Screaming Frog
- Enterprise platforms:
- Botify
- Oncrawl
A practical production setup
A common stack:
Crawler
(Screaming Frog / Sitebulb)
|
v
Broken links table
(Postgres / BigQuery)
|
+---- Server logs
|
+---- Google Analytics / Search Console
|
+---- Backlink data
|
v
Priority dashboard
(Looker Studio / Tableau / Grafana)
|
v
Tickets
(Jira / Linear / GitHub Issues)
Automate the fixes workflow
For teams maintaining large sites:
- Nightly crawl
- Daily log ingestion
- Join broken URLs with traffic
- Create tickets only above a threshold
Example rules:
- P0: 404 + >100 visits/month
- P1: 404 + internal links >20
- P2: 404 + backlinks
- P3: no traffic, no links
If you already have raw logs
A simple SQL pattern:
SELECT
url,
COUNT(*) AS hits,
COUNT(DISTINCT user_id) AS users
FROM server_logs
WHERE status_code = 404
GROUP BY url
ORDER BY hits DESC;
Then join that against your crawler export:
SELECT
c.broken_url,
c.source_page,
l.hits,
c.internal_links
FROM crawl_errors c
LEFT JOIN log_404s l
ON c.broken_url = l.url
ORDER BY l.hits DESC, c.internal_links DESC;
For most teams, the sweet spot is:
- Screaming Frog (or similar crawler) for discovery
- BigQuery/Postgres as the joining layer
- Search Console + analytics + logs for prioritization
- Dashboard + ticket automation for ongoing maintenance
The exact setup changes a lot depending on whether this is a 10k-page marketing site, an ecommerce catalog, or a large app with millions of URLs.
Then join that against your crawler export:
SELECT
c.broken_url,
c.source_page,
l.hits,
c.internal_links
FROM crawl_errors c
LEFT JOIN log_404s l
ON c.broken_url = l.url
ORDER BY l.hits DESC, c.internal_links DESC;
For most teams, the sweet spot is:
- Screaming Frog (or similar crawler) for discovery
- BigQuery/Postgres as the joining layer
- Search Console + analytics + logs for prioritization
- Dashboard + ticket automation for ongoing maintenance
The exact setup changes a lot depending on whether this is a 10k-page marketing site, an ecommerce catalog, or a large app with millions of URLs.
Behind this answer: no web searches, 5 tracked brands mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
"as a small local business owner, i need a simple way to find broken links and redirect loops on my 2k-page site, what tool types should i consider"
For a 2,000-page local business site, you probably don’t need an enterprise SEO platform. Look for a site crawler / technical SEO audit tool that can:
- crawl all pages (not just a single URL)
- find 4xx errors (404s, 410s)
- detect redirect chains (e.g., page → old page → newer page)
- detect redirect loops (page → itself or circular redirects)
- show the source page containing the bad link so you know what to fix
- export results to CSV so you or a web person can work through fixes
Tool types to consider:
1. Desktop website crawlers (best fit for a one-time audit)
These run a full crawl of your site and give detailed reports.
- Screaming Frog — a common choice for technical audits; it can find broken links, redirect chains, and redirect loops and export URLs for fixes. Screaming Frog
- Good for: “I want a complete health check of my 2,000 pages.”
- Tradeoff: you install it and run the crawl yourself.
- Similar crawler-style tools can provide the same basic workflow: crawl → identify errors → export → fix. Broken Link Checker
2. Cloud SEO audit platforms (best if you want ongoing monitoring)
These run scans on their servers and often add SEO reporting.
Examples include:
- Ahrefs
- Semrush
Good for:
- monthly monitoring
- tracking search issues alongside broken links
- seeing broader SEO data
Tradeoff:
- usually more expensive than a simple crawler.
3. Simple broken-link monitoring services (best for “set it and forget it”)
These are easier for non-technical owners.
Look for:
- scheduled scans
- email alerts
- redirect-loop detection
- reports that identify affected pages
Some lightweight scanners focus specifically on broken links and redirects. Broken Link Scan
4. CMS-specific link checkers (if you use WordPress or similar)
If your site is managed in a CMS, a plugin can be convenient because it may let you fix links where you write content.
Good when:
- staff regularly add/edit pages
- you want alerts without running a crawler manually
Tradeoff:
- large sites can sometimes slow down if the plugin scans aggressively.
Features I’d prioritize for your situation
For a 2k-page local business site, I’d look for:
| Feature | Why it matters |
|---|---|
| Internal link report | Shows which pages need editing |
| Redirect chain report | Finds unnecessary hops |
| Redirect loop detection | Catches visitor-blocking failures |
| Sitemap crawling | Ensures all pages are checked |
| CSV export | Makes repairs manageable |
| Scheduled rechecks | Prevents problems coming back |
A practical workflow:
- Run a full crawl once.
- Fix:
- broken internal links first
- redirect loops immediately
- long redirect chains next
- outdated external links last
- Schedule a monthly scan.
For a small local business, a crawler-based audit tool plus a monthly automated check is usually the simplest setup. Screaming Frog Broken Link Scan
Behind this answer: no web searches, 3 tracked brands mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
For a ~2,000-page site, you don’t need an enterprise SEO platform. The main tool type to look for is a website crawler / technical SEO spider.
Tool types to consider
- Website crawler / SEO spider — the main one.
It crawls your pages like a search engine and reports 404s, 5xx errors, redirected URLs, redirect chains, and redirect loops. Examples include Screaming Frog, Sitebulb, and Ahrefs Site Audit. Sitebulb specifically reports broken/redirected internal links and redirect chains, while Ahrefs explicitly detects redirect loops. Sitebulb Support Ahrefs
- Dedicated broken-link checker — useful for a quick check.
These are simpler if your only concern is finding dead internal/external links. Ahrefs, for example, has a dedicated broken-link checker that can identify 404s and redirects and export the results. Ahrefs
- HTTP/status-code checker — useful for troubleshooting individual URLs.
This lets you inspect the actual sequence of HTTP responses, e.g. 301 → 302 → 301 → ..., which is particularly useful when diagnosing a redirect loop. Ahrefs Help Center
What I'd look for in your case
For a 2,000-page local-business site, prioritize a crawler that gives you:
- 4xx/5xx errors
- Internal links pointing to broken URLs
- Redirect chains
- Redirect loops
- The final destination of redirects
- CSV/Excel export
- Scheduled recurring crawls, so you don't have to manually check the site every time
You don't necessarily need backlink analysis, rank tracking, or a giant all-in-one SEO suite just for this job.
Simple workflow: run a full crawl → filter for 4xx, 5xx, redirects, and redirect loops → export the affected URLs and their referring pages → fix the links/redirect rules → crawl again to verify. At 2,000 pages, this is a very manageable crawl size. Ahrefs sitebulb.com
Behind this answer: no web searches, 3 tracked brands mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
Answer 3 of 3, 16th Sep 2026, unknown, does not mention you
For a ~2,000-page site, you don’t need an elaborate setup. I’d look at site-crawler / technical SEO audit tools that crawl the whole site and report HTTP status codes and redirect behavior.
Tool types to consider
- Dedicated website crawler — probably the simplest fit.
Tools such as Screaming Frog SEO Spider and Sitebulb crawl your pages and identify 404/4xx broken links, redirected URLs, redirect chains, and other crawl problems. Sitebulb, for example, has dedicated reports for broken/redirected internal links and redirect chains. Sitebulb Support Sitebulb
- Cloud-based SEO audit platform.
Ahrefs Site Audit can crawl the site and specifically flag redirect loops and redirect chains, as well as broken internal/external links. Ahrefs Help Center Ahrefs Help Center
This is attractive if you don't want to install software or want recurring automated crawls.
- Lightweight broken-link checker.
If your immediate concern is simply “which links are dead?”, a broken-link checker can be enough. Ahrefs has a free checker for broken inbound/outbound links, although a full crawler is more useful for diagnosing where the broken links occur and finding redirect problems. Ahrefs
- Search-engine diagnostics.
Google Search Console is useful as a secondary check for crawl/indexing problems, but I wouldn't use it as the primary tool for auditing all 2,000 pages.
What I'd look for in the tool
For your situation, make sure it can report:
- 4xx errors — especially 404s.
- 5xx errors — server-side failures.
- Redirect chains — e.g.
A → B → C. - Redirect loops — e.g.
A → B → A. Ahrefs Help Center - The page containing the bad link — crucial for fixing internal links.
- Bulk export to CSV/Sheets — useful when there are hundreds of findings.
- Scheduled crawls — so you don't have to remember to check manually.
For a 2,000-page local-business site, a crawler is the category I'd start with. You can run a crawl, filter to 4xx/5xx and redirects, fix the relatively small number of actual problems, and then rerun it to verify.
One important distinction: a redirect chain isn't the same thing as a redirect loop. A chain eventually reaches a destination; a loop never resolves. Ahrefs Help Center Ahrefs Help Center
If you tell me what your site runs on (WordPress, Shopify, Wix, Squarespace, custom, etc.), I can narrow this down to the simplest/cheapest tool setup for your 2,000 pages.
Behind this answer: no web searches, 3 tracked brands mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
"as an agency auditing many client sites, what crawler features save time finding broken links, redirect chains, and creating client-ready reports"
For an agency auditing dozens or hundreds of client sites, the biggest time savings come from features that reduce manual triage and turn raw crawl data into actionable client deliverables. The crawler itself matters, but the workflow around prioritization, exports, and reporting matters just as much. Screaming Frog Crawle
1. Broken link discovery features
Look for:
- Full internal + external link crawling
- Finds every page linking to a dead URL, not just the dead URL itself.
- Shows:
- Source page
- Broken destination
- Anchor text
- HTTP status code
- Number of internal links pointing to it
- Impact prioritization
- Sort broken links by:
- Traffic-driving pages
- Number of internal links
- Page importance
- Template/location (header, footer, navigation, body content)
- Bulk exports
- CSV/XLS exports with developer-friendly columns save hours of cleanup before sending fixes. Built For SEO Screaming Frog
- Soft 404 detection
- Catches pages returning
200 OKbut behaving like missing pages. - Broken asset checks
- Images, scripts, CSS files, PDFs, and downloads can create client-visible issues even when pages load.
2. Redirect auditing features
Redirect work is where agencies lose a lot of time because "the URL works" does not mean the implementation is clean.
Useful features:
- Redirect chain mapping
- Example output:
old-page.com
↓ 301
archive-page.com
↓ 302
new-page.com
↓ 200
- The report should show every hop and the final destination. Ahrefs Screaming Frog
- Redirect loop detection
- Finds cases like:
A → B → A
- Redirect-to-error detection
- Flags:
Old URL → 301 → 404 page
- Migration mode
- Upload an old URL list and verify every redirect resolves correctly.
- Extremely useful for redesigns and domain migrations. Screaming Frog
- Chain length filtering
- Quickly isolate:
- 2+ hop chains
- 5+ hop chains
- loops
- temporary redirects
3. Agency workflow features
These usually save more time than extra SEO checks.
Client project management
Look for:
- Multiple client workspaces
- Saved crawl settings
- Recurring crawls
- Crawl history comparisons
- Team access
- Issue assignment
A good agency crawler should let you reopen last month's audit instead of rebuilding everything. Crawle
4. Client-ready reporting
The best reports translate technical problems into business language.
Useful features:
White-label reports
Include:
- Agency logo
- Client branding
- Custom colors
- Custom cover pages
- Executive summary
Severity scoring
Instead of:
127 URLs returning 404
Give:
127 broken links found; 14 affect high-value pages and navigation paths.
Issue grouping
Clients understand categories better:
- Critical:
- Broken conversion pages
- Redirect loops
- Server errors
- High priority:
- Redirect chains
- Broken internal links
- Maintenance:
- Old external links
- Minor metadata issues
Fix recommendations
Each issue should include:
| Issue | Why it matters | Action |
|---|---|---|
| 404 internal link | Users hit dead ends | Update/remove link |
| Redirect chain | Slower crawling, unnecessary hops | Point directly to final URL |
| Broken image | Poor UX | Replace asset |
5. Crawl efficiency features for many clients
For agency scale, prioritize:
- JavaScript rendering
- Needed for modern sites where links load dynamically.
- Custom crawl limits
- Example:
- Quick audit: 500 URLs
- Full audit: 100k+ URLs
- API access
- Lets you feed crawl data into dashboards or internal tools.
- Scheduled monitoring
- Automatically catches regressions after client updates.
- Change detection
- "This redirect appeared since last crawl" is much more valuable than a static report. Crawle
6. Small features that create big agency time savings
Often overlooked:
- Saved filters:
- "Show only client-critical issues"
- "Show only pages with >10 internal links"
- Bulk issue exports
- URL lists:
- Crawl only a staging area
- Check a migration list
- Audit a campaign landing page set
- Integrations:
- Google Analytics
- Google Search Console
- Looker Studio
- Project management tools
- Historical comparisons:
- "Broken links decreased from 42 → 3 after fixes"
Ideal agency crawler workflow
- Enter client domain
- Crawl site + sitemap
- Detect:
- 4xx/5xx errors
- redirect chains
- orphan pages
- broken assets
- Automatically prioritize issues
- Export:
- client PDF
- developer CSV
- internal checklist
- Re-crawl after fixes
- Show improvement report
Tools such as Screaming Frog, Ahrefs, and other agency-focused crawlers commonly emphasize these capabilities: link-level exports, redirect mapping, issue prioritization, and reporting workflows. Ahrefs Screaming Frog
For an agency, I would prioritize report automation + historical tracking + impact-based sorting over simply having the crawler find more issues. Finding 500 problems is easy; turning them into a client-approved action list is where the time is saved.
Behind this answer: no web searches, 2 tracked brands mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
For an agency crawling many client sites, the biggest time-savers aren't just “find 404s.” You want the crawler to turn raw crawl data into prioritized, explainable, repeatable client work.
1. Broken-link detection that includes the source page
Look for:
- 4xx/5xx detection with the exact URL that is broken.
- Source/inlink mapping — “this broken URL is linked from these 17 pages.”
- Anchor text and link type, so you can tell a client exactly what needs changing.
- External-link checking, not just internal links.
- Filtering by internal/external, status code, follow/nofollow, template, directory, etc.
That source-page context is particularly valuable: it turns “there are 43 broken links” into an actionable spreadsheet for the developer/content team. Screaming Frog Screaming Frog
2. Full redirect-chain visualization
A good crawler should automatically show:
/old-page → /old-page-2 → /new-page → 200
and ideally tell you:
- Number of hops
- HTTP vs JS/meta redirects
- Final destination
- Final status code
- Redirect loops
- Redirects ending in 4xx/5xx
- Which original pages link to the redirecting URL
This eliminates a lot of spreadsheet archaeology. Dedicated redirect-chain reports can map the entire hop sequence and flag loops. Screaming Frog Screaming Frog
3. “Fix this” rather than just “here's the problem”
For agency workflows, I'd prioritize a crawler that gives you action context:
| Finding | Useful crawler output |
|---|---|
| Broken link | Source → broken URL → status → anchor text |
| Redirect | Source → redirect → final URL |
| Redirect chain | Full A → B → C → final destination |
| Redirect to 404 | Original URL → hops → 404 |
| Internal link to redirect | Source → redirecting URL → final 200 |
| External broken link | Page → external URL → status |
| High-impact issue | Number of affected pages/inlinks |
That means your team can assign fixes without manually reconstructing what happened.
4. Bulk exports designed for agency handoff
Don't settle for “export CSV.”
Useful exports include:
- Broken links + source pages
- Redirect chains
- Redirects to errors
- All redirects
- All inlinks/outlinks
- Issue summaries
- Crawl overview
- URLs by status code
- Separate exports by client/project
For example, Screaming Frog supports bulk exports of 4xx inlinks and other crawl issues, while its reports cover redirect chains and redirects to errors. Screaming Frog Screaming Frog
5. Crawl comparison
This is huge for agencies.
After a client/developer fixes the site, you want:
Before crawl → changes → after crawl → remaining issues
rather than running another crawl and manually comparing two CSVs.
Useful comparison states are:
- New issues
- Fixed issues
- Persistent issues
- New URLs
- Missing URLs
- Changed redirects
- Changed status codes
Crawl comparison is specifically useful for identifying whether issues were fixed or introduced between crawls. Screaming Frog
6. Scheduled/automated crawling
Once you have dozens of clients, manually launching crawls becomes operational overhead.
I'd look for:
- Scheduled crawls
- Per-client crawl settings
- Automatic recrawling
- Crawl completion notifications
- Issue alerts
- Historical crawl storage
- Change detection
- API/webhooks
- Cloud crawling
Cloud/continuous crawlers increasingly combine client workspaces, historical data, link monitoring, alerts, exports, and recurring crawls specifically for agency workflows. Crawle Crawle
7. Client-ready reporting
This is where a crawler can save hours per client.
Ideally you can produce a report containing:
Executive summary
- Pages crawled
- Broken links
- Redirect chains
- 5xx errors
- Critical issues
- Issues fixed since previous crawl
Prioritized issues
- Issue
- Severity/impact
- Affected URLs
- Recommended action
Technical appendix
- Full URL-level evidence
- Source URLs
- Status codes
- Redirect paths
And preferably:
- White-label branding
- Custom logo/colors
- Client/project name
- PDF export
- CSV/Excel export
- Shareable report URL
- Scheduled reports
Some agency-focused crawlers now explicitly combine client workspaces, historical data, exports, reporting, and white-label functionality. Crawle
8. Templates and reusable crawl configurations
For an agency, standardization is a feature.
You should be able to create something like:
Standard Technical SEO Audit — Client Template
with your preferred:
- Crawl limits
- User agent
- JavaScript rendering
- robots.txt behavior
- Sitemap sources
- URL exclusions
- Custom extraction rules
- Status-code thresholds
- Report sections
Then apply that configuration to 50 clients instead of rebuilding it 50 times.
9. Client/project isolation
If you're managing many sites, I'd consider this nearly mandatory:
- One workspace per client
- Multiple sites/projects per client
- Team permissions
- Persistent filters
- Client-specific crawl history
- Client-specific report branding
- Tags/labels
- Notes/tasks
It prevents the classic agency problem of mixing data from different clients.
10. The killer feature: automatic prioritization
Raw crawler output isn't the bottleneck anymore. Deciding what matters is.
A really useful system could automatically say:
23 broken internal links
4 are on high-traffic pages
12 point to URLs with replacements available
7 are low-priority/footer links
or:
14 redirect chains
3 are 3+ hops
2 terminate in 404s
9 can be changed to direct 301s
That gives your account manager something they can actually put into a client report.
If I were defining the agency crawler feature set
I'd make the core workflow:
Crawl → Detect → Trace → Prioritize → Assign → Fix → Recrawl → Compare → Report
The features I'd consider most important, in roughly that workflow, are:
- Broken-link source mapping
- Automatic redirect-chain/loop detection
- Redirect-to-error detection
- Bulk issue exports
- Before/after crawl comparison
- Scheduled crawls + alerts
- Client workspaces
- White-label reports
- Reusable crawl templates
- API/webhooks/integrations
- Issue prioritization
- Historical crawl data
The key distinction is that an SEO crawler finds problems, while an agency crawler should minimize everything your team does after the crawl: figuring out impact, finding the source URL, handing work to developers, verifying fixes, and turning the results into something a client can understand.
A really useful system could automatically say:
23 broken internal links
4 are on high-traffic pages
12 point to URLs with replacements available
7 are low-priority/footer links
or:
14 redirect chains
3 are 3+ hops
2 terminate in 404s
9 can be changed to direct 301s
That gives your account manager something they can actually put into a client report.
If I were defining the agency crawler feature set
I'd make the core workflow:
Crawl → Detect → Trace → Prioritize → Assign → Fix → Recrawl → Compare → Report
The features I'd consider most important, in roughly that workflow, are:
- Broken-link source mapping
- Automatic redirect-chain/loop detection
- Redirect-to-error detection
- Bulk issue exports
- Before/after crawl comparison
- Scheduled crawls + alerts
- Client workspaces
- White-label reports
- Reusable crawl templates
- API/webhooks/integrations
- Issue prioritization
- Historical crawl data
The key distinction is that an SEO crawler finds problems, while an agency crawler should minimize everything your team does after the crawl: figuring out impact, finding the source URL, handing work to developers, verifying fixes, and turning the results into something a client can understand.
Behind this answer: no web searches, 1 tracked brand mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
Answer 3 of 3, 16th Sep 2026, unknown, does not mention you
For an agency auditing dozens or hundreds of client sites, the biggest time savings come from crawlers that turn raw crawl data into prioritized, client-ready deliverables rather than just finding errors. The features below tend to have the highest operational impact. Crawle Screaming Frog
1. Broken link detection that shows impact, not just errors
A useful agency crawler should provide:
- Source URL → broken destination URL mapping
- “Homepage links to /old-service-page (404)” is far more useful than “404 found.”
- HTTP status classification
- Separate:
- 404 missing pages
- 410 removed pages
- 5xx server failures
- blocked URLs
- timeouts
- Internal link counts
- Prioritize a broken URL linked from 200 pages over one buried on an old blog post.
- Anchor text reporting
- Helps writers/developers know what wording needs updating.
- External link checking
- Finds outbound links pointing to dead resources. Screaming Frog
Agency workflow win:
Export a developer fix list with columns:
Source page | Broken URL | Status code | Anchor text | Internal links pointing here | Priority
2. Redirect chain and loop analysis
Many crawlers only tell you “301 exists.” Agencies need the full path.
Look for:
- Chain visualization
- Example:
/old-page
↓ 301
/archive-page
↓ 302
/new-page
↓ 200
- Chain length
- Flag anything beyond a single redirect.
- Redirect loops
- Example:
/page-a → /page-b → /page-a
- Final destination status
- A redirect ending in another 404 is a hidden issue.
- Bulk redirect auditing
- Upload old URLs after migrations and verify every destination. Ahrefs Screaming Frog
Agency workflow win:
Generate a “redirect cleanup” sheet for developers instead of manually tracing URLs.
3. White-label client reporting
This is usually where agencies save the most time.
High-value reporting features:
- Custom logo, colors, and agency branding
- Client-specific dashboards
- Executive summary pages
- “Issues found / fixed / remaining” tracking
- PDF export
- Scheduled reports
- Shareable client links
- Historical comparisons
A client usually does not want:
“Found 437 crawl errors.”
They want:
“We identified 23 broken links affecting 14 important pages. Here are the fixes prioritized by impact.”
Some crawler platforms specifically focus on agency workspaces, white-label reports, exports, and historical change tracking. Crawle
4. Prioritization and issue scoring
Raw crawls create spreadsheet overload.
Useful scoring:
- Critical:
- Homepage broken links
- Important landing pages returning errors
- Redirect loops
- High:
- Many internal links pointing to 404s
- Migration redirect chains
- Medium:
- Old blog links
- External broken links
- Low:
- Minor metadata warnings
The best tools connect the issue to business impact rather than just counting errors. SeoScrub
5. Crawl configuration for many clients
Agency-friendly crawlers should support:
- Crawl templates by client type:
- Local business site
- Ecommerce
- SaaS
- Enterprise
- Saved settings
- Multiple projects
- Crawl scheduling
- API access
- Bulk URL uploads
- Sitemap crawling
- JavaScript rendering
- Crawl limits/throttling
This avoids rebuilding settings for every audit.
6. Exports your team can actually use
Look for:
- CSV exports
- Google Sheets compatibility
- API access
- Jira/Trello/Asana integrations
- Developer-friendly exports
Ideal exports:
Broken Links Report
URL
Issue
Status
Linked From
Anchor Text
Recommended Fix
Redirect Report
Old URL
Redirect Type
Chain Steps
Final URL
Final Status
Action Needed
7. Historical comparison
Very useful for retainers:
- Compare this month vs last month
- Show issues resolved
- Detect regressions after site releases
- Prove ongoing SEO maintenance value
A “before/after” report is often more valuable to clients than a single audit snapshot. Crawle
8. Multi-client agency management
For a large portfolio, look for:
- Client folders/workspaces
- User permissions
- Notes/comments on issues
- Assign issues to team members
- Client-specific branding
- Crawl quotas
- Audit history
A practical agency crawler checklist
| Feature | Time saved |
|---|---|
| Broken link source mapping | ⭐⭐⭐⭐⭐ |
| Redirect chain visualization | ⭐⭐⭐⭐⭐ |
| White-label PDFs | ⭐⭐⭐⭐⭐ |
| Prioritized issue scoring | ⭐⭐⭐⭐⭐ |
| Scheduled crawls | ⭐⭐⭐⭐ |
| Historical comparisons | ⭐⭐⭐⭐ |
| Bulk URL auditing | ⭐⭐⭐⭐ |
| API/export options | ⭐⭐⭐⭐ |
| JavaScript crawling | ⭐⭐⭐ |
| Raw crawl data access | ⭐⭐⭐ |
For an agency at scale, I would prioritize report automation + issue prioritization + client workspaces over simply having the fastest crawler. A crawler that finds 10,000 issues but requires an SEO specialist to manually turn them into a client report becomes a bottleneck.
Behind this answer: no web searches, 2 tracked brands mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
"I'm a developer wanting to reproduce a crawler's broken-link findings locally, what tools let me simulate js rendering and inspect redirect chains step-by-step"
For reproducing crawler broken-link findings locally, I’d use a two-layer setup: a real browser for JS-rendered behavior, plus an HTTP client for isolating redirects.
- playwright.dev is the strongest all-around choice. It runs Chromium/Firefox/WebKit, executes JS, lets you change user-agent and other browser conditions, and exposes
request,response,requestfailed,redirectedFrom()andredirectedTo(). That makes it particularly useful for determining whether a crawler's “broken link” exists in the original HTML, appears after JS rendering, or fails only after navigation. Playwright Playwright Playwright - Chrome DevTools → Network is best for interactive investigation. Turn on Preserve log, reload, then inspect the document requests and their
Locationheaders/statuses. Exporting a HAR gives you a reproducible record of the network sequence; Chrome's DevTools APIs represent network requests in HAR format as well. Chrome for Developers - curl.se is ideal for separating server-side redirects from browser/JS behavior. For example,
curl -vexposes request/response headers, while--trace/--trace-asciigives considerably more debugging information. Curl Curl
A useful workflow is therefore:
Crawler reports /old-page as broken
↓
curl /old-page
↓
inspect HTTP 301/302/307/308 chain
↓
Playwright loads /old-page in Chromium
↓
inspect browser requests + JS execution
↓
Chrome DevTools/HAR when manual inspection is needed
For example, Playwright can log what the rendered browser actually encounters:
import { chromium } from 'playwright';
const browser = await chromium.launch({ headless: false });
const context = await browser.newContext({
userAgent: 'YOUR-CRAWLER-UA'
});
const page = await context.newPage();
page.on('request', req => {
console.log('>>', req.method(), req.url());
});
page.on('response', res => {
console.log('<<', res.status(), res.url());
});
page.on('requestfailed', req => {
console.log('FAILED', req.url(), req.failure());
});
const response = await page.goto('https://example.com/problem-url', {
waitUntil: 'load'
});
let req = response?.request();
console.log('\nRedirect chain:');
const chain = [];
while (req) {
chain.unshift(req);
req = req.redirectedFrom();
}
for (const r of chain) {
const res = await r.response();
console.log(res?.status(), r.url());
}
await page.waitForTimeout(3000);
await browser.close();
Playwright explicitly links redirected requests through redirectedFrom()/redirectedTo(), so you can reconstruct a multi-hop server redirect rather than seeing only the final navigation. Also note that a 404/503 generates a normal HTTP response in Playwright; requestfailed is for failures where the browser couldn't successfully obtain an HTTP response, such as certain network errors. Playwright
One particularly useful diagnostic is to run the same URL twice: JS enabled and JS disabled. Playwright supports javaScriptEnabled: false. If the crawler's finding only reproduces with JS enabled, you're probably dealing with client-side routing/navigation or dynamically generated links rather than a straightforward HTTP broken link. Playwright
If you're trying to match a specific crawler closely, also reproduce its user-agent, cookies/auth, viewport, HTTP method, headers, robots behavior, JS wait time, and redirect limit. Differences there are a common reason why curl says “200 OK” while an SEO crawler reports a broken URL. Playwright's request API can even set maxRedirects: 0, which is handy when you want to examine each redirect hop independently instead of automatically following the chain. Playwright
Behind this answer: no web searches
ChatGPT answered from its own knowledge, without searching the web.
For reproducing crawler broken-link findings locally, I’d use a two-layer setup: a real browser for JS-rendered behavior, plus an HTTP client for isolating redirects.
- playwright.dev is the strongest all-around choice. It runs Chromium/Firefox/WebKit, executes JS, lets you change user-agent and other browser conditions, and exposes
request,response,requestfailed,redirectedFrom()andredirectedTo(). That makes it particularly useful for determining whether a crawler's “broken link” exists in the original HTML, appears after JS rendering, or fails only after navigation. Playwright Playwright Playwright - Chrome DevTools → Network is best for interactive investigation. Turn on Preserve log, reload, then inspect the document requests and their
Locationheaders/statuses. Exporting a HAR gives you a reproducible record of the network sequence; Chrome's DevTools APIs represent network requests in HAR format as well. Chrome for Developers - curl.se is ideal for separating server-side redirects from browser/JS behavior. For example,
curl -vexposes request/response headers, while--trace/--trace-asciigives considerably more debugging information. Curl Curl
A useful workflow is therefore:
Crawler reports /old-page as broken
↓
curl /old-page
↓
inspect HTTP 301/302/307/308 chain
↓
Playwright loads /old-page in Chromium
↓
inspect browser requests + JS execution
↓
Chrome DevTools/HAR when manual inspection is needed
For example, Playwright can log what the rendered browser actually encounters:
import { chromium } from 'playwright';
const browser = await chromium.launch({ headless: false });
const context = await browser.newContext({
userAgent: 'YOUR-CRAWLER-UA'
});
const page = await context.newPage();
page.on('request', req => {
console.log('>>', req.method(), req.url());
});
page.on('response', res => {
console.log('<<', res.status(), res.url());
});
page.on('requestfailed', req => {
console.log('FAILED', req.url(), req.failure());
});
const response = await page.goto('https://example.com/problem-url', {
waitUntil: 'load'
});
let req = response?.request();
console.log('\nRedirect chain:');
const chain = [];
while (req) {
chain.unshift(req);
req = req.redirectedFrom();
}
for (const r of chain) {
const res = await r.response();
console.log(res?.status(), r.url());
}
await page.waitForTimeout(3000);
await browser.close();
Playwright explicitly links redirected requests through redirectedFrom()/redirectedTo(), so you can reconstruct a multi-hop server redirect rather than seeing only the final navigation. Also note that a 404/503 generates a normal HTTP response in Playwright; requestfailed is for failures where the browser couldn't successfully obtain an HTTP response, such as certain network errors. Playwright
One particularly useful diagnostic is to run the same URL twice: JS enabled and JS disabled. Playwright supports javaScriptEnabled: false. If the crawler's finding only reproduces with JS enabled, you're probably dealing with client-side routing/navigation or dynamically generated links rather than a straightforward HTTP broken link. Playwright
If you're trying to match a specific crawler closely, also reproduce its user-agent, cookies/auth, viewport, HTTP method, headers, robots behavior, JS wait time, and redirect limit. Differences there are a common reason why curl says “200 OK” while an SEO crawler reports a broken URL. Playwright's request API can even set maxRedirects: 0, which is handy when you want to examine each redirect hop independently instead of automatically following the chain. Playwright
Behind this answer: no web searches
ChatGPT answered from its own knowledge, without searching the web.
Answer 3 of 4, 17th Sep 2026, unknown, does not mention you
For reproducing crawler broken-link findings locally, I’d use a two-layer setup: a real browser for JS-rendered behavior, plus an HTTP client for isolating redirects.
- playwright.dev is the strongest all-around choice. It runs Chromium/Firefox/WebKit, executes JS, lets you change user-agent and other browser conditions, and exposes
request,response,requestfailed,redirectedFrom()andredirectedTo(). That makes it particularly useful for determining whether a crawler's “broken link” exists in the original HTML, appears after JS rendering, or fails only after navigation. Playwright Playwright Playwright - Chrome DevTools → Network is best for interactive investigation. Turn on Preserve log, reload, then inspect the document requests and their
Locationheaders/statuses. Exporting a HAR gives you a reproducible record of the network sequence; Chrome's DevTools APIs represent network requests in HAR format as well. Chrome for Developers - curl.se is ideal for separating server-side redirects from browser/JS behavior. For example,
curl -vexposes request/response headers, while--trace/--trace-asciigives considerably more debugging information. Curl Curl
A useful workflow is therefore:
Crawler reports /old-page as broken
↓
curl /old-page
↓
inspect HTTP 301/302/307/308 chain
↓
Playwright loads /old-page in Chromium
↓
inspect browser requests + JS execution
↓
Chrome DevTools/HAR when manual inspection is needed
For example, Playwright can log what the rendered browser actually encounters:
import { chromium } from 'playwright';
const browser = await chromium.launch({ headless: false });
const context = await browser.newContext({
userAgent: 'YOUR-CRAWLER-UA'
});
const page = await context.newPage();
page.on('request', req => {
console.log('>>', req.method(), req.url());
});
page.on('response', res => {
console.log('<<', res.status(), res.url());
});
page.on('requestfailed', req => {
console.log('FAILED', req.url(), req.failure());
});
const response = await page.goto('https://example.com/problem-url', {
waitUntil: 'load'
});
let req = response?.request();
console.log('\nRedirect chain:');
const chain = [];
while (req) {
chain.unshift(req);
req = req.redirectedFrom();
}
for (const r of chain) {
const res = await r.response();
console.log(res?.status(), r.url());
}
await page.waitForTimeout(3000);
await browser.close();
Playwright explicitly links redirected requests through redirectedFrom()/redirectedTo(), so you can reconstruct a multi-hop server redirect rather than seeing only the final navigation. Also note that a 404/503 generates a normal HTTP response in Playwright; requestfailed is for failures where the browser couldn't successfully obtain an HTTP response, such as certain network errors. Playwright
One particularly useful diagnostic is to run the same URL twice: JS enabled and JS disabled. Playwright supports javaScriptEnabled: false. If the crawler's finding only reproduces with JS enabled, you're probably dealing with client-side routing/navigation or dynamically generated links rather than a straightforward HTTP broken link. Playwright
If you're trying to match a specific crawler closely, also reproduce its user-agent, cookies/auth, viewport, HTTP method, headers, robots behavior, JS wait time, and redirect limit. Differences there are a common reason why curl says “200 OK” while an SEO crawler reports a broken URL. Playwright's request API can even set maxRedirects: 0, which is handy when you want to examine each redirect hop independently instead of automatically following the chain. Playwright
Behind this answer: no web searches
ChatGPT answered from its own knowledge, without searching the web.
Answer 4 of 4, 16th Sep 2026, unknown, does not mention you
For reproducing crawler broken-link reports locally, I’d use two layers: a real browser for JavaScript behavior, and an HTTP client for exact redirect/header inspection.
- playwright.dev — best overall choice. It runs Chromium/Firefox/WebKit, executes client-side JS, and exposes request/response events. Importantly, Playwright links redirects via
redirectedFrom()/redirectedTo(), so you can reconstruct the entire server-side redirect chain programmatically. Playwright
import { chromium } from 'playwright';
const browser = await chromium.launch({ headless: true });
const page = await browser.newPage();
page.on('response', async response => {
const req = response.request();
console.log(response.status(), req.method(), response.url());
});
page.on('requestfailed', req => {
console.log('FAILED', req.url(), req.failure());
});
await page.goto('https://example.com', {
waitUntil: 'networkidle'
});
await browser.close();
This is especially useful when the crawler says a link is broken but curl says it's fine—the URL may be generated, modified, or requested only after JavaScript runs.
- curl.se — best for dissecting HTTP redirects. Start without following redirects so you can inspect each hop manually:
curl -sv -o /dev/null https://example.com/old-url
Look for:
< HTTP/2 301
< location: /new-url
Then request that Location yourself. Once you've understood the individual hops, compare with automatic following:
curl -Lsv -o /dev/null https://example.com/old-url
For especially confusing cases, --trace-ascii and --trace-time expose substantially more of the client/server exchange. GitHub Curl
- Chrome DevTools Network panel — best interactive debugger. Turn on Preserve log before navigating; otherwise redirects/navigation can wipe the evidence you're trying to inspect. You can then inspect status, headers, initiators, timing, and export the session as HAR. Chrome Developers Chrome Developers Chrome Developers
A good reproduction workflow is therefore:
crawler finding
│
▼
curl without -L
│
├── HTTP redirect/error? ──► inspect each Location hop
│
▼
Playwright/Chromium
│
├── execute JS
├── capture navigation
├── capture fetch/XHR
└── inspect final DOM links
│
▼
Chrome DevTools/HAR
│
└── manually compare browser behavior
▼
crawler behavior
The big thing to match is the crawler's environment. A discrepancy may come from user-agent, cookies, authentication, JS execution, timeout, robots behavior, HTTP vs HTTPS, HEAD vs GET, geography, or whether the crawler considers a redirect chain itself an error. Also test curl -A 'crawler-user-agent' ... when you know the crawler's UA.
If I were building a repeatable local debugging harness, I'd choose Playwright + curl: Playwright for rendered-page/link discovery and browser requests, curl for surgical HTTP-level verification.
Behind this answer: no web searches
ChatGPT answered from its own knowledge, without searching the web.
"what are the best tools for crawling very large websites to find broken links and redirect chains efficiently?"
For very large sites—hundreds of thousands to millions of URLs—the choice is less about basic “find 404s” capability and more about crawl throughput, storage architecture, redirect analysis, URL discovery, and export/API access.
My shortlist
| Tool | Best fit | Large-site scale | Broken links | Redirect chains | Key consideration |
|---|---|---|---|---|---|
| screamingfrog.co.uk | Power users / maximum control | Millions+ with suitable hardware | Excellent | Excellent | Desktop, so hardware becomes the bottleneck |
| sitebulb.com | Large/enterprise sites without managing infrastructure | Up to 10M URLs/audit | Excellent | Excellent | Cloud-based and particularly convenient for huge crawls |
| ahrefs.com | SEO teams wanting crawler + broader SEO intelligence | Very large | Excellent | Excellent | Particularly useful if you're already using Ahrefs |
| Custom crawler | Engineering/data-heavy workflows | Potentially unlimited | Excellent | Excellent | Maximum throughput/control, substantially more engineering |
1. Screaming Frog — best for deep technical control
Screaming Frog's SEO Spider is particularly strong when the goal is forensic crawling rather than just an SEO dashboard.
It can find 404/5xx errors, audit redirects, identify redirect chains and loops, and export the problematic URLs along with their source URLs. Screaming Frog
For scale, its database-storage mode has a default 5-million-URL limit, which isn't a hard ceiling. Screaming Frog says appropriate hardware can take it beyond that; it gives roughly 2M URLs as a typical target with 4 GB allocated RAM and recommends SSD storage. Screaming Frog Screaming Frog
Why I'd use it: if you want to inspect exactly which page links to which redirecting/broken URL, manipulate crawl configuration aggressively, and export raw data for further processing.
2. Sitebulb Cloud — particularly compelling for millions of URLs
Sitebulb is worth serious consideration if “very large” means millions of URLs.
Sitebulb currently advertises Cloud crawls of up to 10 million URLs per audit, with cloud infrastructure removing the local-machine constraint. It also supports large-scale JavaScript crawling. Sitebulb Sitebulb
For your specific use case, Sitebulb has dedicated reporting for:
- Broken/not-found internal links
- Redirected internal links
- Redirect chains
- Chain length
- Bulk exports of redirect-chain data
Sitebulb Support Sitebulb SupportIt also has useful mechanisms for large sites where crawling from the homepage alone isn't sufficient: you can feed it XML sitemaps and URLs from sources such as Google Search Console and Analytics. Sitebulb Support
Why I'd use it: probably the most straightforward option when you want enterprise-scale crawling without operating your own crawler infrastructure.
3. Ahrefs — excellent if the crawl is part of a broader SEO workflow
Ahrefs's Site Audit explicitly detects redirect-chain issues, while its broader index also lets you investigate things such as broken backlinks and redirected targets. Ahrefs Help Center Ahrefs Help Center
This becomes particularly useful if you're asking questions like:
“Which broken/redirected URLs are actually important because they have backlinks?”
rather than simply:
“Give me every 404.”
Why I'd use it: when broken links and redirects need to be combined with backlinks, organic-search data, historical SEO data, and competitive research.
4. A custom crawler — if throughput is the primary requirement
If you're talking about 10M–100M+ URLs, or you need to crawl repeatedly as part of an engineering pipeline, I'd consider building around an asynchronous HTTP crawler rather than relying entirely on an SEO application.
A specialized crawler can maintain something like:
source_url
↓
HTTP response
↓
301/302/307/308?
↓
redirect_target_1
↓
redirect_target_2
↓
final_url
↓
final_status
Then you can efficiently flag:
404 / 410
5xx
redirect → 404
redirect → redirect → 200
redirect loops
>1 redirect hop
HTTP → HTTPS chains
old-domain → new-domain → canonical-domain chains
For massive sites, I'd store the crawl in something like a columnar database/object-storage pipeline rather than trying to keep the entire crawl in RAM.
What I'd choose by size
- <100K URLs: Screaming Frog or Sitebulb. Don't over-engineer it.
- 100K–2M: Screaming Frog becomes very attractive if you have a good SSD/workstation; Sitebulb Cloud is easier operationally.
- 2M–10M: Sitebulb Cloud or a carefully configured Screaming Frog deployment. Sitebulb's cloud architecture becomes a significant advantage. Sitebulb Sitebulb
- 10M+ / continuous monitoring: custom crawler or an enterprise/cloud crawling platform, potentially supplemented by Screaming Frog/Sitebulb for investigation.
- SEO + backlink significance: Ahrefs alongside whichever crawler you're using.
One important optimization
For broken-link and redirect-chain hunting, don't blindly crawl everything a crawler can discover.
On huge sites, parameters, faceted navigation, external URLs, subdomains, resources, and infinite pagination can explode the crawl. Sitebulb specifically recommends controlling these dimensions for large crawls. Sitebulb Support
A very effective architecture is:
Sitemap URLs + internal-link discovery + known URL lists → crawl only HTML → record every link relationship → separately resolve redirects → export only anomalies.
That gives you much more useful data per request than turning on every possible crawler feature.
If you tell me roughly how many URLs (1M, 10M, 100M+), whether the site is JS-heavy, and whether you need continuous/automated crawling, I can narrow this down to a concrete architecture and configuration.
4. A custom crawler — if throughput is the primary requirement
If you're talking about 10M–100M+ URLs, or you need to crawl repeatedly as part of an engineering pipeline, I'd consider building around an asynchronous HTTP crawler rather than relying entirely on an SEO application.
A specialized crawler can maintain something like:
source_url
↓
HTTP response
↓
301/302/307/308?
↓
redirect_target_1
↓
redirect_target_2
↓
final_url
↓
final_status
Then you can efficiently flag:
404 / 410
5xx
redirect → 404
redirect → redirect → 200
redirect loops
>1 redirect hop
HTTP → HTTPS chains
old-domain → new-domain → canonical-domain chains
For massive sites, I'd store the crawl in something like a columnar database/object-storage pipeline rather than trying to keep the entire crawl in RAM.
What I'd choose by size
Behind this answer: no web searches, 3 tracked brands mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
For very large sites, I’d separate the choices by scale and workflow rather than looking for one universal winner.
| Tool | Best fit | Large-site capability | Broken links | Redirect chains | Main advantage |
|---|---|---|---|---|---|
| Screaming Frog SEO Spider | Deep technical audits | Millions of URLs with database storage | Excellent | Excellent | Maximum control and filtering |
| Sitebulb Cloud | Large/enterprise sites | Hundreds of thousands to millions+ | Excellent | Excellent | Cloud scalability + visualization |
| Botify | Enterprise SEO + log analysis | Very large enterprise sites | Yes | Yes | Combines crawling with search-engine log data |
| JetOctopus | High-volume cloud crawling | Very large sites | Yes | Yes | Fast crawling + log analysis |
| Lumar | Enterprise technical SEO | Enterprise scale | Yes | Yes | Cloud-based continuous auditing |
1. Screaming Frog — excellent for surgical link/redirect analysis
For specifically finding broken links, redirect chains, redirect loops, and the pages creating them, Screaming Frog is hard to beat.
Its particularly useful features include:
- Finds 4xx/5xx URLs and shows the source pages linking to them.
- Dedicated Redirect Chains and Redirect & Canonical Chains reports.
- Can identify the number of hops and redirect loops.
- Can crawl uploaded URL lists, which is extremely useful for migrations.
- Database-storage mode lets it handle millions of URLs rather than keeping the entire crawl in RAM. Screaming Frog Screaming Frog
For example, a chain like:
/old → /old2 → /new → /final
can be surfaced so you can change the original internal link to point directly to /final.
For large crawls, Screaming Frog recommends an SSD + database storage; its documented default limit is 5 million URLs, although it can go beyond that with appropriate hardware/configuration. Screaming Frog Screaming Frog
I'd choose this when: you have a technical SEO team that wants maximum control and the ability to slice/filter/export the crawl data.
2. Sitebulb Cloud — particularly attractive for millions of URLs
Sitebulb has become particularly interesting for large websites because its Cloud crawler is designed for substantial scale. Sitebulb says its cloud product can crawl sites ranging from thousands to millions of URLs, and supports high-speed crawling. Sitebulb Sitebulb
For your specific use case, it provides:
- Broken internal links
- Internal links pointing to redirects
- Redirect chains
- Bulk export of redirect-chain data
- Link-level analysis showing exactly where problematic URLs are linked from. Sitebulb Sitebulb Support
It also has URL-rewriting/exclusion controls that are valuable on huge sites where parameters can otherwise create enormous numbers of duplicate URLs. Sitebulb Support
I'd choose this when: you want cloud crawling and a more visual/diagnostic interface, particularly when multiple people need to work with the audit.
3. Botify — when crawling isn't enough
Botify makes more sense when your question isn't merely:
"What URLs are broken?"
but:
"Which technical problems are actually being encountered by Googlebot and consuming crawl activity?"
Its AlertPanel, for example, can monitor increases in crawler requests to 3xx and 4xx URLs using server log data. Botify Knowledge Base
That's a significant distinction for very large sites. A crawler can tell you that 100,000 URLs return 404, while log analysis can help establish whether search-engine crawlers are actually requesting those URLs.
I'd choose this when: you're dealing with a huge enterprise site and have access to server/CDN logs.
4. JetOctopus
JetOctopus is another cloud-oriented option worth considering for very large crawls, particularly if you want to combine technical crawling and log-file analysis.
It's particularly useful when you need to correlate:
URLs discovered → URLs crawled → HTTP status → redirects → Googlebot activity
rather than treating the crawler as an isolated auditing tool.
5. Lumar
Lumar is another enterprise-focused crawler suited to organizations that want ongoing technical monitoring rather than repeatedly running a desktop crawl.
It's more compelling when you want scheduled audits, alerts, workflow integration, and multiple technical SEO checks alongside broken-link/redirect detection.
What I'd use for a really large site
For something like a 5–50M URL ecommerce/content site, I'd actually use a combination:
Crawler → log analysis → database
For example:
Sitebulb/Screaming Frog
↓
Find every broken link + redirect chain
↓
Server/CDN logs
↓
Determine which errors/redirects search engines actually request
↓
SQL/warehouse
↓
Track the problem over time
The important optimization is not necessarily crawling every URL with a browser. On huge sites, JavaScript rendering can multiply crawl cost dramatically. Sitebulb, for example, distinguishes its fast HTML crawler from its Chrome-based renderer, with the latter downloading page resources and therefore taking longer. Sitebulb Support
My practical shortlist
- Up to ~1M URLs: Screaming Frog or Sitebulb.
- 1–10M URLs: Screaming Frog database mode or Sitebulb Cloud.
- 10M+ / enterprise: Sitebulb Cloud, Botify, JetOctopus, or Lumar depending on whether logs and continuous monitoring matter.
- Migration with a known URL inventory: Screaming Frog is especially useful because its List Mode can follow every redirect and report every hop. Screaming Frog
- Finding what Google actually encounters: pair a crawler with server-log analysis rather than relying on crawling alone.
If your primary objective is "crawl 10–100M URLs as fast as possible and dump broken links + complete redirect chains into a database", that's a somewhat different problem from ordinary technical SEO auditing, and I'd approach the tool selection differently.
3. Botify — when crawling isn't enough
Botify makes more sense when your question isn't merely:
"What URLs are broken?"
but:
"Which technical problems are actually being encountered by Googlebot and consuming crawl activity?"
Its AlertPanel, for example, can monitor increases in crawler requests to 3xx and 4xx URLs using server log data. Botify Knowledge Base
That's a significant distinction for very large sites. A crawler can tell you that 100,000 URLs return 404, while log analysis can help establish whether search-engine crawlers are actually requesting those URLs.
I'd choose this when: you're dealing with a huge enterprise site and have access to server/CDN logs.
4. JetOctopus
JetOctopus is another cloud-oriented option worth considering for very large crawls, particularly if you want to combine technical crawling and log-file analysis.
It's particularly useful when you need to correlate:
URLs discovered → URLs crawled → HTTP status → redirects → Googlebot activity
rather than treating the crawler as an isolated auditing tool.
5. Lumar
Lumar is another enterprise-focused crawler suited to organizations that want ongoing technical monitoring rather than repeatedly running a desktop crawl.
It's more compelling when you want scheduled audits, alerts, workflow integration, and multiple technical SEO checks alongside broken-link/redirect detection.
What I'd use for a really large site
For something like a 5–50M URL ecommerce/content site, I'd actually use a combination:
Crawler → log analysis → database
For example:
Sitebulb/Screaming Frog
↓
Find every broken link + redirect chain
↓
Server/CDN logs
↓
Determine which errors/redirects search engines actually request
↓
SQL/warehouse
↓
Track the problem over time
The important optimization is not necessarily crawling every URL with a browser. On huge sites, JavaScript rendering can multiply crawl cost dramatically. Sitebulb, for example, distinguishes its fast HTML crawler from its Chrome-based renderer, with the latter downloading page resources and therefore taking longer.
My practical shortlist
Behind this answer: no web searches, 4 tracked brands mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
Answer 3 of 4, 17th Sep 2026, unknown, does not mention you
For very large sites, especially when your main goals are broken-link discovery, redirect-chain detection, and efficient recrawling, I’d shortlist these:
| Tool | Best for | Large-site capability | Redirect/link diagnostics |
|---|---|---|---|
| Screaming Frog SEO Spider | Maximum control / technical SEO | Millions of URLs with database storage | Excellent |
| Sitebulb Cloud | Cloud-based large crawls + reporting | Up to 10M URLs/audit on advertised plans | Excellent |
| Lumar | Enterprise crawling | Enterprise-scale | Excellent |
| Botify | Huge enterprise sites + log/crawl analysis | Enterprise-scale | Excellent |
| Oncrawl | Crawl + log-file/data analysis | Enterprise-scale | Excellent |
| Custom crawler | Massive or highly specialized sites | Essentially unlimited with infrastructure | Whatever you build |
1. Screaming Frog — my first choice for hands-on technical crawling
Screaming Frog is particularly good when you want raw crawl data and precise control rather than a heavily abstracted SEO dashboard.
Its current SEO Spider supports database storage specifically for large crawls. Screaming Frog says the default limit is 5 million URLs, with substantially larger crawls possible depending on hardware; it gives an example of roughly 10M URLs on a machine with a 500GB SSD and 16GB RAM. Screaming Frog Screaming Frog
For your use case, I'd configure it to:
- Crawl HTML only initially.
- Use database storage on an SSD.
- Start from the XML sitemap(s) and the homepage/internal links.
- Export all 3xx responses.
- Examine the redirect destination of every 3xx.
- Identify chains such as
A → B → C → 200. - Identify loops such as
A → B → A. - Find internal links pointing to redirects rather than the final URL.
- Separately crawl external links if that's important.
Screaming Frog also supports restricting crawls by subdirectory, URL patterns, query parameters, and resource type, which can dramatically reduce wasted crawling on huge sites. Screaming Frog
Best fit: technical SEO teams that want maximum control and don't mind running the crawler themselves.
2. Sitebulb Cloud — easiest choice for large cloud crawls
Sitebulb is particularly attractive if you don't want your laptop/workstation to be the bottleneck.
Sitebulb Cloud advertises crawls of up to 10 million URLs per audit, while its desktop version is aimed at substantially smaller crawls. Its crawler can also use multiple threads/Chrome instances and lets you control URL-per-second limits. Sitebulb Sitebulb Support
It's also good when you need to turn crawl data into something humans can quickly understand. Sitebulb provides prioritized technical issues and visualizations rather than simply dumping millions of rows into a spreadsheet. Sitebulb
One particularly useful feature for large sites is combining crawl sources: Sitebulb recommends using XML sitemaps, Google Search Console/Analytics URLs, and seed lists in addition to ordinary link discovery. That's important because a pure link crawl won't necessarily discover orphaned URLs. Sitebulb Support
Best fit: large sites where you want cloud infrastructure + strong reporting without building your own crawler.
3. Lumar / Botify / Oncrawl — when "very large" means enterprise
If you're talking about tens of millions of URLs, multiple domains, huge international sites, or needing crawl data alongside server logs, I'd look beyond desktop crawlers.
These enterprise platforms become more interesting because the problem stops being merely:
"Can I crawl this site?"
and becomes:
"How do I efficiently crawl, segment, store, compare and analyze billions of URLs/request relationships?"
For example, combining crawler data + server logs + Search Console data + sitemaps can reveal things a conventional link crawl can't: URLs Googlebot actually visits, URLs users encounter, orphan URLs, crawl-budget patterns, and redirect behavior at scale.
The important distinction: finding redirects vs. finding bad redirects
For your particular objective, I wouldn't just look for a crawler that reports 301 and 302.
You want a crawl that lets you construct something like:
Internal link
↓
/old-product
↓ 301
/product
↓ 301
/products/product-name
↓ 200
and distinguish it from:
/old-product → /product → 200
The first is a redirect chain; the second is a single redirect.
I'd also look for these separately:
- 4xx links — especially internally linked 404/410 pages
- 5xx responses
- redirect loops
- chains >1 hop
- internal links to 3xx URLs
- redirects to irrelevant destinations
- redirects to another redirect
- redirects ending in 4xx/5xx
- canonical URLs that redirect
- sitemap URLs that redirect
- hreflang URLs that redirect
- redirects caused by HTTP→HTTPS or www/non-www normalization
- external links returning 3xx/4xx
- orphan URLs that aren't discoverable through normal internal linking
What I'd actually use
For a 100K–5M URL site, I'd probably start with Screaming Frog + database storage. It gives you unusually granular control and is very capable at this scale. Screaming Frog Screaming Frog
For a 1M–10M+ URL site, particularly if repeated crawls are needed, I'd lean toward Sitebulb Cloud or an enterprise crawler, because moving the crawl workload and storage off your workstation becomes increasingly valuable. Sitebulb Sitebulb
For a 10M–100M+ URL site, I'd seriously consider an enterprise crawler or a custom distributed crawler, rather than simply throwing more RAM at a desktop application.
And for a site where redirect problems are the primary objective, I'd use a two-stage approach:
- Discover URLs cheaply from sitemaps, internal links, historical crawl exports, GSC, etc.
- Run a focused HTTP crawl against those URLs and follow redirects, rather than rendering every page and downloading every resource.
That can reduce the crawl workload enormously while giving you a much cleaner redirect dataset.
If you tell me roughly whether you're dealing with 100K, 1M, 10M, or 100M+ URLs, I can give you a concrete crawling architecture—including Screaming Frog/Sitebulb settings, concurrency, SSD/RAM requirements, and a SQL/Python approach for detecting every redirect chain and loop.
Best fit: large sites where you want cloud infrastructure + strong reporting without building your own crawler.
3. Lumar / Botify / Oncrawl — when "very large" means enterprise
If you're talking about tens of millions of URLs, multiple domains, huge international sites, or needing crawl data alongside server logs, I'd look beyond desktop crawlers.
These enterprise platforms become more interesting because the problem stops being merely:
"Can I crawl this site?"
and becomes:
"How do I efficiently crawl, segment, store, compare and analyze billions of URLs/request relationships?"
For example, combining crawler data + server logs + Search Console data + sitemaps can reveal things a conventional link crawl can't: URLs Googlebot actually visits, URLs users encounter, orphan URLs, crawl-budget patterns, and redirect behavior at scale.
The important distinction: finding redirects vs. finding bad redirects
For your particular objective, I wouldn't just look for a crawler that reports 301 and 302.
You want a crawl that lets you construct something like:
Internal link
↓
/old-product
↓ 301
/product
↓ 301
/products/product-name
↓ 200
and distinguish it from:
/old-product → /product → 200
The first is a redirect chain; the second is a single redirect.
I'd also look for these separately:
- 4xx links — especially internally linked 404/410 pages
- 5xx responses
- redirect loops
- chains >1 hop
- internal links to 3xx URLs
- redirects to irrelevant destinations
- redirects to another redirect
- redirects ending in 4xx/5xx
- canonical URLs that redirect
- sitemap URLs that redirect
- hreflang URLs that redirect
- redirects caused by HTTP→HTTPS or www/non-www normalization
- external links returning 3xx/4xx
- orphan URLs that aren't discoverable through normal internal linking
What I'd actually use
For a 100K–5M URL site, I'd probably start with Screaming Frog + database storage. It gives you unusually granular control and is very capable at this scale.
Behind this answer: no web searches, 4 tracked brands mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
Answer 4 of 4, 16th Sep 2026, unknown, does not mention you
For very large sites, I’d separate the problem into two needs: high-throughput crawling and accurate HTTP/redirect analysis. The strongest options are:
| Tool | Best for | Large-site scale | Redirect chains | Broken links | Key advantage |
|---|---|---|---|---|---|
| Sitebulb Cloud | Large/enterprise sites | Up to 10M URLs/audit | ✅ | ✅ | Cloud crawling + strong diagnostics |
| JetOctopus | Huge sites / ecommerce | 10M–100M+ with enterprise plans | ✅ | ✅ | Very high crawl throughput + log analysis |
| Screaming Frog SEO Spider | Power users / technical SEO | Millions, hardware-dependent | ✅ | ✅ | Extremely configurable and excellent exports |
| Ahrefs Site Audit | SEO teams wanting SaaS | Very large | ✅ | ✅ | Combines crawling with backlink/index data |
1. Sitebulb Cloud — best all-around choice
For a site in the hundreds of thousands to several million URLs, I'd look closely at Sitebulb Cloud. Its current documentation says Cloud supports up to 10 million URLs per audit, while its enterprise offering is designed for much larger sites. It also lets you control crawl speed and concurrency rather than simply throwing requests at the server. Sitebulb Sitebulb
It's particularly useful for your use case because you can:
- identify 404/5xx URLs
- find internal links pointing to redirects
- identify redirect chains
- distinguish direct redirects from multi-hop chains
- control URL/second limits
- exclude unnecessary resources/parameters
- crawl JavaScript-rendered sites when necessary
For external links, Sitebulb can perform HTTP status checks without actually following external sites, which is a useful safety/performance optimization for large crawls. Sitebulb Support
2. JetOctopus — strongest option when "very large" means tens of millions+
JetOctopus is particularly interesting if you're talking about 10M+ URLs, huge ecommerce catalogs, or sites where crawling needs to be combined with server-log analysis.
Its enterprise offering currently advertises crawling 10M, 50M, 100M+ pages, and its platform combines crawler data with server logs, Google Search Console and analytics data. Tech SEO Hub Tech SEO Hub
That makes it useful for a more sophisticated workflow:
crawl → find redirects/404s → compare against actual Googlebot activity → prioritize fixes
Its log analyzer specifically surfaces things such as unintended redirect chains and URL patterns that inflate crawlable URL counts. Tech SEO Hub
JetOctopus also advertises a JavaScript crawler capable of 1M+ pages/day, although actual throughput will depend heavily on the site and rendering requirements. Tech SEO Hub
3. Screaming Frog — best if you want maximum control
Screaming Frog remains excellent if you're comfortable running the crawler yourself and have substantial hardware.
Its current FAQ says the SEO Spider can crawl millions of URLs, with its database-storage mode designed to reduce RAM pressure. It recommends roughly <2M URLs for typical use, but says considerably larger crawls are possible with sufficient hardware/memory. Screaming Frog
I'd particularly choose it when you want to:
- customize exactly what gets crawled
- control URL discovery/exclusions very precisely
- export huge datasets
- integrate the crawl into your own technical SEO workflow
- inspect individual redirect chains in detail
4. Ahrefs Site Audit — excellent if you're already using Ahrefs
Ahrefs is less compelling purely as a maximum-throughput crawler, but very useful when broken links are part of a broader SEO operation.
Its Site Audit explicitly detects redirect chains, while its broader link database lets you investigate broken backlinks and redirected targets—not just links discovered during your own crawl. Ahrefs Help Center Ahrefs
That distinction matters: a conventional crawler answers:
"What broken/redirected links exist on my site?"
Ahrefs can additionally help answer:
"Which external links point to those broken or redirected URLs?"
What I'd use at different scales
- <500K URLs: Screaming Frog or Sitebulb Desktop
- 500K–5M: Sitebulb Cloud or Screaming Frog with appropriately configured hardware
- 5M–10M: Sitebulb Cloud / JetOctopus
- 10M–100M+: JetOctopus or another enterprise/cloud crawler
- Need actual bot behavior too: JetOctopus + server logs
- Need backlink impact of broken URLs: Ahrefs alongside your crawler
The important thing is that crawl size isn't the only bottleneck. For redirect-chain work, you want a crawler that records the entire HTTP sequence, e.g.:
/old-page → 301 → /intermediate → 302 → /final-page → 200
rather than merely reporting that /old-page eventually returns 200. Ahrefs explicitly treats this as a redirect-chain issue, for example. Ahrefs Help Center
For millions of URLs, I'd also avoid blindly crawling every image, JS file, parameter combination, external domain, and faceted URL. Restricting those can make the difference between a useful crawl and an enormous crawl full of noise; Sitebulb's large-site guidance specifically recommends controlling external URLs, resources, parameters, and crawl scope. Sitebulb Support
If you tell me roughly how big the site is (1M, 10M, 100M+ URLs), whether it's JS-heavy, and whether you need the crawl to run from your own infrastructure or cloud, I can narrow this to the most suitable architecture and settings.
3. Screaming Frog — best if you want maximum control
Screaming Frog remains excellent if you're comfortable running the crawler yourself and have substantial hardware.
Its current FAQ says the SEO Spider can crawl millions of URLs, with its database-storage mode designed to reduce RAM pressure. It recommends roughly <2M URLs for typical use, but says considerably larger crawls are possible with sufficient hardware/memory.
I'd particularly choose it when you want to:
Behind this answer: no web searches, 3 tracked brands mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
"which software would you recommend for crawling sites with heavy JavaScript rendering to detect indexing issues?"
For heavy JavaScript sites, I’d shortlist:
- Screaming Frog SEO Spider — best for deep forensic audits
- Uses Chromium rendering to compare rendered vs raw HTML.
- Excellent for finding JS-injected issues: missing canonicals, altered titles, blocked indexing directives, broken internal links.
- Best if you want raw crawl data and custom extraction. Sitebulb Sitebulb
- Sitebulb — best for diagnosing JS SEO problems quickly
- Strong response-vs-render comparisons.
- Flags issues like “canonical only in rendered HTML,” “noindex only in response HTML,” and JS-modified metadata. Sitebulb Sitebulb Support
- Lumar (formerly DeepCrawl) — best for enterprise-scale sites
- Better for millions of URLs, scheduled crawls, integrations, and large teams. Barracuda SEO
For a typical React/Next.js/Vue site, my workflow would be:
- Screaming Frog or Sitebulb → crawl with JavaScript rendering enabled.
- Compare:
- response HTML vs rendered HTML
- indexability directives (
noindex, canonicals) - rendered content availability
- internal links after hydration
- structured data after JS execution
- Validate critical URLs with Google Search Console’s URL Inspection, since Google renders pages before indexing in many JS scenarios. Google for Developers
If you need one tool: Screaming Frog for engineers/SEOs doing investigations; Sitebulb for faster audits and reporting. Sitebulb
Behind this answer: no web searches, 3 tracked brands mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
For JavaScript-heavy sites where the goal is specifically finding indexing/rendering problems, I’d look at these:
- Sitebulb — probably the strongest fit if JS SEO is the primary concern. Its Chrome Crawler uses headless Chromium and, importantly, it has a Response vs Render report that lets you identify differences between the HTML returned by the server and the DOM after JavaScript executes. It can flag things such as rendered-only canonicals,
noindexdifferences, JS-modified titles, and JS-generated links. Sitebulb Support Sitebulb Sitebulb Support - Screaming Frog SEO Spider — excellent if you prefer a very data-heavy crawler and want extensive export/filtering capabilities. Its JavaScript rendering can be used to compare the raw response with rendered content. Sitebulb tends to provide more purpose-built guidance around the JS SEO problems it discovers. Sitebulb
- Google Search Console + URL Inspection — essential alongside either crawler. For individual URLs, Google lets you test the live URL and inspect the rendered page, loaded resources, JavaScript console output, and exceptions. This is particularly valuable for validating that what your crawler sees is consistent with Google's rendering. Google for Developers
- Chrome DevTools/Lighthouse — useful for debugging individual URLs rather than doing a large crawl. DevTools lets you inspect the rendered DOM, network requests, and JS errors. Sitebulb
What I'd use
For a serious JS SEO audit, I'd use:
Sitebulb → Google Search Console → Chrome DevTools
The important distinction is that you don't just want a crawler that executes JavaScript. You want one that can answer:
What did the server send, what did JavaScript turn it into, and did that transformation affect indexability?
That's where Sitebulb's response-vs-render comparison is particularly useful. For example, you can uncover situations where the raw HTML says one thing but the rendered DOM changes the canonical, robots directive, title, links, or actual page content. Sitebulb Sitebulb Support
Google also notes that JavaScript rendering has limitations, so a successful browser render isn't automatically proof that Google will index everything you see. Their recommended debugging workflow includes URL Inspection/Rich Results Test and checking the rendered HTML and JavaScript errors. Google for Developers Google for Developers
If you tell me roughly what you're crawling (e.g. React/Next.js ecommerce site, Angular SPA, 100k URLs, millions of URLs), I can compare Sitebulb vs Screaming Frog vs Lumar vs Oncrawl specifically for that use case.
Behind this answer: no web searches, 3 tracked brands mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
Answer 3 of 3, 16th Sep 2026, unknown, does not mention you
For JavaScript-heavy sites where the goal is specifically finding indexing/SEO problems, I’d narrow the field to Sitebulb and Screaming Frog, with enterprise tools becoming relevant at very large scale.
My shortlist
| Tool | JS rendering | Raw vs rendered comparison | Best use |
|---|---|---|---|
| Sitebulb | Chromium | Excellent | JS SEO diagnosis |
| Screaming Frog SEO Spider | Chromium | Very good | Deep technical SEO + flexible extraction |
| Lumar | Chromium | Good | Enterprise-scale crawling |
| Oncrawl | Rendering available | Good | Enterprise SEO + log/data analysis |
| Google Search Console | Google rendering | Page-level | Verifying what Google can actually see |
Sitebulb
For your particular use case, Sitebulb is probably the first tool I'd test. Its Chrome Crawler renders pages with headless Chrome and, importantly, compares the response HTML against the rendered HTML. That lets you identify things like:
- Canonicals changed by JavaScript
noindex/robots directives introduced after rendering- Titles and meta descriptions modified by JS
- Internal links injected by JavaScript
- Content that exists only after rendering
- Missing content caused by rendering failures
- Pages where the rendered DOM differs substantially from the server response Sitebulb Support Sitebulb Support Sitebulb Support
That response-vs-render comparison is particularly useful for indexing audits because a normal browser can make a site look perfectly healthy while the initial HTML contains very little useful content.
Sitebulb also has controls for things such as render timeout, cookies, infinite scrolling, and troubleshooting pages that aren't rendering correctly. Sitebulb Support
Screaming Frog
I'd choose Screaming Frog SEO Spider if you want a more traditional technical-SEO crawler and expect to do lots of custom extraction, URL filtering, regex/XPath work, and detailed investigation.
It can render JavaScript with Chromium and expose the differences between source and rendered pages. It's especially useful when you're combining JS rendering with a broader crawl containing things like status codes, canonicals, hreflang, structured data, internal links, redirects, etc. Sitebulb itself notes Screaming Frog as another option for JavaScript SEO auditing. Sitebulb
One important distinction
For indexing problems, don't just run a rendered crawl.
I'd actually run two passes:
- Raw/response HTML crawl
- Chromium-rendered crawl
Then look specifically for differences in:
<title> → canonical → robots → headings → body content → internal links → structured data
For example:
Response HTML
↓
canonical = /product/123
robots = index,follow
links = 12
↓ JavaScript execution
Rendered HTML
↓
canonical = /product/123?variant=red
robots = noindex
links = 47
That kind of discrepancy is much more valuable than simply knowing that "JavaScript is enabled."
Also, Google does render JavaScript, so "Google can render JS" doesn't mean a JS-heavy implementation is automatically safe for indexing. Rendering can still expose differences in canonicals, robots directives, links, and content. Sitebulb
If you tell me roughly how big the site is (e.g. 50k, 500k, 10M URLs) and whether it's React/Next.js/Vue/etc., I can give you a more specific crawler setup and the exact checks I'd run.
Behind this answer: no web searches, 3 tracked brands mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
"what platform should I use to analyze server log files alongside crawl data for comprehensive SEO auditing?"
If your goal is comprehensive technical SEO auditing where server logs and crawl data are analyzed together, I’d look primarily at Oncrawl and JetOctopus. Screaming Frog is also excellent, especially if you want a lower-cost/local workflow.
| Platform | Crawl + logs together | GSC/GA4 | Best fit |
|---|---|---|---|
| Oncrawl | Excellent | Yes | Enterprise/large sites and deep technical analysis |
| JetOctopus | Excellent | Yes | Large sites, crawl-budget analysis, integrated SEO datasets |
| Screaming Frog | Yes | Via imports/workflows | Smaller teams, analysts who want maximum control |
My practical recommendation
Oncrawl is probably the strongest fit if you mean "I want one platform that can continuously combine crawl data, server logs, and search-performance data." It explicitly combines crawl, log, and performance data and supports sources such as Google Search Console and GA4. It can ingest logs from infrastructure including Cloudflare, AWS, GCP and Azure. Oncrawl Oncrawl
JetOctopus is a particularly compelling alternative for very large sites. Its current platform combines crawls + server logs + GSC + GA4 in a shared analysis layer, so you can investigate a URL's crawlability alongside actual Googlebot activity and search performance. Tech SEO Platform Tech SEO Platform
Screaming Frog is the option I'd consider if you don't need a fully integrated cloud platform. Its Log File Analyser can import the SEO Spider's crawl data and match it against log events, allowing analyses such as "crawled by Googlebot but not found in the crawl" and "found in crawl but never appearing in logs." Screaming Frog Screaming Frog
What I'd choose by scenario
- Large enterprise / millions of URLs: Oncrawl or JetOctopus.
- Want crawl + logs + GSC + GA4 in one interface: Oncrawl or JetOctopus.
- Want detailed crawl-budget analysis: JetOctopus is worth serious consideration.
- Want maximum control and relatively inexpensive tooling: Screaming Frog.
- Already have a Screaming Frog-heavy workflow: Adding its Log File Analyser may be all you need.
- Need ongoing/automated log monitoring: Oncrawl or JetOctopus rather than a primarily desktop workflow.
The key capability isn't merely "can it parse logs?" It's whether you can join URL-level crawl state ↔ Googlebot visits ↔ indexability ↔ internal links ↔ GSC performance. That's where the cloud platforms become substantially more useful than a generic log-analysis system such as ELK/Kibana. JetOctopus explicitly positions its analysis around this cross-referencing, while Oncrawl provides crawl/log cross-analysis as well. Oncrawl Tech SEO Platform
If you tell me roughly how many URLs your site has (e.g. 100k, 1M, 10M+) and whether you're on Cloudflare/AWS/etc., I can narrow this down to the most appropriate setup and show you the exact SEO analyses I'd run.
JetOctopus is a particularly compelling alternative for very large sites. Its current platform combines crawls + server logs + GSC + GA4 in a shared analysis layer, so you can investigate a URL's crawlability alongside actual Googlebot activity and search performance. Tech SEO Platform Tech SEO Platform
Screaming Frog is the option I'd consider if you don't need a fully integrated cloud platform. Its Log File Analyser can import the SEO Spider's crawl data and match it against log events, allowing analyses such as "crawled by Googlebot but not found in the crawl" and "found in crawl but never appearing in logs." screamingfrog.co.uk screamingfrog.co.uk
Behind this answer: no web searches, 1 tracked brand mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
If your goal is comprehensive technical SEO auditing by joining server logs with crawl data, I’d shortlist JetOctopus, Oncrawl, and Botify rather than using a generic log platform like Splunk or ELK.
My practical shortlist
- JetOctopus — probably the best fit for a dedicated SEO team that wants a relatively straightforward crawl + log workflow. It combines crawling, server-log analysis, Google Search Console and GA4, and its “Impact” analysis explicitly connects Googlebot behavior with crawl/page attributes. Tech SEO Platform Tech SEO Platform
- Oncrawl — particularly strong if log analysis and segmentation are central to your audit. It can ingest logs from Cloudflare, AWS, GCP, Azure or direct files, combine them with crawl data and other sources, and analyze Googlebot, Bingbot and AI-crawler activity. Oncrawl Oncrawl
- Botify — worth considering for large enterprise sites where crawl, logs, search performance and revenue/traffic data need to live in one analytical environment. Its LogAnalyzer explicitly integrates server-log data with crawl data. Botify Knowledge Base Botify Knowledge Base
- Screaming Frog — excellent if you want a lower-complexity, desktop-based workflow. Its Log File Analyser can directly match log URLs against an SEO Spider crawl, showing which crawled/discoverable URLs are actually being accessed by bots. The limitation is that it's more of a file-based workflow than the large-scale cloud platforms above. Screaming Frog
What I'd choose by scenario
| Scenario | Platform to investigate |
|---|---|
| Crawl + logs + GSC/GA4 in one SEO workflow | JetOctopus |
| Deep log analysis, segmentation & large datasets | Oncrawl |
| Enterprise SEO/data ecosystem | Botify |
| Smaller site / consultant / desktop workflow | Screaming Frog |
| You already have a sophisticated observability stack | Splunk/ELK + an SEO crawler |
The key thing is that you don't just want a log viewer. For an audit, you want to join something like:
Crawl inventory → server requests → Googlebot activity → HTTP status → indexability → internal links → GSC performance
That lets you answer much more useful questions, such as “Which indexable pages are never crawled?”, “Is Google spending crawl activity on redirected/duplicate URLs?”, and “Which orphan pages are still receiving bot requests?” Oncrawl and JetOctopus are explicitly designed around this type of cross-analysis. Tech SEO Platform Oncrawl
If you tell me your approximate site size (e.g. 50K, 5M, 100M URLs), where the logs live (Cloudflare/AWS/Nginx/etc.), and whether you're an agency or in-house, I can narrow this down to the most appropriate platform and workflow.
Behind this answer: no web searches, 2 tracked brands mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
Answer 3 of 3, 17th Sep 2026, unknown, does not mention you
Oncrawl is probably the best fit if your priority is combining server logs + crawl data into one SEO auditing workflow. It explicitly cross-references crawl, log, Search Console, and analytics data and supports large-scale sites. Oncrawl Oncrawl
- Oncrawl: Best for integrated, large-scale technical SEO analysis.
- Botify: Strong alternative, particularly for enterprise sites and detailed segmentation across crawler, log, GSC, and traffic data. Botify Knowledge Base Botify Knowledge Base
- Screaming Frog Log File Analyser: Best budget/local option, but less comprehensive; free up to 1,000 log events. screamingfrog.co.uk
For a comprehensive audit, I'd shortlist Oncrawl vs. Botify rather than using a standalone log analyzer.
Behind this answer: no web searches, 2 tracked brands mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
"which crawler tools handle incremental crawls of huge sites without reprocessing unchanged pages?"
For huge sites where you want incremental recrawling and to avoid reprocessing unchanged pages, the strongest open-source choices are:
| Tool | Incremental crawling | Avoids unnecessary processing | Scale | Best fit |
|---|---|---|---|---|
| stormcrawler.apache.org | Excellent | ETag, Last-Modified, content signatures, adaptive scheduling | Very high | Continuous large-scale crawling |
| nutch.apache.org | Excellent | CrawlDB + fetch scheduling/change tracking | Very high | Batch/search-engine-style crawls |
| scrapy.org | Possible | Requires more configuration/custom state | High | Custom Python pipelines |
StormCrawler is particularly well matched to what you described. Its AdaptiveScheduler compares page signatures between fetches. Pages that keep changing get crawled more frequently, while unchanged pages get progressively longer fetch intervals. It can also persist Last-Modified and ETag, enabling conditional HTTP requests with If-Modified-Since / If-None-Match; a server can then return 304 Not Modified, avoiding downloading and parsing the body again. Apache StormCrawler
It is designed as a continuous distributed crawler rather than a sequence of full recrawls. Its URL frontier maintains crawl state and scheduling, and recursive crawls can use OpenSearch, Solr, SQL, or URLFrontier-backed storage with unique URL keys. Apache StormCrawler Apache StormCrawler
Nutch is the other serious option if batch processing is acceptable. Its CrawlDB records known URLs and when they were fetched, and its fetch-scheduling architecture is explicitly designed for large, incremental crawls that may run across multiple machines for weeks. Apache Confluence Apache Nutch™
Scrapy can certainly crawl at substantial scale—the project documents "broad crawls" similar to search-engine crawling—but incremental change-aware crawling isn't as turnkey. You'd generally add persistent URL state, HTTP-cache/conditional-request handling, fingerprints/content hashes, and your own recrawl scheduler. Scrapy Docs
So for something like a 10–100M URL site, I'd lean toward an architecture like StormCrawler → persistent URL frontier/status store → conditional GET → content hash → only send changed documents downstream. That separates checking whether a URL changed from expensive parsing/extraction/indexing, which is the key optimization at that scale.
Behind this answer: no web searches
ChatGPT answered from its own knowledge, without searching the web.
For huge sites with repeated/incremental crawls, these are the strongest options:
| Tool | Incremental mechanism | Huge-site fit |
|---|---|---|
| stormcrawler.apache.org | Persistent URL state, adaptive revisit scheduling, content signatures, ETag / Last-Modified, HTTP 304 | Excellent |
| nutch.apache.org | Persistent CrawlDB tracks URL/fetch state and supports incremental whole-web crawls | Excellent |
| github.com | Stores request fingerprints and skips previously processed item pages | Good, but requires more architecture at massive scale |
StormCrawler is probably the closest match to what you're describing. Its AdaptiveScheduler records signatures and fetch metadata; unchanged pages can be revisited less frequently, and persisted Last-Modified/ETag metadata enables conditional HTTP requests. A server can then respond with 304 Not Modified, avoiding downloading and reprocessing the page body. It can also automatically lengthen the revisit interval for pages that rarely change. StormCrawler javadoc.io
Nutch is the more traditional large-scale choice. Its CrawlDB maintains state for every known URL—including whether and when it was fetched—and its whole-web crawling workflow is explicitly designed for very large, multi-machine, incremental crawls. Apache Wiki
Scrapy + DeltaFetch is lighter-weight. DeltaFetch stores fingerprints between crawl runs and skips requests associated with items already seen. But there's an important distinction: it isn't a general HTTP-level "has this URL's content changed?" system. Pages that don't directly produce scraped items may still be crawled again, so for hundreds of millions of URLs you'd generally need additional persistent frontier/change-detection infrastructure. GitHub Zyte
For something like 50M–1B URLs, I'd lean StormCrawler + a persistent distributed URL/status store, particularly if the goal is continuous recrawling while minimizing bandwidth and parsing. For a batch-oriented search-engine-style crawl, Nutch is a strong alternative.
Behind this answer: no web searches
ChatGPT answered from its own knowledge, without searching the web.
Answer 3 of 4, 17th Sep 2026, unknown, does not mention you
For huge sites with repeated/incremental crawls, these are the strongest options:
| Tool | Incremental mechanism | Huge-site fit |
|---|---|---|
| stormcrawler.apache.org | Persistent URL state, adaptive revisit scheduling, content signatures, ETag / Last-Modified, HTTP 304 | Excellent |
| nutch.apache.org | Persistent CrawlDB tracks URL/fetch state and supports incremental whole-web crawls | Excellent |
| github.com | Stores request fingerprints and skips previously processed item pages | Good, but requires more architecture at massive scale |
StormCrawler is probably the closest match to what you're describing. Its AdaptiveScheduler records signatures and fetch metadata; unchanged pages can be revisited less frequently, and persisted Last-Modified/ETag metadata enables conditional HTTP requests. A server can then respond with 304 Not Modified, avoiding downloading and reprocessing the page body. It can also automatically lengthen the revisit interval for pages that rarely change. StormCrawler javadoc.io
Nutch is the more traditional large-scale choice. Its CrawlDB maintains state for every known URL—including whether and when it was fetched—and its whole-web crawling workflow is explicitly designed for very large, multi-machine, incremental crawls. Apache Wiki
Scrapy + DeltaFetch is lighter-weight. DeltaFetch stores fingerprints between crawl runs and skips requests associated with items already seen. But there's an important distinction: it isn't a general HTTP-level "has this URL's content changed?" system. Pages that don't directly produce scraped items may still be crawled again, so for hundreds of millions of URLs you'd generally need additional persistent frontier/change-detection infrastructure. GitHub Zyte
For something like 50M–1B URLs, I'd lean StormCrawler + a persistent distributed URL/status store, particularly if the goal is continuous recrawling while minimizing bandwidth and parsing. For a batch-oriented search-engine-style crawl, Nutch is a strong alternative.
Behind this answer: no web searches
ChatGPT answered from its own knowledge, without searching the web.
Answer 4 of 4, 16th Sep 2026, unknown, does not mention you
For huge sites with repeated/incremental crawls, these are the strongest options:
| Tool | Incremental mechanism | Huge-site fit |
|---|---|---|
| stormcrawler.apache.org | Persistent URL state, adaptive revisit scheduling, content signatures, ETag / Last-Modified, HTTP 304 | Excellent |
| nutch.apache.org | Persistent CrawlDB tracks URL/fetch state and supports incremental whole-web crawls | Excellent |
| github.com | Stores request fingerprints and skips previously processed item pages | Good, but requires more architecture at massive scale |
StormCrawler is probably the closest match to what you're describing. Its AdaptiveScheduler records signatures and fetch metadata; unchanged pages can be revisited less frequently, and persisted Last-Modified/ETag metadata enables conditional HTTP requests. A server can then respond with 304 Not Modified, avoiding downloading and reprocessing the page body. It can also automatically lengthen the revisit interval for pages that rarely change. StormCrawler javadoc.io
Nutch is the more traditional large-scale choice. Its CrawlDB maintains state for every known URL—including whether and when it was fetched—and its whole-web crawling workflow is explicitly designed for very large, multi-machine, incremental crawls. Apache Wiki
Scrapy + DeltaFetch is lighter-weight. DeltaFetch stores fingerprints between crawl runs and skips requests associated with items already seen. But there's an important distinction: it isn't a general HTTP-level "has this URL's content changed?" system. Pages that don't directly produce scraped items may still be crawled again, so for hundreds of millions of URLs you'd generally need additional persistent frontier/change-detection infrastructure. GitHub Zyte
For something like 50M–1B URLs, I'd lean StormCrawler + a persistent distributed URL/status store, particularly if the goal is continuous recrawling while minimizing bandwidth and parsing. For a batch-oriented search-engine-style crawl, Nutch is a strong alternative.
Behind this answer: no web searches
ChatGPT answered from its own knowledge, without searching the web.
"what software can map redirect chains and visualize redirect loops across large domains?"
If your goal is large-domain redirect analysis with an actual visual representation of chains/loops, I’d shortlist these:
| Tool | Large sites | Redirect chains | Loop detection | Visual mapping | Best fit |
|---|---|---|---|---|---|
| Screaming Frog SEO Spider | Very good | ✅ | ✅ | Good, but primarily reports/data | Deep technical SEO audits |
| Sitebulb | Excellent / Cloud | ✅ | ✅ | Excellent | Visualizing site/redirect relationships |
| JetOctopus | Excellent | ✅ | ✅/diagnostics | More data/report oriented | Very large enterprise domains |
| Custom graph pipeline | Essentially unlimited | ✅ | ✅ | Best possible | Millions of redirects / engineering workflows |
1. Screaming Frog SEO Spider
Probably the easiest starting point.
Its Redirect Chains report follows redirects through multiple hops, reports the hop count and source, and explicitly identifies redirect loops. It can also follow redirects in List mode, which is useful if you have a massive URL inventory rather than wanting to crawl the whole site. www.screamingfrog.co.uk
Good workflow:
URL A → 301 → URL B → 302 → URL C → 200
Then export the redirect-chain data and turn it into a graph if you need a node/edge visualization.
2. Sitebulb — probably the best fit for visualization
Sitebulb is particularly interesting for what you're describing because it has interactive Crawl Maps that represent URLs as nodes and relationships as directed edges. sitebulb.com
It also specifically detects:
- redirect chains
- chained redirect loops
- redirects back to themselves
- broken redirects
- normalization-related redirect problems
and provides a dedicated redirect-chain export. sitebulb.com
Its Cloud product is advertised for audits up to 10 million URLs, while Desktop supports up to 500,000 URLs per audit. sitebulb.com
If you want to visually explore a huge domain rather than merely get a CSV of bad redirects, this is the one I'd investigate first.
3. JetOctopus
Worth considering for enterprise-scale crawling/log analysis.
JetOctopus has a dedicated Redirect Chains report that stores the entire chain, rather than merely telling you that a URL has multiple hops. You can expose both the chain and its length in the crawl results. jetoctopus.com
Its strength is more large-scale SEO data analysis than a beautiful graph visualization.
If you mean a literal graph of the redirect system
For example, something like:
┌─────────────┐
│ /old-page │
└──────┬──────┘
│ 301
▼
┌─────────────┐
│ /category/ │
└──────┬──────┘
│ 302
▼
┌─────────────┐
│ /product/42 │
└──────┬──────┘
│ 301
▼
┌───────┐
│ /42 │
└───────┘
LOOP
┌─────────┐
│ /foo │──301──▶ /bar
└────▲────┘ │
└──────301──────┘
then I'd actually consider a crawler → graph database/Graphviz/D3 pipeline rather than relying solely on an SEO crawler's UI.
The underlying data is naturally a directed graph:
- node = URL
- edge = redirect
- edge attribute = status code, e.g. 301/302/307/308
- path = redirect chain
- cycle = redirect loop
- terminal node = final non-redirect response
That lets you run graph algorithms to find all strongly connected components, which is a particularly clean way to identify circular redirect systems rather than just individual loops.
My practical recommendation:
- Up to millions of URLs + polished visualization: Sitebulb Cloud
- SEO audit + granular redirect reports: Screaming Frog
- Huge enterprise crawl/log datasets: JetOctopus
- Need to understand the entire redirect topology mathematically: export the redirect edges and build a graph-analysis pipeline.
If you tell me roughly how many URLs/redirect rules you're dealing with (100K, 1M, 10M+), I can narrow this down and suggest a specific architecture.
Behind this answer: 3 searches, 23 results retrieved, 2 tracked brands mentioned
Searches ChatGPT ran
Search results ChatGPT retrieved
| # | Page | Used in the answer |
|---|---|---|
| 1 | https://support.sitebulb.com/en/articles/9887437-site-visualisations?utm_source=chatgpt.com | not cited |
| 2 | https://sitebulb.com/product/links/?utm_source=chatgpt.com | not cited |
| 3 | https://support.sitebulb.com/en/articles/9887471-crawl-maps-faqs?utm_source=chatgpt.com | not cited |
| 4 | https://support.sitebulb.com/en/articles/10681891-single-page-analysis-tool?utm_source=chatgpt.com | not cited |
| 5 | https://support.sitebulb.com/en/articles/12839707-auditing-internal-linking-with-sitebulb?utm_source=chatgpt.com | not cited |
| 6 | https://sitebulb.com/product/?utm_source=chatgpt.com | not cited |
| 7 | https://sitebulb.com/resources/guides/awesome-sitebulb-tricks-10-advanced-sitebulb-techniques-to-enhance-your-audits/?utm_source=chatgpt.com | not cited |
| 8 | https://sitebulb.com/resources/guides/crawl-map-examples/?utm_source=chatgpt.com | not cited |
| and 15 more results | ||
Tracked brands mentioned
If your main requirement is mapping redirect chains and visually finding redirect loops across a large domain, I’d look at these:
- screamingfrog.co.uk — probably the most straightforward choice. It can crawl a domain, follow multi-hop redirects, identify loops, report hop counts, and export the complete redirect paths. Its Reports → Redirects → Redirect Chains report specifically maps chains and flags loops. Screaming Frog Screaming Frog
- sitebulb.com — better if you want visual exploration alongside the technical audit. Sitebulb has interactive crawl maps and specifically detects chained redirect loops, including internal URLs and page resources. Its cloud version is designed for larger-scale crawling. Sitebulb Sitebulb
- redirections.app — interesting if your redirects are primarily represented by redirect rules rather than discovered through crawling. It builds a directed graph of redirect rules, traverses chains, and explicitly detects circular dependencies/loops. Redirections
- ollagraph.com — more API/automation-oriented. Its redirect-chain tooling is aimed at programmatic audits and large datasets rather than being primarily an SEO crawler. Ollagraph
What I'd use for a large domain
For 100K–millions of URLs: I'd lean toward Sitebulb Cloud or an enterprise crawler, then export the redirect relationships and visualize the resulting directed graph separately.
For a few thousand to hundreds of thousands of URLs on a workstation: Screaming Frog is an excellent starting point. It gives you the actual chain:
A → 301 → B → 302 → C → 301 → D
and can distinguish that from a loop:
A → B → C → A
It also supports list-mode crawling, so you can feed it a sitemap, URL inventory, or other large URL set rather than relying solely on discovery from the homepage. Screaming Frog Screaming Frog
One important distinction: Sitebulb's Crawl Maps are primarily visualizations of site/link architecture, not a dedicated redirect-chain graph. For redirect forensics, its redirect reports plus visualization are more useful than simply throwing the whole domain into a crawl map. support.sitebulb.com support.sitebulb.com
If you tell me roughly how many URLs you're dealing with (e.g. 50K, 500K, 10M) and whether the redirects are Apache/Nginx/Cloudflare rules vs. live HTTP redirects, I can narrow this down to the best 2–3 options and explain the scaling tradeoffs.
Behind this answer: no web searches, 2 tracked brands mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
Answer 3 of 3, 16th Sep 2026, unknown, does not mention you
If you mean large-domain crawling where you want both a machine-readable redirect-chain report and an actual visual map of loops, I’d look at these:
- Screaming Frog SEO Spider — probably the strongest all-around choice. It follows multi-hop redirects, explicitly detects loops, and has a Redirect Chains report showing the source, every hop, hop count, and loop status. It can also crawl in Spider mode or process huge URL lists in List mode. Screaming Frog Screaming Frog
- Sitebulb — best if visualization is the priority. Its interactive Crawl Maps let you visualize URL relationships, while its Redirects reporting identifies chained redirects and specifically flags chained redirect loops. It can export redirect-chain data for further analysis. Sitebulb Support Sitebulb Sitebulb Support
- JetOctopus — particularly interesting for very large sites. Its Redirect Chains report stores the complete chain and exposes both the chain itself and its length, making it useful for bulk analysis. Tech SEO Platform
- Yetty Redirect Chain Visualizer — useful for individual chains or pasted redirect rules, rather than replacing a large-site crawler. It draws chains hop-by-hop and identifies loops and forks. Yetty
For your specific use case
I'd choose Screaming Frog + Sitebulb if the goal is something like:
100,000+ URLs
│
▼
Crawl domain
│
├── /old-a → /old-b → /new-a ← 2-hop chain
├── /foo → /bar → /baz → /foo ← LOOP
├── /x → /y ← single redirect
└── /a → /b → /c → /d → /e ← long chain
Screaming Frog is better for extracting and fixing the redirect relationships at scale; Sitebulb is better when you want to see site structure and relationships graphically. Screaming Frog's redirect report specifically exposes loops rather than merely showing generic crawl relationships. Screaming Frog Screaming Frog
If you're dealing with millions of URLs or multiple domains, I'd lean toward a cloud crawler such as JetOctopus/Sitebulb Cloud and then feed the redirect edges into Neo4j, Gephi, or Graphviz for a true graph visualization. That approach lets you identify not just obvious A→B→A loops, but large strongly connected components where dozens or hundreds of URLs participate in a redirect cycle.
Behind this answer: no web searches, 2 tracked brands mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
"which tool would be best for detecting orphan pages by combining sitemap, crawl, and log data?"
If your specific requirement is combining XML sitemap + site crawl + server-log data to detect orphan pages, I’d look at Oncrawl first. It explicitly combines crawl data with sitemap data and server logs to identify URLs that exist outside the internal site structure. Oncrawl Help
How the main options differ
- Oncrawl — Strong fit for your exact use case. Its crawl analysis can combine the site's internal-link graph with XML sitemaps and server-log data, letting you distinguish pages that are in the sitemap or being requested by bots/users but aren't discoverable through internal links. Oncrawl Help
- Sitebulb — Excellent for sitemap + crawl + other URL sources such as GA/GSC. It explicitly identifies URLs found through those sources but not through the crawler. Sitebulb Support Sitebulb Support
- Screaming Frog — Very good for sitemap + crawl orphan detection, and its separate Log File Analyser can match URL lists/crawl data against log data. That makes it powerful, but the workflow is more split across tools. Screaming Frog Screaming Frog
For a large site where server logs are an important part of the analysis, I'd choose Oncrawl. If you primarily need a technical SEO crawler with excellent reporting and sitemap/crawl orphan detection, Sitebulb is worth considering.
The underlying logic should be:
All known URLs (sitemap + logs + other sources) − URLs reachable through internal links = candidate orphans
Then segment candidates by sitemap presence, Googlebot activity, user traffic, status code, indexability, and last crawl date. This prevents treating every orphan as equally important.
Behind this answer: no web searches, 2 tracked brands mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
If your specific goal is detecting orphan pages by combining XML sitemap + crawl + server-log data, I’d look first at Screaming Frog or JetOctopus.
My pick: Screaming Frog
For a hands-on SEO workflow, Screaming Frog is particularly well suited because you can:
- Crawl the site to establish pages discoverable through internal links.
- Import/crawl XML sitemaps.
- Use its Log File Analyser to identify URLs actually requested by Googlebot.
- Compare URL datasets to find pages that exist in one source but not another.
- Specifically identify orphan/unknown URLs from log data. Screaming Frog Screaming Frog
Conceptually, your dataset becomes:
Sitemap URLs
∪
Crawl-discovered URLs
∪
Log-requested URLs
↓
Canonicalized URL set
↓
Compare against internal-link graph
↓
ORPHAN PAGES
The especially useful distinction is:
| URL appears in | Interpretation |
|---|---|
| Crawl + Sitemap | Internally linked and declared |
| Crawl only | Internally linked but missing from sitemap |
| Sitemap only | Sitemap orphan |
| Logs only | Log orphan / historically discoverable URL |
| Sitemap + Logs, not Crawl | Strong orphan candidate |
| None | Not discovered by these sources |
Screaming Frog's documentation explicitly supports importing URL lists and matching them against log data, as well as combining crawl data with other URL datasets. Screaming Frog
When I'd choose JetOctopus instead
If you're dealing with a large/enterprise site or want the whole thing in one cloud platform, I'd lean toward JetOctopus. Its platform combines crawling and server-log analysis, and its documentation specifically describes finding orphaned pages that Googlebot still visits and pages receiving no bot visits. Tech SEO Hub Tech SEO Hub
So, roughly:
- Small/medium site + maximum control: Screaming Frog
- Millions of URLs + continuous log analysis: JetOctopus
- Want to build your own pipeline: Screaming Frog exports + SQL/Python/BigQuery can give you the most flexibility.
If you tell me your site size and where your logs live (Cloudflare, Nginx, AWS, etc.), I can also lay out the exact orphan-page detection workflow and SQL/data model I'd use.
| URL appears in | Interpretation |
|---|---|
| Crawl + Sitemap | Internally linked and declared |
| Crawl only | Internally linked but missing from sitemap |
| Sitemap only | Sitemap orphan |
| Logs only | Log orphan / historically discoverable URL |
| Sitemap + Logs, not Crawl | Strong orphan candidate |
| None | Not discovered by these sources |
Screaming Frog's documentation explicitly supports importing URL lists and matching them against log data, as well as combining crawl data with other URL datasets.
When I'd choose JetOctopus instead
If you're dealing with a large/enterprise site or want the whole thing in one cloud platform, I'd lean toward JetOctopus. Its platform combines crawling and server-log analysis, and its documentation specifically describes finding orphaned pages that Googlebot still visits and pages receiving no bot visits.
So, roughly:
Behind this answer: no web searches, 1 tracked brand mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
Answer 3 of 3, 16th Sep 2026, unknown, does not mention you
For combining XML sitemap + site crawl + server log data, the best fit is usually:
- Screaming Frog SEO Spider + Log File Analyser — best overall for technical SEO audits. It can compare crawl-discovered URLs against sitemap URLs, Analytics/Search Console sources, and log files to identify orphan or uncrawled pages. Screaming Frog Screaming Frog
- Botify — better for very large sites (millions of URLs) because it combines crawling with log analysis and enterprise-scale reporting. First Page SG
- Ahrefs Site Audit or Semrush Site Audit — easier SaaS options, but log-file depth is generally less specialized than dedicated crawl + log tools. First Page SG
A typical workflow:
- Sitemap URLs = pages you claim exist.
- Crawler URLs = pages reachable through internal links.
- Log URLs = pages search engines actually requested.
- The gaps reveal:
- sitemap-only pages → likely orphan candidates
- log-only pages → forgotten/hidden URLs
- crawl-only pages → sitemap coverage issues
For most SEO teams, Screaming Frog + Log File Analyser is the practical choice; for enterprise-scale sites, Botify is usually the stronger option. Screaming Frog First Page SG
Behind this answer: no web searches, 4 tracked brands mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
"what platform supports crawling via headless browser rendering for single-page applications at scale?"
If you mean a managed platform that can crawl large numbers of JavaScript-heavy SPAs by actually rendering them in a headless browser, several options fit:
- developers.cloudflare.com — Runs headless Chrome on Cloudflare's global network and supports Playwright, Puppeteer, CDP, screenshots, HTML, links, structured data, and crawled content. Good if you want browser-level control plus global infrastructure. Cloudflare Docs
- zyte.com — Built specifically for large-scale scraping, with JavaScript rendering, parallel processing, proxy/anti-bot infrastructure, and browser automation. Zyte #1 Web Scraping Service
- crawlspace.dev — A crawler platform rather than just a browser API. It explicitly supports rendering SPAs, queues, concurrency/scaling, scheduling, storage, and serverless deployment. Crawlspace
- clawengine.ai — More turnkey: managed crawling + headless rendering + extraction into Markdown/JSON, with scaling handled by the service. ClawEngine.ai
- crawlbase.com — Crawling API with optional JavaScript rendering, browser-like page waits/scroll/click behavior, and geographic routing. Crawlbase
If you're choosing an architecture
For thousands/millions of SPA URLs, I'd distinguish between:
| Need | Platform type to consider |
|---|---|
| Full browser control / Playwright | Cloudflare Browser Run |
| Large-scale scraping + proxy/anti-bot | Zyte API |
| Full crawler infrastructure | Crawlspace |
| URL → rendered content/JSON with minimal engineering | ClawEngine |
| Browser rendering + proxy/geo routing | Crawlbase |
One important distinction: if your goal is SEO/indexing, you don't necessarily need to build a crawler that renders every SPA yourself. Googlebot already uses an evergreen headless Chromium rendering stage for JavaScript pages. Google recommends SSR/static rendering/hydration where practical rather than relying on dynamic rendering as a workaround. Google for Developers Google for Developers
If you tell me roughly how many pages/day (e.g. 10K, 1M, 100M) and whether you need raw rendered HTML, screenshots, links, or structured extraction, I can narrow this to the most appropriate architecture and cost model.
Behind this answer: no web searches
ChatGPT answered from its own knowledge, without searching the web.
For large-scale crawling of SPAs that require real browser rendering, the strongest fit is Zyte.
- Zyte API — managed headless Chrome, JavaScript rendering, browser actions, sessions, proxies, and automatic scaling. Zyte Zyte #1 Web Scraping Service
- Scrapy Cloud + Zyte API — better if you need a full crawler/orchestration layer for thousands to billions of pages. Zyte #1 Web Scraping Service Zyte #1 Web Scraping Service
- Browserless — another strong option, particularly if you already use Playwright/Puppeteer; its Crawl API can asynchronously crawl discovered pages. Browserless Browserless Docs
If your requirement is specifically “crawl an entire SPA site, execute JS, discover links, and scale horizontally,” I’d look at Scrapy Cloud + Zyte API first. Zyte #1 Web Scraping Service
Behind this answer: no web searches
ChatGPT answered from its own knowledge, without searching the web.
Answer 3 of 4, 17th Sep 2026, unknown, does not mention you
Zyte API is a strong fit. It provides managed headless-browser rendering for JavaScript-heavy SPAs (React/Vue/Angular), returns rendered DOM/HTML, supports browser actions, and is designed to scale to very large crawl volumes without managing browser infrastructure. Zyte #1 Web Scraping Service Zyte #1 Web Scraping Service
It also supports Playwright/Puppeteer via CDP if you need custom crawling logic. Zyte
Behind this answer: no web searches
ChatGPT answered from its own knowledge, without searching the web.
Answer 4 of 4, 16th Sep 2026, unknown, does not mention you
If you mean “crawl an entire SPA, execute its JavaScript in headless Chrome, discover/follow links, and do that at high concurrency”, there are a few strong options.
Platforms worth considering
- developers.cloudflare.com — particularly relevant now. Its
/crawlendpoint can start from a URL, discover pages, render them in headless browsers, and return HTML, Markdown, or structured data. Jobs run asynchronously, and Browser Run runs Chrome across Cloudflare's global network. Cloudflare Docs Cloudflare Docs - scrapingbee.com — a managed scraping API with headless Chrome JavaScript rendering. Its crawl command can follow links, crawl from sitemaps, or run Scrapy spiders, while retaining JS rendering and proxy capabilities. ScrapingBee ScrapingBee
- crawlbase.com — managed crawling with optional real-browser JavaScript rendering, waiting for AJAX/network activity, scrolling and clicking, plus proxy/geolocation infrastructure. Crawlbase
If I were designing this for an SPA at scale
I'd distinguish between two architectures:
| Need | Platform type I'd look at |
|---|---|
| Crawl whole sites, render JS, return content | Cloudflare Browser Run |
| High-volume scraping API + proxy/anti-bot infrastructure | ScrapingBee |
| Traditional crawler + browser rendering | Crawlbase |
| Full control over browser behavior | Playwright/Puppeteer on your own worker fleet |
Cloudflare is particularly interesting for your exact wording because its current Browser Run /crawl API combines link discovery + crawling + headless rendering rather than merely giving you a headless browser that you have to orchestrate yourself. Cloudflare Docs
If you tell me roughly how many pages/day (e.g. 100K, 1M, 10M+) and whether you need rendered DOM, screenshots, or extracted data, I can narrow this down and compare the likely architecture/cost tradeoffs.
Behind this answer: no web searches
ChatGPT answered from its own knowledge, without searching the web.
"which tool can crawl large multilingual sites and report hreflang and language tag issues?"
For large multilingual sites, Sitebulb is probably the closest match to what you’re describing.
- Sitebulb — specifically its International Report. It crawls hreflang URLs across subfolders, subdomains, and even separate domains, and checks hreflang in HTML, HTTP headers, and XML sitemaps. It also audits the HTML
langattribute. Sitebulb Support Sitebulb
- Finds missing/invalid hreflang
- Checks reciprocal/return tags
- Finds broken or redirected hreflang targets
- Checks canonical/noindex conflicts
- Detects invalid HTML
lang - Detects mismatches between hreflang and HTML
lang - Provides a hreflang cluster matrix for large international sites Sitebulb Support
- Available as both desktop and cloud crawling. Sitebulb
Screaming Frog SEO Spider is the other major option. It handles hreflang in HTML, HTTP headers, and XML sitemaps and has extensive hreflang filters/reports, including incorrect language/region codes, missing return tags, non-canonical targets, and missing self-reference. Screaming Frog Screaming Frog
Semrush Site Audit also has an International SEO report, but its current documentation says its hreflang checking is limited to HTML, so I'd put it behind the two dedicated crawlers for a complex multilingual implementation. Semrush
My practical choice
| Tool | Large sites | Hreflang depth | HTML lang | Cross-domain hreflang | Best use |
|---|---|---|---|---|---|
| Sitebulb | Excellent | Excellent | Yes | Yes | International SEO auditing |
| Screaming Frog | Excellent | Excellent | More DIY | Yes, with configuration | Deep technical crawling |
| Semrush | Good | Good | Limited | More limited | Broader SEO platform |
If your specific requirement is “crawl millions of URLs and give me a report of every hreflang + lang inconsistency”, I'd start with Sitebulb, particularly because its International report is purpose-built around both of those signals. Sitebulb Support
Behind this answer: no web searches, 3 tracked brands mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
For a large multilingual site where you specifically need hreflang + HTML lang auditing, I’d look at Sitebulb first.
Why Sitebulb fits
sitebulb.com has a dedicated International Report that checks:
- Hreflang annotations in HTML, HTTP headers, and XML sitemaps
- Hreflang reciprocity / missing return tags
- Broken or redirected hreflang targets
- Hreflang pointing to
noindexor canonicalized URLs - Invalid language/region codes
- Missing or invalid HTML
langattributes - Mismatches between hreflang and HTML
lang - International URL relationships across subfolders, subdomains, and separate domains
- Large hreflang clusters via its Hreflang Cluster Matrix export Sitebulb Support Sitebulb Support
It also explicitly crawls alternate URLs it discovers, including ones on other domains, which is useful for international sites spread across ccTLDs. Sitebulb
For scale, Sitebulb currently says its Desktop product can crawl up to 500,000 URLs per audit, with Cloud aimed at larger/enterprise workflows. Sitebulb
Another strong option: Screaming Frog
screamingfrog.co.uk is also very capable for hreflang. It can crawl hreflang from HTML, HTTP headers, and XML sitemaps and reports issues such as missing confirmation links, inconsistent languages, incorrect language/region codes, non-canonical targets, missing self-references, and missing x-default. Screaming Frog Screaming Frog
The distinction I'd make is:
| Need | Tool to consider |
|---|---|
Hreflang and HTML lang auditing | Sitebulb |
| Deep technical crawling/custom extraction | Screaming Frog |
| Large international URL clusters / visual analysis | Sitebulb |
| Highly configurable crawler workflows | Screaming Frog |
If your requirement is specifically “crawl a huge multilingual site and automatically tell me where hreflang and language declarations disagree,” Sitebulb is particularly well matched because those checks are built into its International Report rather than requiring custom extraction. Sitebulb Support
If you tell me roughly how many URLs/domains you're dealing with (e.g. 1M URLs across 20 country sites), I can also compare Sitebulb vs Screaming Frog vs Botify vs Lumar specifically for that scale.
Behind this answer: no web searches, 4 tracked brands mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
Answer 3 of 3, 17th Sep 2026, unknown, does not mention you
For large multilingual sites, I’d look first at sitebulb.com.
Why Sitebulb fits
- Hreflang: crawls and validates hreflang from HTML, HTTP headers, and XML sitemaps, including alternate URLs on other domains/subdomains. Sitebulb Support Sitebulb
- Reciprocity: detects missing return tags and inconsistent hreflang relationships. Sitebulb Support
- Language tags: specifically audits the HTML
langattribute and flags invalid values. Sitebulb Support - Cross-checking: identifies mismatches between
hreflangand HTMLlangdeclarations. Sitebulb Support - Large-scale crawling: Sitebulb Cloud supports up to 10 million URLs per audit, while Desktop supports up to 500,000. Sitebulb
- International reporting: its Hreflang Cluster Matrix makes it easier to spot missing language/region variants across large URL sets. Sitebulb Support
Screaming Frog SEO Spider is the other major option. It also crawls hreflang in HTML, HTTP headers and XML sitemaps and reports issues such as invalid language/region codes, missing return links, non-canonical URLs, and noindex hreflang targets. screamingfrog.co.uk
If your specific requirement is “crawl millions of URLs + systematically diagnose both hreflang and HTML lang problems,” Sitebulb is the more directly aligned choice based on its dedicated International report and cloud-scale crawling. Sitebulb Support Sitebulb
Behind this answer: no web searches, 2 tracked brands mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
"what software would you recommend for scheduled site crawls with detailed crawl rate and crawl budget reporting?"
If your priority is scheduled crawls + detailed crawl-rate/crawl-budget reporting, I’d narrow it to Botify and JetOctopus, with Sitebulb Cloud as the more approachable alternative.
| Tool | Scheduled crawls | Crawl rate controls/reporting | Crawl-budget reporting | Log-file data | Best fit |
|---|---|---|---|---|---|
| Botify | Excellent | Excellent | Excellent | Yes | Enterprise / very large sites |
| JetOctopus | Excellent | Excellent | Excellent | Yes | Deep crawl-budget analysis |
| Sitebulb | Excellent in Cloud | Good | Good | Via integrations | Agencies / mid-size sites |
| Screaming Frog | Good with setup | Excellent crawl controls | Limited compared with above | Log Analyzer available | Detailed technical crawling |
My pick: Botify
If by "crawl budget reporting" you mean actual Googlebot behavior rather than just how your own crawler traversed the site, Botify is particularly well suited.
Botify combines its own SiteCrawler data with server logs and Google Search Console, allowing you to compare your site's crawlable structure with actual search-engine crawling. Its reports include accessibility, HTTP codes, distribution, performance, visits, search engines, sitemaps, etc. Botify Knowledge Base Botify Knowledge Base
It also lets you schedule crawls daily, weekly, monthly, or continuously, and you can configure maximum crawl speed in URLs/second. Botify Knowledge Base Botify Knowledge Base
JetOctopus is worth a very close look
If your main requirement is specifically crawl-budget visualization, JetOctopus is probably the most directly aligned alternative. Its current plans explicitly include crawl budget visualization, crawl-to-crawl comparison, segmentation, JavaScript crawling, log integration, GSC integration, and alerts for Googlebot activity. Tech SEO Platform
That makes it particularly interesting if you want to answer questions such as:
- How much of Google's crawl activity goes to important vs. unimportant URLs?
- Which URL types consume the crawl budget?
- Is Googlebot spending excessive time on parameters, duplicates, faceted navigation, etc.?
- Did a site change alter Google's crawling behavior?
- How does Googlebot's behavior compare with your technical crawler?
Sitebulb Cloud if you want easier SEO auditing
Sitebulb Cloud is attractive if you want automated recurring technical crawls without going all the way into an enterprise log-analysis platform. It supports daily, weekly, and monthly automated crawls and crawl-to-crawl comparisons. Sitebulb
It also gives you control over crawler speed and crawl limits, and Cloud can crawl up to 10 million URLs per audit. Sitebulb Sitebulb Support
One important distinction: if you're specifically trying to understand Google's crawl budget, I'd prioritize a tool that ingests server logs. Your own crawler's "crawl rate" tells you how fast the auditing crawler traversed the site; log data tells you what Googlebot actually did. Botify and JetOctopus are consequently more compelling for that particular use case.
If you tell me roughly site size (100K / 1M / 10M+ URLs), whether you have server-log access, and whether this is e-commerce/faceted navigation, I can give you a much more precise Botify vs. JetOctopus vs. Sitebulb comparison.
Behind this answer: no web searches, 4 tracked brands mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
If your priority is scheduled crawls + detailed crawl-rate/crawl-budget reporting, I’d focus on tools that combine a technical crawler with server-log analysis. A crawler alone can tell you how your crawler traversed the site; logs tell you what Googlebot/Bingbot/etc. actually did.
My shortlist
| Software | Scheduled crawls | Actual bot crawl data | Crawl-budget reporting | Best fit |
|---|---|---|---|---|
| Botify | Excellent | Excellent | Excellent | Large/enterprise sites |
| Oncrawl | Excellent | Excellent | Excellent | Technical SEO + log analysis |
| JetOctopus | Excellent | Excellent | Excellent | High-volume crawling + flexible reporting |
| Screaming Frog | Good | Via Log File Analyser | Good | Smaller teams / desktop workflows |
1. Botify — strongest for true crawl-budget analysis
This would be my first look if crawl budget is the central requirement.
Botify combines its SiteCrawler with LogAnalyzer, so you can compare your site's URL inventory against what search-engine bots actually crawl. Its Search Engines reports include metrics such as how much of the site each search engine explores, crawl depth, crawl frequency, errors, and URLs that aren't being crawled. Botify Knowledge Base Botify Knowledge Base
It also supports recurring scheduled crawls—daily, weekly, monthly, or continuously after the previous crawl completes. Botify Knowledge Base
Particularly useful reports:
- Googlebot requests over time
- Crawl frequency by URL/section
- Crawl depth
- Crawled vs. uncrawled URLs
- Wasted crawling on redirects, parameters, duplicate/low-value URLs
- Crawl activity vs. organic visits
- Segmentation by page type
- Search-engine and AI-bot activity
The important distinction is that Botify's crawl-budget analysis uses server logs, which Botify describes as the source of truth for actual bot activity. Botify Botify Knowledge Base
2. Oncrawl — excellent alternative
Oncrawl is particularly good if you want to build recurring SEO monitoring around crawl data + log data + segmentation.
It supports scheduled recurring crawls with configurable crawl profiles, dates, times, and time zones. Oncrawl Help
Its log-analysis capabilities cover a broad range of crawlers, including Google, Bing, and various AI crawlers. It distinguishes actual crawlers—which follow links and have meaningful crawl-frequency/depth behavior—from one-off fetchers. Oncrawl Help
I'd look closely at Oncrawl if your reporting requirements are something like:
"Every Monday, crawl the site, ingest the previous week's logs, then show me how Googlebot's behavior changed by directory, template, status code, canonical/indexability status, and page value."
That's very much its territory.
3. JetOctopus — particularly good for high-volume sites
JetOctopus has a strong combination of site crawling + log analysis + Google Search Console + GA4. Its current plans explicitly include crawl-budget visualization, crawl-to-crawl comparisons, segmentation, and log-line processing. SEO Platform
It also supports scheduled daily, weekly, biweekly, and monthly crawls. SEO Platform
One thing I particularly like about JetOctopus for this use case is the emphasis on visualizing crawl behavior rather than merely dumping log statistics.
4. Screaming Frog SEO Spider — great crawler, but different category
Screaming Frog is excellent for scheduled technical crawls, but I'd put it behind Botify/Oncrawl/JetOctopus if your primary objective is ongoing crawl-budget intelligence.
The key distinction is:
Crawler:
"Here is how a crawler traversed my website."
Log analyzer:
"Here is what Googlebot actually requested from my website."
For crawl-budget optimization, you really want the second one.
What I'd choose
If I were specifying the stack based specifically on your requirements:
Large ecommerce / millions of URLs → Botify or JetOctopus
Enterprise SEO team wanting deep log analysis → Botify or Oncrawl
Agency managing lots of technical SEO projects → JetOctopus
Small/medium site and mostly technical audits → Screaming Frog
And if "detailed crawl rate and crawl budget reporting" is the #1 requirement, I'd narrow the evaluation to Botify vs. Oncrawl vs. JetOctopus, rather than treating all site crawlers as equivalent.
A useful evaluation criterion is whether the software can answer these five questions automatically:
- How many URLs did Googlebot crawl?
- How frequently is it crawling each important URL/section?
- What percentage of bot requests are being spent on low-value URLs?
- Which important/indexable URLs aren't being crawled?
- Did those metrics improve or deteriorate after a technical change?
Botify, Oncrawl, and JetOctopus are much closer to that model than a conventional crawler-only product. Botify Knowledge Base Oncrawl Help SEO Platform
If you tell me roughly how many URLs the site has (e.g. 100K, 1M, 10M+) and whether you have Cloudflare/CDN or raw server-log access, I can narrow these down substantially and compare pricing, crawl limits, log retention, scheduling, API/reporting, and crawl-budget metrics.
I'd look closely at Oncrawl if your reporting requirements are something like:
"Every Monday, crawl the site, ingest the previous week's logs, then show me how Googlebot's behavior changed by directory, template, status code, canonical/indexability status, and page value."
That's very much its territory.
3. JetOctopus — particularly good for high-volume sites
JetOctopus has a strong combination of site crawling + log analysis + Google Search Console + GA4. Its current plans explicitly include crawl-budget visualization, crawl-to-crawl comparisons, segmentation, and log-line processing. SEO Platform
It also supports scheduled daily, weekly, biweekly, and monthly crawls. SEO Platform
One thing I particularly like about JetOctopus for this use case is the emphasis on visualizing crawl behavior rather than merely dumping log statistics.
4. Screaming Frog SEO Spider — great crawler, but different category
Screaming Frog is excellent for scheduled technical crawls, but I'd put it behind Botify/Oncrawl/JetOctopus if your primary objective is ongoing crawl-budget intelligence.
The key distinction is:
Crawler:
"Here is how a crawler traversed my website."
Log analyzer:
"Here is what Googlebot actually requested from my website."
For crawl-budget optimization, you really want the second one.
What I'd choose
If I were specifying the stack based specifically on your requirements:
Large ecommerce / millions of URLs → Botify or JetOctopus
Enterprise SEO team wanting deep log analysis → Botify or Oncrawl
Agency managing lots of technical SEO projects → JetOctopus
Small/medium site and mostly technical audits → Screaming Frog
And if "detailed crawl rate and crawl budget reporting" is the #1 requirement, I'd narrow the evaluation to Botify vs. Oncrawl vs. JetOctopus, rather than treating all site crawlers as equivalent.
A useful evaluation criterion is whether the software can answer these five questions automatically:
- How many URLs did Googlebot crawl?
- How frequently is it crawling each important URL/section?
- What percentage of bot requests are being spent on low-value URLs?
- Which important/indexable URLs aren't being crawled?
- Did those metrics improve or deteriorate after a technical change?
Botify, Oncrawl, and JetOctopus are much closer to that model than a conventional crawler-only product.
Behind this answer: no web searches, 2 tracked brands mentioned
ChatGPT answered from its own knowledge, without searching the web.
Tracked brands mentioned
Answer 3 of 3, 16th Sep 2026, unknown, does not mention you
If your main requirement is scheduled crawls plus detailed measurement of how search engines are crawling the site, I’d separate the tools into two categories:
| Software | Scheduled crawls | Crawl-rate control | Crawl-budget reporting | Log-file analysis | Best suited to |
|---|---|---|---|---|---|
| Botify | Yes | Yes | Very strong | Yes | Enterprise / large sites |
| Lumar | Yes | Yes | Strong | Yes | Enterprise technical SEO |
| OnCrawl | Yes | Yes | Strong | Yes | Sites where log analysis matters |
| Sitebulb Cloud | Yes | Yes | Moderate | Limited | Automated technical SEO monitoring |
| Screaming Frog | Via desktop/automation | Yes | Limited | Separate Log File Analyser | Deep technical crawling |
My recommendation
If “crawl budget reporting” is the key requirement, I'd look first at Botify, Lumar, or OnCrawl rather than a conventional site-audit crawler.
The distinction is important: a crawler such as Sitebulb tells you how your crawler traversed the site. Actual Google crawl behavior is better measured using Google Search Console's Crawl Stats plus server logs. Search Console reports Googlebot's crawl requests, response times, response types, file types, crawl purpose, and Googlebot type. Google Help
Botify is particularly interesting for a large site because its SiteCrawler is designed around search-engine crawling and combines crawl data with broader SEO analysis; it also supports recurring crawl schedules. Botify Knowledge Base Botify Knowledge Base
Lumar/OnCrawl are worth evaluating if you specifically want an enterprise platform centered on technical SEO and log/crawl-budget analysis.
Sitebulb Cloud is what I'd consider if your requirement is more like “crawl my sites every week, compare the crawls, and produce detailed technical SEO reports.” It supports automated recurring crawls and can handle very large crawls in its cloud product. Sitebulb Sitebulb
One caveat: don't equate your crawler's configured crawl rate with Google's crawl rate. Those are different measurements. For actual Googlebot behavior, I'd ideally build the reporting stack around:
Server logs → Googlebot crawl activity → Google Search Console Crawl Stats → crawler crawl data → dashboards/trends
That gives you things such as:
- Googlebot requests/day
- Googlebot requests by URL type
- Googlebot requests by response code
- Average response time
- Bytes downloaded
- Crawl activity by directory/template
- Crawl waste from redirects, errors, duplicate URLs, parameters, etc.
- Changes in crawl activity after technical SEO releases
- Your own crawler's crawl rate and discovered/crawled URL inventory
If you tell me roughly how large the site is (e.g. 100k, 1M, 10M+ URLs) and whether you have access to server/CDN logs, I can narrow this down considerably and compare Botify vs Lumar vs OnCrawl vs Sitebulb specifically for crawl-budget reporting.
My recommendation
If “crawl budget reporting” is the key requirement, I'd look first at Botify, Lumar, or OnCrawl rather than a conventional site-audit crawler.
The distinction is important: a crawler such as Sitebulb tells you how your crawler traversed the site. Actual Google crawl behavior is better measured using Google Search Console's Crawl Stats plus server logs. Search Console reports Googlebot's crawl requests, response times, response types, file types, crawl purpose, and Googlebot type. Google Help
Botify is particularly interesting for a large site because its SiteCrawler is designed around search-engine crawling and combines crawl data with broader SEO analysis; it also supports recurring crawl schedules. Botify Knowledge Base Botify Knowledge Base
Lumar/OnCrawl are worth evaluating if you specifically want an enterprise platform centered on technical SEO and log/crawl-budget analysis.
Sitebulb Cloud is what I'd consider if your requirement is more like “crawl my sites every week, compare the crawls, and produce detailed technical SEO reports.” It supports automated recurring crawls and can handle very large crawls in its cloud product. sitebulb.com sitebulb.com
One caveat: don't equate your crawler's configured crawl rate with Google's crawl rate. Those are different measurements. For actual Googlebot behavior, I'd ideally build the reporting stack around:
Server logs → Googlebot crawl activity → Google Search Console Crawl Stats → crawler crawl data → dashboards/trends
That gives you things such as:
Behind this answer: no web searches, 4 tracked brands mentioned
ChatGPT answered from its own knowledge, without searching the web.
