An SEO content audit is a pass over the URLs you already have, with one decision written next to each of them. The decision is small on purpose. Keep the page. Update it. Merge it into a stronger URL. Or leave it, because it was never a page you wanted found. A content audit that ends in a color-coded spreadsheet and no decision has not started.
List the real URLs from your sitemap. Give each one query it should own. Read the queries it actually receives in Search Console. Write one label: keep, update, merge, or leave. Stop there. Rewriting, redirecting, and drafting new pages are the next jobs, and they use different instructions.
What is an SEO content audit?
Search engines and answer engines retrieve URLs. Your readers do too. A website content audit asks, for each URL, whether that retrieval still helps. The page either answers a job someone has, answers it badly, answers a job another URL already owns, or answers nothing a person would come for.
Ahrefs’ content-audit guide is a yes-or-no path that starts from their crawl export and folds in backlinks plus a traffic-potential figure, their estimate of what the current top result might receive. Semrush’s audit walkthrough adds rankings, conversions, and an AI-visibility report from their own toolkit. HubSpot’s website-audit guide is wider still: links, accessibility, privacy, and a grader for the whole site. Use those when you already work in that product and you can explain the number. They are a weak inventory when an unexplained score becomes the decision.
The inputs that do not require a score are the ones you can check. Your sitemap says the URL exists. Search Console says which queries sent impressions to it. The live page says whether a reader who arrives today gets the answer. The label says what happens next. A blog content audit for a site that publishes often is mostly this, because the failure mode is a second article on a query you already covered, not a missing backlink report.
That is also why the audit sits before a topic cluster and before an SEO content brief. The cluster decides how new pages relate. The brief decides one new draft. The audit decides whether that draft should exist.
What the audit leaves out
A content inventory is not a technical crawl, a keyword-density check, or the rewrite itself. Mixing those jobs is how a spreadsheet grows to forty columns and never produces a label.
- Technical issues stay in a technical pass. Broken templates, accidental noindex, and a sitemap that lists the wrong host are real problems. They are not a reason to rewrite the article. Fix the template, then come back to the content decision.
- There is no density column. Repeating a phrase a set number of times is not a quality test. Google’s helpful-content guidance asks whether you are writing to a word count you heard Google prefers. It says Google does not have one. The audit asks whether the page fulfills its purpose.
- The rewrite waits. When the label is update, the next document is a content refresh of that URL. Opening the article inside the audit and “improving” it from memory is how scope creeps into the pillar, the comparison, and the how-to at once.
Main content, in Google’s terms, is the part of the page that achieves its purpose: the text, the images that explain, the headings. A content audit checklist that scores sidebars, share buttons, and footer links ahead of that passage is auditing the chrome. Read the passage.
The four labels
Use four words, and use only one of them per URL. A page that is both “update” and “merge” has not been decided. Pick the action that removes the conflict.
| Label | The page is like this | What you do next |
|---|---|---|
| Keep | It owns one query. The format still matches the results. A reader today would get the answer. | Nothing, until a fact actually changes. |
| Update | The query still belongs on this URL, and a fact, example, or section is wrong or missing. | Refresh that URL. Do not publish a sibling. |
| Merge | Another URL of yours already answers the same query and the same intent. | Move any unique passage worth keeping, then redirect this URL to the survivor. |
| Leave | The page is a utility screen, or a post that does not help someone who lands on it. | Keep it out of the sitemap if it should not be indexed. Do not assign it a keyword. |
Content pruning is the leave decision applied to posts that were published as articles and should not have been indexable. Content consolidation is the merge decision: one URL remains, and the others point to it. Both are labels in the same audit. They are not a separate project with a quota of pages to delete. A utility URL that should not be a result needs a robots meta tag. Leaving it out of the sitemap does not do that job. A deleted article that still returns HTTP 200 and a not-found message is a soft 404, not a leave label you can ignore. A set of near-copy pages that exist only to catch queries is scaled content abuse, which is a reason to remove them, not a reason to refresh each one.
How to do a content audit
Work in this order. The order is the method. A content audit spreadsheet that starts from a keyword export, and only later looks up whether you have a URL, will propose pages you already published.
1. Start from the sitemap
Export the URLs you might maintain. Articles, guides, and the landing pages that answer a question belong on the list. Tag archives, feeds, and parameter variants usually do not. Google’s sitemap documentation says to include the URLs you want seen in search, and to list the canonical version when several addresses show the same content. The audit uses that same list. If a URL is absent from the sitemap and absent from your own navigation, ask why it is in the spreadsheet.
2. Name one query in the reader’s words
Write the query the way someone would type it. “How to run an async standup” is a query. “Standup excellence framework” is a slide title. If you cannot name one query, the URL is a candidate for leave or merge. It is not a candidate for a longer keyword list. One primary query per URL is the same rule a topic cluster uses when it refuses two pages for one job.
3. Read the queries the URL already receives
In Search Console, open the page and look at the queries with impressions. Those are evidence. A guessed keyword from a spreadsheet is a hope. If the top query is not the one you intended, believe the queries. Either accept that job and write it down, or change the page later so it stops matching a job that belongs elsewhere. A traffic decline is a reason to look, and it is not itself a label. Seasonality, a second URL of yours, and a results page that now answers without a click can all move the chart.
4. Note the format of the current results
Search the query and write down what the results mostly are: a guide, a procedure, a comparison, a template, or a product page. Search intent is that format, plus the job behind it. If your page is an essay and the results are templates, keeping the essay means you have chosen a different job from the one the query currently has. Say so. An update is justified when you will change the page to match. A new URL is justified only when this URL should keep its current job and the template is a second job.
5. Look for a second URL on the same query
Search your site for the primary query. If two indexed URLs both depend on it, the label is merge, not two updates. Updating both teaches the same overlap again. The content brief has a field for the closest existing URL for a single draft. This step is that field, applied to the whole set.
6. Write the label and stop
Updates go to a refresh. Gaps you do not have a URL for go to a brief, and into a cluster only when they share a subject with pages you will actually link. The audit does not draft, and it does not change dates. Google’s helpful-content questions treat a date change without a substantial edit, and a large deletion done mainly to look fresh, as warning signs. The label is the substantial decision. The edit comes after.
What to put in the content audit template
These fields are enough for a second person, or a later you, to act without a meeting. Add a column only when you will use it to choose a label. A column you will not read is clutter.
| Field | What you write |
|---|---|
| URL | The canonical address, copied from the sitemap. |
| Job | One sentence: who it helps, and what they can do after reading. |
| Primary query | The query this URL should own, in the reader’s words. |
| Queries it receives | The Search Console queries with impressions. Not a guessed list. |
| Result format | Guide, steps, comparison, template, or product page. |
| Label | Keep, update, merge, or leave. |
| Merge target | The URL that should survive, or “none.” |
| Note | The stale fact, the overlap, or “still right.” |
Leave “traffic potential,” domain scores, and AI-visibility percentages out unless you can name the tool, the date, and what the figure counts. An invented or unexplained number will outvote the page, and the page is the thing a reader sees. Index coverage belongs as a note when a URL is excluded as a duplicate or crawled and not indexed. That status often means the merge label was already true and had not been written down.
A content audit example
Take the same small product-team site used in the cluster guide. The subject they can honestly cover is how a team runs the week. Six URLs are enough to show the labels. You do not need a hundred rows to learn the method.
- Keep.
/product-team-ritualsis the overview. Search Console queries are broad. The page still explains the week and links to the specific articles. It stays the pillar. - Update.
/async-standupsis the procedure. The steps are still the job of the page. One tool name is obsolete, and a section repeats the essay on why status meetings run long. The label is update. The rewrite of that section belongs in a refresh, not in a second how-to. - Merge.
/async-standup-tipsreceives the same queries as the procedure. The tips are the procedure with different adjectives. Merge it into/async-standupsafter you check that nothing unique is worth moving. Then redirect. - Keep.
/sprint-retro-questionsis a template. The results for that query are templates. The questions are still usable. Leave it until a question actually misleads. - Keep.
/scrum-vs-kanban-six-person-teamis a comparison for one team size. It does not try to be the standup procedure. The jobs are distinct, so both URLs stay. - Leave.
/agile-quotesis a list of quotations with no procedure, no comparison, and no query the team’s readers ask. It does not help someone who lands on it. Remove it from the sitemap. Do not assign it a target keyword to “save” it.
Notice what the example refuses. The standup procedure is not deleted because its clicks dipped. The quotes page is not refreshed with 1,500 new words so it can target a head term. The two standup URLs are not both “optimized.” One survives.
Content pruning and consolidation
Pruning means a URL stops being offered as a search result because it does not serve a reader. Consolidation means several URLs become one. Google’s notes on consolidating duplicate URLs are the mechanical half: choose the URL that should remain, redirect the others to it, and point internal links at the survivor. The audit is the editorial half: you chose that survivor because it owns the query. A canonical tag is the other case, when the same document stays available at two addresses and only one of them should be the result.
A redirect is warranted when the disappearing URL has a query, a link, or a reader who might still have the old address. Update the links on your own site in the same pass. A redirect that leaves the old anchors in place sends people through an extra hop you already knew about.
A large deletion is a different act. Helpful-content guidance asks whether you are removing a lot of older content mainly because you believe it will make the site seem fresh. It will not. A single quotes page that helps no one is a leave decision. Forty useful articles removed in an afternoon, because a chart looked tired, is the pattern that question describes. Specific pages with a small audience can stay. They are keep, not leave, when the page still answers.
After a merge, look at index coverage for both URLs. The survivor should be the one that remains indexed. The redirected URL should drop out. If both stay indexed, the redirect or the canonical is not doing what you think. That check is part of finishing the merge. It is not a new audit.
What answer engines need from the inventory
Answer engines quote passages. They can quote a URL you have not opened in a year. The audit is how you find that URL before you publish a fresher page that says something else. Two contradictory pages on the same job are worse than one older page, because a generated answer may blend them.
Read the passage you would not want quoted. If a number has no source, the note on that row should say so. If the passage is still the best explanation you have, the label is keep, even when an AI-visibility tool shows few mentions. Mentions are not the same fact as “this paragraph is true.” Semrush-style citation reports can tell you a brand was named in their sample. They do not read your standup procedure and tell you the tool name is obsolete. You still have to read the page.
When the label is update, the passage is what the refresh changes first. When the label is merge, pick the passage that should survive and put it on the survivor before you redirect. An answer engine cannot prefer the URL you meant if the better explanation lives on the URL you are about to remove.
How this shows up when BloGoose reads the site
BloGoose crawls the site and the sitemap before it proposes pillar topics or a calendar. The point of that read is to avoid a second article on a query you already answer. The audit is the same judgment, written down so a person can override it. If a proposed title matches a URL labeled update, the right work is a refresh of that URL. If it matches a URL labeled keep, the calendar should move on. If nothing on the site owns the job, then a brief is the next step, inside a cluster you will actually link.
The automated pipeline is the production version of “do not chase one keyword twice.” The audit is the list that makes that rule visible. You can review it the way you review a draft: one row, one label, one reason.
Audit the site you already have
Connect a site. BloGoose reads the sitemap before it plans the next article, so a new title is less likely to repeat a URL you should keep or refresh.
Start the 1-day trialQuestions about SEO content audits
What is an SEO content audit?
An SEO content audit is an inventory of the URLs you already published, with one decision on each: keep it, update it, merge it into a stronger URL, or leave it. The decision uses the query the URL should own and whether the page still answers that query.
How is a content audit different from a content refresh?
A content audit labels every URL. A content refresh is the work you do on one URL after the audit labels it update. The audit does not rewrite the page. The refresh does not re-decide the whole site.
What should a content audit template include?
Include the URL, the one query it should own, the queries it actually receives, the format of the current results, the label (keep, update, merge, or leave), and the URL to merge into when that is the label. Leave traffic estimates out unless you can name the source and the date.
Should you delete pages that get little traffic?
A small audience is not a reason to delete a page. Remove or noindex a page when it does not help a reader who arrives on it, and when no other URL needs a passage from it. Google warns against removing a lot of older content mainly to make a site look fresh.
How do you find pages that compete with each other?
Compare the queries each URL receives in Search Console, and search your site for the primary query. If two URLs both depend on the same query and the same intent, they are competing. Keep the stronger URL and merge the other into it.
Does a content audit help with AI answers?
It can. An answer engine may quote a page you have forgotten. The audit is where you notice that the quoted passage is stale, overlapping, or still the best URL you have. An audit does not create a citation. It stops you from maintaining the wrong page.