Internal linking opportunities: connecting the posts you already have
Orphan pages, buried posts and titles competing for one query: how to earn visibility by rewiring the archive you already own, without writing anything new.
On a Tuesday morning, the content editor at a mid-sized online retailer opens the latest crawl report. Of the 214 posts in the blog archive, 38 receive no links at all from anywhere else on the site. They were written, published, shared once on social, and then became unreachable by any route except the sitemap. A second number sits in the same report: 61 pages that are four or more clicks away from the homepage. The editor has no budget for new content this quarter. The only asset available is those 214 existing posts and the freedom to rewire the links between them.
This article is about how to use that freedom. We start with what an internal link actually carries, then how to identify which pages need one. From there: click-depth thresholds, how to choose the linking page, how to write anchor text, and how to untangle pages competing for the same query. The closing sections cover prioritisation, the approval workflow, measuring the outcome, and a thirty-day plan.
What does an internal link actually pass to a page?
An internal link carries three things at once, and those three get conflated constantly. First, discovery: a crawler finds a URL organically only if something links to it. A sitemap declares an address; it does not make it important. Second, authority: the trust your site earns from outside is distributed across your pages along the internal link graph. Third, context: the anchor text and the sentence around it are your site's own statement about what the destination covers.
Because all three travel together, internal linking is more than a technical fix. Growing the links pointing at your site from elsewhere is a separate, slower job; we covered the ethical routes to earning backlinks in another article. Internal linking is entirely under your control — no outreach, no waiting. Redistributing the authority you already hold produces results far faster than acquiring new authority.
One caveat belongs at the top: internal links do not create demand. They clear the road for pages that already collect impressions but underperform on visibility. So the first step is not adding links — it is deciding which pages deserve the opening.
How do you find the pages that need links?
Look for three signals. Orphans: nothing on the site links to them. Weakly linked pages: one or two inbound links, both from the same archive listing. Deep pages: the shortest path from the homepage runs longer than four clicks. Different causes, identical outcome — the page exists and nobody travels to it.
In Rocketly's SEO Hub, Site Audit crawls the site with its own crawler and surfaces broken internal links and orphan pages in a single list, while Page Detail shows inbound internal links and click depth for every URL on the same row. The Internal Link Opportunities finding joins those two datasets with the link graph: it ranks pages that receive few internal links or sit too deep, and leaves the proposed change to human approval — nothing is inserted automatically.
Once the inventory exists, run a second check: is the destination still live? Linking to a removed page only manufactures a fresh broken link. The principle that you should hear about a broken connection before your customers do applies here too. Run the audit weekly so a newly published page does not spend a fortnight as an orphan.
What click depth should you aim for?
Click depth is the number of steps on the shortest link path from the homepage to a target. It is not a function of site size: with a well-built hub structure, a ten-thousand-page site can still be three clicks deep. The thresholds below are not absolute law — they are a practical way to order the work.
| Click depth | What it means | What to do |
|---|---|---|
| 0–2 | The backbone of the architecture; crawled often | Leave it; link out from here |
| 3 | Healthy boundary; most content belongs here | Review the anchor text |
| 4–5 | Crawl frequency drops, updates are noticed late | Add a link from a relevant hub |
| 6+ | Effectively unreachable; usually stuck in pagination | Promote it or consolidate it |
| No path | Orphan; exists only in the sitemap | Link from at least two related pages |
The cheapest way to reduce depth is not another navigation item but a topic hub that gathers the related posts. Every item you add to the main navigation links from every page on the site, and past a certain point it stops promoting anything at all.
Which page should the link come from?
The choice of the linking page matters as much as the destination. Three criteria work well: topical proximity, the linking page's own visibility, and its existing link load. A link dropped in from an unrelated page sends the wrong signal to readers and crawlers alike, and linking from one buried page to another achieves very little.
The third criterion is the one most often skipped. If a page carries a hundred links, the share reaching each one shrinks. Five to ten meaningful links in the body copy works well as a ceiling for most content pages; beyond that the prose stops reading like prose.
Format is part of this too. If you produce the same topic as an article, a video and a guide, those assets should feed each other; the logic you use for pulling different video formats into one plan applies unchanged to internal links. Once the topic cluster is defined, which page is the hub and which are the spokes becomes obvious, and the direction of the links follows on its own.
How do you write anchor text that works?
Anchor text is your site's own description of the destination. Good anchor text does three things: it names the destination's subject, it fits the grammar of the sentence, and it tells the reader what they will find before they click. "Click here" does none of them. Pasting the full headline in is no better — it breaks the sentence and repeats an identical pattern on every link.
Vary the anchor across links pointing at one destination. Twenty pages linking with the same eight words is not how anyone writes naturally. Keep the topic constant and let the wording move. One more rule: a single link per paragraph, because readers who see two usually click neither.
If you want to automate the suggestions, the model needs sight of your actual content inventory; a general-purpose language model has no idea which pages exist on your site. This is where the logic of a setup that reads your own data earns its place: instead of inventing a plausible headline, the model proposes destinations that are genuinely published.
The tool producing the suggestion also has to reach your live data. Protocols that connect AI to your working tools close exactly that gap. Even so, the final call stays with a person, because anchor text is an editorial choice and has to match how your brand writes.
How do you separate pages competing for the same query?
Keyword cannibalisation is what happens when several of your pages compete for one query. The engine cannot settle on which to show, the result flips between them over time, and neither reaches the top. The Content Health finding in the SEO Hub lists these collisions alongside declining pages, so you see the problem before it turns into lost clicks.
Deleting is rarely the answer. Decide first which page should be canonical for the query — usually the one with more impressions and the better match to intent — then link from the competing page to it, using anchor text that names that exact query. Reposition the competing page around its own narrower intent: title, opening paragraph, subheadings.
If that fails, consolidation is the second option: merge the two texts into one page and 301 the weaker URL. But consolidation is hard to undo. Try separating them with links first, and give it two crawl cycles.
Which opportunity do you fix first?
If your inventory runs to three hundred rows, you cannot ship them all in one week. The ordering rule is simple: potential gain divided by implementation cost, where the gain comes from the impressions the destination already collects and its current average position. Queries stuck on the second results page — positions eleven to twenty — are the richest pool; the Quick Wins list in the SEO Hub ranks precisely that band by the clicks you would gain if they moved to page one.
| Situation | Signal | Priority |
|---|---|---|
| Orphan with impressions | Impressions exist, no internal links | This week |
| Position 11–20, weakly linked | On the threshold; one push may do it | This week |
| Deep but commercial | Depth 4+, buying intent | Next two weeks |
| Orphan without impressions | No demand, or the content is thin | Review the content first |
| Cannibalisation pair | Two pages, one query | Hold until a decision is made |
This is almost the same arithmetic used on the sales side: when you decide which lead to touch first, you also divide potential value by cost of contact. Only the names of the variables change.
To make the criteria numeric, give each page a score: points for the impression band, points for the position band, points for commercial intent. The same approach used in lead scoring works here as well — the aim is not a perfect formula but a repeatable order that ends the argument.
Who approves the change, and how is the work tracked?
Internal linking projects usually collapse at implementation. The list gets produced, the team walks through it in a meeting, everyone nods, and three months later the same orphans reappear in the next audit. The only cure is turning every row into a tracked item with an owner and a status.
In the SEO Hub, audit findings drop into the Work Queue; each row moves along with an owner, a priority and a status, and closes once the fix is confirmed on the next crawl. Those items appear in the team's ordinary task list, so nobody opens a separate spreadsheet. For teams that want to watch the flow visually, the logic of visualising work on a board transfers directly: queued, applied and verified columns are enough.
Some of the status transitions can be automated. When a fix ships, the item moves to "awaiting verification"; if the finding is gone on the next crawl, it closes by itself. It is what automatic stage progression does in a sales pipeline, applied to an SEO queue. Keep one thing manual, though: where the link goes in the copy and what anchor it uses stays a human decision.
Did it work, and how would you know?
The effect of an internal linking change does not appear instantly on a single chart. To measure it, fix a before period and an after period, then look at the same set of pages in both. Change Impact Measurement in the SEO Hub exists for this: you mark the fix you made, and the clicks, impressions and average position from before and after are placed side by side. "We added the links, did it help" then gets answered by comparison rather than by feel.
Two details speed the result up. First, telling the engines that pages changed: Instant Index Notification and the IndexNow Publish Queue push updated URLs to the engines that support the protocol and show, row by row, whether each notification was accepted — Google does not use this protocol, so there you wait. Second, patience: a link change usually becomes legible two to six weeks out.
The most valuable property of this work is that it repeats. Run the audit weekly and the inventory review monthly, and the project becomes a routine; the same reasoning behind putting a recurring task on rails applies here. Because the Health Score lists new, resolved and persisting issues separately on each crawl, the week progress stalls shows up early.
What should the first thirty days look like?
Week one is inventory: run a full crawl and collect orphans, inbound link counts and click depth into one table. Change nothing yet — intervene before measuring and you will never be able to say what worked.
Week two is decisions: flag the orphans that already collect impressions and the targets stuck between positions eleven and twenty, then pick two linking pages and an anchor for each. Week three is implementation: ship in batches, mark each batch, drop the updated URLs into the publish queue. Week four is verification: run the new crawl, check which findings closed, read the before-and-after comparison.
Thirty days in, you have a first measurable result and a method you can repeat. The second matters more, because a growing site keeps producing new orphans. To try the flow on your own site, create a free Rocketly account and connect your Search Console property to start the first audit.
FAQ
How many internal links should a page have?
There is no fixed number. Five to ten meaningful links in the body copy suits most content pages. The test is not the count but whether each link offers the reader a real next step. Navigation and footer links do not count, because they repeat everywhere.
Does adding links to an old post count as updating it?
Partly. Links change discoverability and context, but if the content itself is stale, links alone will not carry it. Do both: refresh the text, add a new section, and link out from that section.
Can I use nofollow to steer authority between my own pages?
In practice, no. Nofollow on an internal link does not redirect authority elsewhere; it discards that link's share. If a page should not be linked, remove the link or consolidate the page.
Isn't adding orphans to the sitemap enough?
No. A sitemap declares an address but says nothing about its importance within the site, and carries no context. A page that exists only there can be crawled, but is usually treated as low priority and visited rarely.