Identifying the crawler
Every request carries this user agent:Accept: text/html, application/xhtml+xml, ...) and
discards anything else. It does not fetch images, scripts, stylesheets or
fonts, and it does not execute JavaScript. What it reads is the raw response
your server sends, which is what most AI crawlers read too.
The crawler fetches every page it keeps. HTML is stored so the audit can judge
it; nothing is stored from pages your robots.txt disallows.
How a crawl runs
A crawl is started from Site Health, and also runs once when a brand is onboarded. One crawl runs per brand at a time; a second request while one is running waits for it rather than doubling the load on your server.1
robots.txt and sitemaps
The crawler fetches
robots.txt once per host and parses it with a parser
that follows Google’s specification, including * wildcards, $ anchors
and longest-match Allow precedence. It then fetches the sitemaps the
file names, following sitemap indexes up to 50 files per host, and seeds
the crawl with the URLs they declare. Both files are kept so the audit can
judge them.2
Breadth-first from the homepage
Starting at your homepage, it follows internal
<a href> links level by
level, up to 10 clicks deep and up to 10,000 pages. Subdomains of your
domain are included. Tracking parameters are stripped and URLs are
normalized so one page is counted once.3
Record everything, render nothing
For every page: the final URL, every redirect hop on the way to it, the
HTTP status, the response headers, the HTML, and every link on the page
with where it points. Nothing is rendered or executed.
4
Build the link graph
When the crawl finishes, a second pass reads the whole graph and computes,
per page: inbound and outbound link counts, broken outbound links, click
depth from the homepage, a link score, and near-duplicate groups. Every
crawl’s graph is kept, so you can see what changed between crawls.
5
Audit and measure
The audit library runs over the pages and
the graph, Core Web Vitals are fetched
from Chrome’s field data, and any open Fixes
are checked against what the new crawl found.
Politeness
The crawler is designed to be a good guest on your server.Allowing or restricting NarrativeBot
Narrative only crawls sites you have connected as your brand, so there is rarely a reason to restrict it. If your robots.txt blocks all crawlers by default, add an allowance for NarrativeBot so Narrative can see your pages:What the link graph computes
Where the crawler reads from, and what it stores
- Fetched:
robots.txt, sitemaps, and HTML pages on your domain and its subdomains that robots.txt allows. - Stored: the HTML of each page, its headers, status, redirect chain, the links it carries, and the graph facts above. All of it scoped to your brand and to the crawl session that produced it.
- Not fetched: images, scripts, stylesheets, fonts, media, or anything off your domain. Outbound links are recorded as URLs but not followed.