Internal linking for blog + service pages, hubs, anchors, and SEO crawl paths (2026)

internal linking5 min readJuly 25, 2026

Author: DevStudio.it

TL;DR

Internal linking distributes PageRank-like signals, helps Google discover new URLs, and guides users from education (blog) to the offer (money page). Model: service hub → specialization spokes + supporting articles with descriptive anchors. Avoid orphan pages, generic “click here”, footer-link overload, and cannibalization. In Next.js: links in markdown + CTA components + breadcrumbs; a sitemap complements but does not replace HTML links. Host on DevStudioIT Cloud; URL relationship maps can live in Postgres (Branchly). Below: hub architecture, anchor rules, audit, and publish workflow.

Who this is for

  • Companies with a blog and service catalogue on one domain
  • SEO / content managers planning topic clusters
  • Next.js developers building navigation and MDX/markdown
  • Teams after migrations where many URLs sit at depth > 4 with no inbound links

Keywords (SEO)

internal linking SEO, blog service page linking, hub pages SEO 2026, anchor text best practices, orphan pages crawl, Next.js crawl paths

Benefit Effect
URL discovery crawler finds new posts without relying only on the sitemap
Topical context Google ties blog to money page in one cluster
UX / conversion readers move from “how” to “buy”
Authority flow strong pages (home, hub) reinforce spokes
Fewer orphans every important page has ≥1–3 content inlinks

A sitemap says “I exist”. A content link says “I matter in this context”.

Architecture: hub → spoke → blog

/en/websites                            ← HUB (money)
├── /en/websites/for-law-firms          ← spoke
├── /en/websites/for-healthcare         ← spoke
└── Blog cluster (support):
      ├── long-tail-keywords-...        → link to HUB + spoke
      ├── open-graph-twitter-cards-...  → link to HUB (tech SEO)
      └── b2b-leady-ze-strony-www-...   → link to HUB + contact CTA

Hub = commercial H1, CTA, spoke list, and “from the blog”.
Spoke = narrow offer / industry.
Blog = informational coverage + links upward (and sideways between related posts).

Do not build a silo so rigid that users cannot move between services-silos are topical guidance, not a UX prison.

Anchor text, practical rules

Anchor type Example When
Descriptive (preferred) “B2B lead form on Next.js” blog → service / article
Partial brand “DevStudio.it website offer” sparingly, naturally
Exact-match money “company website” rarely, not in every post
Generic “click here”, “more” avoid as the only signal
Raw URL https://... OK in footer/docs, weak in prose

3–8 contextual links in a 1100–1500 word article is usually enough. Excess looks spammy and dilutes focus.

UI CTA buttons can use a short label (“Request a quote”) while a nearby paragraph uses a natural descriptive link to the same money page-fine if you do not overdo it.

Crawl paths and depth

Goal: important money pages within 1–2 clicks of home / hub. Blog posts: from the blog index + hub “related” + other posts.

Home → Service hub → Spoke / Blog post → Form (#formularz-kontakt)
     ↘ Blog index → Post → Service hub
Symptom Diagnosis Fix
URL only in sitemap orphan / weak crawl add hub or related link
Depth 5+ in nav poor IA shorten path, hub shortcut
40 footer links thin equity split footer: essentials; rest in body
Only tag pages connect posts weak context body links, not taxonomy alone

Manual: 2–4 “Related” at article end (editors know intent).
Semi-auto: tags / cluster translationId / related_slugs table in Branchly.
Avoid “random 5 latest posts”-often zero topical overlap.

// helper, related from frontmatter or DB
export function getRelatedPosts(slug: string, locale: string, limit = 3) {
  const map = getRelatedMap(); // JSON or Branchly
  return (map[slug] ?? [])
    .map((s) => getPost(locale, s))
    .filter(Boolean)
    .slice(0, limit);
}

After deploy on DevStudioIT Cloud, crawl with Screaming Frog (or similar): hub inlinks and orphan candidates.

Workflow when publishing a new post

  1. Pick 1 primary money page the post must link to
  2. Add 1–2 links to related articles (horizontal)
  3. Update the hub “From the blog” / related if the post is strategic
  4. Breadcrumbs: Home → Blog → Title (aligned with JSON-LD)
  5. After publish: smoke-test crawl (blog index link exists)

What to avoid

  • Linking every post to the homepage instead of the service hub
  • Identical exact-match anchors across 20 articles
  • JavaScript-only menus with no SSR links in HTML
  • Internal rel=nofollow without a reason
  • Cannibalization: two hubs aggressively targeting the same phrase without intent split

Quarterly audit (~90 minutes)

Step Tool Outcome
1. Crawl Screaming Frog / Sitebulb inlinks / outlinks list
2. Orphans sitemap ∩ zero content inlinks list to link
3. Hub health manually check 3–5 money pages “from the blog” + spokes present?
4. Anchor diversity export outlinks from top posts too much exact-match?
5. Internal CTR GA4 path exploration which blog CTAs work

Store decisions in a sheet or a Branchly table (from_slug, to_slug, anchor, added_at)-after a redesign you will not remember which links were intentional.

FAQ

How many internal links per article?

Roughly 3–8 contextual links plus a CTA. Relevance beats count.

Are breadcrumbs enough for internal linking?

They help structure and UX but do not replace body links to money pages and related posts.

hreflang / alternates.languages is a language signal in metadata-not a substitute for in-locale content links.

How do we find orphan pages?

Crawl (Screaming Frog, Sitebulb) vs sitemap. Sitemap URL with no content inlinks = candidate to link or noindex if unused.

Want blog and offers wired for SEO?

Related posts

robots.txt in Next.js App Router, Crawl Budget and Disallow Pitfalls (2026)
5 min read
Long-tail keywords for service business websites, research, structure, blog vs service pages (2026)
6 min read
CTA Buttons on Service Websites, Copy, Hierarchy, and SEO in 2026
5 min read

About the author

We build fast websites, web/mobile apps, AI chatbots and hosting setups — with a focus on SEO and conversion.

Recommended links

From theory to production — Branchly, our hosting stack and shipped work.

Like how we think? Let's build something together.

Start project configuration