From Respira WordPress Skills Library
Scans WordPress content by last-updated date and categorizes pages/posts as fresh, aging, stale, or archive-candidate with recommended actions. Useful for quarterly content reviews, content migration planning, or after a Google freshness update.
How this skill is triggered — by the user, by Claude, or both
Slash command
/respira-wordpress-skills:stale-content-detectorThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**Version:** 1.0.0
Version: 1.0.0 Updated: 2026-05-24 Category: audit Status: stable Requires: Respira for WordPress plugin 7.1+ + MCP server
Find pages and posts that haven't been updated in a long time, categorize them as fresh / aging / stale / archive-candidate, and suggest action per item: refresh, redirect, archive, or leave alone. Stale content is an SEO drag and a credibility tax — if your "2023 trends" article still ranks but nobody's touched it since 2023, you're losing trust the day a reader notices the date.
This skill is intentionally focused. It's not a content audit (use SEO & AEO Amplifier for that). It's the "what's old" question, answered fast.
| Bucket | Age since last update | Suggested action |
|---|---|---|
| Fresh | < 6 months | leave alone |
| Aging | 6–12 months | review the headline + opening paragraph; if still accurate, leave; if outdated, refresh the date |
| Stale | 12–24 months | refresh the content meaningfully (new data, new examples), update the modified date |
| Archive-candidate | 24+ months and low traffic / orphan | archive, redirect, or 410 — depends on if anything links to it |
Plus an "evergreen" override: pages tagged as evergreen (/about/, /contact/, /pricing/, /privacy/) skip the staleness check entirely.
Call respira_get_active_site + respira_get_site_context.
Call:
respira_list_pages(per_page=100) for pagesrespira_list_posts(per_page=100, status=publish) for postsrespira_list_custom_posts(post_type=<each non-default CPT>, per_page=100) for any CPT detected via respira_list_post_typesEach result includes modified and date. Sort by modified ascending — oldest first.
Pull the list of pages and check each against the evergreen list (/about, /contact, /pricing, /privacy, /terms, /legal, /imprint, /faq, /support). If the URL or slug matches, flag as evergreen and skip the staleness check.
Also check if the post type has has_archive=false and a single URL pattern matching contact/legal/utility — those are usually evergreen.
For each non-evergreen page or post, compute days-since-modified. Bucket:
For items in the archive-candidate bucket, we need to know if anyone is reading them or linking to them. Two signals:
respira_find_element with the page's URL as a search term. Count incoming internal links. If zero, the page is an orphan.Recompute:
## Content age audit for {site_url}
Scanned {n_pages} pages + {n_posts} posts + {n_custom} custom posts ({n_total} total). Evergreen pages skipped: {n_evergreen}.
### Summary
| Bucket | Count | % |
|---|---|---|
| Fresh (<6mo) | {n_fresh} | {pct_fresh}% |
| Aging (6–12mo) | {n_aging} | {pct_aging}% |
| Stale (12–24mo) | {n_stale} | {pct_stale}% |
| Archive-candidate (24+mo) | {n_archive} | {pct_archive}% |
### Stale (12–24 months)
| Title | Last modified | Action |
|---|---|---|
| {title} | {modified} ({days_ago}d) | refresh |
| ... | | |
### Archive-candidate (24+ months)
| Title | Last modified | Internal links | Suggested action |
|---|---|---|---|
| {title} | {modified} ({days_ago}d) | {link_count} | {action} |
| ... | | | |
### What I'd refresh first (top 5 by traffic or link equity)
1. **{title}** ({days_ago}d old) — {one-line reason: high incoming link count / high traffic / topical relevance to current focus}
2. ...
Ask: "Want me to refresh one of these now? I can pull the existing content, suggest updates, create a duplicate with the refresh applied, and you review."
If yes, route to the SEO & AEO Amplifier skill or directly compose respira_create_page_duplicate + targeted updates.
respira_delete_page only if the user explicitly asks for deletion of a specific named page.date (published) as a staleness signal. A 2018 post updated last month is fresh.Records: site URL hash, n_pages / n_posts / n_custom counted, bucket distribution, success/failure, total duration. No page titles, no URLs, no decisions sent.
Endpoint: POST https://www.respira.press/api/skills/track-usage
npx claudepluginhub respira-press/agent-skills-wordpressMonitors existing content for ranking drops and generates a prioritized refresh queue. Run monthly or after an SEO audit to recover lost positions.
Identifies outdated dates, statistics, examples, trends, and links in content; suggests prioritized refresh plans, update checklists, and SEO freshness signal tactics for older pages.
Scans all blog files for quality scores, orphan pages, topic cannibalization, stale content, and AI citation readiness. Spawns parallel subagents for comprehensive analysis and produces a prioritized action queue.