Browser Run /crawl Now Tells You Why a URL Didn't Come Back
Hi everyone, Shii-chan here! Today I'm covering a small but handy improvement to Browser Run's /crawl.
Cloudflare ChangelogWhat was announced?
The Cloudflare Changelog says Browser Run /crawl results now include more detailed diagnostics.
Two things were added:
- A per-URL
outcome: each URL record can include a field that identifies the specific processing result. The examples named aresuccess,robots_disallowed,timeout, andpage_error - A job-level
robotsarray: it reports the robots.txt state for up to 50 origins the crawl encountered
Why it matters
When you crawl a site, you sometimes wonder why a URL isn't in the results. Was it blocked by robots.txt, did it time out, or did the page itself error? Each needs a different fix.
With this addition, you can read those reasons right from the results.
What changes
- For failed URLs, you can tell
robots_disallowedfromtimeoutand respond to each cause separately - You can check per origin whether robots.txt was fetched and whether usable rules existed
Dive Deep
Each entry in the robots array includes:
- The origin
- Whether usable rules were available
- The HTTP status, when the crawler received a response
Here is the example from the original post:
{
"robots": [
{ "origin": "https://example.com", "state": "available", "status": 200 }
],
"records": [
{ "url": "https://example.com/docs/", "status": "completed", "outcome": "success" }
]
}
The full list of outcome values and the field definitions are in the Crawl endpoint docs under "URL outcomes and robots.txt diagnostics". The announcement itself doesn't list every value.
Wrap-up
- Browser Run
/crawlresults now include a per-URLoutcome - A job-level
robotsarray shows robots.txt state for up to 50 origins - You can sort out failure causes just by reading the results
This is for anyone crawling sites with Browser Run who wants to know why some URLs didn't come back!