relaunch
Execute a relaunch on a decayed-but-valuable article (Lesson 5 audit + Lesson 8 "don't abandon old winners"). Take a page the audit flagged as decaying or rank-slipping, refresh it against the LIVE SE
Files1
View on GitHubSKILL.mdpaperclip-source/exact-blog-agent-2/.claude/skills/relaunch/SKILL.md
GitHubRelaunch — update an old winner instead of starting cold
The course's most under-used lever: Ahrefs spends ~half its time updating and relaunching
old content, not making new (STRATEGY.md §3). A page that already earned rank + links is the
single best ROI on the blog — it starts from authority, not from zero. Anti-pattern #12 is
"abandon old content or settle for any position below #1." This skill is how we refuse to
abandon it: take a decayed-but-valuable article, make it the best result for its query again,
and re-promote it as new.
A relaunch is not a tweak. It is the full update loop — re-research against today's SERP, rewrite where the page lost ground, refresh the data and visuals, bump the date, and promote it like a brand-new piece. Half-measures (change the year in the title, call it "updated") are exactly the abandonment this lesson warns against.
When this fires
The audit (scripts/content_audit.py → content-pipeline/audit/latest.md, the "Relaunch
plan" section) produces the work orders. A slug lands there when it is:
compound == "decaying"(organic traffic is fading — Lesson 1, it stopped compounding), OR- rank-slipping vs the prior snapshot (its
best_rankworsened by ≥3 positions),
and it was ever valuable (had organic traffic, first-touch entries, or referring domains).
Each row carries {slug, reason, best_rank, referring_domains, what_to_refresh} — what_to_refresh
is your tailored checklist for this page. Start there; it already names the specific gaps.
Pure-dead pages (no traffic, no entry, ever) are not relaunch candidates — they're DELETE or REVIVE in the audit. Don't relaunch a page that never won; relaunch one that's slipping.
Input
For slug {slug}:
content-pipeline/audit/latest.md— the Relaunch plan row for this slug (reason+what_to_refresh+best_rank+referring_domains). The brief.content-pipeline/scorecard/latest.md— the per-article line (trajectory, compound class,rank_keyword, paid). The evidence.content-pipeline/8-publish/{slug}/article.md— the live published body (the thing you're updating). If it's missing, pull the live page or the Strapi/blog_postscopy first.content-pipeline/1-research/{slug}.md(+{slug}-deep.md,{slug}-data.json) — the original dossier/BEAT SPEC, if it exists, so you re-research against it rather than from scratch.STRATEGY.md— §3 (cadence/relaunch), §5 (uniqueness), §6 (spine: BV + intent + compound).brand-config.md— voice, audience, products, forbidden phrases.
Process — the relaunch loop
This is an update of a live article, so the spine never changes: it must still be intent-matched, BV ≥ 2, unique, and built to compound (
STRATEGY.md§6). You're re-earning #1, not bolting "(2026)" onto a stale page.
Read the brief. Open the audit row + scorecard line. Note why it decayed/slipped and the
rank_keywordit ranks (or used to rank) for. Thewhat_to_refreshfield is your punch list.Re-verify intent against the LIVE SERP (the non-negotiable first move). Pull today's top 10 for the
rank_keyword. The SERP shifts — what ranked a year ago may now be a different shape (listicle → tool page, guide → comparison). Match the current dominant intent exactly (STRATEGY.md§6, anti-pattern #9). If the SERP shape moved, the relaunch is a re-architecture, not a copy-edit — route through/research→/outlinefor the new shape.Find what made us slip. Read the new #1–3 side by side with our live body. We lost rank because a competitor out-updated us: fresher data, a section we lack, a sharper take, better coverage. List the specific gaps — these are what the rewrite must close.
Freshen the substance (not the chrome).
- Data & examples: replace every stale stat/number/screenshot-able claim with current figures (re-cite). Dated examples → current ones. A "best apps 2024" page with 2024 prices is why it fell.
- Squeeze new keywords: the page already ranks for a family — pull the new long-tail and
"people also ask" the SERP now rewards and widen the keyword family the article covers
(one strong page ranks for ~1,000 queries —
STRATEGY.md§1; don't leave the new ones on the table). Add the subsections that capture them. Never keyword-stuff (anti-pattern #10). - Information gain (still blocking): the refresh must carry ≥1 thing the current top 10
don't — our own data, first-hand testing, a sharper angle (
STRATEGY.md§5). A relaunch that just re-clones the new page 1 is the same clone failure, one year later. - Refresh visuals: re-capture screenshots that show stale UI/old years; regenerate charts
off the new data. Follow
templates/visual-strategy.md(resolvable data, value-first ~80/20, annotate screenshots). A 2024 screenshot dates the page as hard as a 2024 stat.
Rewrite where it lost ground — reuse where it didn't. Apply the changes through the normal craft (
/draftconventions: persona by content-type, voice fromexamples/voice/, the component menu with restraint). Keep the sections that still win; rewrite the weak ones; add the missing ones. The published byline persona stays the same unless the content type genuinely changed.*Bump the published date (this is what makes it a relaunch).* Set
published_at/publishedAtto today on the refreshed package — the article re-enters the calendar as fresh. Keep the slug and URL identical (we're updating the same page to keep its rank + links — never spin up a new URL and orphan the old authority; that throws away the whole point).Re-run the gate. A relaunch ships through the same publish gate as a new article —
/quality-checkmust PASS (floors + the 3-reviewer "do they keep ours over the live #1?" panel). A refresh that can't beat the current #1 isn't done. On FAIL, route the punch list and iterate; never lower the bar to ship the update.Re-publish. Run
/format-for-publishon the refreshed package (same slug, new date). Then mirror-verify it's live (the formatter's Supabaseblog_postsassertion).Re-promote as if brand new (the 110/110 half). The update is only half the relaunch — Lesson 8's whole point is you promote it again. Surface it for the off-page loop exactly like a new piece: refresh internal links pointing at it from the cluster, re-share it, and treat it as a fresh promotion target. Promotion = building backlinks, not chasing a traffic spike (
STRATEGY.md, anti-patterns #13–14); don't stop promoting until it's back to #1.
DO / DON'T
DO
- Relaunch pages that were valuable and are slipping — start from earned rank + links.
- Re-verify searcher intent against the live SERP first — the SERP shape moves; match today's.
- Genuinely freshen the substance — current data, new keywords, refreshed visuals, ≥1 new information-gain element.
- Keep the same slug/URL and bump the published date — update the page, re-date the launch.
- Re-promote it as new — relaunch = refresh + re-promotion (the second half is the point).
- Send it back through
/quality-check— it must beat the current #1, not the old one.
DON'T
- Don't abandon old content or settle for any rank below #1 (anti-pattern #12 — the reason this skill exists).
- Don't fake a relaunch: changing the year in the title or stamping "updated" without refreshing the substance is the abandonment, dressed up.
- Don't mint a new URL for the refreshed page — that orphans the rank + backlinks you're relaunching for.
- Don't re-clone the new page 1 — a relaunch still owes ≥1 information-gain element
(
STRATEGY.md§5). - Don't keyword-stuff the new terms or over-engineer on-page SEO (anti-pattern #10) — widen the family by genuinely covering the subtopics.
- Don't ship a refresh that fails the gate, and don't chase a one-off traffic spike instead of backlinks (anti-patterns #13–14).
Winning =
The relaunched page reaches page 1 again and stays (Lesson 8) — its organic traffic resumes
compounding (compound flips back toward compounding in a later scorecard), its best_rank
recovers toward #1, and it converts (BV ≥ 2). The opposite — and what we refuse to call a relaunch
— is a stale page left to drift to page 2, or a cosmetic "(2026)" refresh that doesn't move the
rank. A real relaunch turns a decaying asset back into a compounding one.
Autonomous behavior
- The audit's Relaunch plan is the queue; in autonomous mode (
BLOG_AGENT_AUTONOMOUS=1) work the rows top-down (worst rank-slips first — the audit already orders them). - A relaunch is AUTONOMOUS-SAFE — it's an update of an existing page, not a destructive or outward-facing action (unlike DELETE / merge-301 / ghost-redirect, which stay board-gated). EO can execute it via the update path without an approval gate.
- Same publish discipline as new content:
/quality-checkPASS required, the orchestrator owns the revision budget, and a FAIL is quarantined to9-needs-review/— never publish a FAIL or lower the bar to ship a refresh. - One relaunch at a time per slug; keep the slug/URL stable and only the date + body change.