7 Best Internal Linking Tools for Crawl Ops 2026
Internal linking tools are products that map, suggest, or insert links that stay on the same site so crawlers and people can reach URLs that would otherwise sit as orphans. Moz's independent guide describes internal links as links that stay on the same site, according to Moz (fetched 2026-09-04). The category decision is whether you need an in-editor suggester (Link Whisper, Rank Math), a crawl auditor (Screaming Frog, Sitebulb), a graph from a research suite (Ahrefs, Semrush), or an entity-aware linker (InLinks).
TL;DR: crawl first with Screaming Frog or Sitebulb, fix orphans and dead inlinks, then use Link Whisper or Rank Math only if editors will accept or reject suggestions inside WordPress. Ahrefs and Semrush show internal link reports; they do not replace a crawler. InLinks is the specialist when the job is entity linking rather than "add more blog links."
Orphan URLs are a common reason templates never get indexed. Pair this stack with why 48 percent of our pages never got indexed and how to reduce time to index new pages. Template landing pages that multiply orphans should also read programmatic landing page tools.
Key Takeaways
A crawler is the system of record for orphans, inlink counts, and broken internal hrefs; an editor plugin is a writing aid.
Link Whisper vs Sitebulb is not a peer bake-off: one suggests anchors in WordPress, the other audits the rendered site.
Rank Math can add internal-link suggestions on WordPress; it still needs a crawl to prove the graph changed.
InLinks is the odd one out on purpose: entity and schema-aware linking, not a Frog clone.
BEST_OF earn rate: 15.2% according to US Tech Automations first-party corpus counted 2026-08-24 on 12,514 pages.
Do not auto-insert anchors without a human reject button.
Who this is for
You are a fit if you ship a lot of URLs, you can run a crawl, and someone owns the internal-link graph rather than hoping writers remember hub pages. You already have Search Console, and you have seen "Crawled - currently not indexed" or "Discovered - currently not indexed" on URLs that no nav item points to.
Red flags: you want a plugin to spray exact-match anchors across every post; you have no CMS API or WordPress and still expect Link Whisper to be the answer; you will not run a crawl after the plugin run to verify inlinks moved.
Link Whisper vs Sitebulb
Link Whisper lives in the WordPress editor. It suggests targets, can insert links, and is the right product when the bottleneck is writers who never link to the hub. It is the wrong product when the bottleneck is a 10,000-URL template grid with no WordPress install.
Sitebulb lives on a desktop (and in its hosted variants) as a crawler with visualizations, hints, and internal-link reports that a strategist can brief from. It is the right product when you need to see orphans, click depth, and hint-driven issues. It is the wrong product when you wanted an in-editor button for a single author.
Buy both only when WordPress writers and a technical SEO share the same host. Otherwise pick the job: insert versus audit.
Evaluation criteria
| Criterion | Weight | Pass bar | Review hours |
|---|---|---|---|
| Orphan and inlink crawl | 25% | 1 full-host crawl | 3 |
| Editor suggestions | 15% | 10 accepted links | 2 |
| Anchor and over-optimization controls | 15% | 1 reject path | 1 |
| Click-depth or visualization | 15% | depth 1-4 view | 2 |
| CMS write or export | 15% | 1 CSV or 1 plugin | 2 |
| Public list or $0 tier | 15% | $0 or contact vendor | 1 |
Weights sum to 100%. Orphan crawl is the heaviest row because a suggestion engine that cannot see the live graph will keep pointing at URLs that already have 80 inlinks while ignoring the 400 that have zero.
7 Best title CTR: 25.5% versus 5 Best title CTR: 14.0% in the same 12,514-page count of 2026-08-24. The seven-tool set is the crawl, the two editor plugins, the two suites, and the entity specialist.
Feature matrix
| Capability | Link Whisper | Sitebulb | Screaming Frog | Ahrefs | Rank Math | InLinks | Semrush |
|---|---|---|---|---|---|---|---|
| HTML site crawl | No | Yes | Yes | Paid crawl | No | Limited | Paid |
| WordPress in-editor suggest | Yes | No | No | No | Yes | No | No |
| Orphan URL report | Limited | Yes | Yes | Yes | Limited | Limited | Yes |
| Entity or schema linking | No | No | No | No | Partial | Yes | No |
| Click-depth view | No | Yes | Yes | Limited | No | Limited | Limited |
| $0 or free-limited mode | No | Trial | Yes | Yes | Yes | Trial | No |
| Export CSV | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Screaming Frog documents a free crawl cap of 500 URLs, according to Screaming Frog. Rank Math publishes a $0 WordPress plugin plus a paid Pro line, according to Rank Math. Ahrefs Webmaster Tools remains listed at $0 for verified sites, according to Ahrefs. Link Whisper is a paid WordPress product, not a $0 crawler, according to Link Whisper. Sitebulb is a paid auditor rather than a $0 toolbar, according to Sitebulb.
Pricing and TCO (confirm on the vendor site)
| Vendor | Public list start | Bill cycle (months) | Seat floor | Cap to confirm | As-of |
|---|---|---|---|---|---|
| Rank Math Free | $0 | 0 | 1 | 1 WP site | 2026-09 |
| Screaming Frog free | $0 | $0 | 1 | 500 URLs | 2026-09 |
| Ahrefs Webmaster Tools | $0 | 0 | 1 | 0 extra | 2026-09 |
| Rank Math Pro | contact vendor | 12 | 1 | 1+ sites | 2026-09 |
| Link Whisper | contact vendor | 12 | 1 | 1+ sites | 2026-09 |
| Sitebulb | contact vendor | 12 | 1 | 1 crawl box | 2026-09 |
| Screaming Frog paid | contact vendor | 12 | 1 | unlimited crawl | 2026-09 |
| InLinks | contact vendor | 1 | 1 | 1 project | 2026-09 |
| Ahrefs paid | contact vendor | 1 | 1 | 500+ | 2026-09 |
| Semrush | contact vendor | 1 | 1 | 500+ | 2026-09 |
InLinks sells entity-oriented campaigns rather than a $0 plugin, according to InLinks. Semrush site audit and internal-link reports live on paid subscriptions rather than a $0 crawl, according to Semrush.
A sane TCO is one crawler licence (Frog or Sitebulb), one editor plugin if you are on WordPress (Link Whisper or Rank Math Pro), and the research suite you already pay for. Adding InLinks is a third seat that only pays off if someone owns entities.
Click-depth and orphan gates we actually use
These gates are planning floors for the monthly pass, not vendor claims.
| Gate | Floor | Sample size | Recrawl days |
|---|---|---|---|
| Orphan URLs remaining | 0 on money templates | 1 full crawl | 7 |
| Inlinks on hub children | 8 | 50 URL sample | 7 |
| Click depth for money URLs | 3 | 50 URL sample | 7 |
| Plugin suggestions rejected | 20%+ exact-match | 1 batch | 1 |
| GSC coverage recheck | 1 property | 60 URL sample | 14 |
| Free Frog cap before paid | 500 URLs | 1 host | 0 |
Vendor profiles
Link Whisper
Best fit: WordPress publishers whose writers will not add hub links unless the editor nags them. Limitations: it is not a site crawler; it will not show click depth across a headless stack; unreviewed bulk insert is how you create anchor spam. Implementation: enable suggestions, require accept/reject, export the link log weekly, and recrawl in Frog to prove orphans moved. Primary evidence: Link Whisper.
Sitebulb
Best fit: consultants and in-house technical SEO who want hint-driven audits and internal-link visualizations rather than a raw spreadsheet. Limitations: it does not sit in the WordPress editor; someone still has to make the links. Implementation: crawl the rendered site, export orphans and click depth, brief writers or a template owner, recrawl. Primary evidence: Sitebulb.
Screaming Frog
Best fit: the default HTML crawler for inlink counts, orphan detection, status codes, and bulk export. Limitations: the 500 URL free cap; visualizations are thinner than Sitebulb; it will not insert a WordPress link for you. Implementation: crawl, filter inlinks = 0, exclude parameterized copies, hand the list to the CMS owner. Primary evidence: Screaming Frog.
Ahrefs
Best fit: teams that already live in Site Explorer and want internal link reports next to the external graph. Limitations: crawl freshness and coverage depend on Ahrefs' index plus Webmaster Tools; it is not your on-demand rendered crawl. Implementation: verify the host, use internal link reports for gaps, still run Frog before a template change. Primary evidence: Ahrefs.
Rank Math
Best fit: WordPress sites that already use Rank Math for metadata and will turn on internal-link suggestions without adding a second plugin family. Limitations: suggestions are not a crawl audit; the free plugin is not a Frog replacement. Implementation: keep the free plugin if suggestions plus metadata are enough; buy Pro only for features you will toggle on. Primary evidence: Rank Math.
InLinks
Best fit: teams modeling topics as entities and inserting internally consistent, schema-aware links rather than more blog-roll anchors. Limitations: it is a different job than orphan cleanup; do not buy it to "add 200 links this week." Implementation: define the entity set, generate the internal links, validate schema, recrawl. Primary evidence: InLinks.
Semrush
Best fit: marketers already paying for Site Audit who will open the internal linking report instead of buying a fourth tool. Limitations: Site Audit is not a substitute for a local rendered crawl on authenticated or frequently changing templates. Implementation: run Site Audit on a schedule, export internal-link issues, fix in the CMS, do not treat thematic report scores as inlink counts. Primary evidence: Semrush.
Worked example: orphans, coverageState, then editor inserts
A programmatic SEO owner crawls 3,200 template URLs in Screaming Frog and finds 410 with 0 inlinks. They inspect a 60-URL sample in the Google URL Inspection API and keep rows where indexStatusResult.coverageState is Discovered or Crawled but not indexed, which is 180 of that sample scaled to the orphan set. They then add hub links from 12 category pages (minimum 8 inlinks each as a floor) and, for the WordPress news section of 90 posts, accept 35 Link Whisper suggestions after rejecting 14 exact-match anchors. Recrawl a week later: orphan count should move, and GSC coverage should be rechecked, not assumed. Three figures, one real GSC field, a human reject step.
Common mistakes
Letting a plugin insert links into every paragraph that mentions a money keyword. That is not internal linking; that is a footprint.
Treating Ahrefs or Semrush internal-link reports as a live crawl of a site that changed this morning. Index lag is real. Crawl yourself before you brief engineering.
Stopping at "add more links" without a click-depth target. If important URLs sit at depth 6 behind filters, more blog-to-blog links will not fix discovery.
Ignoring nofollow, robots, and canonicalized copies. An inlink to a noindexed URL is not a gift to the graph you think you are feeding.
Skipping the recrawl. If you cannot show inlink counts before and after, you did not finish the job.
DIY in Zapier, Make, or n8n versus an orchestration layer
A Make or n8n scenario can watch a crawl CSV, filter inlinks = 0, open a Jira row, and even post a draft WordPress link via API. Those tools support run histories, retries, error branches, and audit evidence when you configure them. You still own idempotency (do not insert the same href twice), access control on CMS tokens, retention of URL lists, and the escalation path when a bulk insert goes wrong.
A proposed US Tech Automations design would take a crawl-complete trigger, sync orphan rows into a queue, call a webhook only for URLs that fail the inlink floor, and route a ticket to an editor with the suggested href. Prerequisites: a scheduled crawl, a CMS draft API, and a named reviewer. It does not publish links unattended.
When NOT to use US Tech Automations: Rank Math suggestions plus a monthly Frog crawl already cover the only WordPress site you run, or a single n8n scenario already retries the CSV load and opens tickets. If the system of record is the crawl export and it already works, leave it.
Recipe: a monthly internal-link pass
Crawl the host (Frog or Sitebulb). Note URL count, inlink median, and orphan count.
Exclude search, faceted, and canonicalized duplicates.
Pull GSC Page Indexing for a sample of orphans.
Assign each surviving orphan a hub parent.
Insert links in the template or via a reviewed plugin batch.
Recrawl. Compare orphan count and click depth.
Only then look at InLinks or entity markup if the graph is already connected.
Browse more notes on the resources blog. For orchestration seats above this stack, see pricing.
What the first month of an internal-link program looks like
Week 1 is a crawl, not a plugin. Run Screaming Frog or Sitebulb across the host, export inlink counts, and mark orphans on money templates. If the free 500 URL cap truncates the crawl, that is your signal to buy the paid Frog licence rather than to install Link Whisper first. A plugin cannot see the graph you have not crawled.
Week 2 is triage. Join orphans to GSC coverage for a sample. Orphans that are also discovered-not-indexed go to the front of the queue. Orphans that are parameterized duplicates go to a canonical or robots conversation, not to an editor with a suggestion list. Mixing those two piles is how internal-link sprints create more URLs instead of fewer problems.
Week 3 is insertion with a reject button. On WordPress, that may be Link Whisper or Rank Math suggestions accepted by a human. On templates, that is a hub module in the CMS. Cap exact-match anchors. Recrawl a subset before you declare victory.
Week 4 is the proof. Orphan count and click depth should move. If they do not, you inserted links in the wrong place (footer spam, unrelated posts) or you recrawled too soon. InLinks waits until this graph is connected; entity linking on an orphaned template is decoration.
Write the inlink floor for hub children in the same runbook as the crawl cadence. When engineering asks "how many links," answer with the floor and the recrawl date, not with a plugin brand.
FAQ
What are the best internal linking tools if we are on WordPress?
Link Whisper or Rank Math for in-editor suggestions, plus Screaming Frog or Sitebulb for the crawl that proves orphans moved. Do not skip the crawler.
Link Whisper vs Sitebulb: which one should we buy?
Buy Link Whisper when the bottleneck is writers inside WordPress. Buy Sitebulb when the bottleneck is understanding the rendered graph. Buy both only when those two jobs both exist.
What are the best Link Whisper alternatives?
Rank Math for WordPress suggestions, InLinks for entity linking, and Screaming Frog or Sitebulb for audit. Ahrefs and Semrush are alternatives for reports, not for in-editor insert.
Can Ahrefs replace a crawler for internal links?
No as the only source. Yes as a second view of internal links already in the Ahrefs index. Recrawl locally before template changes.
How many internal links should a page have?
There is no universal number in this article. Set a floor for important templates (the worked example used 8 inlinks) and a reject path for exact-match spam. Measure orphans and click depth instead of chasing a magic count.
Do we need InLinks for a simple blog?
No. InLinks is for entity-aware linking and schema consistency. A simple blog needs a crawl and disciplined hub links.
When is Rank Math Free enough?
When metadata plus light suggestions are the only WordPress needs and a separate crawler already audits orphans. Buy Pro for features you will actually toggle.
Should we automate anchor insertion?
Only into drafts, with a human reject step, and with a recrawl. Unattended insertion is the failure mode that creates footprints.
About the Author

Helping businesses leverage automation for operational efficiency.
