Best for
- Use when the user says 'build internal links', 'improve internal linking', 'fix orphaned pages', or 'create topic clusters'.
respira-press/agent-skills-wordpress/skills/internal-link-builder/SKILL.md
Use when the user says 'build internal links', 'improve internal linking', 'fix orphaned pages', or 'create topic clusters'. Analyzes all published content, maps topic relationships, and presents a linking plan for approval before changing anything.
Decision brief
Version: 1.2.0 Updated: 2026-06-30 Freshly updated: v1.2.0 snapshots every page with respiragetsnapshot before touching links, locates the exact target paragraph with respirafindelement and inserts contextual links there with respiraupdateelement instead of rewriting whole pages…
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/respira-press/agent-skills-wordpress --skill "skills/internal-link-builder"Inspect the Agent Skill "internal-link-builder" from https://github.com/respira-press/agent-skills-wordpress/blob/10821eaabe362fe9052f6ee81ecdd62e5d2f2980/skills/internal-link-builder/SKILL.md at commit 10821eaabe362fe9052f6ee81ecdd62e5d2f2980. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
1. Verify Respira + MCP connection via respiragetsitecontext. If unavailable, stop and show setup guidance. 2. Load any saved linking strategy for this site via respiragetoption (key respirainternallinkstrategy). If present, it carries the anchor-text conventions, topic clusters…
1. Verify Respira + MCP connection via respiragetsitecontext. If unavailable, stop and show setup guidance. 2. Load any saved linking strategy for this site via respiragetoption (key respirainternallinkstrategy). If present, it carries the anchor-text conventions, topic clusters…
Analyze the content map to find linking opportunities. For each potential link, evaluate:
Present the linking plan as a clear, scannable report. Group recommendations by priority:
1. Before any edits, snapshot the pages you're about to touch with respiragetsnapshot. One snapshot covers the run and makes the whole pass reversible in one step via respirarestoresnapshot. This replaces the older duplicate-first dance for the common case: you edit in place, bu…
Permission review
No configured static risk pattern was detected
This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.
Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 90/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 40 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Version: 1.2.0
Updated: 2026-06-30
Freshly updated: v1.2.0 snapshots every page with respira_get_snapshot before touching links, locates the exact target paragraph with respira_find_element and inserts contextual links there with respira_update_element instead of rewriting whole pages, applies links across many pages in one pass with respira_batch_update, and persists the per-site linking strategy (anchor-text rules, clusters already built, do-not-link pairs) via respira_get_option / respira_update_option so repeat runs build on prior work.
Strategic internal link building for WordPress sites. Analyzes all published content, maps topic relationships, identifies high-value linking opportunities between pages, and presents a clear plan for approval before making any changes. Use this skill whenever someone mentions internal links, link building, content interlinking, orphaned pages that need links, topic clusters, pillar pages, or wants to improve their site's internal link structure for SEO.
Internal links are one of the highest-leverage on-page SEO tactics — they distribute page authority, help search engines understand site structure, and guide visitors to related content. Most WordPress sites under-link dramatically, leaving value on the table.
This skill reads every published page and post, builds a content relationship map, and finds natural opportunities to connect related content through contextual links. It always shows you the full plan before touching anything.
Finds:
Recommends:
respira_get_site_context. If unavailable, stop and show setup guidance.respira_get_option (key respira_internal_link_strategy). If present, it carries the anchor-text conventions, topic clusters already built, and do-not-link pairs from previous runs. Use it so a repeat run extends prior work instead of re-proposing the same links. If absent, start fresh and write it back in Phase 4.respira_list_pages — get all pagesrespira_list_posts — get all postsrespira_read_page or respira_read_postAnalyze the content map to find linking opportunities. For each potential link, evaluate:
Topical relevance — Does the source content naturally relate to the target? Only recommend links where the connection is genuinely useful to a reader. A link should feel like a helpful "read more about this" moment, not a forced SEO play.
Context fit — Is there a natural place in the source content where the link fits? Look for:
Link equity value — Consider:
Anchor text quality — Suggest anchor text that:
Present the linking plan as a clear, scannable report. Group recommendations by priority:
## Internal Link Building Plan
### Site Overview
- Total pages/posts scanned: X
- Existing internal links found: X
- Orphaned content (0-1 inbound links): X
- New links recommended: X
### High Priority (orphaned pages & pillar connections)
1. **[Source Page Title]** → **[Target Page Title]**
- Why: [Brief reasoning — e.g., "Source discusses WordPress security but doesn't link to your dedicated security guide"]
- Anchor text: "[suggested anchor text]"
- Placement: [Where in the source content — e.g., "In the paragraph about plugin vulnerabilities (under H2 'Keeping Your Site Safe')"]
2. ...
### Medium Priority (topical cluster links)
...
### Low Priority (nice-to-have contextual links)
...
### Summary
- High priority: X links (strongly recommended)
- Medium priority: X links (good for SEO)
- Low priority: X links (optional enhancement)
Then ask:
Here's the internal linking plan. Would you like me to:
- Apply all recommendations (creates duplicates for review)
- Apply only high-priority links
- Let you pick specific links to apply
- Just keep this as a reference — no changes
Wait for explicit confirmation before proceeding.
respira_get_snapshot. One snapshot covers the run and makes the whole pass reversible in one step via respira_restore_snapshot. This replaces the older duplicate-first dance for the common case: you edit in place, but the snapshot is the safety net. (Duplicate-first via respira_create_page_duplicate / respira_create_post_duplicate remains an option when the user explicitly wants a side-by-side draft to review before publishing.)respira_find_element to locate the target paragraph or block where the link belongs (match on the surrounding text or heading recorded in the plan's Placement note)respira_update_element, inserting <a href="...">anchor text</a> inline in the matched text. This leaves the rest of the page byte-for-byte unchanged.respira_extract_builder_content to understand the node tree first.respira_batch_update instead of a separate write per page. Build the edit list (page/post id + element target + new markup) from the approved plan and submit it together. Fall back to individual respira_update_element / respira_update_page / respira_update_post calls only for one-off insertions.respira_update_option (key respira_internal_link_strategy): record the clusters now built, the anchor-text conventions used, and any do-not-link pairs, so the next run starts from this state.These rules prevent the skill from making harmful or spammy recommendations:
Always include:
If changes are applied, also include:
respira_get_snapshot captures the pages first, so the whole run reverts in one step via respira_restore_snapshotrespira_find_element + respira_update_element change only the matched paragraph, leaving the rest of the page untouched (no whole-page rewrite)This skill identifies internal linking opportunities and creates optimized duplicates for review.
It cannot:
It can:
Core WordPress tools
respira_get_site_contextrespira_list_pagesrespira_list_postsrespira_read_pagerespira_read_postrespira_extract_builder_contentrespira_inject_builder_contentrespira_create_page_duplicaterespira_create_post_duplicaterespira_update_pagerespira_update_postTargeted insertion (preferred for link edits)
respira_find_element — locate the exact target paragraph/block for contextual insertionrespira_update_element — insert the link into just that element, no whole-page rewriterespira_batch_update — apply links across many pages in one passSnapshot & rollback
respira_get_snapshot — capture pages before editingrespira_restore_snapshot — one-step revertPer-site strategy persistence
respira_get_option — load the saved linking strategy (respira_internal_link_strategy)respira_update_option — persist clusters built, anchor-text rules, and do-not-link pairsAfter run completion, send fire-and-forget usage tracking to:
POST https://www.respira.press/api/skills/track-usageInclude:
skill_slug = internal-link-builderNever block user flow on telemetry failure.
Built by Respira Team https://respira.press/skills/internal-link-builder
Alternatives
alirezarezvani/claude-skills
App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist
prowler-cloud/prowler
PostgreSQL indexing best practices for Prowler: index design, partial indexes, partitioned table indexing, EXPLAIN ANALYZE validation, concurrent operations, monitoring, and maintenance. Trigger: When creating or modifying PostgreSQL indexes, analyzing query performance with EXPLAIN, debugging slow queries, reviewing index usage statistics, reindexing, dropping indexes, or working with partitioned table indexes. Also trigger when discussing index strategies, partial indexes, or index maintenance
wanshuiyin/Auto-claude-code-research-in-sleep
Use it for operations and research tasks; the detail page covers purpose, installation, and practical steps.
dotnet/skills
Migrates .NET test projects from VSTest to Microsoft.Testing.Platform (MTP). Use when user asks to "migrate to MTP", "switch from VSTest", "enable Microsoft.Testing.Platform", "use MTP runner", set OutputType=Exe only for test projects in Directory.Build.props, or mentions EnableMSTestRunner, EnableNUnitRunner, or UseMicrosoftTestingPlatformRunner. USE FOR: MTP behavioral differences vs VSTest (exit code 8, zero tests discovered, --ignore-exit-code, TESTINGPLATFORM_EXITCODE_IGNORE); centralizing