Blocks during scraping or multi-account automation rarely have one root cause. This debug-first playbook separates infrastructure, identity, and behavior layers.
Step 1 — Minimal reproduction
Strip the flow to: one profile → one URL → one action. Remove loops, parallel tabs, and third-party extensions. Capture HAR + console logs.
Step 2 — Classify the block type
| Signal | Likely layer |
|---|---|
| Cloudflare interstitial | TLS + IP + JS challenge |
| PerimeterX press & hold | Behavioral + fingerprint |
| Slider / rotate captcha | Behavioral scoring |
| HTTP 403 empty body | IP reputation or WAF rule |
| Login loop / soft ban | Account + device fingerprint |
Step 3 — IP & proxy triage
Test the same flow on a clean residential IP. If blocks disappear, rotate proxy pool quality before tuning browser flags. Align proxy country with profile timezone — see fingerprint checklist.
Step 4 — Fingerprint audit
Fix WebDriver leaks and Canvas drift before investing in captcha solvers. Managed profiles via Multilogin reduce DIY spoofing surface area.
Step 5 — Behavior tuning
- Randomized delays between actions (2–8s human range)
- Scroll and idle before form submit
- Respect
Retry-Afterheaders - Cap requests per profile per hour
Step 6 — Scale validation
Re-add concurrency in batches. Track block rate % per profile. Retire profiles that exceed threshold — cookie and storage state may be burned.
FAQ
Why does my scraper work locally but fail in production?
Should I fix captcha or fingerprint first?
Disclosure: Affiliated with Multilogin. SAAS50 · MIN50.