IVskiBot Website audit crawler by IVski

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:

  1. 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.
  2. It sends one HEAD request for the linked address: only the status code is needed.
  3. 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.

A link check in your access log
"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:

Block IVskiBot completely
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.

Keep IVskiBot out of some paths only
User-agent: IVskiBot
Disallow: /private/
Disallow: /checkout
Ask for a slower audit (seconds between requests, up to 30)
User-agent: IVskiBot
Crawl-delay: 10

Good to know

  • Every host has its own robots.txt: www.example.com and shop.example.com each need the lines.
  • Rules under User-agent: * apply to IVskiBot as well, as long as there is no group for IVskiBot. Once there is a User-agent: IVskiBot group, IVskiBot follows only that group, just like Googlebot does with its own group. Copy into it any Disallow lines from * that should still apply.
  • The name is matched without case and version: IVskiBot, ivskibot and IVskiBot/0.1 are 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.

nginx (inside the server block)
if ($http_user_agent ~* "ivskibot") {
    return 403;
}
Apache (.htaccess or VirtualHost, mod_rewrite)
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, DELETE or 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 Disallow for 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 POST with 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.com points 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:

Shell
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.

AddressWhy
/robots.txtRead 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.
SitemapsFrom robots.txt, or /sitemap.xml: to find every page, also pages no link leads to.
Pages and their filesPages, images, CSS, JavaScript and fonts found in links, sitemaps and redirects: broken links, redirects, titles and descriptions, page weight, caching, security headers.
http:// start pageDoes 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.txtThe security contact (RFC 9116).
mta-sts.<domain>/.well-known/mta-sts.txtThe MTA-STS policy for e-mail.
Legal pagesThe 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-delay in robots.txt makes it slower, up to 30 seconds between requests
  • on 429 Too Many Requests, or 503 with Retry-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:

robots.txt
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.