Internal Linking Optimizer logo

Internal Linking Optimizer

Organization
Affitor
internal-linking-optimizer

Analyze site's internal link structure and optimize for hub-and-spoke SEO architecture. Triggers on: "optimize internal links", "internal linking", "link structure", "hub and spoke links", "orphan pages", "link equity", "internal link audit", "fix my internal links", "link architecture", "site structure optimization", "internal linking strategy", "link flow", "improve site structure", "find orphan pages", "maximize link equity", "internal link map".

Overview

PublisherAffitor
Repositoryaffiliate-skills
Skill nameinternal-linking-optimizer
Stars
705
Forks
209
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by Affitor on GitHub. Read the source before you install it.

Installation

Install the Internal Linking Optimizer AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/Affitor/affiliate-skills/tree/main/skills/analytics/internal-linking-optimizer
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/Affitor/affiliate-skills.git /tmp/affiliate-skills
mkdir -p .claude/skills
cp -r /tmp/affiliate-skills/skills/analytics/internal-linking-optimizer .claude/skills/internal-linking-optimizer
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Internal Linking Optimizer in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Internal Linking Optimizer on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Internal Linking Optimizer is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Internal Linking Optimizer

Analyze your site's internal link structure and generate an optimized hub-and-spoke linking plan. Finds orphan pages (no internal links pointing to them), identifies link equity bottlenecks, and creates specific linking instructions to maximize SEO impact.

Stage

S6: Analytics & Optimization — This is analytics/audit work on existing content. Internal linking is the most underutilized SEO lever — it's 100% in your control and costs nothing.

When to Use

  • User wants to improve their site's SEO through better internal linking
  • User asks about "orphan pages", "link structure", "hub and spoke"
  • User says "internal linking", "link audit", "link equity"
  • After publishing new content — new pages need internal links within 48 hours
  • After keyword-cluster-architect — cluster structure defines the ideal link architecture
  • Monthly maintenance task alongside content-decay-detector

Input Schema

yaml
site_url: string              # REQUIRED — site to analyze
                              # e.g., "myblog.com"

pages: object[]               # OPTIONAL — known pages with their topics
  - url: string
    title: string
    topic_cluster: string     # Which topical cluster it belongs to
    is_hub: boolean           # Is this a hub page?

hub_pages: string[]           # OPTIONAL — URLs of your hub/pillar pages
                              # Default: auto-detected

new_pages: string[]           # OPTIONAL — recently published pages needing links
                              # Default: none

Chaining from S3 keyword-cluster-architect: Use keyword_clusters.hub and keyword_clusters.clusters to define ideal link architecture.

Workflow

Step 1: Discover Site Structure

  1. web_search: site:[site_url] — discover indexed pages
  2. Map pages to topic clusters (if not provided)
  3. Identify current hub pages (pages that link to many others)
  4. Note orphan pages (pages with few/no internal links pointing to them)

Step 2: Analyze Current Link Structure

Read shared/references/seo-strategy.md for internal linking rules.

For each page group:

  • Count internal links TO this page (inlinks)
  • Count internal links FROM this page (outlinks)
  • Check link depth from homepage (should be ≤ 3 clicks)
  • Identify the anchor text used

Step 3: Identify Issues

Flag:

  1. Orphan pages — no or few internal links pointing to them
  2. Hub pages with weak linking — hub should link to ALL spokes in its cluster
  3. Missing spoke-to-spoke links — related spokes should link to each other
  4. Broken contextual flow — pages that should link to each other but don't
  5. Over-linked pages — too many outlinks dilute link equity
  6. Missing reverse links — spoke links to hub but hub doesn't link back

Step 4: Generate Linking Instructions

For each issue, provide specific instructions:

Page: [URL]
Action: Add internal link to [target URL]
Anchor text: "[suggested anchor]"
Location: [where in the content to add it]
Priority: [P0/P1/P2]
Reason: [why this link matters]

Step 5: Self-Validation

  • Instructions are specific (exact URLs, anchor text, location)
  • Hub-and-spoke architecture is logical
  • Anchor text is natural and keyword-relevant
  • No recommendations to over-link (max 3-5 internal links per 1000 words)
  • New pages have at least 2-3 internal links pointing to them

Output Schema

yaml
output_schema_version: "1.0.0"
internal_links:
  site: string
  pages_analyzed: number
  issues_found: number
  links_to_add: number

  orphan_pages: string[]        # Pages with zero/few inlinks
  hub_pages: string[]           # Identified hub pages

  link_actions:
    - source_url: string        # Page to add the link ON
      target_url: string        # Page to link TO
      anchor_text: string       # Suggested anchor text
      location: string          # Where in the content
      priority: string          # "P0" | "P1" | "P2"
      reason: string

  link_structure:               # Current state summary
    total_pages: number
    avg_inlinks: number
    avg_outlinks: number
    max_depth: number

chain_metadata:
  skill_slug: "internal-linking-optimizer"
  stage: "analytics"
  timestamp: string
  suggested_next:
    - "seo-audit"
    - "content-decay-detector"
    - "affiliate-blog-builder"

Output Format

## Internal Link Audit: [Site]

### Structure Overview
- **Pages analyzed:** XX
- **Orphan pages:** XX (need links urgently)
- **Hub pages:** XX
- **Links to add:** XX
- **Average inlinks per page:** X.X

### Orphan Pages (P0 — fix immediately)
These pages have no/few internal links and are invisible to Google:
1. [URL] — [title] — 0 inlinks
2. [URL] — [title] — 1 inlink

### Link Actions

#### P0 — Critical
| Source Page | → | Target Page | Anchor Text | Location |
|---|---|---|---|---|
| [source] | → | [target] | "[anchor]" | After paragraph about [topic] |

#### P1 — High
[same table]

#### P2 — Maintenance
[same table]

### Hub-and-Spoke Health
| Hub Page | Expected Spokes | Linked Spokes | Missing Links |
|---|---|---|---|
| [hub] | XX | XX | [list missing] |

### Quick Wins
1. [Easiest high-impact link to add]
2. [Second easiest]
3. [Third]

Error Handling

  • No site URL: "I need your site URL to analyze internal links."
  • Site not indexed: "This site doesn't appear to be indexed. Check robots.txt and sitemap."
  • Too few pages: "With only [X] pages, focus on creating more content first. Internal linking becomes powerful at 10+ pages."
  • No hub pages identifiable: "I can't identify clear hub pages. Run keyword-cluster-architect first to define your topic structure."

Examples

Example 1: "Audit my blog's internal links" → Discover pages, map structure, find orphan pages, generate specific linking instructions with anchor text and placement.

Example 2: "I just published a new article, what should I link to it?" → Identify 3-5 existing pages that should link to the new article, with specific anchor text and paragraph locations.

Example 3: "Optimize internal links based on my keyword clusters" (after keyword-cluster-architect) → Use cluster structure to define ideal hub-spoke links. Compare current vs ideal. Generate gap-filling instructions.

Revenue & Action Plan

Expected Outcomes

  • Revenue potential: Internal linking directly increases organic traffic to your money pages (pages with affiliate links). Fixing orphan pages typically increases their organic traffic by 30-100% within 4-6 weeks. If an orphan page earns $100/month, proper linking can push it to $130-200/month
  • Benchmark: Sites with optimized internal linking rank 20-40% higher for target keywords. Every hub-spoke connection you add is a signal to Google that your content is authoritative
  • Key metric to track: Organic traffic to money pages (pages containing affiliate links) — measure before and after internal link optimization. Target: 30%+ traffic increase within 6 weeks

Do This Right Now (15 min)

  1. Fix the top 3 P0 (Critical) links first — these are orphan money pages getting zero internal link juice
  2. Open each source page, find the suggested paragraph, and add the internal link with the recommended anchor text
  3. Submit the updated pages to Google Search Console for re-indexing: Inspect URL → Request Indexing
  4. Set a monthly reminder to re-run this audit

Track Your Results

After 4 weeks: check Google Search Console for the orphan pages. Did impressions/clicks increase? After 8 weeks: did rankings improve for target keywords? Internal linking compounds — each optimization makes the next one more powerful.

Next step — copy-paste this prompt: "Run an SEO audit on my site to find more optimization opportunities" → runs seo-audit

Flywheel Connections

Feeds Into

  • content-decay-detector (S3) — pages with weak link structure may be decaying
  • seo-audit (S6) — link structure is a key SEO factor
  • affiliate-blog-builder (S3) — new articles need immediate internal links

Fed By

  • keyword-cluster-architect (S3) — cluster structure defines ideal link architecture
  • affiliate-blog-builder (S3) — new content that needs linking
  • seo-audit (S6) — identifies pages with link structure issues

Feedback Loop

  • seo-audit (S6) tracks ranking changes after link optimization → measure impact of internal linking changes

References

  • shared/references/seo-strategy.md — Hub-and-spoke linking rules, anchor text rules, link equity flow
  • shared/references/flywheel-connections.md — Master connection map

Frequently asked questions

What does the Internal Linking Optimizer AI skill do?

Analyze site's internal link structure and optimize for hub-and-spoke SEO architecture. Triggers on: "optimize internal links", "internal linking", "link structure", "hub and spoke links", "orphan pages", "link equity", "internal link audit", "fix my internal links", "link architecture", "site structure optimization", "internal linking strategy", "link flow", "improve site structure", "find orphan pages", "maximize link equity", "internal link map".

Why use Internal Linking Optimizer on TypingMind?

Because you install it once and use it with any model. Internal Linking Optimizer is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Internal Linking Optimizer in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/Affitor/affiliate-skills/tree/main/skills/analytics/internal-linking-optimizer. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Internal Linking Optimizer?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Internal Linking Optimizer?

As many as you like. As long as a model supports skills, you can use Internal Linking Optimizer with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Internal Linking Optimizer AI skill free?

Yes. It is published on GitHub by Affitor under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇