Instead of relying solely on a static list of names, uasurfer uses convention-based detection to identify bots. It catches:
- Keyword patterns: Anything containing
…bot, …spider, or …crawler. - Contact URLs: Agents that publish a contact URL starting with
+http…. - HTTP Client Libraries: Common libraries like
curl, python-requests, Go-http-client, and Scrapy. - Automation Tools: Headless browsers, automation browsers, and link preview fetchers.
Named Browser Bots
High-volume crawlers are identified by specific constants. If a crawler is not one of these specific named constants, it is reported as BrowserBot.
Specific constants include:
BrowserGoogleBot (covers AdsBot, Mediapartners, GoogleOther, Google-InspectionTool, and Googlebot)BrowserBingBotBrowserOpenAIBotBrowserAnthropicBotBrowserPerplexityBotBrowserAmazonBotBrowserBytedanceBotBrowserAhrefsBotBrowserSemrushBot
Limitations and False Negatives
uasurfer does not attempt to maintain an exhaustive list of every crawler in existence. Consequently, it may not catch crawlers that:
- Use a complete browser agent string.
- Use unguessable names.
- Do not provide a contact URL or generic tokens (e.g.,
Datanyze, Rigor, Scope3/2.0, binlar).
Detection accuracy is approximately 83% based on measured crawler agents, with zero false positives reported against real device agents.