When (and How) to Refresh Old Articles for Traffic

Refresh only what's worth refreshing — with the Search Console query that finds position 8-20 articles, a refresh template, and re-indexing flow.

Refreshing old articles is one of the highest-ROI things a content site can do — but only on the right articles. Updating an article that has zero impressions doesn’t suddenly make it rank. Updating an article stuck at position 11 can move it into the top 10 and double its clicks overnight. Below is the Search Console query that finds those articles, plus the refresh-and-reindex template.

Background

A refresh is not “open the file and bump the date”. It is editing a page Google already sees value in, removing what’s outdated, expanding what’s thin, and asking Google to look again. The hardest part is picking which articles deserve the work — and Search Console answers that question precisely.

How to tell

  • The article ranks position 8-20 for at least one query with real impressions.
  • The article was published 6+ months ago.
  • The information in it is now factually outdated (model names, prices, UI screenshots).
  • Top-ranking competitors have visibly more depth or recency.
  • CTR is below 3% at position < 10 — usually a title/meta issue more than content.

Quick verdict

Refresh articles that are close to ranking better, not articles that are far from ranking at all. The first kind has proven demand; the second hasn’t.

Before you start

  • Search Console connected with ≥ 90 days of data.
  • A way to expose updatedAt in your layout (more honest than touching publishedAt).
  • A re-index workflow (manual via URL Inspection, or scripted via Indexing API where allowed).

Step by step

  1. Pull the “close-to-ranking” list from Search Console. API call:
curl -X POST "https://www.googleapis.com/webmasters/v3/sites/$SITE/searchAnalytics/query" \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  --data '{
    "startDate":"2026-04-22","endDate":"2026-05-22",
    "dimensions":["page","query"],"rowLimit":1000
  }' \
  | jq -r '.rows[]
      | select(.position >= 8 and .position <= 20 and .impressions > 100)
      | [.keys[0],.keys[1],.position,.impressions,.clicks] | @tsv' \
  | sort -k4 -rn | head -30

Output rows are URL, query, position, impressions, clicks. The top of the list is your refresh queue.

  1. For each candidate, open the page and read it as a stranger. Annotate what’s outdated, what’s missing, what’s unclear in the first 200 words.

  2. Update the content. Do not change the URL. Common edits:

- Fix outdated facts (model versions, prices, dates).
- Add missing sub-section that the SERP rewards (FAQ, comparison table).
- Tighten the lead to match the actual query intent.
- Replace stale screenshots with current ones.
- Strengthen internal links to related newer articles.
  1. Add an updatedAt field rather than rewriting publishedAt: honest, signals freshness, doesn’t lie about original publish date:
---
publishedAt: 2025-09-12
updatedAt:   2026-05-22
---

Render both in the layout:

<p class="dates">
  Published <time datetime={pub}>{pub}</time>
  {upd && (<> · Updated <time datetime={upd}>{upd}</time></>)}
</p>
  1. Update structured data to reflect the new date:
const ld = {
  '@context': 'https://schema.org',
  '@type': 'Article',
  headline: a.title,
  datePublished: a.publishedAt,
  dateModified: a.updatedAt ?? a.publishedAt,
  // ...
};
  1. Request re-indexing. Search Console → URL Inspection → paste the URL → Request indexing. For batches, use the API (read-only inspection only — actual reindex is manual):
# verify the refresh is live and visible to Google
curl -X POST "https://searchconsole.googleapis.com/v1/urlInspection/index:inspect" \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  --data '{
    "inspectionUrl":"https://yourdomain.com/articles/your-slug/",
    "siteUrl":"sc-domain:yourdomain.com",
    "languageCode":"en-US"
  }' | jq '.inspectionResult.indexStatusResult.lastCrawlTime'

If lastCrawlTime is after your refresh date, Google has re-fetched.

  1. Wait 2-4 weeks and re-check the position with the same Search Console query. Compare position and clicks for the same query.

  2. If position did not move after 8 weeks, the page may need more than a refresh — rewrite or merge.

Implementation checklist

  • Refresh queue pulled from Search Console (position 8-20, impressions > 100).
  • Each refreshed article has updatedAt set and rendered.
  • JSON-LD dateModified matches updatedAt.
  • URL Inspection re-index requested for each refreshed URL.
  • 4-week follow-up checked.

After-launch verification

  • Search Console URL Inspection shows a lastCrawlTime after the refresh.
  • Average position for the targeted query improves by ≥ 3 positions within 4 weeks (rough median).
  • CTR improves if you also retitled.

Common pitfalls

  • Refreshing the date without changing the content. Google’s helpful content system catches this.
  • Refreshing articles with zero impressions hoping they’ll wake up. They won’t; rewrite or merge instead.
  • Changing the URL during a refresh. You lose any link equity. Keep the URL, redirect only if absolutely necessary.
  • Doing a “yearly refresh” of everything. Most articles don’t need it; you’ll burn time on dead weight.
  • Forgetting to update internal links — refreshed article still points to a deleted neighbor.

FAQ

  • How often should I refresh a single article?: Only when there’s a reason: ranking stalled, facts outdated, competitors moved. Routine yearly refreshes are mostly cargo culting.
  • Does updating publishedAt help?: Add updatedAt instead. Touching publishedAt is technically dishonest and the SERP rarely rewards it more than dateModified in JSON-LD.
  • Should I rewrite from scratch or edit?: Edit if the bones are good. Rewrite if you cringe reading the intro. Don’t pretend to “edit” a piece you actually need to rewrite.
  • How long until a refresh affects ranking?: 1-4 weeks in most cases. If nothing moves after 8 weeks, the page may need more than a refresh.
  • Can I refresh in bulk with AI?: For surface edits (broken links, outdated dates), yes. For substantive expansion, an AI draft + human edit per article is the practical path.

Tags: #Indie dev #Content ops #SEO #Website planning #Technical SEO