Claude-skill-registry internal-linking

Plans internal link structure using content silos. Outputs link map with SEO priority. Does not create links.

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/internal-linking" ~/.claude/skills/majiayu000-claude-skill-registry-internal-linking && rm -rf "$T"
manifest: skills/data/internal-linking/SKILL.md
source content

Internal Linking Skill

Purpose

Outputs internal link structure using content silo architecture. SEO-focused link equity distribution.

Primary Objective

Push link equity to money pages (silo tops) through structured silos.

Not "pretty web" — strategic authority building.

Skill Output

silos: [...]           # Defined content clusters
link_map: [...]        # Per-page outbound links
link_requirements: [...] # Inbound requirements
orphan_check: [...]    # Pages with <minimum inbound

Input

site_structure:
  silos:
    - name: "house-removals"
      top: "/services/house-removals"      # Money page
      areas: ["/areas/bath", "/areas/bristol"]
      articles: ["/blog/moving-costs", "/blog/packing-tips"]
      
    - name: "office-removals"
      top: "/services/office-removals"
      areas: ["/areas/bath-office"]
      articles: ["/blog/office-moving-guide"]
      
  standalone:
    - { url: "/calculator", type: "tool", priority: 1 }
    - { url: "/contact", type: "conversion" }
    - { url: "/about", type: "info" }

Content Silo Rules

Silo Structure

Homepage
    │
    ├── SILO: House Removals
    │   ├── /services/house-removals  ← SILO TOP (money page)
    │   ├── /areas/bath               ← links UP to silo top
    │   ├── /areas/bristol            ← links UP to silo top
    │   └── /blog/moving-costs        ← links UP to silo top
    │
    └── SILO: Office Removals
        ├── /services/office-removals ← SILO TOP (money page)
        └── /blog/office-guide        ← links UP to silo top

Silo Linking Rules

RuleRequirement
Intra-siloEncouraged — link freely within silo
Cross-siloLimited — max 1-2 per page
Silo top receivesLinks from ALL pages in silo
Areas/BlogALWAYS link to parent silo top
HomepageLinks to ALL silo tops

Cross-Silo Linking (Restricted)

FromToAllowed
Service → ServiceDifferent siloMax 1 "related service"
Area → AreaDifferent siloNO (only nearby same-silo)
Blog → BlogDifferent siloMax 1 if highly relevant
Blog → ServiceDifferent siloNO

Link Budget Per Page

Page TypeMax OutboundIntra-siloCross-silo
Homepage25N/AAll silo tops
Service (silo top)15Unlimited2 max
Area page105+1 max
Article123+ required1 max
Calculator5N/A2 (results only)

Inbound Requirements

Minimum Inbound Links

Page TypeMinimumPriority Sources
Silo top (service)5Homepage, all silo areas, all silo articles
Area page3Silo top, nearby areas, 1 article
Article2Silo top, related articles
Calculator4Homepage, ALL silo tops
Homepage1+Nav/logo from all pages

Inbound Priority Order

For silo tops (money pages), inbound links should come from:

  1. Homepage (highest value)
  2. Same-silo areas (relevance)
  3. Same-silo articles (content support)
  4. Other silo tops (1 max, related service)

Anchor Text Rules

Limits

Anchor TypePer PagePer Target (total inbound)
Exact match keyword1 max3 max site-wide
Service nameUnlimitedUnlimited
BrandedUnlimitedUnlimited
Generic0 in bodyNav/footer only

Anchor Patterns

Target TypeUse
Silo topService name, "our {service}"
Area"{service} in {area}", "{area} removals"
ArticleTopic phrase, question
Calculator"get quote", "instant price", "calculate"
HomepageBrand name, "home"

Forbidden Anchors

  • ❌ "click here" in body content
  • ❌ "read more" in body content
  • ❌ "learn more" in body content
  • ❌ Same exact-match anchor 4+ times to one target

Blog as Link Pump

Blog's primary job: push equity to silo tops.

RuleRequirement
Every articleMUST link to parent silo top
Link placementWithin first 3 paragraphs
AnchorService-focused, not generic
Cross-siloMax 1 link, only if highly relevant
Blog → BlogMax 2 "related posts"
# Good blog linking
article: "/blog/moving-costs"
silo: "house-removals"
required_outbound:
  - target: "/services/house-removals"  # Parent silo top
    anchor: "house removals service"
    placement: "body, paragraph 2"
optional_outbound:
  - target: "/blog/packing-tips"  # Same silo
    anchor: "packing guide"

Calculator Page (Special)

High-priority inbound, minimal outbound.

DirectionRule
InboundFrom homepage + ALL silo tops
OutboundMax 5: logo home + 2 in results
No navMinimal header, no full nav

Link Map Output

link_map:
  - page: "/services/house-removals"
    silo: "house-removals"
    role: "silo_top"
    outbound:
      - { to: "/", anchor: "Home", section: "breadcrumb" }
      - { to: "/calculator", anchor: "Get your quote", section: "cta" }
      - { to: "/services/packing", anchor: "packing service", section: "related", cross_silo: true }
      - { to: "/areas/bath", anchor: "removals in Bath", section: "areas" }
    inbound_required:
      - { from: "/", min: 1 }
      - { from: "/areas/*", min: 2 }
      - { from: "/blog/*", min: 1 }
    inbound_actual: 4
    status: "healthy"

Orphan Prevention

CheckRule
Orphan0 inbound links → BLOCKER
WeakBelow minimum → WARNING
HealthyAt/above minimum → OK
orphan_check:
  orphan_pages: []      # Must be empty
  weak_pages: 
    - { url: "/areas/gloucester", inbound: 1, minimum: 3 }
  healthy_pages: 10

Blocking Conditions (STOP)

ConditionResult
Orphan page existsSTOP — fix before deploy
Silo top has <3 inboundSTOP — add links
No silo definitionSTOP — define silos first
Cross-silo >3 on any pageSTOP — reduce

Non-goals

  • Does NOT create actual links
  • Does NOT handle external links
  • Does NOT track performance
  • Does NOT analyze competitors
  • Does NOT audit existing sites

Forbidden

  • ❌ Orphan pages
  • ❌ Generic anchors in body
  • ❌ Exact match anchor >3 times to one target
  • ❌ Blog not linking to silo top
  • ❌ Cross-silo >3 per page
  • ❌ Area linking to different-silo area

References

Definition of Done

  • All silos defined with tops
  • Every page has silo assignment
  • Every silo top has 5+ inbound
  • Every article links to silo top
  • Zero orphan pages
  • Zero weak pages (below minimum)
  • Cross-silo max 2 per page
  • Calculator has 4+ inbound