Recipe

Kill 100 pages, safely

By Axel Antas-Bergkvist Published June 1, 2026
Time ~1 hour for a 500-post blog
Cost ~$2 in tokens
Risk High if you skip the redirect step

Deleting content feels like losing, which is exactly why most blogs never do it — and why most blogs are weighed down by a long tail of thin, dated, traffic-less posts that dilute their topical authority. Google judges a domain holistically, so a few hundred dead pages can drag down the rankings of the good posts that share the domain. Pruning that dead weight is one of the most counterintuitive and highest-return moves in technical SEO. The catch is that deleting pages carelessly creates a field of 404s and lost backlink equity, which is worse than doing nothing. The safe version is a recipe, not a delete key — and Specter’s dry-run is what lets you see the exact blast radius before anything unpublishes.

What you need

The recipe

The order of these steps is the whole safety model — redirects go live before anything is deleted.

  1. Start from the audit. Filter your reviewed audit CSV to the delete rows.
  2. Pull. Run a Specter pull so the deletion plan matches what’s actually live.
  3. Generate the redirect map. Run the redirect prompt — it picks the best surviving target for each doomed post (or marks it 410) and writes a CSV.
  4. Review the map, then apply the redirects to your host first and verify they resolve.
  5. Run the delete pass (removes the local files only), then dry-run to check the blast radius — count the deletes, read the slug list, restore anything wrong with git.
  6. Push. Specter unpublishes those posts; combined with your live redirects, the URLs now 301 to their replacements. Then file removal requests in Search Console.

The prompt

The redirect map is a planning pass — it deletes nothing:

You are building a redirect map for posts about to be deleted. For each post
marked delete: read its title, slug, and topic, then search the surviving posts
for the best target. Decide: "301 to <surviving-slug>" if there's a clearly
better post on the same topic; "301 to /" or a category page if that's the right
home; "410 gone" only if there is genuinely no good target. Write
source_slug, source_url, redirect_type, target_url, reason to a CSV. Default to
301 over 410 — 301s preserve inbound backlink equity. Delete nothing.

Then the delete pass acts on the reviewed map:

For each row in the reviewed redirect map, find posts/<slug>.md and delete it
from the working tree; log slug, redirect_type, target. Do NOT push to the CMS
and don't modify anything else — I'll run a Specter dry-run and review before
pushing. If a file is already gone, log "SKIPPED — not found" and continue.

Cost and time

Blog sizeTokensCostWall-clock
50 deletes~80k$0.1520 min
200 deletes~320k$0.6060 min
500 deletes~800k$1.502 hr

Most of the wall-clock is the review steps and redirect deployment, not the model.

Pitfalls

Where to go next

Pair it with the thin content auditor on a quarterly cadence so the long tail never builds back up. If you’d rather not hard-delete, push as status: draft first — unindexable but recoverable — and convert to a real delete after 30 days of monitoring.

Buy Specter Pro — $99/year Browse all recipes