From wp-agent-skills
Run an SEO optimization pass on one page or the entire site — meta titles, descriptions, Open Graph tags, structured data, and image alt text. Use when the site is ready to launch, when the user asks to "improve SEO", "make the site searchable", "add meta descriptions", or after adding new pages. Also use when missing alt text is reported.
npx claudepluginhub antonysilverhand/wp-agent-skills --plugin wp-agent-skillsThis skill is limited to using the following tools:
SEO optimization for one page or all pages. Updates meta, Open Graph, structured data, alt text.
Acquire memory dumps from live systems/VMs and analyze with Volatility 3 for processes, networks, DLLs, injections in incident response or malware hunts.
Provides x86-64/ARM disassembly patterns, calling conventions, control flow recognition for static analysis of executables and compiled binaries.
Identifies anti-debugging checks like IsDebuggerPresent, NtQueryInformationProcess in Windows binaries; suggests bypasses via patches/hooks/scripts for malware analysis, CTFs, authorized RE.
SEO optimization for one page or all pages. Updates meta, Open Graph, structured data, alt text.
TARGET — page title/ID, or all for every published pageFOCUS_KEYWORD — (optional) primary keyword to optimize forWhen TARGET is all, use subagents for speed:
For single-page runs, no subagents needed.
wp plugin list --status=active --format=json | jq '[.[].name]'
yoast_wpseo_title and yoast_wpseo_metadesc post metarank_math_title and rank_math_description post metawp_head hook in functions.phpFetch page content and check:
| Check | Target |
|---|---|
| Meta title | Under 60 chars, not the default site title |
| Meta description | 120–160 chars, includes focus keyword if set |
| H1 count | Exactly 1 |
| Images missing alt | 0 |
| Internal links | At least 1 outgoing |
For each page:
<Specific Page Topic> | <Site Owner Name> — under 60 charsFOCUS_KEYWORD naturally if provided.Don't use "Welcome to", "Home page of", or the site URL in titles.
Inject JSON-LD structured data:
{
"@context": "https://schema.org",
"@type": "Person",
"name": "<full name>",
"url": "<WP_SITE_URL>",
"jobTitle": "<if known>",
"sameAs": ["<social URLs>"],
"description": "<one sentence bio>"
}
Add via wp_head hook or Yoast's schema override if available.
For every image block with no alt text, generate alt text from:
IMAGE: placeholder description (if it was set by wp-new-page)Update each image block via REST API (full content body required).
Ensure these exist on all pages (add to theme <head> if no plugin handles them):
<meta property="og:title" content="<meta title>" />
<meta property="og:description" content="<meta description>" />
<meta property="og:image" content="<featured image URL>" />
<meta property="og:type" content="website" />
<meta name="twitter:card" content="summary_large_image" />
_yoast_wpseo_title and _yoast_wpseo_metadesc post meta, not in standard fields. The REST API exposes these under yoast_head_json but writing requires the Yoast REST extension or direct post meta update.title field updates the page H1, not the meta title. These are separate. Always update meta title through the SEO plugin's fields.sameAs requires full URLs (https://...), not handles (@username).og:image must be an absolute URL, not a relative path.Per-page table:
| Check | Before | After |
|---|---|---|
| Meta title | — | "Photography |
| Meta description | missing | 138 chars ✓ |
| Images with alt | 2/5 | 5/5 ✓ |
| H1 count | 0 | 1 ✓ |