How to run an SEO content audit for a client site
An SEO content audit (also called a site content audit) goes through every indexable page on a site and decides what to do with each one: keep, update, merge or remove. The aim is a site where each page has a clear job and there's no pile of thin, outdated or competing pages dragging it down.
Here is a workflow you can run for a client in a spreadsheet.
Step 1: Agree the goal and scope
Before you collect data, write down:
- The goal. For example: grow organic leads, recover lost traffic, or prepare for a redesign.
- What's in scope. Blog only? Service pages? The whole site?
- The date range for performance data. Twelve months smooths out seasonality.
The goal decides how you score pages later. A page with little traffic but steady leads is not a page to delete.
Step 2: Build the page list
You need one row per URL. Common sources:
- A crawler. Screaming Frog SEO Spider crawls up to 500 URLs on its free version, which covers many small client sites.
- An SEO suite. Tools like Ahrefs can export the site's pages along with their estimated organic traffic and backlinks.
- The XML sitemap. Usually at
/sitemap.xml. It's quick, but it misses pages the CMS doesn't list. - Google Search Console. The Performance report, filtered by Pages, shows URLs that actually got impressions.
Combine the sources and remove duplicates. Pages that appear in Search Console but not in the crawl are often orphan pages with no internal links, which is worth noting.
Remove non-content URLs (tag archives, cart, login) unless they are causing a problem.
Step 3: Add data to each row
Useful columns:
| Column | Source |
|---|---|
| URL, title, H1, word count | Crawler |
| Indexable? Canonical? Status code | Crawler |
| Clicks, impressions, average position (12 months) | Search Console |
| Conversions or leads | Analytics |
| Referring domains | SEO suite (if available) |
| Main topic / target query | You |
| Last updated | CMS or page |
Pairing the main topic with each URL is the most manual part, and the most important. It's how you find cannibalisation: two or more pages targeting the same query.
Step 4: Review and score each page
For each page, look at the content itself, not just the numbers. A simple 1–3 score on each of these works well:
- Relevance. Does the page still fit the business and its audience?
- Quality. Does it fully answer the query compared with what ranks now? Is it accurate and specific?
- Freshness. Are the dates, prices, screenshots and product names current?
- Performance. Clicks, conversions and links.
- On-page basics. Unique title, a clear H1, a working meta description, internal links in and out.
Keep the notes short and specific: "pricing section from 2023" or "overlaps with /services/boiler-repair".
Step 5: Decide: keep, update, merge or remove
Use rules so the decisions are consistent:
- Keep. It performs, it's accurate and it has a clear job. Leave it alone.
- Update. The topic is right and the page has some impressions or links, but the content is thin, outdated or ranking on page two. These are usually the fastest wins.
- Merge. Several pages target the same query. Combine the best parts into the strongest URL and 301-redirect the others to it.
- Remove. No traffic, no links, no conversions, and no reason to exist (old news, expired offers, auto-generated pages). Either 301-redirect it to the closest relevant page or return a 410/404 if nothing fits.
Pitfalls
- Deleting pages that have backlinks. Check referring domains first, and redirect rather than delete.
- Judging by traffic alone. A low-traffic page may convert well or support sales.
- Merging without redirects. That loses whatever the old URLs had earned.
- Auditing on the crawl data alone. You have to read the pages to judge quality.
- Changing everything at once. Stagger the changes so you can tell what worked.
Step 6: Prioritise the work
Add two columns, impact and effort, and sort by them. Usually the order is:
1. Indexing problems on important pages (accidental noindex, wrong canonicals)
2. Merges that settle cannibalisation on money queries
3. Updates to pages ranking in positions roughly 5–20 with real impressions
4. Removals and redirects of dead weight
5. New content to fill gaps you found
Step 7: Report to the client
Keep the report short:
- One-page summary. How many pages were audited, how many are in each action, and the top five actions.
- The spreadsheet. Every URL, its action and a one-line reason.
- A page-level fix list for each "update" page: exactly what to change in the title, headings, sections and internal links.
- A baseline. Clicks and positions now, so you can report changes in 2–3 months.
Speeding up the page-level part
Steps 2 and 3 are mostly exports. The slow part is reviewing each "update" page and writing its fix list. We're building Auditfold, a browser extension that will check a single page's SEO basics and content and turn them into a ranked fix list in one step. It will be one way to speed up step 4 and the fix lists in step 7. The spreadsheet method above works with or without it.