Audit inventory
Website scope checker
Discover internal pages, documents, and external references before estimating an accessibility audit.
Website scope discovery workspace
Scope Checker for Accessibility
What the Scope Checker Does
Before you can audit a website you need to know what is in it. The scope checker builds that inventory. Give it a start URL and it looks for sitemaps, follows internal links breadth-first, and returns every page it reached with the page's title, HTTP status, and the depth at which it was found. Along the way it separates out downloadable documents and links that leave the site, so you can see the PDFs and the third-party services an audit would have to account for.
Each run has a hard two-minute budget on the server. Within that window the crawler fetches up to the page cap you set, reads at most 600 links from any one page, and stops following links once the depth cap is reached. The result is a bounded, repeatable snapshot rather than an exhaustive crawl, which is normally what a scoping conversation needs.
How to Use It
- Enter the site's public URL. A bare domain is fine; https is assumed when you leave the scheme off. Start from the homepage for a broad inventory, or from a section landing page to scope one part of a large site.
- Set the limits. Max Pages (default 200) caps how many HTML pages are recorded. Max Depth (default 3) caps how many link hops from the start URL the crawler will follow. Turn on Include Subdomains if content lives on hosts like docs.example.com that should be in scope.
- Run the check and wait. Most small sites finish in well under a minute. The run ends when the queue is empty, the page cap is hit, or the two minutes expire, whichever comes first.
- Review the tabs and export. Use Pages to check titles, Documents for PDFs and Office files, Extras for external services, and Issues for anything that could not be fetched. Export CSV gives you a spreadsheet to annotate; Copy JSON gives you the full result for other tools.
What It Collects, and What It Does Not
Discovery uses two sources. First it reads robots.txt for Sitemap lines and fetches sitemap.xml and sitemap_index.xml, following nested sitemap indexes up to 25 files. Then it crawls: every HTML page fetched has its anchor links extracted, resolved to absolute URLs, and sorted into same-site pages (queued for crawling), same-site documents (recorded but not fetched), and external links (recorded with the page they were found on). Page titles come from the <title> element, falling back to an og:title or twitter:title meta tag, then the first <h1>, and finally the URL itself.
The tool does not test accessibility. It never opens the documents it lists, does not execute JavaScript, sends no cookies, and cannot see pages that require a login or that are only linked from script-rendered navigation. It also drops query strings and fragments when it deduplicates URLs, so a search results page with filters appears once. Treat the inventory as a starting list to be checked against your own knowledge of the site, not as proof that nothing else exists.
Where It Fits in a WCAG Audit
WCAG-EM, the W3C's evaluation methodology, starts with two steps this tool supports directly: defining the scope of the evaluation and selecting a representative sample of pages. The page list, grouped into chunks of 50, is the raw material for that sample. Documents matter because WCAG applies to PDFs and Office files served from a site just as it does to HTML, and they are the part of an estimate most often forgotten.
The output also gives you an early signal on a few success criteria, though every one of them still needs a manual check:
- 2.4.2 Page Titled (Level A): if a page's title in the results is its own URL, the page has no
<title>, no social title, and no<h1>. Identical titles across many pages are also worth flagging, because the criterion asks for titles that describe the page. - 3.2.3 Consistent Navigation and 3.2.4 Consistent Identification (Level AA) can only be judged across a set of pages, so your sample needs pages from different templates and depths.
- 2.4.5 Multiple Ways (Level AA): whether a sitemap was found, and how much of the crawl came from it versus from links, tells you something about the routes users have to reach content.
Reading the Output
The four summary cards count discovered URLs (pages plus documents plus external links), pages, documents, and external extras. Below them, Scanned reports how many URLs were actually fetched, which can exceed the page count because redirects to other hosts, failed fetches, and document responses are scanned but not filed as pages. The Timed out badge tells you the two minutes ran out; if it appears, the inventory is a lower bound.
In the Pages tab, Status is the HTTP status after redirects and Depth is the number of hops from the start URL, with sitemap entries assigned depth 1. The From line under documents and extras names the page where the link was found, which is the page to look at when a document needs replacing. The CSV export has five columns: type, url, title, detail, and discoveredFrom.
Frequently Asked Questions
Why did the crawl stop before finding every page?
Three limits can end a run: the page cap you set (10 to 1,000), the depth cap (1 to 6 link hops from the start URL), and the two-minute time budget, which is enforced on the server and shown as a Timed out badge in the results. Each page fetch also has a 12-second timeout and only the first 1.5 MB of HTML is read. Slow servers, deep site structures, and very large sites will hit one of these. Raise the page cap, add the sitemap URL as your start point, or run the tool once per section of a large site.
Does the scope checker execute JavaScript?
No. It fetches the raw HTML of each page and extracts anchor href attributes with a parser, without running scripts. Links that are injected by client-side JavaScript, loaded through infinite scroll, or hidden behind a menu that only renders on interaction will not be found unless they also appear in a sitemap. If your site is a single-page application, the sitemap is usually the more complete source.
What counts as a document?
A URL is filed as a document when its file extension is one of pdf, doc, docx, xls, xlsx, ppt, pptx, csv, txt, rtf, odt, ods, odp, epub, zip, rar, 7z, gz, tar, xml, or json, or when the server answers with a document content type such as application/pdf. Documents are listed but not opened or tested; use the PDF Accessibility Checker for the PDFs it finds.
Why do URLs with query strings or fragments disappear?
Every URL is canonicalised before it is queued: the fragment, query string, credentials, default port, and trailing slash are removed and the host is lowercased. That keeps the inventory to one entry per page instead of one per filter combination, but it means a page whose content genuinely depends on a query parameter appears once, under its bare path. Add those variants to your audit sample by hand.
Does it respect robots.txt, and does it crawl behind a login?
It reads robots.txt only to discover Sitemap declarations; it does not act on Disallow rules, so only point it at sites you are authorised to crawl. It sends no cookies or credentials, so anything behind authentication returns the login page or an error and is recorded under Issues. Local, private, and loopback hosts are refused.
Is the scope checker free?
Yes. It needs no account and uses no credits. The two-minute cap per run is the only limit.
Essential Accessibility Resources
Comprehensive tools, checklists, and guides to help you create inclusive digital experiences