How to write an SEO audit report a client will actually read

Most SEO audit reports fail for the same reason. They're accurate but nobody can act on them. A 40-page export full of warnings tells the client you were busy. It doesn't tell them what to do on Monday. Here's how to write one that gets fixes done.

Start from who reads it

Work out who will act on the report before you write anything:

Often it's one person wearing all three hats. Write for the person who has to make the change, and put a two-line summary at the top for everyone else.

Structure that works

1. One-paragraph summary

Cover the page or pages audited, the date, the overall state and the top three fixes. For example:

> We audited the homepage and two service pages on 3 October. The pages are in reasonable shape. The three changes that matter most are: give each service page its own title, fix the canonical tag that points every page to the homepage, and add the mobile viewport tag.

If the client reads nothing else, this is enough.

2. Ranked fix list

This is the core of the report. Each item gets:

Example:

`

HIGH: Canonical tag points to the homepage

Where: /services/boiler-repair (and all service pages, same template)

Fix: Change <link rel="canonical"> to the page's own full URL,

e.g. https://example.com/services/boiler-repair

`

Sort strictly by severity. Clients work top-down and often stop after the first few items, so the first few should be the ones that matter.

3. Notes and what you didn't check

Say what was out of scope (backlinks, speed, content strategy) so the client doesn't assume a clean report covers everything.

How to decide severity

Keep the rule simple and use it every time:

Use the same labels on every client, so a returning client learns what "High" means.

Write it in plain words

Swap the jargon for what it does:

| Instead of | Write |

|---|---|

| "Missing meta description" | "There's no summary for Google to show under your link, so it'll pick some text itself." |

| "Canonical misconfigured" | "The page tells Google that a different page is the real one." |

| "Missing alt attributes" | "These 6 images have no text description for screen readers or image search." |

Keep the technical name in brackets if a developer will read it.

Things to leave out

Format and delivery

A reusable template

`

SEO audit: [Client] - [Page(s)] - [Date]

Summary

[2-3 sentences + top three fixes]

Fixes, most important first

1. [HIGH] ... Where: ... Fix: ...

2. [HIGH] ...

3. [MEDIUM] ...

Not covered in this audit

[backlinks, speed, etc.]

Prepared by [Your name]

`

Common pitfalls

A quicker route

If you're writing these by hand for each page, most of the time goes into rewording tool output into plain instructions. We make Auditfold, which audits a page's HTML and produces a ranked, plain-word fix list with severities that you can copy into an email. On the paid plan it can also make a printable client report with your name and your client's name. Use it, or use the template above. Either way, the structure is what makes the report useful.

Try it