SEO Content Audit: A Step-by-Step Framework
An SEO content audit is a systematic review of every page on your site, scored against your goals, so you can decide what to keep, update, consolidate, or remove. Here's the full framework, plus the one step most guides skip.
By Tommy C · Updated June 17, 2026
A repeatable framework you can run from start to finish, plus the one step almost every other guide leaves out.
An SEO content audit is a systematic review of every page on your site, assessed from an SEO perspective, so you can decide what to keep, update, consolidate, or remove.
That is the whole job in one sentence: list everything, judge it against your goals, then act on each page.
This post walks you through how to perform an SEO content audit step by step. Then it covers the part the standard guides skip, the part that increasingly decides whether your pages get cited at all.
Let's start with what you're actually auditing.
SEO content audit vs technical SEO audit
These two get blurred together, and they shouldn't be.
A technical SEO audit looks at the plumbing: crawlability, indexing, site speed, redirects, broken markup. It asks whether search engines can read your site.
An SEO content audit looks at the pages themselves: whether each one still earns its place. It asks whether your content deserves to rank, convert, and get cited.
You need both. But they answer different questions, and this post is about the second one. (If you want the bigger picture of what a content audit is and why its usual once-a-year shape no longer fits, that lives in our guide to the content audit.)
The SEO content audit framework
Every good audit runs the same five steps. Here they are.
Step 1: Set goals and tie them to metrics
Don't start with a spreadsheet. Start with what you want the audit to change.
Pick one or two goals: more organic traffic, better rankings on commercial pages, more conversions, stronger engagement. Then attach each goal to the metric that proves it. Traffic goals map to clicks and organic sessions. Ranking goals map to average position. Conversion goals map to the events you already track.
The goal decides what data you collect next. Skip this and you end up with a thousand-row spreadsheet and no way to read it.
Step 2: Build the inventory
Now the spreadsheet.
Crawl your site to pull every URL into one place. Screaming Frog or your XML sitemap will both get you the list.
Then build one row per page with these columns:
- URL
- Title
- Publish date and last-updated date (you need both; the gap between them is your first freshness signal)
- Content type (post, landing page, pillar, doc)
- Word count
- Primary keyword and its current position
- Internal links in and external links out
- Action and Priority (you'll fill these in Steps 4 and 5)
The inventory is just the list. It isn't the audit yet. The audit is the judgment you apply to it.
Step 3: Pull the performance data
Next, fill that sheet with the numbers that match your goals.
Google Search Console gives you impressions, clicks, average position, and the queries each page ranks for. Google Analytics gives you sessions, engagement, and conversions. Pay special attention to pages whose positions have slipped over the last few months, not just the last few weeks, so you're seeing a real trend and not a seasonal dip.
This is also where you spot two pages competing for the same keyword, and thin pages dragging on the rest of the site.
Step 4: Make the call on every page
This is the heart of the audit. For each page, the decision is one of four:
- Keep. It performs and it's current. Leave it alone.
- Update. The bones are good but something has gone stale. Refresh it.
- Consolidate. Two or three thin pages would be stronger as one. Merge them.
- Remove. It no longer earns its place. Prune it and redirect it.
The hard part is knowing which call to make. Rough rules of thumb:
- Ranking 5–15 with slipping clicks but accurate content? Update. An afternoon here moves a page from page two to the top five faster than anything else you can do.
- Two or more thin pages (say, under 500 words) targeting the same query? Consolidate them into one stronger page and redirect the rest.
- Steady traffic, no factual drift, links intact? Keep, and move on.
- No traffic, no rankings, no conversions, and no strategic reason to exist? Remove it and redirect the URL to the nearest relevant page.
When two signals disagree, the tie-breaker is intent: does this page still have a job to do for a real reader? If yes, update it. If no, consolidate or cut it.
A page can score well on one metric and badly on another. That tension is the whole reason you look at each page instead of trusting a single number.
Step 5: Prioritize and build an action plan
A list of decisions isn't a plan until it's ordered.
Add one column near the front of your sheet for the action, and another for priority. Lead with the pages that already rank fifth to fifteenth, because an afternoon spent updating a page that ranks fifth can move it to second. The same afternoon on a brand new post might produce nothing for a year.
That's a full SEO content audit: goals, inventory, data, decisions, plan.
But there's a category of problem this framework, run the usual way, will quietly miss.
The step the checklists skip: auditing for the staleness that breaks AI citation
Here's what almost no SEO content audit guide tells you to look for.
The standard audit catches the visible stuff: traffic that dropped, rankings that slipped, a page that underperforms. The damaging staleness is the kind you can't see in a metrics dashboard, because it hides in the body of pages that still look fine from the outside.
It's the statistic that turned three years old without anyone flagging it. The tool you cited that has since rebranded. The screenshot of an interface that no longer exists. The "as of last year" aside in paragraph nine. The external link that now 404s. The internal links your newer posts should be getting and aren't.
We have a name for the build-up of all that buried staleness: freshness debt. Like technical debt, it's invisible day to day, easy to defer, and it compounds quietly until the decline shows up in a dashboard months later.
And the cost of that debt just went up. A stale page doesn't only slip in the rankings now. It also drops out of the answers that ChatGPT, Perplexity, and Google's AI Overviews assemble, because those systems lean hard on sources that read as current and quietly skip the ones that read as old. So a page can still rank fine and have already gone invisible in the channel your buyers increasingly read instead of the blue links. That shift, and why decay now costs you citations and not just rankings, is the argument worth reading next.
The practical upshot for your audit: add a freshness pass to Step 4. Run each page against a short freshness checklist:
- Dated claims: any "in the last year," "currently," or "as of" that no longer holds.
- Aged statistics: any stat more than two or three years old, or with no date attached.
- Renamed or defunct tools: products that have rebranded, merged, or shut down since you published.
- Stale screenshots: interface images that no longer match the live product.
- Dead external links: outbound links that now 404 or redirect somewhere unexpected.
- Missing internal links: newer posts that should be linking to this page, or that this page should point to, and don't.
For every page you're tempted to mark "keep," check whether the body has quietly drifted from the current state of the world. That one habit is the difference between a page that gets cited and one that doesn't.
Why running it once isn't enough
There's a reason freshness debt accrues even at teams that audit diligently.
An audit is a snapshot. Freshness debt accrues every day. Run the audit once a year and you've inspected a moving target at a single frozen moment, then looked away for eleven months while the debt builds back up. The fix isn't a bigger annual audit; it's a smaller, steadier check that never fully stops. We make the full case for treating the audit as continuous monitoring rather than a one-off project in the pillar.
Which raises the obvious problem: who has time to do that by hand?
From audit to monitoring
Reading every page in your back catalogue against the current state of the world, every month, is exactly the kind of repetitive checking that gets dropped first. It's the part nobody sustains.
That's the part Refreshen automates. It scans your blog every month, reads each page against the current state of the world, and emails you a short digest of what's gone stale: the year references that no longer match, the broken external links, the internal links your newer posts are missing. You decide what to act on. Nothing is auto-edited.
If you want to see what freshness debt looks like on your own site, you can run a free scan and get back your stale year references, broken links, and missing internal links in a few minutes, with no signup.
The takeaway
The framework is the easy part: set goals, build the inventory, pull the data, make the four-way call, prioritize. Run it and you'll have a clean SEO content audit.
The part that separates a page that keeps earning from one that quietly leaks value is what you put in scope, and how often you look. Audit for the body-level staleness, not just the traffic line. And run the check continuously, not once a year, because in a world where AI answer engines reward content that reads as current, an audit you do once is stale for most of the year.