IVskiBot
IVskiBot is the crawler of IVski Site Audit. It checks websites for broken links, redirects, HTTPS and certificates, security headers, SEO basics, accessibility and speed. IVski runs it on its own websites and on websites whose owners asked for an audit. It is not a search engine and it does not collect your content.
- GET and HEAD only
- Follows robots.txt
- No forms, no logins
- No vulnerability scanning
- User agent
- IVskiBot/0.1 (+https://ivski.com/bot)
- robots.txt name
- IVskiBot
- Methods
- GET, HEAD
The version number may change. Match on the name IVskiBot; case does not matter.
You see IVskiBot in your logs, but never asked for an audit?
Then a website we audit links to your site. Part of an audit is checking that the links on the audited site still work, including links to other websites. That is a short visit to the one address that is linked, not a crawl of your site:
- IVskiBot reads your
/robots.txt, once per audit. If it disallows the linked address for IVskiBot, the link is not checked and nothing else is requested. - It sends one
HEADrequest for the linked address: only the status code is needed. - Only if HEAD is answered with an error (many servers do not support HEAD) does it repeat the request once as
GET.
IVskiBot does not follow the links on your pages, and it does not read or store your content. It keeps the status code, the response time and a redirect target, if there is one, in a private report for the owner of the linking site. If that redirect leads to another address, that address is checked the same way.
"GET /robots.txt HTTP/1.1" 200 312 "-" "IVskiBot/0.1 (+https://ivski.com/bot)"
"HEAD /blog/some-article HTTP/1.1" 200 0 "-" "IVskiBot/0.1 (+https://ivski.com/bot)"
IVskiBot sends no Referer, so the log does not show which site links to you.
How to block IVskiBot
Recommended: robots.txt
Add these lines to the robots.txt at the root of your host, for example https://example.com/robots.txt:
User-agent: IVskiBot
Disallow: /
After that, IVskiBot requests nothing from your site except robots.txt itself: no link checks and no audits. Your robots.txt is read again on every visit, so a change counts from the next time IVskiBot comes.
User-agent: IVskiBot
Disallow: /private/
Disallow: /checkout
User-agent: IVskiBot
Crawl-delay: 10
Good to know
- Every host has its own robots.txt:
www.example.comandshop.example.comeach need the lines. - Rules under
User-agent: *apply to IVskiBot as well, as long as there is no group for IVskiBot. Once there is aUser-agent: IVskiBotgroup, IVskiBot follows only that group, just like Googlebot does with its own group. Copy into it anyDisallowlines from*that should still apply. - The name is matched without case and version:
IVskiBot,ivskibotandIVskiBot/0.1are the same. - robots.txt has to answer with status 200. If it is missing or answers with an error, IVskiBot treats the site as open.
- The robots.txt of other websites always holds. Only the owner of an audited site can let us skip their own robots.txt, for example while the site is still closed to search engines.
Alternative: block it on the server
You can also refuse the user agent with status 403. A link check accepts that, but it still has to knock to get the 403: one HEAD per linked address and, because HEAD failed, one GET. With robots.txt it does not request your pages at all.
if ($http_user_agent ~* "ivskibot") {
return 403;
}
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ivskibot [NC]
RewriteRule ^ - [F]
What IVskiBot never does
To websites, IVskiBot sends only GET and HEAD requests. It reads, it never writes. It never:
- sends
POST,PUT,PATCH,DELETEor any other method - fills in or submits forms: contact, search, comments, newsletter or sign-up
- tries to log in, guesses passwords or sends credentials
- keeps cookies between requests
- looks for security holes, admin panels, backups or leaked files such as
/.env,/.git/,/wp-login.php - adds attack strings to addresses or parameters (SQL,
../,<script>) - invents addresses: apart from the standard ones listed below, it requests only addresses it found in links, sitemaps and redirects
- collects your content for a search engine, for AI training or for sale
- ignores robots.txt: a
Disallowfor IVskiBot is final
The only POST IVskiBot ever sends goes to Google's Chrome UX Report API at chromeuxreport.googleapis.com, an API that returns real-user speed data for a site we audit. It never goes to your server.
Is it really IVskiBot?
Anyone can write IVskiBot into a user agent. If a request with our name does any of the following, it is not IVskiBot. It is a script that borrows our name to look harmless:
Not IVskiBot
- any method other than GET or HEAD, such as
POSTwith form data or a request body - login attempts, or requests to login and admin pages it found no link to
- probes for files and paths such as
/.env,/wp-admin/,/phpmyadmin/,/backup.zip - attack strings in the address, such as
' OR 1=1,../../or<script> - requests to paths your robots.txt disallows for IVskiBot
- a request rate that keeps going after a
429 Too Many Requests - an IP address other than the one
ivski.compoints to
How to check the IP address
IVskiBot runs only on the IVski server, so its requests come from the address ivski.com points to. The address can change; DNS always has the current one:
dig +short ivski.com A
dig +short ivski.com AAAA
A fake ignores robots.txt anyway, so block it by IP address or with your firewall. If you like, tell us at abuse@ivski.com with the time, the IP address and the request line from your log.
What an audit requests
This section is about websites we audit: our own, and those whose owners asked for an audit. Linked websites only get the link check described above.
| Address | Why |
|---|---|
/robots.txt | Read first. If it disallows the start page for IVskiBot, no other HTTP request goes to that host. Only the TLS handshake and the DNS and e-mail checks below still run. |
| Sitemaps | From robots.txt, or /sitemap.xml: to find every page, also pages no link leads to. |
| Pages and their files | Pages, images, CSS, JavaScript and fonts found in links, sitemaps and redirects: broken links, redirects, titles and descriptions, page weight, caching, security headers. |
http:// start page | Does plain HTTP redirect to HTTPS? |
/ivskibot-404-<random> | One request for an address that cannot exist: does a missing page really answer 404? |
/.well-known/security.txt | The security contact (RFC 9116). |
mta-sts.<domain>/.well-known/mta-sts.txt | The MTA-STS policy for e-mail. |
| Legal pages | The Impressum and the privacy policy the site links to: are the required details there? |
Beyond HTTP
- a TLS handshake on port 443: certificate, protocol version, expiry
- DNS lookups: MX, SPF, DMARC, DKIM, CAA, DNSSEC
- a short conversation with the domain's mail servers on port 25:
EHLO,STARTTLS,QUIT. No e-mail is sent. - public sources that never touch your server: Certificate Transparency logs (crt.sh, Cert Spotter) for the host names of the domain, the RDAP registry for the domain's expiry date, and Google's Chrome UX Report
Pace and limits
- By default at least 250 ms between two requests (at most 4 per second) and at most 4 requests at a time
- a
Crawl-delayin robots.txt makes it slower, up to 30 seconds between requests - on
429 Too Many Requests, or503withRetry-After, it waits as long as asked (up to a minute), slows down for the rest of the visit and tries at most twice more - by default at most 1,000 pages and 2,000 files per site, at most 10 clicks deep from the start page
Browser check
On a site we audit, IVskiBot can also open a few pages in a headless Chrome browser, to see them the way a first-time visitor does: speed (Core Web Vitals), accessibility, keyboard navigation with Tab, screenshots in desktop and phone size, and the cookie banner. It records what loads before consent, then clicks Reject and records what still loads after that.
This visit uses the ordinary Chrome user agent, not IVskiBot, because many cookie banners are not shown to bots. The page's own scripts run as in any browser, so any requests they make come from the page's own code. The browser check never runs on websites that are only linked, and it does not run when robots.txt keeps IVskiBot away from the start page.
Your robots.txt blocks all bots, but you want an audit?
Let IVskiBot in, and keep everything else as it is:
User-agent: IVskiBot
Allow: /
Audit reports are private. They stay with IVski and the owner of the audited site and are not published.
Contact
Questions about IVskiBot, a complaint, or an audit of your own website: abuse@ivski.com. IVskiBot is run by IVski, see the Impressum.