Skip to content
ExponaBLOG
TECHNICAL SEO FOR DEVELOPERS · DAY 093 / 100

Refresh old content: a Technical SEO guide for developers

Updating beats publishing for many pages.

Expona Admin6 min read

We often chase the high of publishing new content, but the real SEO wins come from refresh old content—updating what you've already written and already ranking for. A page generating 500 clicks per month that could generate 1,000 with updated facts, better titles, and current screenshots is a missed opportunity. Today we're walking through a systematic approach to finding, prioritizing, and refreshing your existing pages.

Find pages losing clicks in Search Console

Your first move is to identify which pages have stalled or declined. Open Search Console, go to Performance, and set your date range to the last 12 months. Sort by clicks in descending order, then look for:

  • Pages with high impressions (500+) but low click-through rate (under 2%)
  • Pages that ranked higher 6 months ago but have slipped to positions 6–15
  • Pages showing declining clicks month-over-month despite steady traffic
  • Pages with seasonal traffic that needs reinforcement before peak season

Export this data into a spreadsheet. For each page, note the primary keyword you rank for, current position, clicks, impressions, and CTR. This becomes your refresh backlog.

Real-world example: a backend infrastructure guide published three years ago ranked for "API rate limiting" at position 7, averaging 120 clicks per month. Competitors in the top 3 positions had updated their posts to include modern tools (gRPC, service meshes, cloud-native approaches) that weren't relevant when you published. The page's CTR dropped from 3.2% to 1.8% over six months. That's a refresh candidate.

Don't just look at declining pages. Pages in positions 2–4 are prime targets. A small content update can push a "very close" page from position 4 to position 1 or 2, potentially doubling clicks. Search Console tells you exactly which queries you're almost winning.

Update facts, examples and screenshots

Outdated information kills rankings. Search engines and readers both trust fresh facts. When you refresh, audit every factual claim:

  • Version numbers in code samples (Node.js LTS, PostgreSQL, Docker)
  • Benchmark data (latency, throughput, cost comparisons)
  • Links to external resources (do they still exist? have they moved?)
  • Screenshots of UIs, dashboards, or tools (they often change quarterly)
  • API documentation references (endpoints may have changed)
  • Performance claims (outdated hardware specs or cloud pricing tiers)

Screenshots deserve special attention. A guide showing an older AWS console interface or a deprecated GitHub Actions workflow will immediately signal staleness to readers—and Google's systems likely pick up on user behavior changes too. Replace all screenshots with current versions.

Example update: an article on "Optimizing PostgreSQL for production" had a section on vacuum settings. The post was from 2019 and recommended manual vacuum tuning. PostgreSQL 13+ changed defaults significantly, and autovacuum behavior improved. We updated that section with:

html
<p>Modern PostgreSQL (13+) handles autovacuum well out of the box. Instead of manual tuning, focus on monitoring with <code>pg_stat_user_tables</code> to catch edge cases:</p>

<pre><code>SELECT schemaname, tablename, last_vacuum, last_autovacuum FROM pg_stat_user_tables ORDER BY last_autovacuum DESC;</code></pre>

<p>Only adjust <code>autovacuum_vacuum_scale_factor</code> or <code>autovacuum_vacuum_threshold</code> if monitoring shows autovacuum falling behind on high-churn tables.</p>

That one change—removing bad advice and adding current guidance—kept the post relevant and likely recovered lost rank.

When updating examples, test them yourself in a development environment. Broken code samples destroy credibility and bounce readers instantly. Run the commands, verify outputs, and screenshot the results.

Improve titles for current search intent

Search intent evolves. A title that matched intent three years ago may no longer match what people are searching for today. Use Search Console data plus a fresh keyword research tool (Ahrefs, SEMrush, or even Google's own "People also ask" section) to see what's trending.

Compare your current title to the top 3 ranking pages. Look for:

  • Qualifiers that have become standard ("2024 guide," "updated," "latest")
  • Structural hints in competitor titles (lists, numbers, tool names)
  • Long-tail modifiers (e.g., "for beginners," "for production," "without Docker")
  • Temporal shifts ("best practices" → "modern approaches")

Example: an article titled "Implementing WebSockets" ranked at position 6. Top-ranking results all had titles like "WebSockets in production" and "WebSockets vs polling." The original title was vague about intent. We updated it to "WebSockets in production: scaling real-time applications" and repositioned the opening to lead with production challenges, not just basics. Within three weeks, it moved to position 2.

Be honest about changes. If you're materially changing the focus (e.g., from "beginner's guide" to "production scaling"), that's a refresh. If you're just clarifying what was always there, that's a minor update. The difference matters for the next section.

Update dateModified honestly

The dateModified field in schema markup tells Google (and readers via snippets) when you last meaningfully changed a page. Update it when you refresh—it's a strong signal that content is fresh. But update it honestly.

If you changed three words and fixed a typo, don't update the date. If you rewrote a section, added new examples, or updated version numbers, do update it. Google can correlate publication date, modification date, and content age, and will penalize manipulation.

In your HTML head or structured data:

html
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "headline": "Refresh old content",
  "datePublished": "2021-06-15T10:00:00Z",
  "dateModified": "2025-01-14T14:30:00Z",
  "author": {
    "@type": "Organization",
    "name": "Expona"
  }
}
</script>

Set dateModified to the date you actually completed the refresh. Google's crawler will re-index the page faster when it sees a recent modification date, and it signals to readers that the content is current.

In some CMS platforms (WordPress, Webflow, etc.), modifying the page automatically updates this field. In others, you'll need to do it manually. Either way, verify it's being output correctly with Google's Rich Results Test.

Common mistakes

  • Refreshing without checking search intent first. You update the content to be more accurate, but if you miss a shift in what people are searching for, rankings may still drop. Always check current top results before you start writing.
  • Changing too much at once. Bulk rewrites are hard to measure. If you update the title, structure, and all examples simultaneously and rankings change, you won't know what drove it. Stage refreshes: title first, then content, then structure.
  • Forgetting internal links. A refreshed page is a good time to link to newer related content and update old internal links that point to deprecated resources. Internal linking reinforces topic clusters.
  • Not updating the meta description. A fresh title without a fresh meta description can tank CTR. The description should match current content and include the primary keyword naturally.
  • Publishing the refresh without promotion. Updating old content doesn't create a "new link" opportunity the way publishing does. Consider linking to it from a newsletter, recent post, or social media to accelerate re-crawling and re-ranking.
  • Updating dateModified for every tiny edit. This trains readers and Google to ignore the signal. Reserve dateModified updates for substantial refreshes.

Key takeaways

  • Use Search Console to find pages losing clicks or stuck in positions 2–4; those are your refresh candidates.
  • Audit every fact, code sample, screenshot, and external link; outdated information signals staleness to both users and search engines.
  • Compare your title and opening to the top 3 current results; search intent evolves, and your title should match what people are searching for now.
  • Update dateModified in schema markup honestly when you refresh; it accelerates re-indexing and signals freshness.
  • Stage your changes (title, then content, then structure) so you can measure what works; avoid bundling multiple updates into one refresh.
  • Internal links and promotion are part of the refresh strategy; updated content needs visibility to rank again.
ShareXLinkedInReddit

Found this useful? Support the writing.

Buy me a coffee
Written by
Expona Admin
Site administrator

Comments

Loading comments…

Leave a comment

Comments are reviewed before they appear. Be kind and stay on topic.

Related articles