Guide
By Axel Antas-Bergkvist Published May 23, 2026

Refresh your old Ghost posts instead of writing new ones

There is a move every experienced SEO operator learns eventually: the fastest way to grow traffic is usually not another new post, but fixing the dozens of decent posts you already have. Search engines reward freshness and depth, and a three-year-old article that once ranked has almost certainly drifted — the facts aged, the intro rambles, the internal links point at posts you have since rewritten, the meta description was an afternoon afterthought. Updating those posts in place, often called historical optimization or a content refresh, is some of the highest-return work in content marketing. The catch on Ghost is that doing it across a real archive is miserable.

Why the refresh stalls inside Ghost

The Ghost editor is built to write one post at a time, and a content refresh is the opposite shape of work: a consistent change applied across many posts at once. To refresh thirty posts by hand you open each one, scroll, re-read, tighten the intro, fix the dead links, rewrite the meta description, save, and move to the next — thirty times. There is no find-and-replace across your archive, no way to see all your weak meta descriptions in one list, and no way to point a capable AI assistant at the whole set and have it propose updates you then review. So the refresh that would move your numbers becomes a project nobody schedules.

Bring the archive to where bulk work is easy

The unlock is to stop treating your posts as rows in a CMS and start treating them as what they really are: text. Specter is a native macOS app that syncs your Ghost blog down to a folder of plain markdown files and back up again. Once your posts are local files — body, title, tags, status, feature image URL, and excerpt all preserved in frontmatter — every tool you own can reach them, including AI. If you have not connected it yet, the first-sync guide covers pasting your Admin API key and pulling your archive down.

With the folder on disk, a refresh becomes a pass rather than a marathon. You decide which posts to target — perhaps everything older than two years, or a specific cluster on one topic — and you work the whole set together. The point is that the bottleneck moves from “open and edit each post” to “decide what good looks like and review the result,” which is the part of the job that actually needs you.

What a refresh pass looks like

Specter has no built-in AI; it is the bridge, and you bring the model you already pay for. So you point Claude, ChatGPT, Gemini, or another assistant at the synced folder and give it a scoped instruction. The art is in being specific about what to touch and what to leave alone. A useful first pass might be:

For each post in this folder older than 2023, rewrite only the
opening two paragraphs to lead with the reader's problem and the
current state of the topic. Keep all facts, keep my voice, and do
not touch anything below the first heading or any frontmatter.

Then a second, narrower pass on metadata:

For every post, check the "excerpt" field. Where it is missing or
generic, write a 150-character meta description that reflects what
the post actually delivers and includes its main keyword. Leave
strong existing excerpts alone.

You can layer in the jobs that pair naturally with a refresh: fixing or updating internal links across the archive so old posts point at your newer, better ones, and bulk SEO edits to titles and metadata. The general technique — scoping prompts, starting narrow, then scaling — is covered in editing Ghost posts with Claude.

Review the diff, then ship it

The reason this beats an auto-publishing AI tool is that nothing reaches your live blog until you have looked at it. After the AI pass, you read the changes in your editor and keep what is genuinely better — the whole value of a refresh is improving posts, not replacing your voice with generic filler that would quietly hurt the rankings you were trying to lift. When the diff looks right, Specter’s dry-run preview shows you exactly which posts would update on Ghost before anything goes live, so a careless prompt cannot silently overwrite forty posts. If you edited a post in Ghost while you were working locally, Specter prompts you about the conflict rather than picking a winner.

It is worth committing the folder to git before you start, so you have a clean snapshot to compare against and roll back to; see version control for your Ghost posts. Then the loop is simple and safe: snapshot, run the pass, read the diff, preview, sync. The posts that earned their rankings years ago get to keep earning them — and you did it in an afternoon instead of a quarter.

Buy Specter — $49 Browse all guides