ZulienScoreBot — scanner info
You reached this page because you saw 'ZulienScoreBot' in your server logs. Here's what it is, how to let it through maintenance mode, and how to opt out if you don't want us crawling.
How we identify
Hybrid UA: standard Chrome prefix (so WAFs and anti-bot layers treat us like a real browser and return realistic HTML) + distinctive 'ZulienScoreBot' suffix (so you can recognise or block us in your logs). The User-Agent is public, so never use it to grant access.
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 ZulienScoreBot/1.0 (+https://score.zulien.sk/scanner-info)
ZulienScoreBot/1.0X-Zulien-Scanner-TokenWhitelist for maintenance mode
If your site returns 503 to everyone during maintenance, you can still let ZulienScore test it: claim your store, generate a scanner token and add ONE of the snippets below with your token. Our outbound IPs are not stable (Deno Deploy edge network), so an IP allowlist won't work.
We changed this guide: no more User-Agent whitelisting
An earlier version of this page suggested letting us through maintenance by the "ZulienScoreBot" User-Agent. The User-Agent is public, so such a rule opens your closed shop to anyone: `curl -A ZulienScoreBot` gets through. If you added it, remove it and use a per-shop scanner token instead.
# Let the ZulienScore scanner through maintenance mode (put BEFORE your maintenance rules)
RewriteCond %{HTTP:X-Zulien-Scanner-Token} =YOUR-SCANNER-TOKEN
RewriteRule ^ - [E=ZULIEN_BYPASS:1,L]
Header always set X-Zulien-Maintenance-Bypass "1" env=ZULIEN_BYPASS# inside server {} block, BEFORE the maintenance rewrite
set $bypass_maintenance 0;
if ($http_x_zulien_scanner_token = "YOUR-SCANNER-TOKEN") {
set $bypass_maintenance 1;
}
if ($bypass_maintenance != 1) {
return 503; # or your maintenance response
}
add_header X-Zulien-Maintenance-Bypass $bypass_maintenance always;# Cloudflare WAF custom rule (Skip) (any(http.request.headers["x-zulien-scanner-token"][*] eq "YOUR-SCANNER-TOKEN")) Action: Skip -> All remaining custom rules
// PrestaShop: inside your maintenance check (override or module hook)
if (hash_equals('YOUR-SCANNER-TOKEN', $_SERVER['HTTP_X_ZULIEN_SCANNER_TOKEN'] ?? '')) {
header('X-Zulien-Maintenance-Bypass: 1');
return; // skip the maintenance block for this request only
}// WordPress: mu-plugin, loaded BEFORE your maintenance plugin
if (hash_equals('YOUR-SCANNER-TOKEN', $_SERVER['HTTP_X_ZULIEN_SCANNER_TOKEN'] ?? '')) {
header('X-Zulien-Maintenance-Bypass: 1');
define('WP_MAINTENANCE_BYPASS', true);
}# robots.txt User-agent: ZulienScoreBot Allow: / # (default already allows us — this is only if you need to override a blanket Disallow)
Bot etiquette (what we commit to)
- Respect robots.txt — if you Disallow us, we back off.
- No form submissions, no login attempts, no write operations. GET/HEAD only.
- Max ~50 requests per scan, spread across 3–8 seconds. No aggressive parallelism.
- Cache: same domain max 1× / 5 minutes unless the user forces a rescan from the UI.
- Fair-use: we do not run continuous / scheduled scans without user action. Every scan is initiated by someone on score.zulien.sk.
Don't want us scanning? Opt out
Add to your robots.txt. We'll stop within 24h. If you need immediate opt-out, email us.
User-agent: ZulienScoreBot Disallow: /
If someone else (a third party like a competitor or a potential buyer) initiated the scan, they will still see the failure message but no data will be collected after your Disallow is live.
ZulienScoreBot is operated by Inger s.r.o. (Bratislava, SK). Read our privacy policy for data handling details.