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.mdsource 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
| Rule | Requirement |
|---|---|
| Intra-silo | Encouraged — link freely within silo |
| Cross-silo | Limited — max 1-2 per page |
| Silo top receives | Links from ALL pages in silo |
| Areas/Blog | ALWAYS link to parent silo top |
| Homepage | Links to ALL silo tops |
Cross-Silo Linking (Restricted)
| From | To | Allowed |
|---|---|---|
| Service → Service | Different silo | Max 1 "related service" |
| Area → Area | Different silo | NO (only nearby same-silo) |
| Blog → Blog | Different silo | Max 1 if highly relevant |
| Blog → Service | Different silo | NO |
Link Budget Per Page
| Page Type | Max Outbound | Intra-silo | Cross-silo |
|---|---|---|---|
| Homepage | 25 | N/A | All silo tops |
| Service (silo top) | 15 | Unlimited | 2 max |
| Area page | 10 | 5+ | 1 max |
| Article | 12 | 3+ required | 1 max |
| Calculator | 5 | N/A | 2 (results only) |
Inbound Requirements
Minimum Inbound Links
| Page Type | Minimum | Priority Sources |
|---|---|---|
| Silo top (service) | 5 | Homepage, all silo areas, all silo articles |
| Area page | 3 | Silo top, nearby areas, 1 article |
| Article | 2 | Silo top, related articles |
| Calculator | 4 | Homepage, ALL silo tops |
| Homepage | 1+ | Nav/logo from all pages |
Inbound Priority Order
For silo tops (money pages), inbound links should come from:
- Homepage (highest value)
- Same-silo areas (relevance)
- Same-silo articles (content support)
- Other silo tops (1 max, related service)
Anchor Text Rules
Limits
| Anchor Type | Per Page | Per Target (total inbound) |
|---|---|---|
| Exact match keyword | 1 max | 3 max site-wide |
| Service name | Unlimited | Unlimited |
| Branded | Unlimited | Unlimited |
| Generic | 0 in body | Nav/footer only |
Anchor Patterns
| Target Type | Use |
|---|---|
| Silo top | Service name, "our {service}" |
| Area | "{service} in {area}", "{area} removals" |
| Article | Topic phrase, question |
| Calculator | "get quote", "instant price", "calculate" |
| Homepage | Brand 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.
| Rule | Requirement |
|---|---|
| Every article | MUST link to parent silo top |
| Link placement | Within first 3 paragraphs |
| Anchor | Service-focused, not generic |
| Cross-silo | Max 1 link, only if highly relevant |
| Blog → Blog | Max 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.
| Direction | Rule |
|---|---|
| Inbound | From homepage + ALL silo tops |
| Outbound | Max 5: logo home + 2 in results |
| No nav | Minimal 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
| Check | Rule |
|---|---|
| Orphan | 0 inbound links → BLOCKER |
| Weak | Below minimum → WARNING |
| Healthy | At/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)
| Condition | Result |
|---|---|
| Orphan page exists | STOP — fix before deploy |
| Silo top has <3 inbound | STOP — add links |
| No silo definition | STOP — define silos first |
| Cross-silo >3 on any page | STOP — 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
- silo-examples.md — Full silo structures
- anchor-patterns.md — Anchor text by type
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