Website Crawl Preflight Auditor
Pricing
from $1.50 / 1,000 domain auditeds
Website Crawl Preflight Auditor
Check robots.txt, sitemaps, static extraction quality, crawl risk, and estimated Apify costs before running a crawler or RAG ingestion job.
Pricing
from $1.50 / 1,000 domain auditeds
Rating
0.0
(0)
Developer
Sebastián S
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
17 days ago
Last modified
Categories
Share
Audit robots.txt, sitemaps, static HTML, JavaScript risk, crawl limits, and estimated Apify costs before starting a scraper, SEO audit, or RAG job.
Website Crawl Preflight Auditor performs a bounded, static HTTP-only inspection of up to 10 public website origins. It produces one crawl-readiness audit per origin, explicit outcomes for direct sample URLs, scoped cost scenarios, and practical settings for a downstream crawler.
What It Checks
- robots.txt access state, user-agent rules, crawl delay, sitemap declarations, and representative disallow paths
- sitemap discovery, index depth, URL counts, metadata coverage, malformed entries, gzip bounds, and parse or fetch errors
- HTTP status, redirects, content type, decoded response size, title, description, canonical, H1s, and robots meta
- static text volume, scripts, JSON-LD, and app-shell markers such as
__NEXT_DATA__,__NUXT__,ng-version,id="root", andid="app" - likely JavaScript dependence, noindex pages, canonical mismatches, non-HTML URLs, redirects, and low-content pages
- full-site and recommended-scope static-fetch cost ranges
- recommended page limits, concurrency, request delay, timeouts, allowlists, blocklists, and rendering mode
Input
Provide at least one of startUrl, sitemapUrl, or urls. Inputs may span multiple origins; each origin is audited independently and processed sequentially.
{"startUrl": "https://docs.apify.com","urls": ["https://blog.apify.com/","https://www.example.com/about"],"maxOrigins": 10,"samplePages": 25,"maxSitemapUrls": 100000,"maxSitemapDepth": 2,"sameDomainOnly": true,"respectRobotsTxt": true,"checkSitemaps": true,"checkSamplePages": true,"estimateApifyCosts": true,"includeRecommendedSettings": true,"includeSampleRows": true}
Limits apply independently per origin:
- up to 10 explicit origins per run
- up to 500 direct URLs per input
- up to 250 sampled pages per origin
- up to 500,000 retained sitemap URLs per origin
- sitemap recursion depth up to 3
- sample concurrency up to 10 within one origin
sameDomainOnly keeps sitemap records and redirects on the exact audit origin, including scheme and port. It does not prevent you from supplying several explicit origins.
Use regex filters to narrow the recommended crawl scope:
{"sitemapUrl": "https://example.com/sitemap.xml","urlAllowlistPatterns": ["/docs/", "/products/"],"urlBlocklistPatterns": ["/search", "/tag/", "\\?sort="],"samplePages": 50}
Outputs
The default dataset contains one crawl_preflight_audit row per origin. A fully assembled robots-blocked or network-failed report is a completed audit because it still contains the promised evidence. Unsafe input, an internal processing failure, or a charge-limited origin produces an uncharged error row.
The separate samples dataset contains URL-level rows with status: ok | skipped | error. Every explicit URL receives an outcome, including:
SAMPLE_LIMIT_REACHEDSAMPLE_CHECK_DISABLEDURL_NOT_ALLOWLISTEDURL_BLOCKLISTEDOUTSIDE_AUDIT_ORIGIN- robots, safety, timeout, response-size, redirect, HTTP, and network failures
Only sitemap URLs selected for sampling receive URL-level rows. Other sitemap URLs remain aggregate counts so output stays bounded.
Output shortcuts:
audits: the default audit dataset viewsamples: the separate URL-outcomes dataset viewrunSummary: the aggregateOUTPUTrecord
OUTPUT reports origin totals, completed and error counts, sample totals, billing state, charged-domain count, warnings, cost guardrails, and the complete audit summaries.
Robots Behavior
robots.txt is reported as one of:
found: usable rules were fetched and evaluated for the configured user agentunavailable: a4xxresponse; crawling is allowedunreachable: a network failure or5xx; crawling is disallowedinvalid: unusable or oversized content; crawling is disallowed
This follows RFC 9309 availability behavior. Rules, crawl delay, and disallow-path samples are scoped to the configured user agent. Robots decisions are cached per origin, and redirects are checked against the destination origin's rules before being followed.
Network Safety
The Actor only accesses public http and https targets. It rejects URL credentials and loopback, private, link-local, reserved, IPv4-mapped IPv6, or mixed public/private DNS results. URL and DNS safety are enforced on connections and redirects.
Decoded responses are bounded:
- robots.txt: 512 KiB
- HTML samples: 5 MiB
- sitemap XML, including decompressed
.xml.gz: 50 MiB
Declared oversized responses are rejected before reading the body, streamed responses are aborted when they cross the limit, and the timeout remains active through body consumption. DOCTYPE and entity declarations are rejected in sitemap XML.
Cost Estimates
Cost output separates:
fullSite: estimated static-fetch cost using total sitemap discoveryrecommendedScope: estimated cost after retained URL limits, filtering, and the recommendedmaxPages
The default model assumes $0.20 per compute unit as a Free/Starter baseline and 0.001 to 0.003 compute units per static-fetched page. You can override the model in costModel. Estimates exclude browser rendering and proxies, and actual prices vary by plan tier, retries, response sizes, storage, and platform pricing.
When robots.txt declares a crawl delay, the recommendation sets maxConcurrency to 1 and exposes the delay as requestDelaySecs.
Crawlability Score
The score is a triage signal, not a guarantee:
- 90-100: excellent static crawl candidate
- 75-89: good candidate with minor warnings
- 55-74: crawlable with constraints
- 30-54: risky or needs manual review/browser rendering
- 0-29: blocked or not recommended
Flags and their evidence are more important than the score. Stable flags include ROBOTS_TXT_UNREACHABLE, ROBOTS_TXT_INVALID, ROBOTS_DISALLOWS_TARGET, SITEMAP_FETCH_FAILED, SITEMAP_INDEX_TOO_DEEP, LARGE_SITEMAP, SAMPLE_LOW_SUCCESS_RATE, JAVASCRIPT_HEAVY_LIKELY, LOW_STATIC_TEXT_CONTENT, MANY_NOINDEX_PAGES, CANONICAL_MISMATCHES, REDIRECT_HEAVY, and COST_ESTIMATE_HIGH.
Billing
Pay-per-event runs charge once for each completed origin audit using the domain-audited event. The Actor checks remaining event capacity before starting an origin. When capacity is exhausted, remaining origins receive minimal CHARGE_LIMIT_REACHED rows and no further requests are made.
Invalid or private inputs, internal failures, and budget-limited origins are not charged. An origin blocked by robots or affected by fetch failures is charged only when the Actor has completed and assembled its evidence report.
Recommended Workflow
- Run Website Crawl Preflight Auditor with representative input.
- Review robots access, discovered versus retained sitemap counts, sample outcomes, flags, and both cost scenarios.
- Apply the recommended scope, delay, concurrency, timeout, allowlist, and blocklist settings to the downstream Actor.
- Use browser rendering only when static HTML evidence shows it is needed.
V1 Limitations
V1 intentionally excludes browser rendering, proxies, recursive link crawling, authentication, screenshots, and LLM calls. It does not bypass anti-bot systems, crawl login-gated content, perform a full SEO audit, or guarantee exact costs.
Only use this Actor on public websites you are allowed to analyze. You remain responsible for applicable laws, website terms, and crawl policies.