How to Do Internal Linking on a Website

Internal linking. Thin posts orbit the hub. Do not orphan a page.
List the pages → Choose the topic owner → Add relevant links → Test the linksFollow the source labels in order. The numbered path runs across the top row, returns to the lower left, then continues right.List the pagesChoose thetopic ownerAdd relevantlinksTest the links
Use the content map to connect pages, then check each link.

Help readers find the right page on your website. This guide shows teams how to list pages, choose the main topic guides, and link related work. Start with your page list, then check each link at both ends.

This guide is part of Link Building Guidelines. Next, explore The SEO Tree Framework: How Every Piece of Content Should Connect (how content links to its main topic), or Entity Linking: The Decision Tree for Every Link in Every Article.

Where this task fits in the Content Factory

This task belongs in Post. Its inputs come from the linked work below; its checked result becomes the next worker’s starting point. This playbook coordinates several smaller tasks. Use each linked recipe for its detailed steps.

1. ProduceCapture real work
2. ProcessTurn sources into useful assets
THIS TASK3. PostPublish and connect approved assets
4. PromoteShare proven work and measure results
Follow the numbered stages from Produce to Promote. Each stage links to its part of the Content Factory guide.

Start, finish, and next step

Start when
A new or updated article needs internal links, or a site audit identifies orphan pages and weak link support.
Have ready
  • Published URL and link inventory
  • Each page’s Goals, Content and Targeting
  • Site tree, money pages and edit access
  • A measurement baseline
Follow the steps
  1. Inventory content and establish page GCT (Goals, Content, Targeting: the goal, material, and audience)
  2. Fix categories and tags
  3. Identify money pages and orphans
  4. Create contextual links with descriptive anchors
  5. QA the changed links
  6. Measure and iterate with MAA (Metrics, Analysis, Action: results, meaning, and next steps)

Use the detailed instructions in this article for each step.

Finish with
A checked source-to-target link log plus the inventory and measurement baseline for the next cycle.
Measure the result
  • Each link has a defensible source-to-target relationship
  • Anchors describe the actual destination
  • Changed links resolve and appear in the live body
  • Violations and fixes are logged; later measurements retain the baseline
Hand off next
Pass the clean link log to the measurement and weekly MAA tasks.

Reference material for the inputs

Related tasks

Open this article’s tasks in the Task Library (our directory of tasks and recipes; see current Task Library). The library connects the current recipe, its smaller tasks, and the records of work performed.

Close the learning loop. Write a meta article: the record of this execution with the starting state, recipe version, result, checks, failures, and next owner. Link it back to this recipe and register the run under the same Task Library task. Reuse one execution ID for revisions and retries. A partial or failed run stays labeled that way. Public release follows the recorded publication authority; writing the run record is part of doing the task. Writing and revising that record belong to the original execution; they do not start another meta-article task. Use the findings to propose and verify a recipe improvement. See how recipes and execution records work together.
Canonical reference: the definitive outbound-link rule lives at Link Building Guidelines. This page provides supporting detail; if anything here conflicts with the canonical page, follow the canonical page.

Definitive SOP1 meta-article · EmergingCanonical task page · SEO & Content Architecture

Outcome: Build a verified internal-link graph that connects each relevant page to the right branch and money page without orphan, broken, irrelevant, or manipulative links.

Start the internal-linking process →

Internal linking is the practice of connecting pages on your website to each other using hyperlinks. It is one of the highest-ROI activities in SEO because it costs nothing, requires no external relationships, and directly controls how search engines understand your site’s structure.

When done properly, internal linking distributes link equity from your strongest pages to the pages that need it most, eliminates orphan pages that search engines cannot discover, and signals to Google exactly which pages on your site are most important for which topics.

What Internal Linking Is and Why It Matters

Every website is a collection of pages. Internal links are the connections between those pages. Unlike external links (which point from your site to someone else’s site) or backlinks (which point from someone else’s site to yours), internal links are entirely within your control. You decide which pages link to which, what anchor text to use, and where on the page the link appears.

🔍

Crawling & Discovery

Google’s crawler follows links page to page. No internal links = invisible pages. John Mueller has confirmed internal links are critical signals.

Link Equity Distribution

Your homepage has the most authority. Internal links pass that authority downstream to service pages, blog posts, and other content.

🏷️

Topical Relevance

Anchor text tells Google what pages are about. Link to “dental implants in Atlanta” and you reinforce that topic for the destination.

⚠️ The Orphan Page Problem

According to multiple studies, approximately 25% of all web pages have zero internal links pointing to them — they are orphan pages, invisible to search engines. Sites that fix orphan page issues and implement strategic internal linking routinely see significant traffic increases over the following months. At BlitzMetrics, we have documented this across client sites using the MAA (Metrics, Analysis, Action) loop to trace the impact from better links to more impressions to more conversions.

How Internal Linking Connects to the SEO Tree

At BlitzMetrics, internal linking is not a standalone activity. It is the mechanism that makes the SEO Tree work. The SEO Tree framework organizes all content on a site into a trunk (the homepage and brand entity), branches (definitive articles and core topic pages), and leaves (supporting articles, case studies, and examples). Internal links are how nutrients — in SEO terms, link equity and topical relevance — flow from the roots through the trunk to the branches and out to the leaves.

🌳 THE SEO TREE FRAMEWORK

🏠 TRUNK — Homepage & Brand Entity
🌿 Branch: SEO
🌿 Branch: Content
🌿 Branch: Ads
🍃 Blog Post
🍃 Case Study
🍃 Example
🍃 Blog Post
🍃 Case Study

Internal links = how “nutrients” (link equity & topical relevance) flow from trunk → branches → leaves

When a new blog post (a leaf) is published, it must link back to its parent branch (the definitive article for that topic). The definitive article links across to other definitive articles where concepts overlap. This creates the interconnected architecture that Google uses to understand your site as a coherent entity rather than a random collection of pages. The Topic Wheel framework determines which topics belong together, and internal links are how those relationships get expressed in the actual HTML of your site.

Where This Fits in the Content Factory

Internal linking is cross-cutting SEO architecture. It supports both Process and Post, but it is not a substitute for any one tool or channel box, so only the two stage headers are outlined.

System relationship: internal-link planning and QA bridge Process → Post. No child box is highlighted because this workflow governs the website graph. Swipe to see all four stages.

The Internal Linking Process: Step by Step

This is the operational process for building or auditing internal links on any website. It applies whether you are working on blitzmetrics.com, a client site, or a personal brand site built through the Content Factory (our four-stage process for using real content).

1

Inventory Your Content & Establish Your GCT

Before touching a single link, you must understand what content exists on the site and what each page is for. This means establishing the GCT (Goals, Content, Targeting) for the site and for every major page:

🎯 Goals

What is the purpose of this page?

📝 Content

What is it communicating?

👥 Targeting

Who is it speaking to?

An AI agent can pull this from your Google Business Profile, YouTube channel, social profiles, and existing website content. The entities, trust signals, and knowledge graph article covers how these elements define your site’s identity in Google’s eyes.

2

Fix Your Categories and Tags

If you use WordPress, your categories and tags establish topical relevance before any manual linking begins. Categories represent the major branches of your SEO Tree — the core topics your site covers. Tags represent more specific attributes like locations, service types, or people. If these are wrong — if you have 47 categories with one post each, or if every post is tagged with the same five generic keywords — no amount of internal linking will create a coherent structure. Fix the taxonomy first. The Blog Posting Guidelines specify the standards every post must meet, including proper category and tag assignment.

3

Identify Your Money Pages and Orphan Pages

Money pages are the pages that drive revenue — service pages, product pages, booking pages, and high-intent landing pages. Orphan pages are pages with zero internal links pointing to them.

Your audit should identify both. Every money page should receive internal links from relevant content pages. Every orphan page should either receive links (if it is valuable) or be consolidated or removed (if it is redundant). The SEO audit framework includes internal link analysis as part of its content architecture layer.

4

Create Links with Proper Anchor Text and Placement

Every internal link must meet three criteria:

✅ Contextually Relevant

Source and destination pages must share a genuine topical relationship.

✅ Accurate Anchor Text

Use descriptive, keyword-relevant text. Avoid “click here” or “read more.”

✅ Body Content Placement

Place links within body text, not hidden in footers or sidebars.

Follow the Entity Linking decision tree for every link: people link to their personal sites, network companies link to their sites, and non-network entities link to internal BlitzMetrics articles. The Link Building Guidelines specify the complete policy for all links, including the rule that every link is an endorsement and must be intentional and defensible.

5

QA the Work Against Google’s Actual Guidelines

After placing links, audit the work. Check for:

🔴 Mismatched anchor text — the anchor says one thing but the destination page is about something else
🔴 Over-linking — more than 3–5 content links per 500 words dilutes equity
🔴 Broken links — 404 destinations
🔴 Bad URL slugs — links to poorly-slugged URLs

The QA process should reference Google’s webmaster guidelines, not a plugin’s proprietary health score. A tool that grades its own work is marking its own homework. The Website QA Audit process includes a specific layer for content architecture that covers internal link quality.

6

Measure and Iterate with MAA

Connect internal linking work to business outcomes using the MAA loop. Track the chain:

Better Links → More Indexed Pages → More Impressions → More Clicks → More Conversions

Schedule a monthly review where you or your AI agent checks for: new orphan pages (created when new content is published without proper linking), broken links (caused by URL changes or deleted pages), and new linking opportunities (when new content creates topical bridges between existing pages).

Common Internal Linking Mistakes

The most common mistake is using automated tools that do not understand your business. We documented this firsthand when we hired Link Whisper to do our internal linking on a client site. The tool generated 600 links and reported a health score of 97/100 — but when we audited the actual links against Google’s guidelines, most of them connected unrelated pages with mismatched anchor text, linked to broken URLs, and over-stuffed certain pages with dozens of links that diluted equity.

🚫 Mistakes to Avoid

Irrelevant mass-linking — Linking every blog post to your money pages regardless of relevance. Google devalues links that lack topical connection.

Keyword-stuffed anchors — Stuffing keyword-rich anchor text into every link. This looks manipulative and triggers spam signals.

Footer/sidebar link piling — Piling links in the footer or sidebar for every city or service page. These carry minimal weight compared to in-content links.

Plugin self-grading — Relying on a plugin’s self-graded rubric instead of auditing against actual search engine guidelines.

One-time thinking — Treating internal linking as a one-time project rather than an ongoing maintenance task.

Why AI Agents Replace Internal Linking Plugins

❌ Traditional Plugins

Tools like Link Whisper, Yoast, and similar WordPress plugins work by mechanically scanning your content for keyword matches and suggesting links based on text overlap. They do not understand your business goals, your service areas, your team, your community involvement, or your actual content strategy. They guess, and the guesses often create more confusion than value.

✅ AI Agents

An AI agent — Claude, ChatGPT, or any capable model with browser access — can understand context. It can read your Google Business Profile, your reviews, your About page, and your existing content architecture. It knows that a blog post about HVAC replacement in Richardson, Texas should link to your pricing page, your technician’s bio, and your emergency repair service page — not just to every page that contains the word “HVAC.”

The article on how to do better internal link building for free with AI agents walks through the complete 5-step process, including the ironic demonstration that the internal links in that article were placed by Claude itself. The Rising AI Line covers the broader trend of intelligent agents replacing mechanical tools across all of digital marketing.

Real Examples from BlitzMetrics

How to Do Better Internal Link Building for Free with Your Favorite AI Agent

Marketing Mechanic Episode 30 repurposed into an article. Documents the 5-step AI-powered process (teach, categories, link, QA, MAA) and includes a live demonstration where Claude placed the internal links in the article itself. The definitive case study for AI-driven internal linking.

What Happened When I Hired Link Whisper to Do Our Internal Linking

The full documentation of a failed Done-For-You engagement. Shows exactly what goes wrong when a mechanical tool generates 600 links without understanding the business: mismatched anchor text, broken URLs, over-linked pages, and a contractor who used AI to generate apology emails instead of fixing the work.

Link Building Guidelines

The policy document governing all links (internal and external) across BlitzMetrics properties. Specifies that every link is an endorsement, that orphan pages must be connected, and that the linking structure must reflect the Topic Wheel hierarchy.

SEO Tree

The architectural framework that internal linking implements. Trunk, branches, and leaves — every internal link either strengthens a branch or connects a leaf to one.

How We Disabled Comments Across 53 WordPress Sites with an AI Agent

Demonstrates the same principle applied to WordPress site management: an AI agent replacing plugin subscriptions and manual configuration with intelligent, context-aware automation across dozens of sites.

How My AI Agents Document and Improve Themselves

The meta article (a record of one task run) process that creates a recursive improvement loop. When AI agents do internal linking work, they document what they did, that documentation becomes published content with its own internal links, and the system improves itself.

How We Built Local Service Spotlight’s Wikidata Entity and Schema Markup

Shows the entity foundation that internal linking builds on. Without proper entity identity declared through schema and Wikidata, internal links lack the entity context that modern search relies on.

SEO Tree — The architectural framework. Internal linking is how the tree gets built.

Topic Wheel — Determines which topics belong together and which pages should link to each other.

Entity Linking — The decision tree for where every link should point: people, companies, and concepts.

Link Building Guidelines — The policy governing all internal and external links.

Content Factory — The production system that generates the content being linked.

Blog Posting Guidelines — The publishing standard every article follows, including internal linking requirements.

MAA (Metrics, Analysis, Action) — The optimization loop for measuring the impact of linking changes.

SEO Audit — The audit framework that includes internal link analysis as a core layer.

Digital Plumbing — The technical foundation that must be in place before linking adds value.

How to Create a Definitive Article — The standard this article follows, and the process for canonical references.

Want Help with Internal Linking?

If you want to learn the full system for content architecture and SEO, explore the Dollar a Day strategy and the Content Factory training.

If you want a professional audit of your internal linking, start with a Quick Audit — we will identify orphan pages, mismatched anchors, and equity leaks in 15 minutes.

Download the Skill File

This article has a companion Claude skill file that AI agents use to execute internal linking tasks. The skill file codifies the process described above into structured instructions that an agent can follow without additional guidance. Save the content below as internal-linking.skill.md and add it to your agent’s project knowledge.

# Internal Linking Skill File
# BlitzMetrics — Internal Linking SOP
# Version 1.0 — April 2026

## Purpose
Execute internal linking audits and implementations on WordPress websites following BlitzMetrics standards. This skill produces contextually relevant internal links with proper anchor text that distribute link equity according to the SEO Tree framework.

## When to Use This Skill
- When publishing a new article and it needs internal links to and from existing content
- When auditing a site's internal linking structure
- When fixing orphan pages identified in an SEO audit
- When a definitive article is created or updated and related articles need to link to it

## Prerequisites
- Access to the WordPress admin of the target site
- Understanding of the site's GCT (Goals, Content, Targeting)
- Knowledge of the site's SEO Tree structure (trunk, branches, leaves)
- Familiarity with the Link Building Guidelines at /link-building/
- Familiarity with the Entity Linking decision tree at /entity-linking/

## Process

### Step 1: Content Inventory
1. Use the WordPress REST API or admin search to find all published posts and pages
2. Identify the site's definitive articles (branches) and supporting content (leaves)
3. Note the current categories and tags — these define topical clusters
4. Identify money pages (service pages, product pages, conversion pages)
5. Identify orphan pages (pages with zero internal links pointing to them)

### Step 2: Audit Existing Links
For each page being audited:
1. Extract all internal links using: href="https://[domain]..." pattern
2. Check each link for:
   - Anchor text relevance: does the anchor accurately describe the destination?
   - Topical relevance: does the source page relate to the destination page?
   - Link density: are there more than 3-5 content links per 500 words?
   - URL validity: does the destination return 200, or is it a 404/redirect?
   - Placement: is the link in body content (good) or footer/sidebar (weak)?
3. Flag mismatched anchors, broken links, over-linked pages, and orphan pages

### Step 3: Plan New Links
For each page that needs new links:
1. Identify 2-5 contextually relevant destination pages
2. Choose anchor text that:
   - Accurately describes the destination page
   - Uses natural language that fits the sentence
   - Includes relevant keywords without stuffing
   - Varies across the site (don't use identical anchors everywhere)
3. Place links within body paragraphs where the topic naturally arises
4. Ensure bidirectional linking: if Page A links to Page B, check whether Page B should link back to Page A

### Step 4: Implement Links
Using the WordPress block editor or REST API:
1. For existing content: use find-and-replace on specific text phrases to wrap them in anchor tags
2. For new content: write links inline as the content is created
3. For definitive articles: add the new article to the "Real Examples" or "Related Articles" section
4. Always preserve existing links — do not remove working links to add new ones

### Step 5: QA Checklist
Before saving, verify:
- [ ] Every new link has contextually relevant anchor text
- [ ] No page has more than 3-5 new content links per 500 words
- [ ] All destination URLs return 200
- [ ] No generic anchors ("click here", "read more", "this article")
- [ ] Links follow the Entity Linking decision tree
- [ ] Orphan pages identified in Step 1 have been connected
- [ ] Money pages receive links from relevant content pages
- [ ] Every leaf links back to at least one branch (definitive article)
- [ ] No keyword stuffing in anchor text

### Step 6: Document and Measure
1. Record what links were added, to which pages, with what anchor text
2. Note any orphan pages that remain unfixed and why
3. Set a reminder to check Google Search Console in 2-4 weeks for indexing changes
4. Feed results into the MAA loop for ongoing optimization

## Key Rules
- Every link is an endorsement. Only link where it genuinely serves the reader.
- Relevancy over volume. Five relevant links beat fifty random ones.
- Anchor text must match destination. Mismatched anchors confuse Google.
- Body content links only. Footer and sidebar links carry minimal weight.
- No self-grading. Audit against Google's guidelines, not a plugin's score.
- Bidirectional where appropriate. If A links to B, B should often link to A.
- Update the Task Library when new linking SOPs are created.

## Related Skill Files
- link-building-guidelines.skill.md — Policy for all links
- entity-linking.skill.md — Decision tree for link destinations
- seo-audit.skill.md — Full audit framework including link analysis
- blog-posting.skill.md — Publishing standards including link requirements
- content-factory.skill.md — Content production pipeline

## Canonical Reference

One of the most damaging internal linking problems is a redirect chain — where one URL redirects through multiple hops before reaching the final destination, leaking link equity at every step. See how we identified and collapsed a 6-hop redirect chain on blitzmetrics.com into direct single-hop 301s, including the technical approach needed to save changes in Rank Math’s React-based editor.


The skill files for this page

Every task on this page ships as a runnable skill file you can hand to an AI agent (our publishing standard). Expand any skill to copy its file, or download the whole Task Library pack. 7 skills:

step-1-inventory-content-and-establish-gct-per-page.skill.md — Audit every URL on the site into one inventory and write Goals, Content, Targeting for each major page — the foundation document the entire 6-step internal linking process runs on.
START

---
name: step-1-inventory-content-and-establish-gct-per-page
description: "Audit every URL on the site into one inventory and write Goals, Content, Targeting for each major page — the foundation document the entire 6-step internal linking process runs on."
category: SEO & Content Architecture
stage: —
definitive_article: /internal-linking
status: complete
---

# Step 1: Inventory content and establish GCT per page

**Use this when** starting the 6-step internal linking process (/internal-linking) from the top, or whenever the content inventory has gone stale.

## Inputs
- Export of every published URL: posts, pages, landing pages
- Crawl or LinkWhisper data for internal links in/out per URL
- The GCT framework: Goals, Content, Targeting

## Steps
1. Export every published URL into one working sheet with columns: URL, title, category, tags, publish date.
2. Add link data per URL: internal links in, internal links out (from the crawl or LinkWhisper report).
3. For every major page, write its GCT — **Goal**: what the page must accomplish (rank, convert, prove); **Content**: what it actually covers; **Targeting**: who it serves.
4. Mark each page's SEO Tree role: root, trunk, branch (definitive article), or leaf (case study / meta-article).
5. Flag pages with no defensible GCT — they are candidates for the orphan-elimination and thin-page-removal skills, not for new links.
6. Save the inventory as the single working document for Steps 2–6 of the internal linking process.

## Definition of done (QA checklist)
- [ ] Every published URL present in one inventory — nothing missing from the sitemap or crawl
- [ ] GCT written for every major page; no blanks on money pages
- [ ] SEO Tree role marked for every URL; links in/out counts populated
- [ ] No-GCT pages flagged and routed for consolidation
- [ ] Linked back to the definitive article (/internal-linking) and ready to hand to Step 2

## Example(s)
- The /internal-linking definitive article — the hub that "includes skill file for AI agents" — documents this step as it was run on blitzmetrics.com.
- Example needed — run the Meta-Article Prompt (/meta-article-prompt-template) after the next full inventory.

## Run on a persistent agent (Fable 5)
A persistent agent (Claude Fable 5 or a comparable OpenAI/Google model) builds the inventory and loops until the Definition of done fully passes — every URL from sitemap and crawl present, GCT on every major page, zero blanks on money pages — verifying by diffing the finished sheet against a fresh crawl rather than declaring it complete.
The inventory is the persistent artifact: held in memory, each re-run diffs new and changed URLs instead of rebuilding from zero, which is what keeps Steps 2–6 honest.
Each full inventory pass logs a meta-article example via /meta-article-prompt-template.
See `boil-the-ocean.md` for the full operating principles.

## Definitive article & links
- Hub: /internal-linking
- Related (run order): step-2-fix-categories-and-tags-in-wordpress → step-3-identify-money-pages-and-orphan-pages → step-4-create-links-with-proper-anchor-text-and-placement → step-5-qa-links-against-google-guidelines → step-6-measure-and-iterate-with-maa · map-content-hierarchically-root-trunk-branches-leaves (/seo-tree)

END
step-2-fix-categories-and-tags-in-wordpress.skill.md — Rebuild WordPress taxonomy so categories mirror the SEO Tree branches and tags carry cross-cutting attributes, making the site's structure legible to readers, Google, and agents querying the REST API.
START

---
name: step-2-fix-categories-and-tags-in-wordpress
description: "Rebuild WordPress taxonomy so categories mirror the SEO Tree branches and tags carry cross-cutting attributes, making the site's structure legible to readers, Google, and agents querying the REST API."
category: SEO & Content Architecture
stage: —
definitive_article: /internal-linking
status: complete
---

# Step 2: Fix categories and tags in WordPress

**Use this when** Step 1's inventory is complete and the taxonomy is a mess — overlapping categories, one-off tags, posts filed nowhere meaningful.

## Inputs
- The Step 1 content inventory with each page's SEO Tree role
- WordPress admin access (Posts → Categories / Tags)
- The site's SEO Tree map (branches list)

## Steps
1. Export the current category and tag lists with post counts.
2. Rebuild categories to mirror the SEO Tree: **one category per branch — categories ARE the branches.** Definitive articles belong in the Definitive Articles category.
3. Reassign every post to the category matching its tree role from the Step 1 inventory.
4. Use tags only for cross-cutting attributes, never hierarchy: Content Factory stage tags (`Stage: Produce | Process | Post | Promote`) and `Topic:` tags — so agents can pull, e.g., `category=definitive-articles&tag=stage-process` from the REST API.
5. Delete or merge empty, duplicate, and one-off taxonomy terms.
6. Spot-check the category archive pages — each should read like a coherent branch of the tree, not a junk drawer.

## Definition of done (QA checklist)
- [ ] Categories map 1:1 to SEO Tree branches; definitive articles in the Definitive Articles category
- [ ] Every post assigned to its correct branch category
- [ ] Stage and Topic tags applied; tags carry attributes, not hierarchy
- [ ] Zero empty, duplicate, or one-off taxonomy terms remain
- [ ] A REST API query by category + tag returns the expected post set; linked back to /internal-linking

## Example(s)
- The /internal-linking definitive article documents this taxonomy pass as run on blitzmetrics.com — categories as branches is its Step 2.
- Example needed — run the Meta-Article Prompt (/meta-article-prompt-template) after the next taxonomy rebuild.

## Run on a persistent agent (Fable 5)
A persistent agent (Claude Fable 5 or a comparable OpenAI/Google model) reassigns posts and prunes terms in a loop until categories map 1:1 to SEO Tree branches and zero empty, duplicate, or one-off terms remain — then self-verifies with the Definition of done's own test: a REST API query by category + tag must return exactly the expected post set.
Taxonomy decisions persist in memory, so every future post gets filed by precedent instead of re-inventing categories.
Each rebuild logs a meta-article example via /meta-article-prompt-template.
See `boil-the-ocean.md` for the full operating principles.

## Definitive article & links
- Hub: /internal-linking
- Related (run order): step-1-inventory-content-and-establish-gct-per-page (before) → step-3-identify-money-pages-and-orphan-pages (after) · fit-every-new-piece-into-the-tree-structure (/seo-tree) · /blog-posting-guidelines (Step 13: categorize and tag)

END
step-3-identify-money-pages-and-orphan-pages.skill.md — Mark the revenue-driving pages that need internal-link support and the orphan pages that need connecting, producing the prioritized source-to-target link plan that Step 4 executes.
START

---
name: step-3-identify-money-pages-and-orphan-pages
description: "Mark the revenue-driving pages that need internal-link support and the orphan pages that need connecting, producing the prioritized source-to-target link plan that Step 4 executes."
category: SEO & Content Architecture
stage: —
definitive_article: /internal-linking
status: complete
---

# Step 3: Identify money pages and orphan pages

**Use this when** the inventory (Step 1) and taxonomy (Step 2) are clean, and it is time to decide where links should flow before creating any.

## Inputs
- The Step 1 inventory with GCT, tree roles, and links-in/out per URL
- Knowledge of what actually drives revenue: services, courses, lead capture
- Crawl or LinkWhisper inlink data

## Steps
1. From the inventory, mark the **money pages** — the pages that drive revenue: service pages, course pages, lead-capture pages, key conversion paths.
2. Mark the **orphan pages** — every URL with zero internal links pointing to it.
3. Rank money pages by gap: which carry the most revenue weight with the least internal-link support.
4. For each money page, list the leaves and branches topically qualified to send it a link — use each candidate's GCT as the relevance test; no relevance, no link.
5. Give every orphan a disposition: becomes a linking source for a money page, gets connected to its branch, or goes to the consolidation skills (thin/duplicate).
6. Output two prioritized lists — "money pages needing links" and "orphans needing homes" — as the direct input to Step 4.

## Definition of done (QA checklist)
- [ ] Every money page identified and ranked by link-support gap
- [ ] Every orphan identified with a named disposition
- [ ] Source → target link plan drafted with GCT-based relevance justifications
- [ ] Both lists handed to Step 4 in priority order
- [ ] Linked back to the definitive article (/internal-linking) and relevant siblings

## Example(s)
- The /internal-linking definitive article shows this money-page/orphan analysis as its Step 3 on blitzmetrics.com.
- Example needed — run the Meta-Article Prompt (/meta-article-prompt-template) after the next link-planning round.

## Run on a persistent agent (Fable 5)
A persistent agent (Claude Fable 5 or a comparable OpenAI/Google model) loops until every money page is ranked by link-support gap and every orphan carries a named disposition — no "unclassified" leftovers — and self-verifies each row of the link plan by re-checking its GCT relevance justification before handing anything to Step 4.
Memory makes each plan smarter: prior runs show which source pages and anchor patterns actually moved targets, so new plans start from evidence, not guesses.
Each planning round logs a meta-article example via /meta-article-prompt-template.
See `boil-the-ocean.md` for the full operating principles.

## Definitive article & links
- Hub: /internal-linking
- Related (run order): step-2-fix-categories-and-tags-in-wordpress (before) → step-4-create-links-with-proper-anchor-text-and-placement (after) · identify-and-eliminate-orphan-standalone-articles (/seo-tree) · remove-duplicate-thin-pages

END
step-4-create-links-with-proper-anchor-text-and-placement.skill.md — Execute the link plan — contextual internal links placed in body content with 3–6 word descriptive anchors, routed by the entity-linking decision tree, flowing upward through the SEO Tree.
START

---
name: step-4-create-links-with-proper-anchor-text-and-placement
description: "Execute the link plan — contextual internal links placed in body content with 3–6 word descriptive anchors, routed by the entity-linking decision tree, flowing upward through the SEO Tree."
category: SEO & Content Architecture
stage: —
definitive_article: /internal-linking
status: complete
---

# Step 4: Create links with proper anchor text and placement

**Use this when** Step 3's link plan is ready — every row a source page, a target page, and a reason.

## Inputs
- The Step 3 link plan (money pages needing links, orphans needing homes)
- Edit access to source pages; LinkWhisper available for candidate suggestions
- The entity-linking decision tree (/entity-linking)

## Steps
1. Work the Step 3 plan row by row: each row is one source page → one target page.
2. Confirm topical relevance using both pages' GCT — if the goals and content don't connect, kill the row instead of forcing the link.
3. Write the anchor: **3–6 words, descriptive of the destination** — never 'click here', 'read more', or a bare URL.
4. Place the link in body content where the surrounding context naturally supports it — not in footers, sidebars, or link dumps.
5. Route by the entity-linking decision tree: people → their personal website, companies → the company site, concepts → the definitive article.
6. Keep the tree direction: leaves link up to branches, branches up to trunk and across to sibling hubs.
7. Use LinkWhisper to surface candidates, but apply the GCT relevance test to every suggestion before accepting it.
8. Log each placed link (source, target, anchor text, date) in the inventory for Step 5 QA.

## Definition of done (QA checklist)
- [ ] Every approved row of the link plan executed; rejected rows annotated with the reason
- [ ] All anchors 3–6 word descriptive phrases; zero generic anchors
- [ ] All links in body content with supporting context; decision-tree routing followed
- [ ] Upward tree direction maintained; link log complete and handed to Step 5
- [ ] Linked back to the definitive article (/internal-linking) and relevant siblings

## Example(s)
- The /internal-linking definitive article — shipped with its own skill file for AI agents — is the canonical demonstration of this step.
- Example needed — run the Meta-Article Prompt (/meta-article-prompt-template) after the next link-building pass.

## Run on a persistent agent (Fable 5)
A persistent agent (Claude Fable 5 or a comparable OpenAI/Google model) works the Step 3 plan to 100% — every row either executed or rejected with the reason annotated, never abandoned mid-list — and self-verifies each link live on the page (anchor, placement, tree direction) before writing it to the log.
The link log persists in memory across runs, feeding Step 5 QA and Step 6 measurement without re-discovery.
Each pass closes by logging a meta-article example via /meta-article-prompt-template.
See `boil-the-ocean.md` for the full operating principles.

## Definitive article & links
- Hub: /internal-linking
- Related (run order): step-3-identify-money-pages-and-orphan-pages (before) → step-5-qa-links-against-google-guidelines (after) · use-proper-anchor-text-3-6-words-descriptive · follow-entity-linking-decision-tree · /entity-linking

END
step-5-qa-links-against-google-guidelines.skill.md — Audit every link created in Step 4 against Google's quality guidelines — anchors, placement, relevance, volume, and breakage — so nothing manipulative or broken ships to measurement.
START

---
name: step-5-qa-links-against-google-guidelines
description: "Audit every link created in Step 4 against Google's quality guidelines — anchors, placement, relevance, volume, and breakage — so nothing manipulative or broken ships to measurement."
category: SEO & Content Architecture
stage: —
definitive_article: /internal-linking
status: complete
---

# Step 5: QA links against Google guidelines

**Use this when** Step 4's links are placed and logged, before any results get measured — QA is the gate between building and trusting.

## Inputs
- The Step 4 link log (source, target, anchor, date)
- A broken-link scanner or full-site crawl
- Google's link quality guidelines as the reference standard

## Steps
1. Pull the Step 4 link log and audit every new link in place on the live page.
2. **Anchor check**: descriptive, 3–6 words, naturally varied — no keyword-stuffed or repeated exact-match anchors across the site.
3. **Placement check**: links live in body content with supporting context — no hidden links, no footer/sidebar link dumps, no link exchanges or schemes.
4. **Relevance check**: source and target GCT actually match — remove any link a reader would not thank you for.
5. **Volume check**: link counts per page stay reasonable; every link must earn its place.
6. Run a broken-link scan across all touched pages; fix anything that 404s or chains through bad redirects.
7. Record every violation found and fixed; pass the clean log to Step 6 for measurement.

## Definition of done (QA checklist)
- [ ] 100% of new links audited against all five checks (anchor, placement, relevance, volume, breakage)
- [ ] Zero open guideline violations; fixes documented
- [ ] Zero broken links on touched pages
- [ ] Clean link log handed to Step 6
- [ ] Linked back to the definitive article (/internal-linking) and relevant siblings

## Example(s)
- The /internal-linking definitive article documents this QA pass as its Step 5; /website-qa-audit Layer 2 carries the matching site-wide checks ("Audit internal links", "Check for broken links", "Verify entity linking follows decision tree").
- Example needed — run the Meta-Article Prompt (/meta-article-prompt-template) after the next QA round.

## Run on a persistent agent (Fable 5)
A persistent agent (Claude Fable 5 or a comparable OpenAI/Google model) audits 100% of the Step 4 log against all five checks — sampling is exactly the 90% shortcut this gate exists to block — and loops fix → re-scan until zero violations and zero broken links remain.
Violation patterns persist in memory, so repeat offenders (an anchor habit, a template that link-dumps) get flagged upstream into Step 4 instead of re-caught every round.
Each QA round logs a meta-article example via /meta-article-prompt-template before handing the clean log to Step 6.
See `boil-the-ocean.md` for the full operating principles.

## Definitive article & links
- Hub: /internal-linking
- Related (run order): step-4-create-links-with-proper-anchor-text-and-placement (before) → step-6-measure-and-iterate-with-maa (after) · /website-qa-audit · /blog-posting-guidelines

END
step-6-measure-and-iterate-with-maa.skill.md — Close the internal linking loop with the MAA cycle — baseline, measure rankings and traffic per page, analyze which links worked, act on the findings, and re-run the 6-step process on schedule.
START

---
name: step-6-measure-and-iterate-with-maa
description: "Close the internal linking loop with the MAA cycle — baseline, measure rankings and traffic per page, analyze which links worked, act on the findings, and re-run the 6-step process on schedule."
category: SEO & Content Architecture
stage: —
definitive_article: /internal-linking
status: complete
---

# Step 6: Measure and iterate with MAA

**Use this when** Step 5's clean link log is in hand and the links are live — internal linking is a loop, not a project, and this step keeps it spinning.

## Inputs
- Pre-change baseline window defined; Google Search Console and GA4 access
- The Step 5 clean link log (which pages were touched, when)
- The MAA cycle (/maa): Metrics, Analysis, Action

## Steps
1. Baseline first: capture pre-change impressions, average position, and clicks for the money and orphan pages (Search Console), plus sessions (GA4).
2. **Metrics**: after links go live, track the same numbers weekly per page — rankings, impressions, click-through, internal traffic flow, and indexation of former orphans.
3. **Analysis**: determine which links moved which pages — which anchors and source pages did the work, and which links did nothing.
4. **Action**: add links where the pattern works, rewrite anchors that underperform, and remove links that fail the relevance test in hindsight.
5. Fold the findings into the weekly MAA report: what's working, what isn't, and the next 3–5 linking moves.
6. Re-run the full 6-step process (/internal-linking) on a recurring schedule — new content keeps arriving, so the loop never finishes.

## Definition of done (QA checklist)
- [ ] Baseline captured before any links went live
- [ ] Weekly per-page metrics flowing for all touched money and orphan pages
- [ ] At least one analysis-driven action taken per cycle, with the reasoning logged
- [ ] Linking section included in the weekly MAA report; next 6-step cycle scheduled
- [ ] Linked back to the definitive articles (/internal-linking, /maa) and relevant siblings

## Example(s)
- The /internal-linking definitive article closes with this measurement loop as its Step 6 on blitzmetrics.com.
- Example needed — run the Meta-Article Prompt (/meta-article-prompt-template) after the first full measurement cycle.

## Run on a persistent agent (Fable 5)
This step is where a persistent agent (Claude Fable 5 or a comparable OpenAI/Google model) beats any chat session: it captures the baseline, returns weekly for Metrics → Analysis → Action, and never marks the task done — the Definition of done demands at least one analysis-driven action per cycle, every cycle.
Per-page metric history accumulates in memory across cycles; that longitudinal record is the analysis, and it is what schedules the next full 6-step run.
Each cycle logs its findings to the weekly /maa report and a meta-article example via /meta-article-prompt-template.
See `boil-the-ocean.md` for the full operating principles.

## Definitive article & links
- Hub: /internal-linking
- Related (run order): step-5-qa-links-against-google-guidelines (before) → step-1-inventory-content-and-establish-gct-per-page (the loop restarts) · /maa · /seo-tree

END
use-proper-anchor-text-3-6-words-descriptive.skill.md — Enforce the house anchor-text rule on every link — 3–6 descriptive words that predict the destination — and purge generic anchors like 'click here' from the entire site.
START

---
name: use-proper-anchor-text-3-6-words-descriptive
description: "Enforce the house anchor-text rule on every link — 3–6 descriptive words that predict the destination — and purge generic anchors like 'click here' from the entire site."
category: SEO & Content Architecture
stage: —
definitive_article: /internal-linking
status: complete
---

# Use proper anchor text (3–6 words, descriptive)

**Use this when** writing any link — internal or external — and when auditing the site for the generic anchors that always creep back in.

## Inputs
- The page(s) being written or audited
- Site-wide anchor report (crawl or LinkWhisper)
- Each destination page's GCT, so the anchor can promise what the page delivers

## Steps
1. Apply the rule to every link: the anchor is **3–6 words and describes the destination** — a reader should predict where the link goes before clicking.
2. Ban the generics outright: 'click here', 'read more', 'learn more', 'this article', and bare URLs.
3. Keep anchors keyword-relevant but natural — no exact-match stuffing; vary the phrasing across multiple links to the same target.
4. Match each anchor to the destination's GCT: the anchor's promise is the target page's content.
5. Audit site-wide: pull the anchor report and flag every violation, oldest content included.
6. Fix flagged anchors in body copy, then re-run the report to confirm zero generic anchors remain; archive the report for the MAA loop.

## Definition of done (QA checklist)
- [ ] Zero generic anchors site-wide on the re-run report
- [ ] All anchors 3–6 words and descriptive of their destinations
- [ ] No exact-match stuffing patterns across repeated links to one target
- [ ] Anchor report archived for trend tracking in MAA (/maa)
- [ ] Linked back to the definitive article (/internal-linking) and relevant siblings

## Example(s)
- The /internal-linking definitive article sets this anchor standard as part of its Step 4 (create links with proper anchor text and placement).
- Example needed — run the Meta-Article Prompt (/meta-article-prompt-template) after the first site-wide anchor cleanup.

## Run on a persistent agent (Fable 5)
A persistent agent (Claude Fable 5 or a comparable OpenAI/Google model) loops fix → re-run the anchor report until it reads zero generic anchors site-wide, oldest content included — "most of them fixed" fails the Definition of done.
Because generics always creep back, the agent re-runs on a schedule and diffs each archived report against memory, so regressions surface as a short list instead of a fresh audit.
Each cleanup logs a meta-article example via /meta-article-prompt-template.
See `boil-the-ocean.md` for the full operating principles.

## Definitive article & links
- Hub: /internal-linking
- Related: step-4-create-links-with-proper-anchor-text-and-placement · step-5-qa-links-against-google-guidelines · follow-entity-linking-decision-tree (/blog-posting-guidelines) · /entity-linking

END
Dennis Yu
Dennis Yu
Dennis Yu is the CEO of Local Service Spotlight, a platform that amplifies the reputations of contractors and local service businesses using the Content Factory process. He is a former search engine engineer who has spent a billion dollars on Google and Facebook ads for Nike, Quiznos, Ashley Furniture, Red Bull, State Farm, and other brands. Dennis has achieved 25% of his goal of creating a million digital marketing jobs by partnering with universities, professional organizations, and agencies. Through Local Service Spotlight, he teaches the Dollar a Day strategy and Content Factory training to help local service businesses enhance their existing local reputation and make the phone ring. Dennis coaches young adult agency owners serving plumbers, AC technicians, landscapers, roofers, electricians, and believes there should be a standard in measuring local marketing efforts, much like doctors and plumbers must be certified. He has appeared on 353 podcasts with 619 credited episodes — see the full list of his podcast appearances.