Sitearc

An audit report structure built from real findings

A report skeleton filled in for one client. The finding table, the effort estimates and the order of work.

Answers
Turn a list of findings into a report a client can act on.
Worked example
A filled audit report for one client
Written for
Consultants delivering an audit to a client

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

  1. Name the crawl date, because a site changes.
  2. Say which sources were missing instead of inferring a number.
  3. Give every finding a URL, never a count without the list.
  4. 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.

Where this came from