Source profileQuality 90/100

respira-press/agent-skills-wordpress/skills/internal-link-builder/SKILL.md

internal-link-builder

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.

Source repository stars
40
Declared platforms
0
Static risk flags
0
Last source update
2026-08-04
Source checked
2026-08-05

Decision brief

What it does—and where it fits

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…

Best for

  • Use when the user says 'build internal links', 'improve internal linking', 'fix orphaned pages', or 'create topic clusters'.

Not for

  • Tasks that require unconfirmed production actions or broad system permissions.
  • Environments where the pinned source and install steps cannot be inspected.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/respira-press/agent-skills-wordpress --skill "skills/internal-link-builder"
Safe inspection promptEditorial

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

What the source asks the agent to do

  1. 01

    Execution 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…

    Verify Respira + MCP connection via respiragetsitecontext. If unavailable, stop and show setup guidance.Load any saved linking strategy for this site via respiragetoption (key respirainternallinkstrategy). If present, it carries the anchor-text conventions, topic clusters already built, and do-not-link pairs from previous…Fetch all published content:
  2. 02

    Phase 1: Content Inventory & Mapping

    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…

    Verify Respira + MCP connection via respiragetsitecontext. If unavailable, stop and show setup guidance.Load any saved linking strategy for this site via respiragetoption (key respirainternallinkstrategy). If present, it carries the anchor-text conventions, topic clusters already built, and do-not-link pairs from previous…Fetch all published content:
  3. 03

    Phase 2: Opportunity Analysis

    Analyze 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…Context fit — Is there a natural place in the source content where the link fits? Look for:Mentions of the target page's topic without an existing link
  4. 04

    Phase 3: Present the Plan

    Present the linking plan as a clear, scannable report. Group recommendations by priority:

    Present the linking plan as a clear, scannable report. Group recommendations by priority:
  5. 05

    Phase 4: Apply Links (Only If Approved)

    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…

    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 duplica…For each approved link, find the exact insertion point rather than rewriting the page:Use respirafindelement 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)

Permission review

Static risk signals and limitations

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

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score90/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars40SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
respira-press/agent-skills-wordpress
Skill path
skills/internal-link-builder/SKILL.md
Commit
10821eaabe362fe9052f6ee81ecdd62e5d2f2980
License
MIT
Collected
2026-08-05
Default branch
main
View the original SKILL.md

Internal Link Builder

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.

What This Skill Does

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:

  • Orphaned content (pages/posts with zero or few inbound internal links)
  • Hub pages that should link to related sub-pages but don't
  • Blog posts that reference topics covered by other pages without linking
  • Pillar/cluster opportunities (topically related content that should be interlinked)
  • Pages with high authority potential that aren't distributing link equity
  • Over-linked pages (too many outbound links diluting value)
  • Missing contextual links (mentions of topics without corresponding links)

Recommends:

  • Specific source page → target page link pairs
  • Suggested anchor text (natural, descriptive, not keyword-stuffed)
  • Link placement context (which paragraph/section the link belongs in)
  • Priority ranking (high/medium/low impact)
  • Reasoning for each recommendation (why this link makes sense)

Requirements

  • Respira for WordPress plugin installed and connected
  • MCP connection active (desktop or WebMCP)
  • Read access to scan site content
  • Write access to create duplicates (only if user approves changes)

Trigger Phrase

  • "build internal links"

Alternative Triggers

  • "improve internal linking"
  • "find internal link opportunities"
  • "interlink my content"
  • "fix orphaned pages"
  • "create topic clusters"
  • "link my pages together"
  • "internal link audit"

Execution Workflow

Phase 1: Content Inventory & Mapping

  1. Verify Respira + MCP connection via respira_get_site_context. If unavailable, stop and show setup guidance.
  2. Load any saved linking strategy for this site via 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.
  3. Fetch all published content:
    • respira_list_pages — get all pages
    • respira_list_posts — get all posts
  4. For each content item, load full content:
    • respira_read_page or respira_read_post
    • Extract: title, URL/slug, headings, main topics, existing internal links, word count
  5. Build a content map — a structured index of:
    • Each page/post's primary topic and subtopics
    • Keywords and phrases each piece targets
    • Existing internal links (source → target pairs)
    • Inbound link count per page
    • Content type (pillar page, blog post, product page, landing page, etc.)

Phase 2: Opportunity Analysis

Analyze the content map to find linking opportunities. For each potential link, evaluate:

  1. 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.

  2. Context fit — Is there a natural place in the source content where the link fits? Look for:

    • Mentions of the target page's topic without an existing link
    • Paragraphs that discuss related concepts
    • Lists or resource sections where the target would be a natural addition
    • Introductions or conclusions that reference broader topics
  3. Link equity value — Consider:

    • Orphaned pages (0-1 inbound links) get priority as targets
    • High-traffic/high-authority pages are valuable as sources
    • Deep pages that are hard to reach from navigation benefit most
    • Don't over-link any single page (diminishing returns after ~3-5 new links per page)
  4. Anchor text quality — Suggest anchor text that:

    • Reads naturally in context
    • Describes what the reader will find (not "click here")
    • Uses relevant keywords without being spammy
    • Varies across different links to the same target

Phase 3: Present the Plan

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:

  1. Apply all recommendations (creates duplicates for review)
  2. Apply only high-priority links
  3. Let you pick specific links to apply
  4. Just keep this as a reference — no changes

Wait for explicit confirmation before proceeding.

Phase 4: Apply Links (Only If Approved)

  1. Before any edits, snapshot the pages you're about to touch with 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.)
  2. For each approved link, find the exact insertion point rather than rewriting the page:
    • Use 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)
    • Apply the link to just that element with 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.
    • Respect the page builder format (Gutenberg blocks, Divi shortcodes, Elementor data, etc.). For deep structural cases use respira_extract_builder_content to understand the node tree first.
  3. When many pages get links in the same run, apply them in one pass with 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.
  4. After all edits are applied, provide a summary:
    • Number of pages modified
    • Total links added
    • The snapshot id for rollback, plus links to review the modified pages in WordPress admin
  5. Persist the updated linking strategy with 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.

Link Quality Rules

These rules prevent the skill from making harmful or spammy recommendations:

  • Relevance first — Never recommend a link purely for SEO mechanics. Every link must be genuinely useful to a human reader navigating between the two pages.
  • No self-links — Don't link a page to itself.
  • No duplicate links — Don't recommend a link that already exists on the source page.
  • Respect existing links — If a paragraph already has 2+ links, don't add more to it. Link density matters for readability.
  • Natural anchor text — No exact-match keyword stuffing. Anchor text should read as part of the sentence.
  • Builder-aware — When inserting links, preserve the page builder's content format. Don't break Divi shortcodes, Elementor JSON, or Gutenberg block markup.
  • Conservative by default — When in doubt about a link's relevance, leave it out. It's better to recommend 10 great links than 30 mediocre ones.

Output Format

Always include:

  1. Site content summary (pages/posts scanned, existing link density)
  2. Content map highlights (topic clusters identified, orphaned content found)
  3. Prioritized linking plan (high/medium/low with reasoning for each)
  4. Clear confirmation prompt — never proceed without approval
  5. Impact estimate (which orphaned pages get rescued, which clusters get strengthened)

If changes are applied, also include:

  1. Change summary (pages modified, links added, snapshot id)
  2. Review instructions (which pages to review in WordPress, and how to roll back)

Safety Model

  • Read-only analysis first — full content scan before any changes
  • Explicit user confirmation before any edits
  • Snapshot before writing — respira_get_snapshot captures the pages first, so the whole run reverts in one step via respira_restore_snapshot
  • Targeted edits — respira_find_element + respira_update_element change only the matched paragraph, leaving the rest of the page untouched (no whole-page rewrite)
  • Duplicate-first remains available when the user wants a side-by-side draft instead of an in-place edit
  • Provides rollback guidance (restore the snapshot if not wanted)
  • Preserves all existing content and links — only adds, never removes

Honest Disclaimer

This skill identifies internal linking opportunities and creates optimized duplicates for review.

It cannot:

  • Guarantee ranking improvements
  • Fix external/backlink profile
  • Replace a proper content strategy
  • Publish changes without your review

It can:

  • Find genuine content relationships you've missed
  • Rescue orphaned pages from obscurity
  • Strengthen topical clusters with contextual links
  • Save hours of manual content auditing

Tooling

Core WordPress tools

  • respira_get_site_context
  • respira_list_pages
  • respira_list_posts
  • respira_read_page
  • respira_read_post
  • respira_extract_builder_content
  • respira_inject_builder_content
  • respira_create_page_duplicate
  • respira_create_post_duplicate
  • respira_update_page
  • respira_update_post

Targeted insertion (preferred for link edits)

  • respira_find_element — locate the exact target paragraph/block for contextual insertion
  • respira_update_element — insert the link into just that element, no whole-page rewrite
  • respira_batch_update — apply links across many pages in one pass

Snapshot & rollback

  • respira_get_snapshot — capture pages before editing
  • respira_restore_snapshot — one-step revert

Per-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 pairs

Telemetry

After run completion, send fire-and-forget usage tracking to:

  • POST https://www.respira.press/api/skills/track-usage

Include:

  • skill_slug = internal-link-builder
  • site/version context
  • duration and success
  • pages scanned, links recommended, links applied counts
  • tools used

Never block user flow on telemetry failure.

Related Skills

  • SEO & AEO Amplifier (complements this — run SEO audit first, then build links)
  • WordPress Site DNA (understand site structure before linking)
  • Technical Debt Audit

Built by Respira Team https://respira.press/skills/internal-link-builder

Alternatives

Compare before choosing

Computed 10023,835

alirezarezvani/claude-skills

app-store-optimization

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

Computed 10014,533

prowler-cloud/prowler

postgresql-indexing

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

Computed 10014,251

wanshuiyin/Auto-claude-code-research-in-sleep

citation-audit

Use it for operations and research tasks; the detail page covers purpose, installation, and practical steps.

Computed 1004,944

dotnet/skills

migrate-vstest-to-mtp

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