Skip to content
Metric VaultHelp Center
Open app

Internal Linking Engine

Crawls your site live, maps the internal link graph, and hands you the new links to add, the orphan pages nothing points to, and the broken links to fix.

Last updated 2026-08-06

Summary#

Internal Linking Engine crawls your site, maps how your pages link to each other, and returns three lists: new internal links worth adding with the anchor text to use, pages nothing links to, and internal links pointing at pages that failed to load. Its internal tool id is internal_linking.

Purpose#

Internal links are the part of a site's structure nobody owns. Pages get published, the navigation grows, and the links between the content itself never get planned. The result is predictable: a handful of pages collect everything, and the rest are reachable only through a sitemap.

This tool exists to make that structure visible and fixable. The decision it supports is concrete: which link should you add next, on which page, with what anchor text?

Overview#

You enter a domain. Metric Vault reads your sitemap, and if that is thin it also reads your homepage and harvests its internal links. From the pages it finds, it crawls up to 20, preferring the homepage and the shallowest paths — that is where a site's real structure lives.

For each crawled page it records the internal links it points to and counts the links pointing back at it. That gives every page an inbound and outbound count, which is the link graph.

It then compares the pages by topic, using the distinctive words on each page rather than the boilerplate they all share. Where a topically related page does not yet link to an under-linked page, that pair becomes a suggestion, and the anchor text is drawn from the target page's own distinctive terms.

This is a live crawl of your site. It fetches your real HTML on every run, executes no JavaScript, and uses no cached copy.

Benefits#

  • Suggestions are specific: a source page, a target page, and the anchor text.
  • Orphan pages are named, not estimated.
  • Broken internal links are found by actually fetching the target.
  • The whole page-by-page graph is included, so you can see the shape of the site.
  • Copy all as list turns the suggestions into a paste-ready task list.
  • Costs 1 credit, which keeps it under the monthly premium threshold.

Use Cases#

Spreading authority to a page that will not rank. The suggestions name related pages that should point at it and the anchor text to use.

Finding pages that fell out of the site. Orphan detection catches content that is published, indexed and effectively unreachable.

Cleaning up after a migration. Broken internal links surface immediately when paths changed and links did not.

Building a topic hub properly. Run it after publishing a cluster to confirm the new pages are actually linked into the site.

Auditing an unfamiliar site. One run gives you the structure without clicking through it.

Requirements#

  • A signed-in account.
  • A paid plan — 1 credit per run, and any cost above zero is blocked on Free.
  • A publicly reachable site that serves HTML to a crawler. Private, local and internal hosts are refused.
  • A site whose content and navigation are in the HTML. JavaScript-rendered navigation is not executed.
  • Available credits and hourly headroom.

Permissions#

Any workspace member on a paid plan can run it. Free accounts are refused with This tool needs a paid plan. Free includes the 10 technical SEO tools; upgrade to Pro to unlock the rest. The recommendations panel under the result requires Pro or above — see Get Recommendations.

Cost#

1 credit per run. The run button reads Map Internal Links · 1 report, matching the 1-credit charge.

Below the premium threshold of 3, so the monthly quota never blocks it — only the hourly fair-use cap of 100 light-tool calls per hour. This tool has no shared cache: every run is a fresh crawl, so a repeat run always reflects your site as it is right now. See How credits work and Result caching and freshness.

Dashboard → Keyword & Content Research → Internal Linking Engine

The sidebar entry carries a pink NEW badge.

Inputs#

FieldAcceptsRequiredDefaultValidationNotes
e.g. nike.comA domainYesEmptyEmpty input shows Enter a value first. Private, loopback and internal hosts are refusedProtocol and path are stripped. Enter the root domain — the crawl starts at the homepage
Try sampleFills nike.com when the field is empty, then runs. It charges a credit like any other run

Pressing Enter in the field runs the tool.

Step-by-Step Guide#

  1. Open Keyword & Content Research and choose Internal Linking Engine.
  2. Enter your domain in the field marked e.g. nike.com.
  3. Click Map Internal Links, or press Enter.
  4. Wait for Analyzing… this can take a few seconds for live data. to clear. A live crawl of 20 pages takes longer than a data lookup.
  5. Read the tier badge and the four KPI tiles.
  6. Fix Broken internal links first, then Orphan pages, then work the Recommended internal links table.
  7. Use Copy all as list to take the suggestions into your task tracker.
  8. Export or share the report from the buttons at the top of the view.

Reading the Results#

The header. Your domain, a Live crawl badge, N pages mapped, and a verdict tier on the right:

TierWhen it appearsWhat it means
NEEDS ATTENTIONAny broken internal link was foundSomething is actively broken; fix it first
LINKS TO IMPROVEOrphans but no broken linksThe structure works but leaves pages stranded
WELL LINKEDMultiple pages, real internal linking, no orphans or breaksHealthy. Use the suggestions to strengthen, not repair
LIMITED DATAToo little was crawled to judgeRead What we found — the crawl was blocked or the site is one page

The four KPI tiles.

TileSub-labelReadsGoodBadAction
Pages Crawledof N foundPages read versus pages discoveredCrawled equals found on a small siteCrawled is far below foundThe crawl caps at 20 pages; a much larger "found" figure means you are seeing the shallowest slice of a big site
Orphan Pagesno inbound internal linksPages nothing points to0AnyEvery orphan is a page receiving no authority from your own site
Link Suggestionsnew links to addProposed new internal linksA handful0 with several pages crawledZero suggestions on a real site usually means the pages are not topically related enough to pair
Broken Linkspoint to dead pagesInternal links whose target failed to load0AnyFix these first; they waste crawl budget and frustrate readers

What we found. Plain-language findings generated from the crawl. The first always states the coverage — for example "Crawled 20 of 143 pages found (capped at 20 for speed)." Others name the orphan count, the suggestion count and the broken count. Two are worth reading carefully:

  • "No orphan pages — every crawled page has at least one internal link pointing to it." is a clean result, not an empty one.
  • "Not enough internal links were found to map a graph. The site may be a single page, or it may render its navigation with JavaScript, which this crawler does not execute." means the run cannot judge your structure. It is a coverage limit, not a verdict on your site.

Recommended internal links. The main deliverable, with a Copy all as list button above it and four columns:

ColumnWhat it meansHow to use it
Anchor textThe words to linkDrawn from the target page's own distinctive terms, so it describes the destination. Adjust it to read naturally in the sentence
Add a link fromThe source pageOpen this page and find a sentence where the anchor fits
Pointing toThe target pageThe under-linked page receiving the authority
WhyThe justificationReads "Both pages cover “term”. The target has N internal links pointing to it." The term is the shared topic; the count is how starved the target is

Suggestions are ordered by topical strength, so the top rows are the most natural links to add. Only pages with fewer than three inbound links are proposed as targets, and at most two sources are proposed per target — the intent is to lift starved pages, not to build link farms between everything.

Orphan pages. One card per page with no inbound internal links, each badged ORPHAN and carrying the same instruction: "No internal links point here, so it barely receives authority. Add a few links from the related pages above." The homepage is never counted as an orphan.

An orphan is the most severe finding on this screen. A page nothing links to is discoverable only through the sitemap, and search engines treat it accordingly.

Broken internal links. A two-column table: On this page and This link is broken. These are links from a crawled page to another page in the crawl set that did not return usable HTML. Fix by correcting the link or restoring the target — a redirect works, but a corrected link is better.

Every page we crawled. The full graph, sorted by inbound links ascending so the weakest pages are at the top.

ColumnWhat it meansHow to read it
PageThe path/ (home) for the homepage
Inbound linksLinks from other crawled pages0 is an orphan; 1 is fragile; 3 or more is healthy
Outbound linksInternal links this page points toA page with high outbound is a hub
StatusOrphan, Under-linked or OKUnder-linked means fewer than two inbound links

Read the top of this table as your work list and the bottom as your hubs. Your hub pages are the best sources for new links, because they already have authority to pass on.

Get recommendations. A panel under the result turns the findings into an ordered plan, grouped as Fix first, Do next and Quick wins — broken links first, orphans next, under-linked pages after that. It is a Pro-and-above feature with its own monthly allowance — see Get Recommendations.

What to do with it. Fix every broken link. Give every orphan two or three inbound links from related pages. Then add the top ten suggestions, editing each anchor so it reads naturally in the sentence. Re-run afterwards and confirm the orphan count is zero.

Examples#

Example

Example: You run ourshop.com. The header reads WELL LINKED; the tiles show 20 pages crawled of 143 found, 2 orphans, 14 link suggestions and 0 broken links. What we found states the crawl was capped at 20 for speed. The first suggestion is anchor text waterproof running shoes, from /guides/trail-running to /collections/waterproof, because "Both pages cover “waterproof”. The target has 1 internal link pointing to it." The two orphans are /guides/winter-training and /about/team. You add three links to each orphan from related guides, then add the top eight suggestions. On the next run the orphan count is 0 and the tier reads WELL LINKED with more pages at status OK.

Screenshots#

Screenshot
the Internal Linking Engine input row with the LINK GRAPH, LIVE CRAWL and INTERNAL LINKS badges and the "Map Internal Links" button
Screenshot
the result header showing the domain, the Live crawl badge and the WELL LINKED tier, above the Pages Crawled / Orphan Pages / Link Suggestions / Broken Links tiles
Screenshot
the Recommended internal links table with the Copy all as list button and the Anchor text / Add a link from / Pointing to / Why columns
Screenshot
the "Every page we crawled" table sorted by inbound links, showing Orphan, Under-linked and OK statuses

Tips#

  • Run it after publishing a cluster of pages, not before. New pages are the ones most likely to be orphaned.
  • Edit the anchor text. The suggested wording is descriptive but generic; a link reads better when it belongs to the sentence.
  • Add links from your hub pages — the ones with high outbound counts at the bottom of the graph table. They have the authority to pass on.
  • Two or three inbound links is enough to lift an orphan. You do not need to link it from everywhere.
  • Pair this with Content Decay Detector: an under-linked page decays faster and recovers slower.

Best Practices#

  • Fix broken links before adding new ones. A broken link is a defect; a missing link is an opportunity.
  • Link from related content, not from the footer. A footer link on every page tells search engines nothing about the target's topic.
  • Keep anchor text descriptive and varied. Repeating one exact phrase across every link reads as manipulation.
  • Re-run after each batch of edits so the graph reflects the work, and keep the export as a record.
  • Remember the crawl favours shallow paths, so deep pages are the ones it misses. Link them from a shallow page and they enter the next crawl.

Common Mistakes#

  • Entering a single URL. The crawl starts at the domain root and maps the site; a URL narrows nothing useful.
  • Reading Pages Crawled 20 of 400 as a failure. The cap is deliberate, and the 20 chosen are the structurally important ones.
  • Expecting a JavaScript-rendered site to map. The crawler reads HTML and does not execute scripts, and the findings say so.
  • Adding every suggestion at once. Ten well-placed links beat forty mechanical ones.
  • Ignoring the homepage's absence from the orphan list. It is excluded on purpose — it has no inbound internal links by definition.

Limitations#

  • Up to 20 pages are crawled per run, chosen from the sitemap plus the homepage's own links and ordered by path depth.
  • Suggestions are capped at 40 and broken links at 40.
  • Only pages with fewer than three inbound links are proposed as link targets, and at most two sources are proposed per target.
  • JavaScript is not executed, so client-rendered navigation and content are invisible to the crawl.
  • Broken-link detection covers links between the pages in the crawl set. It is not a site-wide broken-link scan.
  • External links are not analyzed at all — this tool is about internal structure.
  • Sites that block automated crawlers return an error rather than a partial map.
  • Private, loopback and internal hosts are refused.
  • There is no cache, so every run costs a credit and takes a full crawl.
  • Saved results are kept for 90 days.

Troubleshooting#

SymptomLikely causeFix
Enter a value first.Empty fieldType a domain
Please sign in to run this tool.Signed outSign in and retry
This tool needs a paid plan…Free planUpgrade — see Plans and pricing
Could not crawl any pages for <domain>. The site may block automated crawlers, or render its content with JavaScript.The crawler was blocked, or the HTML carries no contentCheck your bot rules and firewall; a JavaScript-rendered site cannot be mapped
Not enough internal links were found to map a graph…One-page site, or JavaScript navigationExpected on those sites. See A tool returned no data
Pages Crawled far below foundThe 20-page capExpected. The shallowest, most important pages are chosen
0 link suggestions with several pages crawledThe pages are not topically related enough to pair, or every page already has three or more inbound linksNot a failure. Check the graph table for OK statuses
A page you expect is missingIt is not in the sitemap, not linked from the homepage, or sits below the 20-page capAdd it to your sitemap and link it from a shallow page
The run is slowIt is a live crawl of up to 20 pagesExpected. See Tool limits and performance
Hourly fair-use limit reached…Over 100 light-tool calls this hourWait for the hourly reset

FAQs#

Where do the pages come from? Your sitemap first. If that returns too few pages, the homepage is fetched as well and its internal links are added. The list is then sorted so the homepage and the shallowest paths are crawled first, and cut at 20.

Why only 20 pages? The crawl is live and runs inside a request budget. Twenty shallow pages capture a site's structure; crawling hundreds would time out. See Tool limits and performance.

How is the anchor text chosen? From the target page's own distinctive vocabulary, with your brand name and the words that appear on nearly every page filtered out. That is why it describes the destination rather than repeating your site name.

Why does it suggest links only to some pages? Only pages with fewer than three inbound internal links are eligible targets. The point is to lift starved pages, not to cross-link everything.

Does it check my external links too? No. This tool maps internal structure only.

Does it change anything on my site? No. It reads your pages and returns suggestions. Every edit is yours to make.

Why is the result different from the last run when I changed nothing? It is a live crawl with no cache, so a page that was slow or briefly unavailable can shift the counts. Re-run if a result looks anomalous.

Can I export the suggestions? Yes — Copy all as list for a plain-text list, plus Export PDF, Export Excel, Export CSV, Export JSON and Share public link at the top of the view.

See also

Was this article helpful?