Why Most Blog Internal Linking Is Random (and Costs You Rankings)
Here's what I see constantly when I audit agency blogs and client sites: hundreds of published posts with almost no internal links connecting them. Each post exists on its own. Google crawls one, finds no path to the next, and treats the whole blog like a pile of disconnected pages instead of an authoritative resource.
The data backs this up. A typical site audit uncovers 40-60% orphan pages with zero internal links pointing to them. Those pages won't rank. They can't. Google can't find them reliably, and even when it does, it has no context for how they relate to your broader expertise.
The fix isn't "add more links." The fix is a system. That's what the Hub, Spoke, and Deep Dive blueprint gives you.
What Is the Hub, Spoke, and Deep Dive Model?
Think of your blog content in three tiers:
Hub pages are your pillar content. They cover a broad topic comprehensively in one place. Think "The Complete Guide to Technical SEO" or "Local SEO: Everything Your Agency Needs to Know." Hubs are typically 2,500-4,000 words and serve as the central node for a topic cluster.
Spoke pages are supporting posts that cover specific subtopics within the hub's territory. If your hub is about Technical SEO, your spokes might cover Core Web Vitals, crawlability, structured data, JavaScript rendering, and site architecture individually.
Deep dive pages go one level further. They tackle a narrow, specific aspect of a spoke topic. Under the Core Web Vitals spoke, you might have deep dives on fixing LCP issues, diagnosing INP problems, or eliminating CLS on specific platforms.
The linking pattern flows like this:
- Hub links down to all its spokes
- Each spoke links back up to its hub
- Spokes link laterally to related spokes under the same hub
- Spokes link down to their deep dives
- Deep dives link back up to their parent spoke
- Deep dives can link laterally to related deep dives
This creates a web of internal links where every page is reachable within 2-3 clicks from your hub. Google gets clear signals about how your content relates to itself. And every page gets the link equity it needs to compete.
Step 1: Audit What You Already Have
Before building anything new, you need to know what exists. Pull every published URL from your blog and categorize each post by topic.
Here's how I'd approach this:
1. Export all blog URLs from your CMS or sitemap
2. Tag each URL with its primary topic (Technical SEO, Local SEO, Content Strategy, Link Building, etc.)
3. Identify which posts could serve as hubs (broad, comprehensive coverage)
4. Identify which posts naturally function as spokes (specific subtopic coverage)
5. Flag orphan pages - posts with zero or one internal link pointing to them
6. Flag any pages buried more than 4 clicks from the homepage
That last point matters a lot. Pages more than 4 clicks from your homepage tend to rank poorly because Google interprets deep page depth as a signal of low importance.
If you're using Vantacron, the crawl report flags orphan pages and page depth issues automatically, sorted by impact level. That saves hours compared to doing this manually in a spreadsheet. But even a manual spreadsheet audit is better than guessing.
Step 2: Define Your Hubs
Your hubs should represent the 5-8 core topics your blog covers. Not 20. Not 30. Five to eight.
How to choose your hub topics:
- What are the primary services you (or your client) offer?
- What topics do you want to be known as the authority on?
- Which topics have enough depth to support 5 or more spoke articles?
Hub page characteristics:
- Covers the topic broadly and thoroughly
- Uses H2 and H3 headings that map to the subtopics your spokes will cover
- Includes 5-10 contextual internal links to spoke pages
- Lives in a prominent position in your site architecture (ideally 1-2 clicks from homepage)
- Gets updated quarterly to stay fresh and comprehensive
If you don't have a hub page for a core topic yet, create one. If you have a post that's close, expand it into full pillar content. The hub is the foundation everything else connects to.
Step 3: Map Your Spokes to Each Hub
For every hub, list the subtopics that deserve their own dedicated page. These become your spokes.
Here's an example mapping:
| Hub | Spoke Topics |
|-----|-------------|
| Technical SEO Guide | Core Web Vitals, Crawlability and Indexation, Structured Data, JavaScript Rendering, Mobile-First Indexing, Site Security |
| Local SEO Guide | Google Business Profile Optimization, Local Citations, Review Strategy, Local Content, GBP Posts |
| Link Building Guide | Digital PR and Original Research, Outreach Strategy, Linkable Assets, Anchor Text Strategy, Competitor Backlink Analysis |
Each spoke should:
- Focus on one specific subtopic
- Link back to its hub with descriptive anchor text
- Link to 2-3 related spokes in the same cluster
- Run 1,200-2,000 words (deep enough to be useful, not padded with filler)
The anchor text rule: Use descriptive, natural phrases. "Learn more about Core Web Vitals optimization" tells Google exactly what the linked page covers. "Click here" tells Google nothing. And never use nofollow on internal links. That wastes the link equity you're trying to distribute across your site.
Step 4: Build Your Deep Dives
Deep dives are where your content strategy gets genuinely useful and starts pulling in long-tail search traffic.
These are narrow, specific posts that answer one question thoroughly. They're often structured around the exact queries your audience types into Google.
Examples under a "Core Web Vitals" spoke:
- How to Fix LCP Issues on WordPress Sites
- INP Optimization: Breaking Up Long JavaScript Tasks Step by Step
- Why Your CLS Score Is High (And the 3 Most Common Causes)
- Core Web Vitals Monitoring: What to Check and How Often
Each deep dive should:
- Target a specific long-tail keyword or question
- Link back up to its parent spoke
- Link laterally to 1-2 related deep dives in the same cluster
- Use question-based H2 headings with direct 40-80 word answers beneath them
- Run 800-1,500 words, depending on topic complexity
That point about question-based headings with direct answers is doing double duty. It helps traditional SEO (featured snippet potential), and it makes your content more citable by AI search engines like ChatGPT, Perplexity, and Google's AI Overviews. AI systems extract those concise answers and cite the source. More on this later.
Step 5: Write the Links (The Part Most People Skip)
Here's where the blueprint falls apart for most teams. They plan the structure, publish the content, and then forget to actually add the internal links. Or they add one link and call it done.
Use this checklist for every new blog post:
- [ ] Identify which hub this post belongs to
- [ ] Add a contextual link from this post to the hub page
- [ ] Go to the hub page and add a link back to this new post
- [ ] Link to 2-3 related spokes or deep dives in the same cluster
- [ ] Check existing posts in the cluster and add links pointing to this new post where relevant
- [ ] Confirm all anchor text is descriptive (not "click here" or "read more")
- [ ] Verify no nofollow tags on any internal link
- [ ] Confirm the post is reachable within 3 clicks from the homepage
- [ ] Check that the post appears in your XML sitemap
That verification step about nofollow is commonly missed. Some CMS themes or plugins add nofollow to certain links by default. Check your rendered HTML to make sure.
How many internal links per post?
For a 2,000-word post, aim for 5-10 contextual internal links. That's not a random number. It balances giving Google enough signals to understand your content relationships without making the post feel like a link directory. Every link should add genuine value for the reader, pointing them to content that deepens their understanding of the topic.
Step 6: Maintain the System
Internal linking isn't a one-time project. Every new post needs to be woven into the existing structure on the day it publishes. And every content audit should check for decay.
Monthly maintenance (for active blogs publishing weekly):
- Scan for new orphan pages that slipped through
- Fix broken internal links (pages deleted or URLs changed without redirects)
- Update hub pages with links to newly published spokes
- Review whether any spoke has accumulated enough depth to warrant splitting into new deep dives
- Check that no important pages have drifted beyond the 4-click depth threshold
Quarterly maintenance:
- Full refresh of hub page content (add new data, update statistics, improve structure)
- Audit the entire cluster map for gaps where new content is needed
- Remove or redirect any thin pages that aren't performing
Set a recurring calendar event. Fifteen minutes per new post, one hour per monthly audit. That's the cost of keeping the system healthy.
Five Mistakes That Break the Blueprint
1. Linking everything to everything. Not every post needs to link to every other post. Links should be topically relevant. A post about JavaScript rendering shouldn't link to a post about local review management just because they're both on your blog.
2. Using the homepage as the hub. Your homepage is not a hub page. Hub pages are topical pillar content. Your homepage is the front door to your entire site, not the center of one topic cluster.
3. Ignoring anchor text quality. "Read this post" tells Google nothing. "How to fix your Largest Contentful Paint score" tells Google exactly what the linked page covers and helps it rank for that phrase.
4. Orphaning your deep dives. Deep dive pages are the most likely to become orphans because they're niche and easy to forget. Every deep dive needs at least one link from its parent spoke, and ideally one from a related deep dive.
5. Never updating hub pages. If your hub was written 18 months ago and you've published 12 new spokes since then, the hub should link to all of them. Go back and update it. This is one of the highest-impact activities in content SEO, and it takes 20 minutes.
Why This Model Works for AI Search Too
Here's something I think about constantly as we build Vantacron's AI Search Score: the Hub, Spoke, and Deep Dive model doesn't just work for traditional Google rankings. It directly supports how AI search engines process and cite content.
AI engines like ChatGPT, Perplexity, and Google's AI Overviews prefer content that's well-structured, clearly organized by topic, and uses semantic headings with direct answers. When your deep dives use question-based H2 headings with concise 40-80 word answers beneath them, AI systems can extract and cite those answers directly.
Strong topical clusters also build the kind of authority that AI engines use to decide which sources to trust. A site with one random post about Core Web Vitals gets ignored. A site with a hub, six spokes, and fifteen deep dives on the topic gets treated as a genuine authority.
Adding FAQ schema on your spoke and deep dive pages can increase AI citations by up to 28%. That's a significant edge most blogs leave on the table entirely.
And here's the technical detail that ties it all together: AI crawlers like GPTBot and ClaudeBot often don't execute JavaScript. If your internal links are rendered client-side, those crawlers may never discover your spoke and deep dive pages. Server-side rendering ensures your entire link structure is visible in the initial HTML.
Your Action Plan (Priority Order)
If you're starting from scratch or rebuilding a neglected blog, here's exactly what to do and when:
1. This week: Audit all existing blog URLs and tag them by topic. Identify every orphan page. Count how many posts are more than 4 clicks deep.
2. Next week: Define your 5-8 hub topics. Identify or create hub pages for each one.
3. Week three: Map existing posts as spokes under each hub. Add all missing internal links between hubs and spokes.
4. Week four: Identify content gaps where you need new spoke or deep dive pages. Build a publishing calendar to fill those gaps.
5. Ongoing: Every new post gets linked into the structure on publish day. Monthly checks for orphans, broken links, and depth issues.
The first pass takes real effort. After that, it becomes a 15-minute routine per new post and an hour per monthly audit. The payoff is a blog where every page reinforces every other page, Google understands your topical authority, and AI engines can cite your content with confidence.
Stop publishing islands. Start building a system.