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 Théophile Louvart, founder of Porteur · Updated 13 September 2026 · Markdown
Why internal links decide which pages rank
Links pass context and importance. You control both inside your site. When you link to a page, you tell crawlers what it is about and how much to care.
If six strong pages link to /pricing with anchors about “pricing” and “cost”, /pricing is more likely to rank for pricing searches than a page with one weak link.
On a small site, you win by focus. Choose a few pages that match real searches. Point other relevant pages at them with clear anchors. Remove competing signals that spread strength thinly.
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.
| Where | Bad anchor | Better anchor | Target query |
|---|---|---|---|
| /blog/how-we-price | click here | see our pricing | pricing |
| /guides/gtm-setup | this guide | Google Tag Manager setup guide | google tag manager setup |
| /features/recurring-billing | learn more | recurring billing feature | recurring billing |
| /docs/api#webhooks | details | API webhooks | api 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.
The two-links-from-strong-pages rule
Get every ranking target two links from pages that already get traffic or external links. These are your strong pages. They carry most weight and crawl activity.
Find strong pages
Open Search Console. In Performance, filter by Page. Sort by clicks. Note the top ten pages. If you track backlinks, include any page with good links.
Link out from them
Add one in-text link from each strong page to a relevant hub. Use a clear anchor. Place it near the first mention of the topic.
Bridge with one hop if needed
If a strong page cannot link to the hub without breaking flow, link it to a spoke that links to the hub. Keep the path two hops max.
Check crawl depth
Run a crawl. Confirm every target page is no more than two clicks from at least two strong pages.
Example. /blog/how-to-invoice and /blog/invoice-template are strong. You want /guides/invoice-automation to rank. Add one link from each blog post to the guide with “invoice automation guide”. If it feels abrupt, link to /blog/invoice-automation-examples which links to the guide at the top.
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.
List all URLs you want indexed
Export from your CMS, your sitemap.xml, and any docs nav. Remove admin and noindex pages.
Crawl the site
Use a crawler. Export the internal links report. Note URLs with zero inlinks.
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.
Add links from relevant pages
Place two in-text links from strong or related pages. Use anchors that describe the page topic.
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.
Seed the crawl well
Start from the homepage and sitemap.xml. Add any hub URLs that are not linked in nav.
Export key reports
Get a list of inlinks by URL, crawl depth, and orphan candidates. Save anchor text per link if available.
Spot weak hubs
Filter hubs with fewer than five inlinks, or with no in-text links. Plan to add links from relevant pages.
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.
Fix depth and paths
Ensure each target is within two clicks of two strong pages. Add direct links or bridge spokes.
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.
| Page | Add these links | Anchor examples |
|---|---|---|
| /pricing | Link to feature hubs and to a comparison hub | recurring billing, invoice templates, compare YourProduct vs Spreadsheets |
| / | Link to your top hubs and to your money pages | invoice automation guide, pricing, API docs |
| /blog/post-title | Link to the nearest hub and one spoke | invoice automation guide, invoice automation examples |
| /docs/feature | Link to feature page and hub | recurring billing feature, recurring billing guide |
| /guides/hub | Link to spokes high on the page | setup, 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.
Keep anchors and links consistent over time
Write a small anchor map. For each hub, list two to four preferred anchors. Keep this in your content guidelines. Editors will use consistent phrasing by default.
- /pricing: pricing, pricing plans, product pricing
- /guides/invoice-automation: invoice automation guide, invoice automation
- /features/recurring-billing: recurring billing, recurring billing feature
Review anchors quarterly. If a page starts to rank for a different variant, adjust new anchors to match the winning phrasing. Do not rewrite every old link. Future links will steer the signal without churn.
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
Internal linking is linking between pages on your own site. It helps crawlers discover pages and understand what matters. On a small site, it is your fastest lever because you control it and can change it today.
There is no fixed number. Use as many as are useful to the reader and keep your nav lean. Aim for a few clear in-text links to your hub from each relevant page, and avoid long blocks of unrelated links.
Internal links are from your pages to your pages. Backlinks are from other sites. Both matter. Internal links set your site’s structure and topical signals. Backlinks bring authority and discovery from outside.
You get faster discovery, clearer topical relevance, and a way to prioritise which pages should rank. You can fix orphans and route strength from pages that already get traffic to new hubs, without waiting for new backlinks.
Linking out to useful sources helps users and can clarify context. It does not replace internal linking. Keep external links relevant and use normal a href links. You do not need to nofollow editorial links.
After each content batch and every 28 days for active sites. Re-crawl after publishing a hub or redesign. Check inlinks, anchors, depth, and broken links. Small steady edits beat one big sweep later.
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
- GuideOrphan pages: finding the pages nothing links to
- GuideOn-page SEO checklist: the twelve things on the page
- GuideTechnical SEO checklist for a small site
- GuideSearch intent: what the results page tells you to build
- GuideStriking distance keywords: the searches one page from the light
- GuideKeyword cannibalization: two pages, one search, and how to fix it
- GlossaryPageRank
- GlossaryOutbound link