What to refresh, what to leave alone, and how to build
a process that survives the quarter - manual or automated.
30-45 Days
For refreshed content to recover 60-80% of lost rankings <cite style='font-size:.82em;color:#6b7280;font-style:normal;white-space:nowrap'>[upGrowth, 150+ client sites, 2026]</cite>
Audit
Find what slipped
Classify
Touch-up, rewrite, retire
Ship
Brief → draft → approve
And why it beats new content for most mature libraries.
A content refresh is updating an existing, indexed article to restore or improve its performance - correcting outdated information, realigning it to current search intent and your current positioning, strengthening its structure and technical SEO - while keeping the same URL and its accumulated authority. It sits between a light edit and a new article: the page's equity is preserved; its substance is brought back to competitive.
The case for refreshing over publishing: the decay is universal - nearly 60% of blog posts lose rankings within 12-24 months of publication [Draft.dev, 2025] - while the payoff concentrates in the back catalog: 92% of HubSpot's monthly blog leads came from older posts, not new content [HubSpot]. A refreshed page starts from earned authority and existing rankings; a new page starts from zero. For a library of 50+ articles, refresh is usually the higher-leverage spend.
One caveat worth knowing: don't confuse this with Google's 'Refresh Outdated Content' tool - that's a request form for removing stale results from search, not a content strategy. The refresh that recovers rankings happens in your CMS, not in a Google form.
TRIAGE BEFORE TOUCHING ANYTHING
The most common refresh mistake is starting with the oldest posts. Age is a weak signal; opportunity is the real one. Triage every candidate into one of three classes before any writing starts.
Touch-up: the quick wins
Content still fundamentally right - but the title drifted from its queries, the meta is missing, a section is dated, internal links point at retired pages. Hours of work, outsized returns.
Full rewrite: the earners worth saving
Pages with real authority whose substance fell behind - positions sliding, intent shifted, or the article now argues a case you've moved past. The equity justifies the investment.
Retire: the honest third option
Thin, obsolete, or cannibalizing pages that no refresh saves. Redirect or remove - deliberately, with reasoning. Leaving them alone drags the pages you do refresh.
1 - Audit the library.
Pull per-page position and click history (GSC, 16 months). Flag pages with sustained position drops - especially any that slipped off page 1, where under 1% of remaining clicks reach them [SEO consensus]. Then check what performance data can't show: does each page still match your current ICP, messaging, and brand voice?
2 - Classify and prioritise.
Sort every flagged page into touch-up, rewrite, or retire. Rank by opportunity: traffic at stake, severity of the drop, strategic weight of the page - not by age or alphabet.
3 - Brief before writing.
For each page: what changed in the SERP and the searcher's intent, what the page ranks for and is losing, what's outdated or missing, which technical elements need fixing. A refresh without a diagnosis is a rewrite of the wrong things.
4 - Rewrite, review, publish.
Update against the brief, in the brand voice, keeping the URL. Review before anything ships - non-negotiable. Publish as an update to the existing post so the equity carries.
5 - Measure and repeat.
Track position recovery on refreshed pages over the following 30-45 days <cite style='font-size:.82em;color:#6b7280;font-style:normal;white-space:nowrap'>[upGrowth, 2026]</cite> - then run the loop again, because decay doesn't stop. This step is where every manual program dies.
The playbook above isn't secret. What's rare is a version of it that keeps running.
Refresh as a system
Refresh as a project
The questions people actually search.
Book a 30-minute demo: connect GSC and see your real library triaged - touch-up, rewrite, retire - with the reasoning per page.
✓ 30 Minutes ✓ Your real library ✓ The manual playbook works too - we just made it run