Sitearc
Site health

What a site audit actually checks, and in what order

The order a crawl should follow, with a worked 41-page example. The acceptance checks that stop an audit becoming an argument.

Sitearc3 minute read

An audit that opens with a score ends in an argument about the score. An audit that opens with reachability ends in a list somebody can work.

Here is the order that produces the second one, with a worked example.

Reachability first

Before reading a single title, establish what the crawler can reach.

  1. Read robots.txt and the sitemap for allow and disallow rules.
  2. Crawl same-origin links from the home page, breadth first.
  3. Record every redirect chain and where it lands.
  4. List pages the sitemap names that no link reaches.

Then the page, then the response

Page-level checks are what a reader sees. Response-level checks are what the server says. Keep them apart, because they have different owners.

Page: title, description, one h1, heading order, alt text, internal links. Response: status code, canonical, duplicate content, redirect hops.

A worked example

Ridgeline Roofing is a fictional client with 41 indexable pages. The crawl took nine minutes and produced six findings.

Finding Pages Fix Owner
Six pages share one description 6 Write one description each Content
h1 missing on the contact page 1 Add the heading in the template Developer
Two 404s from an old campaign URL 2 Redirect to the service page Developer
Three images without alt text 3 Describe what each image shows Content
A 4-hop redirect chain from the home page 1 Point the old path straight at the new one Developer
Six pages are orphaned, sitemap only 6 Link them from the services hub Content

Six findings, 19 affected pages, and two owners. That is a workable week.

A score of 63 with no list is not.

How to know the audit is finished

  • every finding names at least one URL, not just a count
  • every finding names the rule it breaks
  • every finding has an owner and roughly an hour of work
  • the pages that passed are recorded too, so the work is visible
  • the crawl date is on the report, because a site changes

The record, ready to copy

audit:        ridgelineroofing.example
crawled:      2026-09-18, 09:14 America/New_York
pages found:  41 (39 reached by links, 2 sitemap only)
pages read:   41, no render needed

finding 1
rule:         description duplicate
urls:         6, listed in the appendix
evidence:     identical meta description on each
fix:          write one description per page
owner:        content
effort:       about 90 minutes

finding 2
rule:         missing h1
urls:         1, /contact
evidence:     page starts at h2
fix:          render the page title as h1
owner:        developer
effort:       about 10 minutes

passed
- every page returns 200
- one canonical per page, on the live host
- no noindex page appears in the sitemap

Troubleshooting

Symptom Likely cause What to do
The crawl finds far fewer pages than the sitemap Links are rendered by JavaScript Render the crawl, or add server-side links
Every page reports a duplicate title The template hardcodes one title Fix the template, then re-crawl
Findings differ between two crawls The site changed, or the crawl was capped Record the cap, and crawl the same start URL
The report is 400 rows Nothing was grouped by fix Group by template, not by page
Nothing is found The audit is shallow, not the site clean Add response-level checks

Acceptance: the audit is done when

  • every finding names a URL and the rule it breaks
  • every finding has an owner and a rough effort
  • the passing checks are recorded beside the failures
  • the crawl date and the page count are on the report
  • the first three fixes are ordered by what they block

Limits

A crawl sees what a crawler sees. It cannot judge whether a page should exist.

It also cannot see traffic or intent. That work belongs to the search data and to a person who knows the business.

This page was written from this repository and from the audit feature’s own checks. No external audit tool was run, and nothing here claims a ranking outcome.

What this was written from