Free tool
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.
Result
Paste a page list and some body text, then run the check. The output appears here.
Methodology 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.
- Google Search: crawling and indexing fundamentals — how pages are discovered, and why orphans are a problem
- Google Search: creating helpful, reliable, people-first content — why anchor text should describe the destination
Questions
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