Get started

Internal Linking for SaaS Sites: A Practical Method

A practical internal linking method for SaaS sites: inventory pages by role, route link equity to money pages, and audit the structure every quarter.

10 min read · Updated

Most SaaS sites have more published pages than they have working paths between them. The blog grows every week, the docs sit on their own subdomain, and the pricing page collects links from the top navigation and almost nowhere else. Internal linking is the on-page work that repairs this, and it is usually the cheapest ranking lever available because it needs no new content, no outreach, and no budget. It needs a decision about which pages matter and a routine that keeps enforcing that decision.

This guide covers the method: inventory pages by role, understand how link equity actually moves, write anchor text that describes a destination, hunt orphan and dead-end pages, apply one link rule to every new post, and decide when nofollow or noindex is the right answer. It assumes you already have a keyword map and topic clusters. If those are missing, build them first, because internal links express a content structure rather than create one out of nothing.

02Inventory every page by its role

Start with a full URL list from sitemap.xml and an analytics export of pages with organic entries in the last 90 days. Put them in one sheet, one row per URL, and assign exactly one role to each: money page, cluster hub, supporting article, docs, or changelog. Add three more columns: the primary query from your keyword map, the number of internal links pointing in, and the number of contextual links pointing out. That sheet is the working document for everything that follows.

The judgement call is role assignment, not data collection. A page can only hold one role, and pages that resist classification are usually the problem pages. A long comparison article that also carries a signup form is trying to be a supporting article and a money page at once, which means neither its links nor its anchors are consistent. Decide, then link accordingly. If you want to shorten the inventory step, Tiptop's SEO audit returns a per-page list with a score and issue count for each URL it discovers, which seeds the sheet without manual crawling.

Page roles and where links go
  1. 01Money pagesPricing, product, comparison. Receive many links, send very few out.
  2. 02Cluster hubsOne per parent topic. Link down to supporting posts, up to money pages.
  3. 03Supporting articlesOne query each. Link to the hub, a sibling, and one money page.
  4. 04DocsLink back to the feature page they document. Keep the marketing route open.
  5. 05Changelog entriesLink to the feature page each release affects. Cheap and steady.

Read top down: each tier names what that page type should link to, so authority collects on commercial pages instead of the blog.

  • One role per URL, decided before any links are written.
  • Record inbound and outbound contextual link counts as numbers.
  • Exclude login, legal, and thank-you pages from the roster.
  • Flag any page whose role you argued about for more than a minute.

03Write anchor text that names the destination

Good anchor text is three to six words that would make sense read aloud with no surrounding sentence. It should tell a reader what page they land on and tell a crawler what that page covers. Generic anchors such as learn more, this guide, or here waste the signal entirely. So do bare URLs. The test is simple: strip the anchor out of the paragraph, show it to a colleague, and ask what page it goes to. If they cannot answer, rewrite it.

The opposite failure is stuffing. Repeating one exact-match phrase as the anchor on 40 pages looks engineered, and more practically it throws away the chance to describe the destination from several angles. Your navigation and footer already carry the exact product name, so body links should carry variants: the problem the page solves, the format it takes, the comparison it makes. Write the sentence first and let the link fall where a reader would want it. An anchor that had to be forced into a paragraph is a link the reader will not follow anyway.

  • Three to six words, meaningful when read on its own.
  • Vary phrasing across pages instead of repeating one exact string.
  • Never use learn more, click here, this post, or a bare URL.
  • Let the sentence justify the link, not the other way round.

05Find orphan pages and dead ends

An orphan page has zero internal links pointing to it and is reachable only through the sitemap or a direct URL. A dead-end page receives links and sends none onward, so it absorbs authority and stops the reader. Both are findable without a crawl subscription. Google Search Console reports internally linked pages with a count for each URL, sorted ascending, which surfaces orphans in about a minute. For dead ends, open your ten highest-traffic posts and count the contextual links in the body copy.

Not every orphan is a defect. Login screens, legal pages, webinar thank-you pages, and expired campaign landers are fine with no internal links, and some should carry noindex as well. Prioritise the orphans that target a query in your keyword map, because those are pages you intended to rank and then abandoned. A page with a real target query and zero inbound links is the highest-return fix on this entire list, and it usually takes one sentence in one existing article.

  • Sort the internal links report ascending, not descending.
  • Treat any mapped page with fewer than three inbound links as unfinished.
  • Fix orphans that carry a target query before anything else.
  • Give every dead-end page one forward route the reader would want.

06Apply a link rule to every new post

Make this a publishing checklist item rather than a quarterly project. The rule has two halves. Before a post goes live it must contain at least one contextual link to a money page or its cluster hub, and it must receive at least two links from existing pages. The second half is the part teams skip, and it is the half that matters, because a brand new URL with no inbound paths is an orphan on the day it publishes no matter how good the writing is.

The mechanics take about fifteen minutes. Search your own site for the new post's core phrase, take the two or three most relevant existing pages, and add a sentence to each that earns the link naturally. Cap the outbound contextual links so the page stays useful: three to eight in a 1,500-word article is a sensible working range. Beyond that, links compete with each other and readers stop clicking any of them. Record which pages you edited so the next audit does not repeat the work.

  • Two inbound links from existing pages before publish, no exceptions.
  • One outbound link to a hub or money page, minimum.
  • Three to eight contextual links per 1,500 words as a ceiling.
  • Log the pages you edited beside the new URL.

07Use nofollow and noindex sparingly

Nofollow is rarely the right tool for an internal link. Shaping the flow of authority by nofollowing your own links stopped working the way practitioners once assumed, and the link's share is consumed either way. If a link should not exist, remove it instead of annotating it. Keep nofollow for genuinely untrusted destinations: user-generated content, paid placements, and comment fields. Noindex is the right answer for thin or duplicate templates such as tag archives, author pages, filtered list views, and internal search results, which multiply URLs without adding anything a searcher wants.

Docs and blog placement is the structural version of the same question. A subdomain is treated as related to but partly separate from your main domain, so authority does not consolidate as cleanly as it does on a subfolder. If you are choosing now, put both on the main domain at /blog/ and /docs/. If they already live on subdomains, a migration is a real engineering project with redirect risk, so price it honestly against the alternative: link generously in both directions, share the navigation, and make sure every docs page routes back to the feature page it describes.

  • Remove a link rather than nofollowing your own page.
  • Noindex tag archives, filtered views, and internal search results.
  • Prefer /blog/ and /docs/ subfolders for anything not yet built.
  • Cost a subdomain migration before assuming it is worth doing.

08Audit the structure every quarter

Book two hours per quarter and follow the same sequence, because the value is in the diff rather than any single reading. Pull the current sitemap URL list, pull the internal links report, and update the inbound and outbound counts in the role sheet. Check the ten newest posts against the link rule. Spot-check anchor text by running a site search for your main target phrase and reading the anchors that surface. Record the date, the money page link counts, and the orphan count.

One action per finding, with an owner and a due date, keeps the audit from becoming a report nobody reads. If a money page's inbound count has not moved in two quarters, the content team is publishing into a hub that does not link out. Tiptop's SEO audit reports how many crawlable internal links the entry page exposes and scores each page it finds, which handles the discovery half of this review so your two hours go into judgement rather than counting.

  • Same sequence every quarter so the numbers stay comparable.
  • Track money page inbound counts as the headline metric.
  • One owner and one due date per finding.
  • Keep last quarter's sheet; the change is the signal.

What to carry into the work

  • Assign one role to every URL before writing a single internal link.
  • Treat any page with a mapped target query and fewer than three inbound links as unfinished work.
  • Require two inbound links from existing pages before a new post publishes.
  • Remove a bad internal link rather than adding nofollow to it.
  • Choose subfolders for new docs and blog sections, and cost a migration honestly before moving an existing subdomain.

Frequently asked questions

How many internal links should a blog post have?

Three to eight contextual links in a 1,500-word article is a workable range, excluding navigation and footer links. The count matters less than the destinations: at least one should point to a cluster hub or money page. Above roughly ten, links start competing for the same attention and click-through on each one falls.

Does internal link anchor text still matter?

It remains one of the few relevance signals you control completely. Descriptive anchors of three to six words help both crawlers and readers understand the destination. The failure mode is repetition, not description: using one exact-match phrase across dozens of pages looks manipulative and wastes the chance to cover query variants.

Should my docs be on a subdomain or a subfolder?

A subfolder consolidates authority more cleanly, so /docs/ is the better default for anything you have not built yet. Moving an existing docs subdomain is a redirect-heavy engineering project, and the gain rarely justifies it on its own. If you stay on the subdomain, link heavily in both directions and route every docs page back to its feature page.

How do I find orphan pages without a paid crawler?

Google Search Console lists internally linked pages with a count for each URL. Sort that report ascending and compare it against your sitemap: anything in the sitemap but missing or near zero in the report is effectively orphaned. Cross-check against your keyword map so you fix the pages that were meant to rank first.

How long before internal link changes show up in rankings?

Expect several weeks rather than days, since the pages carrying the new links have to be recrawled before anything propagates. Higher-traffic pages are recrawled sooner, so adding links from your most-visited posts shortens the wait. Measure at the quarterly audit rather than checking positions the week after the edit.

SEO

Get full in-depth SEO report and hire us to fix. Run it on your own data, no account needed to look.

Open SEO
All guides