One export, and the list it silently leaves out
A content audit is a spreadsheet, and everything downstream of it depends on that spreadsheet being complete. Most aren't.
The base export is Search Console: Search results, date range set to the last 12 months, Pages tab, export to Sheets or CSV. Twelve months rather than three, because you're looking for the shape of a year, and three months on a seasonal Indian business is a rounding error. Sixteen months is available if you want the full window.
Now the part that decides whether the audit is worth running. Search Console reports on URLs that appeared in search results — a URL's position is only recorded once it has had an impression. A page that earned zero impressions in twelve months does not appear in your export at all. It isn't shown as a zero. It's absent.
Which means the pages in the worst condition on your site — never indexed, indexed and never surfaced, published into a category nobody searches — are exactly the ones an audit run from the Search Console export alone will never see. On a 400-page blog we routinely find 80 to 150 URLs in this state, and it's the finding that changes the client's mind about the whole exercise.
- Export twelve months of page-level data from Search Console: URL, clicks, impressions, CTR, average position.
- Get a complete URL list separately — from your XML sitemap, your CMS's published-posts export, or a crawl. Any of the three; a crawl is the most honest because it also catches URLs missing from the sitemap.
- Join them on URL, left-joining from the complete list. Every row without Search Console data is a zero-impression URL. Sort those to the top; they're your first bucket.
- Add three columns Search Console can't give you: published date, whether the URL has referring domains, and whether it has ever been credited with a conversion or an enquiry.
- Add a fourth by hand — the page's job. Contact, thank-you, pricing, T&Cs, careers. These are not content and they don't enter the audit; they get excluded now, not argued about later.
The four decisions, and why the order is the whole method
Most audit templates present a matrix and let you look up each URL in it. That fails on real sites, because a genuine page frequently satisfies two or three conditions at once: it's a duplicate of another page, it's below the traffic floor, and it has a link pointing at it. Look it up in a matrix and you get whichever answer you happened to read first.
So run it as four ordered tests instead. Every URL goes through test one, then two, then three, then four, and the first test that fires assigns the decision. No URL gets two verdicts, and the sheet finishes with one column of four values.
- Test 1 runs first because audits damage winners. The most reliable way to lose a ranking is to improve a page that was already winning. Locking those URLs at the start removes the temptation and takes the argument off the table.
- Test 2 runs before test 3 because merging changes the numbers. A page that looks dead on its own is often half of a pair, and its impressions belong to the survivor. Delete it first and you throw away history you were about to inherit.
- Test 3 runs before test 4 because otherwise you spend four hours refreshing a page that should not exist. The delete pass is what makes the update pass affordable.
- The 50-impressions floor scales with the site. On a 40,000-URL catalogue, 50 a month is noise and the floor belongs an order of magnitude higher. On a 60-page services site, use 20. It's a starting shape, not a law.
| Order | Test | Condition | Decision |
|---|---|---|---|
| 0 | Too young to judge | Published under six months ago | Exempt. No decision. It hasn't had time to be wrong. |
| 1 | Protect the winners | Average position 1–3 with clicks, or any page with referring domains, or any page credited with a conversion | Keep, and lock it. No edits during the audit. |
| 2 | Duplicate intent | Two or more URLs surfacing for the same primary query, trading places month to month | Merge into one surviving URL. |
| 3 | Below the floor | Under ~50 impressions a month averaged over twelve months, zero clicks, no links, no conversions, over six months old — plus every zero-impression URL from the join | Delete, by the method its history warrants. |
| 4 | Everything remaining | Has impressions, isn't a duplicate, isn't a winner | Update, ranked by impressions × distance from page one. |
Why deletion is usually the highest-return decision
This is the finding clients dislike and content agencies don't volunteer, so here it is with the reasoning attached.
The constraint on any audit is hours, not URLs. A delete decision costs about five minutes: check the links column, pick the removal method, record it. An update costs two to four hours of a writer's time, plus a brief, plus an edit. On a 300-page blog with 40 hours of budget, you can clear 200 dead URLs and refresh eight pages, or refresh eleven pages and leave the rest. The first option changes what the site is; the second changes eleven pages.
The second reason is that a large volume of pages nobody visits and nothing links to makes it harder for a search engine to characterise what your site is about. Among the warning signs in Google's own guidance on people-first content is a blunt self-assessment question — is the content primarily made to attract visits from search engines? Most Indian blogs built to a monthly-volume retainer answer that badly, page after page, and the archive is the evidence.
And the third reason is the commercial one. Nobody paid per article recommends producing fewer articles, and nobody paid a retainer for content production opens the quarter by proposing to delete 40% of the archive. That doesn't make deletion right — it explains why it's under-recommended, which is a different and more useful thing to know.
- Referring domains, no traffic: 301 to the closest genuinely relevant page. Never delete a linked URL outright — Google's redirect guidance is that a permanent redirect shows the new target in search results in the old URL's place, which is the whole point of using one here.
- Nothing pointing at it, no close relative: let it 404, or return 410. Both are fine; 410 states the removal was deliberate.
- Useful to customers, useless to search: keep the page and add
noindex. Removal from the index isn't removal from the site. - Export before you delete. URL, content and its Search Console history. Reversing a bad call without a record is miserable, and you will make one or two.
The biggest bucket: impressions but no clicks
On every audit we've run, the largest group of surviving URLs is the same one — pages picking up impressions and converting almost none of them into clicks. It's also the group most often mis-diagnosed, because the tooling nudges you towards a single explanation: rewrite the title tag.
Sometimes it is the title. Usually it isn't. Average position is an average across every search that produced an impression, so before touching anything, filter the page to its own queries and look at where those impressions are actually coming from. Four patterns, four different responses.
| What the page's query data shows | What it means | What to do |
|---|---|---|
| Average position 30+, impressions spread across many long-tail queries | Google is filing you in the tail. Nobody is scrolling that far. This is not a click-through problem. | Nothing at the title level. Either re-target the page at a query it can win, or let it fall to the delete pass next quarter. |
| Position 5–15, CTR well below what that band normally earns | The genuine title-and-snippet case. The result is visible and unappealing. | Rewrite the title and description. An hour, and the cheapest work on the site. |
| Position 1–5, impressions high, clicks near zero | The SERP took the click — an AI Overview, a pack, a snippet you don't hold, or a question fully answered above the results. | Nothing on the page fixes this. Re-target at a query with a click left in it, or accept the page as a visibility asset and stop measuring it in clicks. |
| Impressions arriving on queries the page isn't about | Google has filed the page under something you didn't intend, usually because the page hedges across two topics. | Decide which query you want, then cut the page down to it. Half the time this reveals a merge you missed at test 2. |
How much to change at once
The audit produces a list. The temptation is to execute the whole list in a fortnight, because it finally feels like progress. Resist it, for a reason that has nothing to do with risk and everything to do with reading the result afterwards.
Change 200 URLs and refresh 30 pages in the same two weeks and you have permanently lost the ability to say which of those did anything. You'll have a chart with one inflection point and four explanations, and every subsequent argument about content budget will be an argument about that chart.
So sequence it, and write the dates down.
- Deletions first, in one batch, on one date. They're cheap, they're reversible from your export, and they finish. Do the whole delete list at once so it registers as a single event rather than a slow drift.
- Wait four weeks. Not because anything bad happens, but because you want a clean read on what removal alone did before the next change lands.
- Merges second, one date, and fix the internal links and the sitemap in the same pass so the signal isn't ambiguous.
- Updates third and continuously, at whatever cadence the retainer supports — typically four to eight pages a month, prioritised by impressions rather than by which page somebody is fond of.
- Never during a migration or a core update. Two changes at once and you will never know which one caused what. If a core update lands mid-audit, stop, wait for it to finish rolling out, then resume with a note in the log.
What to measure afterwards, and what it will look like
Set the review date when you do the work. Week eight for merges and updates; week four is enough for a pure deletion pass, because you're checking a removal took effect rather than waiting for rankings to move.
Three numbers, in this order:
Total clicks, site-wide, against the equivalent period before. This is the one that matters and the only one that pays anybody.
Total impressions, which will fall — and that's the pass condition, not the failure. You removed pages that were surfacing for queries they never won a click from. Impressions down, clicks flat or up, is exactly the shape of a successful pruning pass. It also looks like a catastrophe on a dashboard, which is why this sentence belongs in the kickoff email and not in the week-eight review.
Indexed page count, which should fall towards the number of URLs you actually kept. If it doesn't, your removals aren't being picked up — check the method rather than the theory.
One honest caveat to close on. A content audit isn't a controlled experiment. Your competitors kept publishing, the SERP kept changing, and a core update may well have landed inside your window. Nobody, including us, can separate those effects cleanly on a single site. Report it as "here's what we changed, here's what happened, here's what we think that means" — and if somebody hands you a chart claiming a content audit caused a precise percentage, they've written the conclusion first.
What it costs, and who should be running it
For a 300-page site: roughly half a day to build and join the sheet, a day to run the four tests and record the decisions, then the execution — a day for the deletions and merges, and the updates spread across the following quarter.
Two and a half days of thinking, in other words, against a content programme that has often been running for three years without one. It's the highest-return two days available on most established Indian sites, and it's cheaper than the two articles it displaces.
The uncomfortable governance point: the agency that produced the archive is rarely the right party to judge it. Not because they're dishonest, but because "delete 40% of what we sold you" is a difficult sentence to say to a client you're renewing next month. If your content has been produced by one team for years, have someone else run the audit — the answer will be different, and the difference is the useful part.
For context on when a page deserves an update rather than a deletion, our argument for working the archive before the calendar covers the refresh side in more depth, and content decay explains what you're seeing when a page slides without anybody touching it.
This work sits inside our SEO retainer, from ₹75,000/mo, with smaller sites from ₹40,000/mo. The commitment attached to it is the same one attached to everything else: not a ranking position for a keyword, which nobody can honestly promise, but movement against your own frozen baseline — trailing-90-day qualified leads from organic search. Miss it in 90 days and we keep working free until we beat it.