Skip to main content

Overview

This step is optional. If your website uses a WAF, CDN protection, or rate limiting, you may see some 403 or 429 errors in your crawl results. For more accurate results, you can whitelist our crawler using one of the methods below.

Identification Methods

Our crawler can be identified using two methods:

User-Agent String

SEOCrawler/1.0 (https://seocrawler.app)
Our crawler sends this unique header with every request to your site:
X-SEOCrawler-Verify: c0cf648c-fb8b-41f0-b25e-1c99646701e3
Using the verification header is more secure than User-Agent alone, as the token is unique to your domain and cannot be easily spoofed.

Platform-Specific Instructions

Cloudflare WAF

Create a Cloudflare WAF rule to allow our crawler:
1

Open WAF Settings

Go to SecurityWAFCustom Rules
2

Create New Rule

Click Create rule and enter a name like “Allow SEO Crawler”
3

Add Expression

Use this expression to match our verification header:
(http.request.headers["x-seocrawler-verify"] eq "c0cf648c-fb8b-41f0-b25e-1c99646701e3")
4

Set Action

Set the action to Skip and check all security features you want to bypass.
5

Deploy

Click Deploy to activate the rule.

Alternative: User-Agent Matching

You can also use User-Agent matching if you prefer:
(http.user_agent contains "SEOCrawler")
User-Agent matching is less secure as it can be spoofed. We recommend using the verification header when possible.

Other Platforms

In the Sucuri dashboard:
  1. Go to FirewallAccess Control
  2. Under Whitelisted HTTP Headers, add:
    • Header: X-SEOCrawler-Verify
    • Value: c0cf648c-fb8b-41f0-b25e-1c99646701e3
  3. Save changes
In WordPress admin:
  1. Go to WordfenceFirewallBlocking
  2. Create a new whitelist rule
  3. Set pattern type to Custom Pattern
  4. Allow requests containing header X-SEOCrawler-Verify with value c0cf648c-fb8b-41f0-b25e-1c99646701e3
In the Akamai Control Center:
  1. Go to your property configuration
  2. Add a new rule under Security
  3. Match on header X-SEOCrawler-Verify equals c0cf648c-fb8b-41f0-b25e-1c99646701e3
  4. Set action to Allow
  5. Deploy the configuration
Add this VCL snippet:
sub vcl_recv {
  if (req.http.X-SEOCrawler-Verify == "c0cf648c-fb8b-41f0-b25e-1c99646701e3") {
    # Skip rate limiting and security checks
    set req.http.Fastly-Allow = "true";
  }
}
In the Imperva dashboard:
  1. Go to SecurityWAFPolicies
  2. Create a new Whitelist Rule
  3. Set condition: Header X-SEOCrawler-Verify equals c0cf648c-fb8b-41f0-b25e-1c99646701e3
  4. Apply the rule

Verifying the Whitelist

After setting up your whitelist, run a new crawl to verify it’s working:
1

Start a New Crawl

Run a fresh crawl on your domain.
2

Check Results

Look for a reduction in 403 (Forbidden) and 429 (Too Many Requests) errors.
3

Compare

Compare the results to your previous crawl to see the improvement.
If you’re still seeing blocked requests after whitelisting, check that:
  • The rule is enabled and deployed
  • The rule has higher priority than blocking rules
  • There are no other security layers blocking requests

Troubleshooting

  • Verify the whitelist rule is active
  • Check for multiple security layers (WAF + CDN + origin)
  • Ensure the header name is exact: X-SEOCrawler-Verify
  • Check rule priority/order
  • Rate limiting may be configured at multiple levels
  • Check both CDN and origin server configurations
  • Verify the whitelist bypasses rate limiting, not just WAF
The header X-SEOCrawler-Verify is sent with every request from our crawler. If you can’t see it in your logs, check that:
  • Your server logs include request headers
  • No upstream proxy is stripping headers

Security Considerations

Keep your verification token secure. While we provide a unique token for your domain, you should treat it like a secret. Don’t share it publicly.
Our approach is secure because:
  1. Unique tokens: Each domain has a unique verification token
  2. Header-based: Headers are harder to spoof than User-Agent strings
  3. Server-side verification: The check happens at your server/WAF level

Need Help?