A content audit template is a spreadsheet with one row per URL and columns for three things: what the page is (type, target query, last update), how it performs (clicks, impressions, position, engagement, links) and what you will do with it (keep, update, merge, redirect or delete). Fill it from Google Search Console, Google Analytics 4 and a site crawler, score each page on a short rubric, then work the action column from the top.
Below you'll find the template to copy (as a table and as paste-ready CSV), where every column comes from, a 10-point scoring rubric, decision rules, a worked example and a checklist you can tick off as you go.
Key takeaways
- One row per URL, with three groups of columns (what the page is, how it performs, and the action you will take).
- Pull 12 months of data for totals, and compare the last 3 months with the same 3 months a year earlier. Search Console keeps 16 months, so that comparison always fits.
- Score quality by hand on four criteria (accuracy, intent match, depth, business value) for a 0–10 score. Traffic alone doesn't tell you why a page fails.
- Every row ends in one of five decisions (keep, update, merge, redirect with a 301, or delete). A row without a decision is unfinished.
- Update before you write new. Fractl found the typical article loses about 76% of its peak traffic within three months of peaking.
What is a content audit?
A content audit is a page-by-page review of the content on a website to decide what to keep, improve, combine or remove, based on performance data and an honest quality check. It is different from a technical SEO audit, which looks at crawling, indexing and site speed rather than at what each page says. If you need that side too, use our technical SEO audit checklist or the broader guide on how to do a website audit.
A website content audit covers every indexable page: blog posts, landing pages, product and category pages, help docs. A content marketing audit is narrower and usually covers the blog, lead magnets and other marketing assets, with extra columns for funnel stage and distribution. The template below works for both; the variations are covered further down.
The content audit template (copy this)
Paste this header row into cell A1 of a new Google Sheet or Excel workbook, then use Data → Split text to columns (Sheets) or Data → Text to Columns with a comma delimiter (Excel).
URL,Title,Content type,Funnel stage,Primary query,Published,Last updated,Status code,Indexable,Word count,Clicks (12 mo),Clicks (last 3 mo),Clicks (same 3 mo last year),Click change %,Impressions (12 mo),Avg position,Sessions (12 mo),Engagement rate,Key events,Referring domains,Accuracy (0-3),Intent match (0-3),Depth (0-2),Business value (0-2),Quality score,Action,Owner,Due,NotesTwo formulas do most of the work. In Click change % (column N): =IF(M2=0,"",(L2-M2)/M2). In Quality score (column Y): =SUM(U2:X2). Add conditional formatting on the score column (red under 4, green 8 and above) so weak pages jump out.
Here is the same template with illustrative rows filled in, so you can see what a finished audit looks like. The URLs and numbers are made up for the example.
| URL | Type | Primary query | Last updated | Clicks (12 mo) | Click change | Avg position | Referring domains | Quality score | Action |
|---|---|---|---|---|---|---|---|---|---|
| /blog/email-subject-lines | How-to | email subject lines | 2023-04 | 4,210 | −31% | 6.4 | 48 | 6 | Update |
| /blog/what-is-a-crm | Explainer | what is a crm | 2024-01 | 95 | −12% | 18.2 | 3 | 5 | Merge into /blog/crm-guide |
| /blog/webinar-recap-2022 | News | (none) | 2022-06 | 0 | n/a | n/a | 4 | 2 | 301 to /webinars |
| /blog/office-party-photos | News | (none) | 2021-12 | 0 | n/a | n/a | 0 | 1 | Delete (410) |
| /pricing | Landing page | [brand] pricing | 2026-08 | 1,320 | +18% | 2.1 | 11 | 8 | Keep |
The columns fall into three groups:
- Inventory (URL to word count): what exists. Without it you can't spot duplicates, orphan pages or pages that return errors.
- Performance (clicks to referring domains): what the page earns. Clicks and impressions show search demand; engagement and key events show whether visitors do anything; referring domains tell you whether a page is worth redirecting rather than deleting.
- Judgment and action (accuracy to notes): what a human thinks and what happens next. Owner and due date turn the sheet into a work plan.
Where each column comes from
| Column | Source | Where to click |
|---|---|---|
| URL, title, status code, indexable, word count | A crawler such as Screaming Frog SEO Spider (free up to 500 URLs) or your XML sitemap | Crawl the site, then export the Internal → HTML tab |
| Published, last updated, author | Your CMS | WordPress: Posts → All Posts, or an export plugin |
| Clicks, impressions, average position | Google Search Console | Performance → Search results, date range last 12 months, Pages tab, export. Repeat with the date filter's Compare tab set to the last 3 months against the same 3 months a year earlier |
| Primary query | Search Console | Click a page in the Pages tab, then open the Queries tab and take the top query by impressions |
| Sessions, engagement rate, key events | Google Analytics 4 | Reports → Engagement → Landing page, last 12 months, export |
| Referring domains | Ahrefs, Semrush, or Outrank's free backlink checker | Export referring domains per URL ("best by links" style report) |
Join everything on the URL column with XLOOKUP (or VLOOKUP in older Excel). Normalise URLs first: same protocol, same trailing-slash convention, no tracking parameters. Mismatched URLs are the most common reason an audit sheet shows zero traffic for a page that clearly gets visits.
A few data notes worth knowing:
- Search Console keeps 16 months of performance data. That covers 12-month totals and a year-over-year comparison of the last 3 months, but not two full years side by side.
- For large sites, the Search Console API returns up to 25,000 rows per request, far more than you'll want to export by hand. The Looker Studio connector is the no-code route to the same data.
- In GA4, bounce rate is the share of sessions that were not engaged, and an engaged session is one that lasts longer than 10 seconds, has a key event or has two or more page views. Use engagement rate rather than the old Universal Analytics bounce rate you may remember.
How to score each page (the 10-point rubric)
Data tells you which pages are underperforming. It can't tell you whether a page is wrong, thin or aimed at the wrong searcher. That's the job of four hand-scored columns, adapted from the self-assessment questions in Google's guide to creating helpful content.
| Criterion | 0 | Middle score | Top score |
|---|---|---|---|
| Accuracy (0–3) | Wrong or dangerously outdated facts | Mostly right, some dated numbers, prices or screenshots (1–2) | Every fact current and sourced (3) |
| Intent match (0–3) | Answers a different question than the query asks | Answers it, but late or partially (1–2) | Answers the query in the first screen, in the format searchers expect (3) |
| Depth (0–2) | Generic, could appear on any site | Some specifics (1) | Original data, examples, templates or experience a competitor can't copy (2) |
| Business value (0–2) | No link to what you sell or do | Indirect (1) | Directly supports a product, service or conversion (2) |
Add the four into the Quality score. Anything under 4 is a rewrite or removal candidate; 8 and above usually needs only a light refresh. Score in one sitting with the same person where possible, because two reviewers rarely score the same page the same way.
A quick intent check: search the primary query in a private window and look at the top five results. If they're all step-by-step guides and your page is an opinion piece, intent match is a 1 at best, however good the writing.
Keep, update, merge, redirect or delete: the decision rules
Every row needs exactly one action. These rules settle most pages in a few seconds.
| Action | Use it when | What to do |
|---|---|---|
| Keep | Clicks are stable or growing, quality score 8+ | Leave it. Re-check accuracy once a year. |
| Update | Impressions are high but clicks fell, position 4–20, or the score is 4–7 | Fix facts, answer the query earlier, improve title and meta description, add missing sub-topics, refresh internal links. |
| Merge | Two or more URLs compete for the same query | Combine the best parts into the stronger URL and 301 the weaker one to it. See keyword cannibalization. |
| Redirect (301) | Little or no traffic, but the page has backlinks and a closely related page exists | Redirect to the most relevant live page, not the homepage. |
| Delete (404 or 410) | No traffic, no links, no business value, and not worth fixing | Remove it, update internal links that pointed to it, drop it from the sitemap. |
Google calls permanent server-side redirects the best way to send Google and people to the correct page when a URL changes, which is why merges and retired pages with links should get a 301 rather than a plain deletion.
One rule to resist: changing the date on a page without changing the content. Google's own helpful-content questions ask whether you are "changing the date of pages to make them seem fresh" when nothing substantial changed. An update should change what the reader gets.
A worked content audit example
Here is how the five illustrative rows above get their decisions:
- /blog/email-subject-lines earns real traffic (4,210 clicks) but lost 31% year over year while sitting at position 6.4. Its examples are from 2023. That's the classic update: refresh the examples, answer the query in the first two sentences, add a copyable list, and it has 48 referring domains working for it already.
- /blog/what-is-a-crm sits at position 18 and shares its main query with a stronger guide on the same site. Two pages splitting one query usually means neither ranks well. Merge the useful definition into /blog/crm-guide and 301 the old URL.
- /blog/webinar-recap-2022 has no search traffic, but four sites link to it. Deleting it throws those links away. 301 it to the current webinars page.
- /blog/office-party-photos has no traffic, no links and no reason to exist in search. Delete it with a 410 and remove it from internal links and the sitemap.
- /pricing is growing and converts. Keep, and check the numbers on it every time prices change.
On a real site, sort the sheet by impressions (descending) and work through the "Update" rows first. A page Google already shows has a head start: Ahrefs found only 1.74% of newly published pages reach the top 10 within a year. That's why most audits end up being refresh projects.
How to run a content audit, step by step
Work through this list in order. Your progress is saved in your browser, so you can come back to it mid-audit.
Interactive checklist
Content audit checklist
0/17
Set up
0/3Collect the data
0/5Score and decide
0/4Act and measure
0/5Your progress is saved in this browser, so you can come back to it later.
Content marketing audit template: extra columns
If you're auditing marketing content rather than a whole website, add these columns to the same sheet:
| Extra column | Why it helps |
|---|---|
| Persona | Shows which audiences you over- or under-serve |
| Funnel stage (awareness, consideration, decision) | Exposes gaps like plenty of beginner posts but no comparisons or case studies |
| Topic cluster | Lets you see coverage per topic and plan pillar pages |
| Distribution (email, social, paid) | Separates "bad content" from "content nobody saw" |
| Assisted conversions | Credits posts that start journeys even if the final click happens elsewhere |
| AI citations | Whether ChatGPT, Perplexity or AI Overviews cite the page, from a tracker like Outrank AI visibility |
Once the audit shows what's missing rather than what's weak, you've moved into gap analysis. Our content gap analysis template picks up from there, and the website content planning template turns both into a publishing plan.
How often should you audit content?
Run a full audit once a year, and a light pass on your top 20 pages every quarter. Publish more than a few posts a month, or work in a field where prices, laws or software change, and quarterly full audits pay off.
The reason is decay. In a study of 719 editorial pieces, Fractl found content took a median of four months to reach peak traffic and the typical piece lost about 76% of that peak within three months of peaking. How-tos held up best, keeping roughly 30% of peak a year later. Updating works the other way: when HubSpot refreshed old posts on its own blog, monthly organic search views of those posts rose 106% on average (an older test from 2015, but one of the few published before-and-after numbers).
Freshness matters for AI answers too. Ahrefs found that of ChatGPT's 1,000 most-cited pages with a detectable date, 89.7% had been updated in 2025.
If the audit leaves you with a long list of rewrites and no time to do them, Outrank flags underperforming articles in its dashboard so you can schedule rewrites, and writes new articles on the gaps you found. For a quick technical read before you start, run the free SEO audit. The content brief template is the next step for any page you decide to rewrite.
FAQ
What should a content audit template include?
At minimum: the URL, title, content type, primary query, last updated date, clicks, impressions, average position, engagement, referring domains, a quality score and an action column. Add an owner and a due date so the sheet becomes a work plan instead of a report.
How do I do a content audit in Google Sheets or Excel?
Paste the template header row into a new sheet, export your crawl, Search Console and GA4 data into separate tabs, and join them on the URL column with XLOOKUP. Then score each page by hand and add one action per row. A spreadsheet is enough for most sites under a few thousand URLs.
How often should you do a content audit?
Once a year for most sites, plus a quarterly check of your top 20 pages. Sites that publish heavily or cover fast-changing topics should run a full audit every quarter, because articles typically lose most of their peak traffic within months.
What is the difference between a content audit and an SEO audit?
A content audit judges what each page says and how it performs, then decides what to keep, update, merge or remove. A technical SEO audit checks whether search engines can crawl, render and index the site at all. Most teams run the technical audit first, then the content audit.
Should I delete old blog posts?
Only when a post has no traffic, no backlinks, no business value and isn't worth fixing. If it has links, redirect it (301) to the closest related page. If it targets a query you still care about, update it instead, since refreshing existing pages is usually faster than ranking new ones.



