A report is a decision document
The client is not buying a list of problems. They are buying an order of work, a rough effort, and a reason for each one.
A filled report
Ridgeline Roofing, 41 pages, audited 2026-09-18.
1. scope
urls crawled: 41, from the home page and the sitemap
not crawled: the booking subdomain, which is hosted elsewhere
sources read: search console, 90 days
sources missing: analytics, so no behaviour data in this report
2. summary
three findings block the most:
- the pricing page carries a noindex tag, so it cannot be indexed
- the home page links through a four-hop redirect chain
- six pages share one meta description
none of these is a content problem. Two are template fixes.
3. findings
finding urls severity fix owner
noindex on pricing 1 high remove the tag developer
4-hop redirect chain 1 high point at the target developer
duplicate description 6 medium write six content
h1 missing 1 medium render the title developer
404s from an old campaign 2 medium redirect each developer
images without alt text 3 low describe each content
orphan pages, sitemap only 6 low link from services content
4. what passed
every page returns 200, one canonical per page on the live host,
no noindex url in the sitemap, structured data matches the page
5. recommended order
now: the noindex tag and the redirect chain, about 40 minutes
this month: descriptions and the h1, about 90 minutes
next quarter: the 404 redirects and the orphan links
6. appendix
the unfiltered finding list, exported with urls, not counts
Rules that keep it honest
- Name the crawl date, because a site changes.
- Say which sources were missing instead of inferring a number.
- Give every finding a URL, never a count without the list.
- Separate an estimate from a measurement, in the wording.
Acceptance: the report is sendable when
- scope names what was read and what was not
- every finding has URLs, a severity, an effort and an owner
- the passing checks are listed
- the recommended order names what each step unblocks
- no sentence promises a ranking outcome
Troubleshooting
| Symptom | Likely cause | What to do |
|---|---|---|
| The client asks what it will gain | The report has no outcome claim | Give the order and the effort, not a forecast |
| Findings feel endless | Nothing was grouped by fix | Group by template and re-count |
| The developer disputes a finding | No URL or evidence | Add the URL and the exact evidence |
| Nothing happens after delivery | No owner was named | Agree one owner per finding |
| The next audit repeats itself | Fixes were not tracked | Keep the finding IDs and close them |
Limits
An audit cannot promise a ranking outcome, and this template never does.
It cannot see what a crawl was not allowed to read. That is why scope says so in the first section.