NarraSightBot

The crawler identity behind NarraSight's free Alt-Text Health Score · Last updated 1 October 2026

Who runs it

NarraSight Ltd, a company incorporated in Scotland (company number SC857212), registered office Graham Hill Building, 50 Richmond Street, Glasgow G1 1XP. NarraSight writes image descriptions (alt text) for websites. The free Alt-Text Health Score at narrasight.com/score lets anyone paste a web address and see how many of that page's images would say nothing to a blind visitor. NarraSightBot is what fetches the page.

A person answers mail sent to hello@narrasight.com. There is no ticket queue behind it.

How to recognise it

Every Health Score page fetch sends this user agent, character for character:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36 NarraSightBot/1.0 (+https://narrasight.com/bot)

The token to match on is NarraSightBot/1.0. The Chrome prefix in front of it is there because some sites serve an empty shell or a 403 to anything that does not look like a browser, and we would rather be told that a page is blocked than be handed a blank one. We are not trying to hide behind it: the token, the version and this page's address are in the same string, and they are the last thing in it, which is where a log line is least likely to truncate them.

Every request NarraSight makes at your site declares itself. Three paths send the string above, from one shared definition: the plain HTTPS GET for a page's HTML, the headless Chromium render, and the fetch of an individual image when our model checks a description against the picture. A test in our own build asserts all three against one shared definition and fails if a hand-written browser string reappears in any of the three fetchers, so dropping the disclosure again would be a deliberate act with a failing test attached to it. Several other request types exist, and none of them is a public scan: a signed-in organisation scanning or re-scanning a site it has configured, which sends the string above, and calls to a content system an organisation has connected to us, which go to that system's API rather than to a web page. The check we run when an organisation connects one sends the shorter NarraSightBot/1.0 (+https://narrasight.com/bot) with no browser prefix.

The Chromium render loads the page as a visitor's browser would, including its own scripts, stylesheets and images, because rendering it is the only way to see what a visitor sees. It sends the same user agent as everything else. It also scrolls the page for up to four seconds, because that is what makes lazy-loaded images load. Requests to private or internal addresses are refused by us before they leave, so a page that loads from an internal host will render with those requests missing.

Exactly what it does

Two things fetch pages, and they behave differently. Both begin with a person asking us for something, and the second one reads more than one page and may come back to the site twice afterwards, so it is set out separately rather than folded into the first.

The free score check: one page

The fuller site report: up to twenty pages

When someone asks us to email them the fuller report on a site, we look at more than the one page they pasted. This is the part a webmaster is most likely to notice, so here it is in full.

What it does not do

This is the part we would want to read first if it were our logs, so it is stated plainly and we will stand behind every line of it.

robots.txt

NarraSightBot does not read robots.txt today. We are not going to imply otherwise on the page you would judge us against, and we are not going to dress it up: for the single page a person pastes into the score check the argument for not needing it is reasonable, and for a twenty-page report crawl it is thin. This is the part of our behaviour we are least comfortable with, it is a known gap rather than a position, and it is being looked at properly rather than quickly.

Until it is closed, the two methods below both work today and take effect immediately. If your policy is that every automated fetch must consult robots.txt, write to us and say so, and tell us the host, because we would rather hear it from you than be blocked for it.

How to allow it

Allow requests whose user agent contains NarraSightBot/1.0. In Cloudflare that is a WAF skip rule on http.user_agent contains "NarraSightBot". In Akamai it is an entry in the Bot Manager custom bot category matched on the same string. There is no fixed IP range to allowlist, so please match on the user agent rather than an address.

How to block it

Block requests whose user agent contains NarraSightBot/1.0, at your edge or in your server configuration. That is immediate, it needs nothing from us, and it is the method we would choose ourselves.

If you would rather we simply never fetched your domain, email hello@narrasight.com with the host name. We will add it to our refusal list and confirm, by hand, from a person. We would rather tell you that it is a manual list than imply a system we have not built. You do not have to give a reason.

One exception, and it is the one we would want told to us. Where we cannot get usable pixels for an image ourselves, we pass the image's address to our model provider and their fetcher requests it from your site. That request is theirs, not ours, and it does not carry NarraSightBot, so blocking our user agent will not stop it. The free alt text generator and the live demo work this way whenever they are given an image's address rather than the file itself. If that matters to you, write to us with the host name.

Why any of this matters to us

NarraSight was founded in Glasgow by Abdul Eneser, who is blind and uses a screen reader every day. The score exists because most websites have images that say nothing at all to someone browsing by ear, and the only way to show a site owner that is to read their page. We would rather be a bot you recognise and can switch off in one rule than one you have to work out from your logs.