An SEO audit is only useful if it ends in a decision. A list of eighty items produces paralysis; a list of twelve checks, each with a pass condition, produces a work queue.
This is the checklist we run. Each item states what to check, what a pass looks like, and why it matters for a law firm specifically.
Twelve checks, in the order we run them
| # | Check | Pass condition |
|---|---|---|
| 01 | Crawl access | robots.txt does not block CSS, JS or the pages you want ranked; no stray meta noindex |
| 02 | Indexation | Indexable pages are indexed; utility and application screens are excluded |
| 03 | Canonicals | Every indexable page self-canonicalises; no noindex + canonical conflicts |
| 04 | Redirects | One hop maximum; no chains, no loops; 301 for permanent moves |
| 05 | Status codes | Missing pages return 404; removed pages return 410; nothing returns 200 by accident |
| 06 | Duplicates | Protocol, host, trailing-slash and index-file variants resolve to one URL |
| 07 | Schema | Valid, matches visible content, one Organization entity, no foreign address |
| 08 | Core Web Vitals | LCP, INP, CLS measured — field data labelled as field, lab as lab |
| 09 | Mobile | No horizontal scroll, tap targets usable, content parity with desktop |
| 10 | Rendering | Primary content exists in the raw HTML response, not only after JavaScript |
| 11 | Internal links | No commercial page depends on a single inbound link; max depth three clicks |
| 12 | Sitemaps | Only indexable, canonical, 200-status URLs; validates as XML |
Why these twelve
Checks 01–02
The most common cause of “we published it and nothing happened”: the page is blocked, noindexed, or was never submitted.
Checks 03–06
Duplicate URL variants split signals and waste crawl budget. Four versions of the same page is the norm, not the exception.
Check 07
Theme schema copied from another business is the most damaging entity error we see — it tells Google your firm is somewhere it is not.
Checks 08–09
Speed and mobile usability decide whether the visitor stays long enough to matter.
Check 10
If content only exists after JavaScript, you are asking the crawler to do work it may not do.
Checks 11–12
Orphaned clusters and incomplete sitemaps are silent: nothing errors, the pages just never rank.
Fixing in the right order
Order matters. Fixing content before index control means you never learn whether the content worked.
First: index control
Fix crawl access, noindex leaks and duplicate variants. Cheap, reversible, and it stops corrupting every measurement that follows.
Second: internal links
Connect orphaned pages. This costs nothing and is often the fastest visible change.
Third: schema and entity
One Organization entity, matching visible content, no foreign address.
Fourth: content
Only now is it worth judging whether a page is thin, because you can finally measure it.
Fifth: performance
Real gains, but rarely the reason a page does not rank.
What this checklist will not tell you
This checklist finds structural faults. It does not tell you which keywords to target, whether your titles are persuasive, or whether your practice-area pages are commercially relevant.
Those are content and strategy questions. A clean audit of a site targeting the wrong terms still produces nothing — which is why we run keyword mapping before content work, not after.
Four ways a good checklist produces a bad audit
Auditing the whole site equally
A 400-page site with 30 commercial pages does not need 400 equal reviews. Prioritise the pages that can produce a client.
Reporting symptoms, not causes
“Meta description too long” is a symptom. The cause is that nobody owns metadata when pages are published.
No pass condition
If a check cannot be marked pass or fail with evidence, it is an opinion, not a check.
Fixing content before index control
You cannot tell whether new copy helped while four URL variants of the page are still splitting signals.