Find the internal links a page is already asking for.

Most drafts mention other pages on your site without linking to them. Paste your page list and the text of one page, and the checker shows every place the wording lines up with something you have already published — plus the pages it never mentions at all.

  • Suggests anchor text from your own sentences
  • Skips text that is already inside a link
  • Flags over-linking to the same target
  • Lists pages the text cannot reach

Runs entirely in your browser. Nothing you paste or type is sent to Gadex or stored anywhere. Close the tab and it is gone.

One page per line, as URL | Page title. A bare URL or a bare title on its own line works too. Duplicates are ignored.

HTML or plain text. Up to roughly 200,000 characters.

Given, it is excluded from the list so the page cannot suggest linking to itself.

Nothing leaves your browser. Results appear beside this form.

Paste a page list and some body text, then run the check. The output appears here.

Exactly what this tool checks, and what it cannot tell you

How pages are turned into search phrases

Each title in your list is lower-cased, stripped of common stopwords (the, and, for, how, your, best, and about a hundred more), and reduced to its content words. From those we build the full title phrase, every two- and three-word run inside it, and any single word of six characters or more. Plurals are folded to singulars so "internal links" and "internal link" match each other.

How the body text is scanned

The body is tokenised once into words with their character positions. We then walk the text from left to right and, at each position, try the longest phrase first (four words down to one). The first hit wins and the scan jumps past it, so a three-word match is never also reported as three separate one-word matches.

Text already inside a link is excluded

If you paste HTML, it is parsed in the browser and every character sitting inside an anchor element is recorded. Matches that overlap those ranges are counted and reported as a number, not as suggestions. This is the difference between a short usable list and a page of noise. Paste plain text and this step is skipped, because there is nothing to detect.

How confidence is decided

Three words or more is high, two words is medium, a single word is low. A match on the complete content phrase of a title is raised one level. That is all confidence means here: match length and specificity. It is not a judgement about whether the link is a good idea.

Over-linking and orphan candidates

When one target URL matches more than three times in a single page, it is flagged — link to it once, in the strongest sentence, and drop the rest. Pages in your list that produced no match at all are listed separately: this page cannot link to them without new wording, which usually means the title is vague or the topic genuinely does not belong here.

What this cannot do

This is string matching, not semantic understanding. It has no idea what your pages are about, only what their titles say. It will miss synonyms, it will occasionally suggest a link on a sentence where the phrase means something else entirely, and it cannot tell you whether a link helps the reader. Every suggestion needs a human to read the sentence before it ships.

Sources behind these rules

The checks on this page are our reading of how search and answer engines describe their own behaviour. These are the primary documents behind them — read them rather than taking our word for it. Platforms revise this guidance without notice.

About this tool

Is anything I paste sent anywhere?

No. The whole thing runs in your browser as ordinary JavaScript. There is no request, no logging and no storage. Close the tab and the input is gone. You can check by opening your browser network panel while you run it.

Should I paste HTML or plain text?

HTML if you have it. It lets the checker see which phrases are already linked and leave them out. Plain text works fine, but every match will look like an opportunity, including the ones you have already handled.

How many pages can I paste?

Up to 300 lines in the page list and about 200,000 characters of body text. Beyond that the tool tells you it has trimmed the input rather than freezing the tab. For most sites the useful list is the 30 to 80 pages in the same topic area, not the whole sitemap.

Why did an obvious link not show up?

Because the wording did not match. If your page is titled "Programmatic SEO at scale" and the draft says "publishing hundreds of pages automatically", there is no shared phrase, so nothing is found. Either reword the sentence or accept that this one needs a human.

Do I have to add every suggestion?

Definitely not. A page stuffed with internal links reads badly and dilutes the ones that matter. Treat the output as a shortlist, take the handful that genuinely help the reader, and ignore the rest.

Want the link plan built for you, page by page?

This checker works on one page at a time using the titles you paste. Gadex runs the same job across a whole site: which pages exist, which ones should support which, and what to publish next to close the gaps.

Get a free competitor search gap report