Internal link checker: audit every link and anchor on a page
Enter any page URL. MrKeyword fetches the live HTML and lists every <a> link with its anchor text and rel attribute, then checks each internal target live and flags broken (4xx) and redirected internal links, nofollow on your own pages, generic and empty anchors.
Free, no account needed. MrKeyword fetches the page live and shows only what it found.
An internal link checker reads one page, lists every link on it with its anchor text, and tests the links to your own site. Internal links are how Google and Bing find your pages and judge which ones matter, and the anchor text tells them what each target is about: “boiler repair in Leeds” helps the page it points to; “click here” does not.
The checker flags six things. Broken: an internal link that answers with a 4xx error such as 404. Redirects: the link works but goes through a redirect, so it should point at the final address. nofollow: a link to your own page marked rel="nofollow", which asks search engines not to follow it. Generic text: anchors like “click here”, “read more” or “learn more”. No anchor text: a link with no words at all. Image, no alt: a linked image with no alt text, which leaves the link without a name.
Links to other sites are listed and counted, but only internal targets are checked; to test external links too, use the broken link checker. For how to plan links across a site, read our internal linking guide, and to find pages no link reaches, see orphan pages.
In the result
Clear answers, with the reason shown.
Every link, listed
Anchor text and rel read from the live page.
Each <a href> in the server HTML, internal or external, with its anchor text (or the alt text of a linked image) and its rel attribute, problems first.
Up to 500 links per page
Internal and external counted
Internal targets checked
Live status for your own pages.
Up to 50 different internal addresses are requested live, eight at a time within about 45 seconds, and each answer is shown with its HTTP status and where a redirect ends.
4xx errors and redirects flagged
nofollow, generic and empty anchors named
Worked example
A boiler repair page with six internal link problems, audited.
The fictional northwind-plumbing.example has a boiler repair page that several people have edited over the years. It links to the servicing page, an old offer, the price list at its old address, the contact page (marked nofollow by a plugin), a blog post behind the words “click here”, the home page through a logo with no alt text, the emergency callout page through a phone icon with no words, and one outside heating guide. This is what the checker shows for https://northwind-plumbing.example/boiler-repair:
Example result for a fictional website (northwind-plumbing.example). It is produced by the checker's own code from the setup described above; run the checker for your own pages.
Six fixes cover this page. The offer link points at a page that was deleted, so link the words to the current /boiler-service page or add a 301 from the old address. The price list link still works but goes through a redirect, so point it straight at /prices/. Remove rel="nofollow" from the contact link: it is your own page and you want it crawled. Rewrite “Click here” as “how to bleed a radiator”, so the anchor says what the post is about. Give the linked logo alt="Northwind Plumbing home", otherwise the link has no name, and give the phone icon link visible words such as “24-hour emergency callout”. The outside guide is listed but not checked; test it with the broken link checker. Our internal linking guide explains how to choose which pages to link from.
Reading the result
How do you read the internal link checker result?
The counts row
How many links the page has, how many point at the same site and how many elsewhere, how many internal targets answered the live check, and how many links have at least one flag.
The link table
One row per link, problems first: internal or external, the address (with “→” and the final address when it redirects), the anchor text with any rel attribute under it, and the result with the HTTP status from the live check.
The findings
One line per problem type. Broken links, links with no anchor text and linked images with no alt text are Problems; nofollow and generic anchors are Fixes; redirects are Notes. Links that timed out or were over the 50-target limit are counted as not checked, never as broken.
Common errors
What are the most common internal link problems?
Links to deleted pages
A page was removed or renamed and the links to it were not updated. Link to the new page, or 301 the old address so every link to it works.
Links to old addresses
http:// links, missing trailing slashes or old slugs all cost a redirect hop. Link to the final address.
nofollow on your own pages
Often added by a plugin or a template for login, contact or cart links. Remove it; use noindex if a page should stay out of search.
“Click here” and “read more”
Common in templates and blog teasers. Use the title or topic of the target page as the anchor.
Icon and logo links with no text
An image link with no alt text is an empty link. Add alt text that names the destination, or a visually hidden label.
When to check
When should you check internal links?
Check a page's internal links whenever addresses change or a template that outputs links is edited.
After moving or merging pages
Every page that linked to the old address now shows a 404 or a redirect. Check the pages that linked to it most.
After a menu or template change
New menus, footers and buttons often bring icon links with no text, generic “learn more” buttons and plugin-added nofollow.
Before publishing an important page
Make sure it links to the pages you want to rank, with anchor text that names them.
When a page loses rankings
Check the pages that should link to it: a removed or broken link can cut the path Google used to find it.
Yes. Search engines find most pages by following links, and they use internal links and their anchor text to understand what each page is about and how important it is on your site. Linking from strong, related pages to the pages you want to rank is one of the few ranking factors fully in your control.
What is good anchor text?
Short words that say what the target page is, such as “boiler repair prices” or “our internal linking guide”. Avoid generic phrases like “click here” or “read more”, and avoid stuffing the exact same keyword into every link. Our anchor text guide has examples.
Should internal links be nofollow?
Almost never. rel="nofollow" asks search engines not to follow the link, which is meant for links you do not vouch for, such as paid or user-submitted links. On links to your own pages it only makes those pages harder to discover. Leave them followed and use noindex or robots.txt to keep pages out of search.
How many internal links should a page have?
There is no fixed number. Google says to keep the number of links on a page reasonable, and each link shares the page's attention with the others, so link where it helps a reader. This checker lists up to 500 links per page and checks up to 50 different internal targets live.
Why is a link I can see on my page not listed?
The checker reads the HTML the server sends. Links added later by JavaScript, such as menus built in the browser or content loaded after the page opens, are not in that HTML, so they are not listed. Search engines that do not run your JavaScript will not see those links either.