Internal linking for a small site: which pages link to which

You decide what ranks by which pages you link to. This guide shows a simple internal linking plan for a small site. You will map hubs, write anchors that match searches, and add two strong links to every page that should rank.

By , founder of Porteur · Updated 13 September 2026 · Markdown

Hubs and spokes for a small site

Pick hubs. A hub is a page that should rank for a head term. Spokes are supporting pages that answer subtopics and link back to the hub.

  • Hub: /guides/invoice-automation, target query: “invoice automation”
  • Spokes: /guides/invoice-automation/setup, /guides/invoice-automation/security, /blog/invoice-automation-examples

Each spoke links to the hub with an anchor that says the subject, not “click here”. The hub links out to the spokes in a short list. This creates a clean cluster.

Do the same for product pages. If /features/recurring-billing should rank, write two or three short support pages. Link them up as above. Keep clusters tight. Do not cross link spokes from different hubs unless the topic truly overlaps.

Anchor text that says the subject

Anchors tell crawlers the topic of the target page. Write anchors that fit the query you want. Keep them natural. Use the words a searcher uses.

WhereBad anchorBetter anchorTarget query
/blog/how-we-priceclick heresee our pricingpricing
/guides/gtm-setupthis guideGoogle Tag Manager setup guidegoogle tag manager setup
/features/recurring-billinglearn morerecurring billing featurerecurring billing
/docs/api#webhooksdetailsAPI webhooksapi webhooks

Vary anchors without changing the topic. “pricing”, “product pricing”, and “pricing plans” are fine. Avoid vague text like “read more”. Avoid keyword stuffing that reads oddly. You write for users first. Clear anchors help both.

Orphan pages: find and fix

An orphan page has no internal links to it. Crawlers may never find it, or treat it as low priority. Fixing orphans is quick upside on small sites.

  1. List all URLs you want indexed

    Export from your CMS, your sitemap.xml, and any docs nav. Remove admin and noindex pages.

  2. Crawl the site

    Use a crawler. Export the internal links report. Note URLs with zero inlinks.

  3. Decide keep or kill

    If a page has no search intent, consider merging it or unlisting it. If it matters, keep it and link to it.

  4. Add links from relevant pages

    Place two in-text links from strong or related pages. Use anchors that describe the page topic.

  5. Re-crawl and request indexing

    Re-run the crawl to confirm inlinks. In Search Console, request indexing for the fixed pages.

A fixed page looks like /docs/api/auth now linked from /docs/api and from /guides/api-authentication, both with “API authentication”. It moves from zero inlinks to two solid ones.

How to audit internal linking with a crawl

You need a current map. Crawl the site. Compare it with the URLs that should exist. Then fix gaps and misdirected effort.

  1. Seed the crawl well

    Start from the homepage and sitemap.xml. Add any hub URLs that are not linked in nav.

  2. Export key reports

    Get a list of inlinks by URL, crawl depth, and orphan candidates. Save anchor text per link if available.

  3. Spot weak hubs

    Filter hubs with fewer than five inlinks, or with no in-text links. Plan to add links from relevant pages.

  4. Find cannibal links

    List anchors pointing to the wrong page for a query, for example “pricing” to /blog/pricing-update. Plan anchor fixes or retarget the link to /pricing.

  5. Fix depth and paths

    Ensure each target is within two clicks of two strong pages. Add direct links or bridge spokes.

  6. Repair broken and redirected links

    Replace links that 404 or 301 with direct links to the current URL. Do not chain redirects internally.

Repeat this after you publish a hub, a batch of spokes, or a redesign. Save the crawl so you can compare link counts over time. A tidy link graph makes new pages faster to rank and index, as of 2026.

Worked examples on common pages

Here is where to add links on pages you likely have. Use simple copy edits. Keep anchors clear and short.

PageAdd these linksAnchor examples
/pricingLink to feature hubs and to a comparison hubrecurring billing, invoice templates, compare YourProduct vs Spreadsheets
/Link to your top hubs and to your money pagesinvoice automation guide, pricing, API docs
/blog/post-titleLink to the nearest hub and one spokeinvoice automation guide, invoice automation examples
/docs/featureLink to feature page and hubrecurring billing feature, recurring billing guide
/guides/hubLink to spokes high on the pagesetup, security, examples

Example edit. On /blog/how-we-price, add: “For details, see our pricing.” Link “pricing” to /pricing in the first third of the post. Add a second link to /guides/billing-metrics with the anchor “billing metrics guide”. This pushes the right pages without forcing the copy.

Measuring impact and avoiding pitfalls

Track the basics. For each hub, note inlinks, crawl depth, and the number of linking strong pages. In Search Console, track impressions, clicks, and average position for the target query.

  • Too many links on a page: long footers with hundreds of links dilute focus. Keep nav lean.
  • Wrong-page anchors: “pricing” pointing to a blog post confuses signals. Fix the target.
  • JavaScript-only links: crawlers may miss them. Use normal a href links.
  • Redirect hops: link directly to the canonical URL. Update old internal links.
  • Nofollow on internal links: avoid. Internal links should be followed unless the page is noindex or sensitive.

A fixed hub looks like this in your crawl: 12 inlinks, 6 from strong pages, depth 1 or 2, anchors that match the query. In Search Console, you see rising impressions first, then clicks when titles and snippets do their job.

Questions

Sources

Check my site, free

Want a quick map of hubs, spokes and orphans on your domain? Run the free check from your URL, it reads your site and rivals in about thirty seconds.

  • Free check, no card
  • Read-only, your own accounts
  • Readable by your agent

Read next