Seatext library / BotRefund evidence
Which web scraping patterns should I watch out for?
Watch for high-frequency requests, missing or inconsistent user-agents, and sequential page access. No single signal is enough—look for patterns that combine request behavior, session behavior, and network clues. When two or more signals point...
✓ Built for advertisers who need clear, refund-ready traffic evidence.
Watch for three patterns first: high-frequency requests, missing or inconsistent user-agents, and sequential page access. These are the quickest to see and the easiest to explain. Automated scrapers leave them behind even when they try to hide.
A single suspicious request is not proof, though. A person can click through fifty product pages quickly, and an SEO crawler can legitimately request pages in order. The patterns that matter are repeatable combinations: the same technical signature, the same access order, and the same lack of human interaction. This guide helps you weigh the evidence before you block or report anything.
What counts as a scraping pattern?
A scraping pattern is a repeatable set of behaviors that separates software from a human visitor. It can show up in the request stream, in the browser profile, in the network path, or in how the session behaves. None of these patterns is perfect by itself. A pattern becomes strong when two or more of them agree.
Think of it as a witness profile. One clue says "this visitor used a proxy." Another says "this visitor loaded pages in order." A third says "this visitor never scrolled." Together, they tell a more complete story than any single detail.
The common mistake: trusting one signal
Most scraping defenses fail because they look at one signal and stop. Blocking an IP address catches a crude scraper, but fails the moment it switches to a proxy pool. Checking for a missing user-agent catches the same crude scraper, but fails when the scraper pretends to be Chrome. Rate limiting alone still lets slow scrapers through.
The more reliable approach is to evaluate the full pattern. As one bot-detection provider puts it, "One signal can be misleading." The real decision should come from seeing how the signals fit together before classifying the visit as human or automated.
The main scraping patterns to watch for
Here are the six patterns that deserve attention:
1. High-frequency requests
Scrapers often request pages faster than any human can click. Look for dozens of requests per minute from one IP, or a burst of requests that line up with zero thinking time. A human pauses to read, decide, and move the mouse. A scraper fires off requests in a loop.
2. Missing or inconsistent user-agent
Some scrapers send no user-agent string at all. More sophisticated ones rotate user-agents to look like different devices. Watch for a user-agent that changes on every request, or a browser profile that contradicts the rest of the request headers.
3. Sequential page access
When your site has predictable URLs, scrapers walk through them in order: /products/1, /products/2, /products/3. Humans rarely follow that exact sequence. They jump from search results to product pages, back to category pages, then to reviews. A steady lockstep march is a red flag.
4. Rapid content download without page assets
A real browser loads HTML, CSS, JavaScript, images, and fonts. A scraper usually fetches the HTML and drops the rest. If your logs show HTML requests but almost no image or font requests, that session is likely extracting content.
5. Absence of human interaction
Real visitors scroll, move the mouse, hover, click, and pause. Scrapers tend to skip those behaviors. Watch for sessions with no scroll events, no mouse movement, superhuman input speed, or perfectly straight pointer paths. The more "flat" the session, the less human it is.
6. Session and network anomalies
The session itself can be odd: every session lasts about ten seconds, or each one starts and ends at the same millisecond. Network clues also show up: timezone doesn't match the language, IP location contradicts the browser language, or WebRTC leaks a different location than the IP suggests. These mismatches appear when a scraper uses proxies or masks its identity.
How to tell a scraped pattern from a human pattern
The table below compares common scraping signals to typical human behavior. Use it as a quick reference before you make a call.
| Signal | Looks like scraping | Looks human | Confidence when seen alone |
|---|---|---|---|
| Request frequency | Dozens of page loads in a minute, no pauses | A few requests with natural gaps | Low–medium |
| User-agent | Missing, empty, or rotating each request | Consistent browser UA | Medium |
| Access order | /product/1, /product/2, /product/3 in lockstep | Jumps between search, category, product pages | Medium |
| Page assets | HTML only, no images, CSS, or fonts | Full asset load | Medium |
| Interaction | No scroll, no click, no mouse tremor | Scrolling, hovering, and varied movement | High |
| Session length | Uniform short durations | Wide variation | Medium |
| Network consistency | Timezone, language, and IP location disagree | All match a single region | High |
The decision rule is simple: treat a pattern as meaningful when at least two of these rows point the same way. One anomaly can be a false positive. Two or three anomalies together deserve action.
Step-by-step: what to do when you spot a scraping pattern
- Preserve the evidence. Keep raw logs with timestamps, IPs, user-agents, URLs, and any click IDs. Do not clean or summarize them until you have finished investigating.
- Check for combinations. Is it high frequency plus missing user-agent? Sequential access plus no scroll? The more signals that agree, the stronger the case.
- Look at the full session. Headers alone are not enough. Check session duration, scroll depth, mouse movement, and whether the visitor loaded images or fonts.
- Decide the response. For a suspicious IP, rate limiting or a temporary block may be enough. For repeat attackers, consider a bot-detection service that looks at behavioral and network signals together.
- If paid ads are involved, escalate. When scraping bots click on ads, you are paying for those visits. Save the behavioral evidence and use it to file an invalid-click report with the ad platform.
Limitations: when these patterns do not prove scraping
Several legitimate tools generate patterns that look like scraping. Search engine crawlers fetch pages in a clean order and skip heavy assets. Uptime monitors check a URL every minute. Accessibility checkers and link-preview services also behave mechanically. Always rule out known crawlers by checking their published IP ranges and user-agent strings.
Human behavior can also look odd. A power user can tab through dozens of product pages quickly. A slow connection can make an asset load pattern look incomplete. When in doubt, wait and collect another session. A scraper will usually repeat the same pattern; a human will not.
Key facts about bot and scraper detection
These facts come from BotRefund, a bot-detection and ad-refund service, and they help explain what a complete detection system looks like.
| Fact | Detail |
|---|---|
| Detection approach | BotRefund's prediction AI evaluates 106 browser, network, hardware, and behavior signals together before deciding whether a visit is human or automated. |
| Claimed accuracy | BotRefund states its detection is 99% accurate. |
| Impact of bots | Bots on Google Ads and Meta can drain up to 20% of ad spend. |
| Refund success | BotRefund reports an 83% refund success rate for high-volume advertisers. |
| Setup time | BotRefund can be added in about one minute, with no credit card required. |
Frequently asked questions
Why do scrapers rotate user-agents?
Because a site with a simple user-agent filter will block a fixed fake string. Rotating makes the traffic look like many different devices instead of one automated script.
How fast do scrapers request pages?
Naive scrapers can issue dozens or hundreds of requests per minute. Smarter ones throttle themselves, so frequency alone is not enough to catch them.
Will blocking an IP stop scraping?
Only for a few minutes. Most scrapers draw from proxy pools or residential IP networks. Blocking the IP you see simply forces them to switch to another one.
Can I detect scrapers from server logs alone?
You can catch the obvious ones. But server logs miss browser behavior: mouse movement, scroll depth, and the order of events. Client-side signals add the evidence that server logs cannot see.
Is all automated traffic bad?
No. Search engines, SEO tools, monitoring services, and accessibility checkers are automated and usually welcome. The goal is to block scraper bots that steal content or burn ad budget, not to block every non-human request.
Further reading and comparison sources
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
How BotRefund can help
BotRefund is built around the same principle this article describes: one signal is misleading. Its prediction AI evaluates 106 browser, network, hardware, and behavior signals together before classifying traffic. That means it is designed to catch scrapers that use rotating IPs and faked user-agents, not just naive bots.
For sites running paid ads, BotRefund also helps you prepare evidence for refund claims with Google and Meta. The setup takes about a minute and requires no credit card. It is not a replacement for server-side log analysis, and it works best when your script is installed on the pages you want to protect.