A content audit for a small site: one table, one decision a row
You do not need a 40-slide deck. You need one table, with one decision per row. This guide shows the columns, the rules for each decision, and what to do next quarter.
By Théophile Louvart, founder of Porteur · Updated 14 September 2026 · Markdown
The one-table audit you will use
A content audit is a table. One row per indexable page you care about. One decision per row. You repeat it every quarter and judge it on the next quarter’s figures.
- URL
- Clicks, last 12 months
- Impressions, last 12 months
- Links, total referring domains
- Date, published and last modified
- Purpose, the page’s job in plain words
- Decision, keep, refresh, merge, redirect or remove
Keep the table in a sheet you can sort and share. Example rows you will recognise: /pricing, /blog/how-to-export-csv, /guides/getting-started, /changelog/2025-release.
Where each column comes from
- URL: export a crawl from Screaming Frog, Sitebulb or your CMS list. Filter to canonical, indexable pages you want to show in search.
- Clicks and impressions: Google Search Console, Performance, Pages. Export 12 months. If seasonality matters, keep a column for last 3 months too.
- Links: Search Console, Links report, Top linked pages, External links. Or your link tool’s referring domains if you track it elsewhere.
- Date: read it from the page. You need a visible date and structured data for datePublished and dateModified.
- Purpose: write the job in one line, for example, “convert free to paid”, “rank for ‘export csv’”, “answer ‘how to set up SSO’”.
- Decision: you will set it after you read the numbers and the page.
If you have hundreds of thin URLs you never meant to rank, add a column for Indexable yes or no. Mark anything with noindex or that should be noindex. That keeps the table focused on what can rank and what you will prune.
The five decisions and the rule for each
- Keep: the page earns steady clicks, holds position, and matches its purpose. You will improve it later through internal links, CTAs or layout.
- Refresh: the URL stays. Update facts, rewrite off-target sections, answer new questions, retake screenshots, fix dead links, and revise the title if the results page moved. Change dateModified. Do not rewrite from scratch. Do not move the URL.
- Merge: two pages hit the same intent or cannibalise the same queries and neither does well. Keep the URL with more links and clicks. Fold in the best content from the other. 301 the other to the keeper.
- Redirect: a close equivalent exists on another URL. Point the weaker or old URL to the better one with a 301. Keep relevance tight.
- Remove: no clicks, no impressions, no links, and no purpose for a year. Return 410 or 404. If a close equivalent exists, 301 instead.
Example, you have /blog/how-to-export-csv and /guides/export-csv. Both rank on “export csv”. Keep /guides/export-csv if it has more links and clicks. Move over any better steps from the blog post. 301 the blog URL to the guide. Update internal links to the guide URL.
How to build the table and set decisions
Export URLs
Crawl your site and export indexable, canonical URLs. Add your CMS list to catch orphan pages. De-duplicate.
Add clicks and impressions
In Search Console, open Performance, Pages. Set date to last 12 months. Export the table. VLOOKUP or JOIN on URL into your sheet.
Add links
In Search Console, open Links. Export Top linked pages, External links. Map referring domains to each URL in your sheet.
Add dates
Open each template type and check it shows a visible date. If not, add it. For the sheet, scrape or paste datePublished and dateModified.
Write purpose
For each row, write one line on the page’s job. Be blunt. If you cannot write a purpose, you likely do not need the page.
Sort and scan
Sort by clicks, then by impressions. Mark rows that look wrong for their purpose. For example, a guide with high impressions but few clicks likely needs a title and intro fix.
Find decay
In Search Console, compare last 3 months to previous 3 months. Sort by click difference. For each falling page, open Queries. If the main queries still have impressions but worse position, mark as Refresh. If impressions fell, demand fell, consider Keep or Refresh depending on match to intent.
Set your decisions
Apply the five rules. Mark Keep, Refresh, Merge, Redirect or Remove. Add notes on what the refresh or merge needs.
Worked example, /guides/getting-started. Purpose, activation. Clicks 1,200, impressions 8,000. Last 3 months vs previous 3 months, clicks down 35, impressions steady, position slipped from 6.1 to 8.4. Queries still show demand for “yourproduct getting started”. Decision, Refresh. Fix stale screenshots, match the current onboarding, answer “pricing after trial” now in People also ask, and tighten the title.
Find content decay and plan refreshes
Content decay is a steady loss of clicks and impressions over months while the rest of the site holds. It often comes from a changed results page or stale details on your page.
Compare periods
In Performance, Pages, compare the last three months to the previous three months. For seasonal pages, compare to the same period last year.
Sort by loss
Sort by click difference. Open each falling page’s Queries report.
Judge demand vs page
If the main queries lost impressions, demand fell. If impressions held but position fell, the page fell. Mark the latter for Refresh.
Read the results page
Search the main query, for example, “import csv to yourproduct”. Note new features that take clicks and the top answers now. Decide what your page must add.
- What you update on a refresh: facts, dates, prices, UI steps, screenshots, links, dead or moved, sections that miss the search intent now, and the title if the page’s angle no longer matches the results page.
- Keep the same URL. Change dateModified. Only change the visible date if the update is significant. Do not bump the date without a real update.
- Match new questions. If the results page now shows “how long is the trial” and “can I cancel”, add short answers in your guide.
Example, /blog/compare-csv-and-xlsx ranks on “csv vs xlsx”. Clicks fell while impressions held. Top results now show a short table and 2026 software support notes. You add the table, update app support, add a note on import limits, retake screenshots, and set dateModified to today. The URL stays the same. The page now earns position again without a rewrite from scratch.
When to merge, redirect or remove
- Merge when two URLs target the same queries and split your authority. Keep the one with more links and clicks. Fold in unique value from the other. Redirect with a 301.
- Redirect when a close equivalent exists elsewhere and the old URL adds no unique value. Keep relevance tight to avoid confusing search intent.
- Remove when a page has no clicks, no impressions, no links, and no purpose for a year. Return 410 or 404. If a close equivalent exists, 301 instead.
Example, /blog/how-to-connect-zapier and /integrations/zapier both answer “yourproduct zapier”. The blog post has 2 referring domains and 90 clicks. The integration page has 6 referring domains and hundreds of clicks, typical, not measured. Keep /integrations/zapier. Move across the better examples and gifs. 301 /blog/how-to-connect-zapier to /integrations/zapier. Update internal links on /blog/automation-ideas and /docs/api to the integration page.
After the audit: the order of work
You will not ship every change this week. Sort work so that you fix the highest return tasks first and avoid causing new problems like cannibalisation and broken links.
Ship redirects and removals
301 merges and redirects first. 410 or 404 removals next. This cleans index bloat and consolidates signals. Update internal links right after.
Fix obvious intent mismatches
Pages with impressions but very low CTR get title and intro fixes. Example, change “Exporting data” to “Export CSV from YourProduct” on /guides/export-csv.
Refresh decayed winners
Update the pages that lost clicks while demand held. These often rebound fastest. Track dateModified and a short changelog note in your sheet.
Fill internal link gaps
Link from /guides and /docs to your core pages. Use anchor text that matches how a user searches. Add a column for ‘internal links added’.
Tackle structure issues
If you merged several posts into a guide, add breadcrumbs and fix canonicals. Check crawl and indexation for loops after redirects.
Plan net-new pages
Only after consolidation. Use your gaps from the audit where a purpose is clear and no current page can be refreshed to meet it. Keep one page per intent.
A fixed page looks like this: /guides/export-csv now has a title that matches the query, current screenshots, a short FAQ, and links from /docs/data-export and /blog/automation-ideas. The clicks tick back up in the next 28 days, then hold over the quarter if the intent match is sound as of 2026.
Dates, structured data, and honest updates
Show a visible date. Mark up datePublished and dateModified. Google can read both and prefers pages that say when they were last updated. Only change dates when you make a significant update. Do not change a date without changing the content.
- Add Article or BlogPosting schema where it fits the content type.
- Set dateModified when you update facts, steps, screenshots or sections to reflect the current state.
- Keep the URL the same when you refresh or republish. Republished does not mean a new URL.
If you convert two posts into a single guide, keep the stronger URL. Update its content and dateModified. Redirect the weaker post. The searcher sees one maintained page with current facts and clear dates. That is what search prefers to rank over time if the answer is good and specific.
Judge the audit next quarter
You do not judge success on day two. Judge your audit in the next quarter’s numbers. The point is to earn more clicks on fewer, better pages that fit a clear purpose. That is how a small site wins.
- Open Performance, compare the next 3 months to the audit’s 3 months. Sum clicks for all pages you touched. You want a net gain.
- Check refreshed pages for position and CTR improvements. If position rose but CTR is flat, test the title.
- Check merged pages for total clicks on the keeper URL versus the sum of the two old URLs. You want the combined line to beat the old total.
- Scan removals. Your index coverage should show fewer excluded or soft 404 churns if you cleaned dead content properly.
- Review intent. Do searchers still ask the questions your pages answer. If the results page moved again, plan another small refresh.
Keep the table. Add columns for “shipped date” and “result next quarter”. You will build a rhythm: prune, refresh, measure, and only then write new pages that add data or an answer a reader would want on its own. That helps you avoid site reputation issues and avoids scaled content that adds no value.
Questions
It shows what to keep, what to fix, and what to cut. You focus your crawl budget and link equity on pages that match a clear purpose. You also spot content decay early and plan small, honest updates instead of rewrites that reset your history.
A SaaS with 120 URLs found four posts and two guides on “pricing”. They merged into /pricing and /guides/pricing-models, redirected the rest, and lifted clicks on both. A store with 80 URLs removed 12 changelog pages with no clicks or links for a year, refreshed five category pages with current stock and images, and gained clicks on queries that had held demand.
An inventory lists what you have. An audit adds Search Console numbers, links, dates, a purpose, and a decision per row. The audit ends with action in a priority order and is judged on the next quarter’s figures.
If you mean website audits, you usually split them into technical, content, links, and analytics. This page is about the content part, which depends on technical health but focuses on matching search intent and maintaining pages that earn clicks.
A refresh keeps the URL. You update facts, sections that no longer match the query, screenshots, links, and the title if needed, then set dateModified. A rewrite from scratch often changes the URL and throws away history you could keep.
Google does not penalise AI-assisted writing as such. It acts on pages made at scale without value of their own. Each page in a family should hold data or an answer of its own that a reader would want.
Sources
Check my site, free
Paste your URL to get a free read of your site, the searches around it and the rivals on them in about thirty seconds, and see three findings whole.
- Free check, no card
- Read-only, your own accounts
- Readable by your agent
Read next
- GuideThe Search Console performance report, column by column
- GuideContent decay: pages that earned more before, and the refresh
- GuideHow to refresh a page that lost its traffic
- GuideWhen to merge two pages, and how to do it without losing the ranking
- GuideDelete or redirect an old page: 301, 404 or 410
- GuideRepublishing content and changing dates: what Google reads, what is honest
- GlossaryCloaking
- GlossaryCDN