Seatext library / BotRefund evidence
How to Tell If Traffic from a Specific IP Address Is a Bot
Check a specific IP address by looking at request frequency, browser fingerprint, and on-page behavior. High request rates, missing cookies, and superhuman input speeds are red flags, but a single signal is never enough...
✓ Built for advertisers who need clear, refund-ready traffic evidence.
You can tell if a specific IP address is a bot by checking three things: how often it requests pages, what its browser fingerprint looks like, and how it behaves on the page. A real person usually loads a few pages, takes time to read, and moves the mouse naturally. A bot might fire dozens of requests per minute, run in a headless browser, and fill forms in under a millisecond.
No single sign proves a bot. Privacy tools, corporate networks, and unusual devices can all mimic bot-like behavior. The reliable approach is to collect several independent signals and see if they agree.
Step-by-step: Diagnose a specific IP
Use this sequence to evaluate an IP from your server logs or analytics. It’s the same order a bot-detection system uses, simplified for a manual check.
- Pull all requests from that IP. Open your access log or analytics and filter by the IP. Record the total number of requests and the time range.
- Calculate request rate. Divide requests by minutes. A human rarely exceeds 20 requests in a minute; a bot can hit 100+ per minute.
- Inspect the user agent and headers. Look for headless browser strings like “HeadlessChrome” or missing common headers. Also check if the IP belongs to a data center or hosting provider using a whois lookup.
- Check cookies and JavaScript execution. Real browsers accept cookies and run JavaScript. If the session has no cookie or fails to execute JS, that’s a strong bot signal.
- Review on-page behavior. Look for mouse movements, scrolling, click timing, and session length. Bots often skip scrolling, move in straight lines, or complete actions in under 1ms.
- Run a scoring script. Assign points to each suspicious signal. A score above 5 out of 10 warrants deeper investigation.
A simple console script to score suspicious behavior
This JavaScript function is a starting point. Feed it data you gather from logs or analytics:
<script>
function botScore(ipData) {
let score = 0;
if (ipData.requestsPerMinute > 30) score += 2;
if (!ipData.hasCookies) score += 1;
if (ipData.headlessHeaders) score += 2;
if (ipData.superhumanSpeed) score += 2;
if (ipData.noMouseMovement) score += 1;
if (ipData.gridAlignedPath) score += 1;
if (ipData.unnaturalSessionLength) score += 1;
return score;
}
</script>
Label each input clearly. For example, headlessHeaders is true when the user agent contains “Headless” or “Phantom”. superhumanSpeed is true when a form is filled in under 1 millisecond. This script gives a rough score, not a verdict.
Signals that point to a bot
Bots leave trails. Here are the most common signals to watch for:
- High request rate – a single IP generating dozens of requests per minute
- Missing cookies – the browser doesn’t store or send cookies because it’s not a real browser
- Headless browser indicators – user agent strings like “HeadlessChrome” or missing JavaScript execution
- Superhuman input speed – form submissions or clicks in under 1 millisecond
- Absence of human motion – no mouse tremor, straight-line cursor paths, or no scrolling
- Grid-aligned movement – pointer paths that snap to precise lines or blocks instead of natural curves
- Unnatural session durations – visits that are too short, too long, or exactly uniform
Why one signal is never enough
A bot-detection engine doesn’t trust a single anomaly. It cross-checks browser, network, device, and behavior data. As one analysis puts it, “A single anomaly is not a bot verdict.”
Privacy tools, travel, corporate networks, and unusual devices can produce unexpected behavior for genuine people. A user with a strict browser extension might disable cookies. A corporate VPN might use a data-center IP. A person with a disability could use keyboard navigation instead of a mouse.
So treat every signal as evidence, not proof. Combine at least three independent signals before you take action.
Common automated behavior patterns
Modern bots are designed to look human, but they still make mistakes. Here are patterns that bot-detection systems flag:
- Ghost clicks – clicks that happen without a natural sequence of human intent
- Honeypot interactions – bots respond to hidden elements that real users never see
- Robotic linear mouse movements – unnatural straight pointer paths
- Absence of humanlike tremor – no tiny imperfections and jitter
- Superhuman input speed (<1ms) – faster than a person could possibly type or click
- Absence of clicks or scrolling – sessions that stay too static
- Unnatural session durations – visit lengths that are too short, too long, or too uniform
When you see several of these together on a specific IP, the probability of a bot is high.
Limitations of a manual IP check
A manual check can miss sophisticated bots. Modern fraud networks use residential proxies and AI-driven telemetry to mimic human behavior. They route through real user IPs and add natural-looking randomness to mouse paths and click intervals.
Also, a single IP may be shared by many humans through NAT or a corporate gateway. Blocking it could hurt real users.
Manual checks are useful for investigation, but they don’t scale. For high-volume traffic or ad campaigns, you need an automated system that runs hundreds of checks per session.
What to do when you have a suspect
If your scoring suggests a bot, take these steps:
- Verify with a second data source. Compare your server logs with your analytics platform. Do the request patterns match?
- Run a real-time test. Visit the site yourself and compare behavior. A real user will have a different fingerprint.
- Block the IP temporarily. Use a firewall rule or .htaccess to deny access. Monitor for false positives.
- If paid ads are involved, document the evidence. For Google or Meta refunds, you’ll need proof of invalid activity, like session recordings or header logs.
Don’t block an IP based on one signal. Always corroborate.
Key facts
| Signal | What to look for | Bot likelihood |
|---|---|---|
| Request rate | Over 30 requests per minute | High |
| Cookie presence | No cookies set or sent | High |
| User agent | HeadlessChrome, Phantom, or other automation strings | High |
| Input speed | Form fill in under 1ms | Very high |
| Mouse movement | Straight lines or no movement | Medium |
| Session length | Uniform or unnatural durations | Medium |
Frequently asked questions
Can I check an IP with a free online tool?
Yes, many services offer a bot IP check. They compare the IP against known bot networks and look for data-center or proxy usage. These tools give a quick read but don’t see on-page behavior.
How many bot signals do I need to be sure?
There’s no fixed number, but most detection engines look for corroboration across at least three independent categories: browser, network, device, and behavior. One signal is rarely enough.
What if the IP belongs to a residential proxy?
Residential proxies use real ISP addresses, so the IP looks legitimate. You’ll need behavior signals like superhuman speed or headless browser indicators to catch them.
Should I block an IP immediately?
Only after you’ve cross-checked with multiple signals. Blocking too quickly can lock out real users sharing that IP.
How do I prove a bot clicked my ads?
For Google or Meta refunds, you need evidence like session recordings, header logs, and behavioral patterns. Most advertisers use automated tools to generate audit-ready reports.
What is BotRefund’s console debug evaluator?
It’s one of 106 checks BotRefund uses to detect automation. It looks for mismatches in browser APIs that automation tools often patch but can’t hide completely.
How accurate is bot detection?
BotRefund claims 99% accuracy by cross-checking hundreds of signals and using AI prediction. That accuracy comes from corroboration, not a single browser tell.
Further reading and comparison sources
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Learn more
Visit the website for more information.