Run the cost arithmetic once and the argument ends
Nobody disputes that external links matter. The dispute is about sequencing, and sequencing is settled by cost per unit of ranking movement, not by which tactic sounds more impressive in a proposal.
An internal link costs you the time to decide it should exist and the time to add it. On a CMS that's a minute. The decision — which page, from which paragraph, with which anchor — is the actual work, and a strategist who knows the site does it fast. You approve it. It ships. Nobody has to say yes except you.
An external link requires a stranger to agree. In our own outreach, a placement worth having absorbs somewhere between six and ten hours once you count prospecting, writing the pitch, three follow-ups, and the ones that go nowhere. That range is wide because reply rates on cold outreach sit in the low single digits and vary enormously by sector — a fintech data story lands far more easily than a packers-and-movers pitch. We give the range rather than an average because the average would be dishonest about the variance.
Which means the same nine hours a month buys you roughly one external link, or roughly 120 internal link placements across a 200-page site. On a site that has never been linked internally with any intent, the second number wins, and it isn't close.
| Internal link | Earned external link | |
|---|---|---|
| Who has to approve it | You | A stranger with no incentive |
| Time per link | 1–3 minutes to place, plus the thinking | 6–10 hours all-in, in our experience, with high variance |
| Risk if done badly | Diluted relevance, wasted crawl | Manual action if you bought them |
| What it can't do | Create authority the domain hasn't earned | Fix a page buried four clicks deep |
| When it's the right first move | Almost always, on an existing site | New domain, YMYL, or a large referring-domain gap |
The audit: two queries that find most of the wins
This takes an afternoon on a 200-page site and it is the closest thing to free money we know of in SEO. Run a crawl in Screaming Frog or Sitebulb, and pull one export from Search Console. That's the whole toolkit.
Query one — which pages have nothing pointing at them
An orphan page is a URL with zero internal links pointing to it. It may be in your sitemap, it may even be indexed, and it is still functionally invisible: Google has no path to it from the rest of your site and no context about what it relates to.
Crawl your site, then feed the crawler your XML sitemap and your Search Console data so it can compare the two lists. Anything present in the sitemap or in Search Console but absent from the crawl graph is an orphan. On sites that have been running five years with a couple of redesigns behind them, we routinely find dozens.
Then sort them by whether anybody should care. An orphaned 2019 event page can stay orphaned or get deleted. An orphaned service page is somebody's revenue sitting in a drawer.
Query two — how deep are the pages that make money
Crawl depth is the minimum number of clicks from the homepage to a URL. List your five or ten highest-margin pages, then look up their depth in the crawl.
Depth matters for two connected reasons. Google discovers and recrawls shallower pages more readily, and internal link equity dissipates as it passes through more hops. A page at depth five is being told, by your own architecture, that it's less important than the pages above it — and your architecture is usually an accident of when things were built, not a statement of what matters now.
Our working rule: on a site under a few thousand pages, anything commercially important should be reachable in three clicks or fewer. If it isn't, the fix is almost never a new navigation menu. It's four contextual links from pages that already have authority.
The third query, if you have the time
Sort your pages by number of inbound internal links, descending. Then compare that list to your pages sorted by revenue or lead volume. On most sites the two lists barely overlap, because internal links accumulate around whatever gets mentioned in blog posts rather than whatever pays the bills.
That mismatch is your work order, and it's usually more actionable than either of the first two queries.
Anchor text is the only ranking hint you get to write yourself
You can't control what a journalist calls your page when they link to it. You can control what your own pages call it, every single time, and that is a much bigger privilege than most site owners use.
Anchor text tells Google what the destination page is about. "Click here" tells it nothing. A naked URL tells it nothing. "Read more" tells it nothing, and there are sites where the most-repeated anchor across 400 internal links is literally the phrase "read more", which is a strange thing to have declared 400 times.
- Describe the destination, not the action.
[internal linking best practices](/answers/internal-linking-best-practices)rather than "learn more". - Vary it naturally. Five pages linking to the same destination with byte-identical anchors reads as templated, because it is. Use the natural variants a human would write.
- Put the link where the reader would want it. Mid-paragraph, at the point the reader thinks "what does that mean?". Links in a related-posts widget carry less weight than links inside prose, because everything in a repeated module gets discounted as boilerplate.
- Don't stuff. Nine links crammed into one paragraph dilutes all nine and looks like what it is. Two or three contextual links per thousand words of body copy is a healthy default.
- Link from strong pages to weak ones, not the reverse. Your best-performing guide is an asset. Point it at the commercial page you want to rank, not at another blog post.
Hub pages have to be real pages
The standard advice is to build hub pages — a pillar page for a topic, with links out to every cluster article, and links back from each. The advice is right and the execution is usually wrong.
The wrong version is a page with 200 words of throat-clearing and 40 links. That page has no reason to exist for a human, ranks for nothing, earns no external links, and therefore has nothing to pass down to the cluster. It is a distribution mechanism with nothing to distribute. Google has a word for pages built purely to funnel traffic rather than serve a searcher, and it is not a compliment.
The right version is a page that would be worth publishing if it contained no links at all. It answers the head query completely. It earns its own rankings and, if it's good, its own external links. Then the links out are how it shares what it earned.
The test we use: delete every link from the hub page. Is it still a page you'd be happy to rank? If not, it's an index, and an index is a navigation element rather than a content asset.
Wiring the cluster
- Every cluster page links up to the hub, in prose, with a descriptive anchor.
- The hub links down to every cluster page, ideally with a line of context rather than a bare list.
- Cluster pages link sideways to two or three genuine siblings — the ones a reader would actually want next, not every sibling that exists.
- Nothing links sideways to everything. A cluster where all 20 pages link to all 19 others is a mesh, and a mesh transmits no hierarchy at all.
When links genuinely have to come from outside
Everything above has a limit, and pretending otherwise would be the same overclaiming we're complaining about. Internal linking redistributes authority. It cannot create authority that the domain has never earned, and there are three situations where that distinction decides the outcome.
- A new domain with no external links at all. You can architect a six-month-old site perfectly and still lose every commercial query to a competitor with eleven years of coverage. There's nothing to redistribute. You need the first fifty referring domains before internal work has anything to work with.
- Money-or-life categories. Health, finance, legal, insurance. Google's quality rater guidelines treat these as needing demonstrable trust, and third-party citation is a large part of how that gets established. An internal link is you vouching for yourself, which is worth exactly what it sounds like.
- A large, visible referring-domain gap on your target queries. Pull the top five results for your main commercial keyword and compare referring domains. If every one of them has several hundred and you have twelve, internal linking will get you from page five to page two and stop. That last stretch is bought with authority you don't yet have.
The correct sequence
Do the internal audit first anyway, even in those three cases. It takes an afternoon, it costs nothing, and it means the links you go on to earn land on a site that can actually distribute them. Earning a hard-won link to a page that's four clicks deep and orphaned from its own topic cluster is a waste of nine hours you'll never get back.
Then go outside — properly, through link building and digital PR, not through a network. If someone offers you "our own network of sites", that's a private blog network and the risk sits on your domain, not on theirs.
What we actually do in month one
On a new SEO engagement, internal linking sits inside the first month's technical work and it's usually where the earliest visible movement comes from. Not because it's clever — because it's the only part of SEO where the improvement ships the same week it's decided, with nobody else's permission required.
The order we run it: crawl and find orphans, map depth for the commercial pages, audit anchors sitewide, rewire the highest-value ten pages by hand, then set a rule that every new page ships with at least two inbound internal links already in place. That last rule prevents the problem from ever returning, which is worth more than the initial cleanup.
It's part of our SEO retainer, which starts at ₹75,000/mo with smaller sites from ₹40,000/mo. Link building sits in the same retainer but further down the calendar, because we'd rather spend month one on the work that compounds immediately than on outreach to pages that aren't ready to receive it.
And to be explicit about the promise attached to any of it: we don't guarantee a ranking position for a keyword. We guarantee movement against your own baseline — your trailing-90-day qualified leads from organic search, frozen before we start. Miss it in 90 days and we keep working free until we beat it. How that works.