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 , 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

  1. Export URLs

    Crawl your site and export indexable, canonical URLs. Add your CMS list to catch orphan pages. De-duplicate.

  2. 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.

  3. Add links

    In Search Console, open Links. Export Top linked pages, External links. Map referring domains to each URL in your sheet.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  1. 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.

  2. Sort by loss

    Sort by click difference. Open each falling page’s Queries report.

  3. 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.

  4. 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.

  1. 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.

  2. 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.

  3. 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.

  4. 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’.

  5. Tackle structure issues

    If you merged several posts into a guide, add breadcrumbs and fix canonicals. Check crawl and indexation for loops after redirects.

  6. 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

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