Seatext library / BotRefund evidence

How to Detect Bots on Your Website Without Paying: A Step-by-Step DIY Guide

You can detect bots for free by analyzing server logs, adding CAPTCHA challenges, and checking browser fingerprints for automation tells. These manual methods catch basic bots but miss sophisticated traffic that mimics human behavior....

Built for advertisers who need clear, refund-ready traffic evidence.

Start with your server logs. Look for repeated IPs, identical user agents, and request patterns that don't match human browsing. Add a simple CAPTCHA on forms and login pages to filter automated scripts. Then implement JavaScript checks that reveal automation frameworks like Playwright or Selenium through browser API inconsistencies. These three steps catch the most obvious bot traffic at zero cost.

What free bot detection actually covers

Free detection means using tools and data you already own: server access logs, analytics platforms, and browser JavaScript APIs. You write the detection logic yourself or copy open-source snippets. This approach catches scrapers, basic click bots, and crude automation. It does not catch advanced bots that rotate residential IPs, mimic human mouse movement, and solve CAPTCHAs. Those require correlated signals across browser, network, device, and behavior layers — the kind BotRefund builds from 110+ independent checks.

Prerequisites before you start

  • Access to raw server logs (Apache, Nginx, IIS, or cloud provider equivalents)
  • Ability to add JavaScript to your pages
  • Google Analytics, Matomo, or similar event tracking
  • Basic regex and log-parsing comfort (awk, grep, or a log viewer)
  • A test environment to verify false positives before blocking

Step 1: Analyze server logs for automated patterns

Pull the last 7 days of access logs. Filter for:

  • IPs with >100 requests/hour sustained
  • Identical user-agent strings across many IPs
  • Requests missing Accept-Language or Accept-Encoding headers
  • Sequential paths like /page1, /page2, /page3 in milliseconds
  • HEAD-only requests to product or landing pages

Export suspicious IPs to a blocklist. Test the blocklist in staging first — corporate proxies and VPNs can look like bots.

Step 2: Add CAPTCHA challenges on high-value actions

Place a CAPTCHA on forms, login, checkout, and lead capture. Use hCaptcha, Turnstile, or reCAPTCHA v3 (score-based, invisible). Configure the threshold so only low-score requests get a challenge. Log every challenge result with timestamp, IP, user agent, and page URL. Review weekly: if legitimate users fail often, lower the threshold.

Step 3: Implement browser fingerprinting checks

Add a lightweight script that checks for automation fingerprints. BotRefund's Playwright Init Scripts check looks for mismatches in browser APIs that automation tools create when they patch or hide properties. A simple version you can write:

  • Check navigator.webdriver === true
  • Check for missing chrome.runtime in Chrome
  • Check window.outerWidth === 0 && window.outerHeight === 0 (headless)
  • Check for inconsistent screen.colorDepth vs devicePixelRatio

Send flagged sessions to your analytics as a custom event. Do not block on a single signal — privacy tools and corporate networks trigger false positives.

Step 4: Monitor behavioral anomalies in analytics

Create segments for:

  • Sessions with 0 scroll depth and <5 seconds duration
  • Sessions with >20 pageviews in <2 minutes
  • Sessions where click coordinates form straight lines or grid patterns
  • Form submissions faster than human typing speed (<100ms per field)

BotRefund tracks signals like robotic linear mouse movements, absence of humanlike mouse tremor, superhuman input speed (<1ms), and grid-aligned movement patterns. Your analytics can approximate some of these with custom event tracking on mousemove, scroll, and keydown.

Step 5: Cross-reference logs, CAPTCHA, and behavior

Join the three data sources by session ID or IP + user agent + time window. A session that fails CAPTCHA, shows headless browser flags, and has zero scroll depth is almost certainly a bot. A session with one signal only needs review. Build a simple scoring sheet: 1 point per signal, block at 3 points, review at 2 points.

Step 6: Document findings for platform refund claims

If you run Google or Meta ads, you need evidence formatted for their invalid traffic teams. BotRefund produces refund-ready reports with click IDs (GCLID, FBCLID), campaign details, timestamps, session recordings, and signal-by-signal reasoning. For DIY, export a CSV with: click ID, timestamp, IP, user agent, CAPTCHA result, fingerprint flags, behavior flags, and your confidence score. Platform reviewers expect this structure.

Verification: How to know your detection works

Run a known bot (curl, wget, headless Chrome) against your site. Confirm it triggers at least two of your signals. Then have three real people browse from different networks — home, office, mobile. Confirm they trigger zero or one signal. Adjust thresholds until real users pass and test bots fail. Repeat monthly.

Key facts

FactDetail
Independent checks in BotRefund106+ browser, network, device, and behavior signals
Detection confidence99% accuracy through cross-signal corroboration
Client refund recovery rate83% of 2,500+ audited brands recover funds from Google and Meta
Bot click waste estimateUp to 20% of Google and Meta ad budgets
Report formatRefund-ready with click IDs, timestamps, session recordings, signal reasoning
Free audit availabilityBotRefund offers a free bot audit to start

Limitations of free detection

Manual methods cannot correlate 100+ signals in real time. They miss bots that use residential proxies, solve CAPTCHAs via human farms, and simulate realistic mouse curves. False positives rise when you tighten rules. You also lack session recordings and the structured evidence format that Google and Meta reviewers require for refunds. BotRefund's AI prediction weighs the complete pattern instead of trusting raw rules, which is why it reaches 99% accuracy.

When to consider automated help

Switch to an automated platform when:

  • You spend >$5,000/month on Google or Meta ads
  • Manual review takes >5 hours/week
  • You need refund-ready reports for platform disputes
  • Bot patterns change faster than you can update rules
  • Conversion data is polluted and hurting bidding algorithms

BotRefund installs with a single script, runs 110+ checks per visit, and delivers reports in the format platform teams accept. The free audit shows exactly what portion of your traffic is automated before you commit.

FAQ

Can I really detect bots without any paid tools?

Yes. Server logs, CAPTCHA, and browser fingerprinting catch basic automation. The gap is sophisticated bots that mimic humans across every signal — those need correlated multi-layer analysis.

How much time does DIY detection take each week?

Expect 2–5 hours for log review, rule tuning, and false-positive checks. It scales with traffic volume and bot sophistication.

Will free detection get me a refund from Google or Meta?

Only if you format evidence exactly as their reviewers expect: click IDs, timestamps, session recordings, and signal-by-signal reasoning. Most DIY exports lack session recordings and the structured reasoning layer.

What's the biggest mistake in free bot detection?

Blocking on a single signal. Privacy tools, corporate proxies, and unusual devices create anomalies that look like bots. Always cross-check at least two independent signals before acting.

How do I know if bots are costing me money?

Compare ad-platform click counts to your server sessions. A 15–30% gap often indicates invalid traffic. BotRefund's audits across 2,500+ brands found bot clicks steal up to 20% of ad budgets.

Can I use Cloudflare or a WAF instead?

Edge WAFs block known bad IPs and simple patterns. They don't see browser-level behavior like mouse tremor, scroll patterns, or automation API mismatches. BotRefund adds the marketing-layer evidence layer on top of infrastructure protection.

What happens after I get a free bot audit?

You receive a report showing bot percentage, top signals, and estimated budget waste. If you want ongoing protection and refund claims, BotRefund handles detection, reporting, and negotiation with Google and Meta.

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.

Learn more