Internal Link Checker

Enter a URL and the crawler maps the internal link graph of up to 200 pages: how many pages link to each URL, how many links each page sends out, how many clicks each page sits from the start, and which pages nobody links to — orphans that only the sitemap knows about. The table sorts by incoming links so the pages your own site treats as unimportant are at the bottom. Download as CSV. Nothing is stored beyond 24 hours.

HEAD request per unique external URL, up to 100. Untick for a faster crawl.

The crawl runs on our server: one request per second, robots.txt obeyed, no JavaScript. Only the start URL and this summary are kept, for 24 hours.

How it works

1. Our crawler (InsighthackerzBot, one request per second, no JavaScript) fetches robots.txt and any sitemaps it declares, then starts at the URL you give and follows internal links breadth-first — same host only, www and the bare domain counted as one site
2. Limits: 50, 100 or 200 pages per run, 2 MB per page, 15 s per request, 5 redirects per URL; URLs your robots.txt disallows for our user-agent are skipped and counted, pages marked nofollow are fetched but their links are not followed
3. Every HTML page goes through the same on-page engine as the on-page SEO checker: title, description, H1, canonical, robots directives, word count, images without alt — the warnings and fails are kept per page, the HTML is not
4. Internal links found broken during the crawl (4xx, 5xx, timeouts) are listed with the pages that link to them; external links are checked with HEAD only (one GET when the server refuses HEAD), at most 100 per run, nofollow links excluded
5. The result is one job on our own server: it holds only the start URL and the summary, expires after 24 hours and is never used for anything else
6. Incoming links count distinct crawled pages that link to a URL (one page linking three times counts once); depth is the shortest link path from the start URL, sitemap-seeded pages start at depth 1; an orphan is a crawled page with zero incoming links other than the start page

About internal links, click depth and orphan pages

Internal links are the one ranking signal entirely under your control. They tell crawlers which pages exist, tell search engines which pages you consider important, and pass whatever authority the linking page has. A page with many internal links from relevant pages is easy to find and easy to rank; a page with none is invisible until someone links to it from outside. The checker counts incoming links per page and sorts by that number, so the bottom of the table is where the neglected pages are.

Click depth is how many links a visitor — or Googlebot — has to follow from the home page to reach a page. Depth 1 is linked from the home page; depth 3 or more is where crawl frequency and perceived importance drop off on most sites. Deep pages are not wrong, but a product or a service page at depth 4 is usually a navigation problem, not a content one. The distribution chart shows how the site is shaped: a wide shallow site and a narrow deep one crawl very differently.

Orphan pages are pages the crawl found — via the sitemap, or because they were the start URL's redirect target — but that no crawled page links to. They exist, they may even be indexed, but the site itself does not point at them. Common causes: pages removed from navigation but never deleted, landing pages built for a campaign, old versions after a redesign. Each one either deserves a link or deserves to be removed; leaving it in the sitemap alone keeps it in a limbo where it is discovered but never endorsed.

A 200-page crawl sees a small site whole and a large site partially. Incoming-link counts on a partial crawl are lower bounds — pages outside the crawl may link too — and orphans on a partial crawl may just be pages whose linking pages were not reached. Read the numbers relative to each other, and rerun from a different start URL if a section looks suspiciously thin.

Frequently asked questions

How many internal links should a page have?
There is no number. Google has said it no longer enforces the old '100 links per page' guideline, and the checker does not set a threshold. What matters is that important pages have more incoming links than unimportant ones and that nothing you care about has zero. Use the sorted table to check that ordering, not a target count.
What is an orphan page?
A page that no other crawled page links to. The crawler finds it only because the sitemap listed it or because a URL redirected there. Orphans are discovered late, crawled rarely and carry no internal authority. Either link to them from a relevant page or, if they are obsolete, remove them and let them 404 or redirect.
Why is my home page at depth 0 and my blog posts at depth 3?
Depth is the shortest path of links from the start URL. Home → blog index → page 2 of the index → post is three clicks. Pagination is the usual cause; category pages that link to every post directly, or a 'latest posts' block on the home page, bring most posts to depth 2 without any new content.
Does the checker count navigation links?
Yes — every <a href> in the HTML, including header, footer and sidebar links, once per linking page. Nofollow links are counted for the linking page's outgoing total but do not add to the target's incoming count. Links inserted by JavaScript are not seen.
Why do incoming links differ from what my SEO tool says?
Three usual reasons: the other tool crawled more pages (this one stops at 200), it counts links rather than linking pages (a page with the same link in header and footer counts once here), or it renders JavaScript and sees links this crawler does not. None of these change the ranking of pages relative to each other much.
Can I crawl a subfolder only?
Start from the subfolder's index page. The crawler still follows links anywhere on the same host, so it will leave the folder if the pages link out of it, but the depth numbers will be relative to your start URL, which is often what you want when auditing a section.
SEO AuditEnter a URL and the crawler checks up to 200 pages the way a search engine's first pass would: status codes, noindex and canonical directives, missing or duplicate titles and descriptions, missing H1s, thin pages, images without alt, redirect chains, broken links, orphan pages, robots.txt and sitemap coverage. Every page gets the same on-page checks as the single-page checker; the report groups them by issue and by page. No score, no fabricated priorities — findings with counts. Download as CSV. Nothing is stored beyond 24 hours.Broken Link CheckerEnter a URL and the crawler follows internal links (up to 200 pages) and reports every link that fails: 404s and other 4xx, 5xx, timeouts and DNS errors — internal links found during the crawl, external links checked with a HEAD request (up to 100). Each broken link comes with the pages that point to it and the anchor text, so you can fix the link or the page, not just know that something is wrong. Download as CSV. Nothing is stored beyond 24 hours.Sitemap GeneratorEnter a URL and the crawler follows internal links (up to 200 pages), keeps only the pages a search engine could index — status 200, no noindex, canonical pointing at itself — and writes a plain XML sitemap you can download or copy. It also reads the sitemap the site already publishes and shows both gaps: indexable pages missing from it, and sitemap URLs the crawl never reached. No lastmod, priority or changefreq are invented. Nothing is stored beyond 24 hours.On-Page SEO CheckerEnter a URL and, optionally, a target keyword. The checker fetches the page as Chrome and as Googlebot and reports what the raw HTML says: title and meta description with character and pixel length, robots meta and X-Robots-Tag, canonical, H1 count and heading outline with skipped levels, image alt coverage, internal and external links and nofollow share, Open Graph and Twitter card, hreflang validity, JSON-LD types, lang, viewport, charset, word count and keyword density and placement. No score — a list of what passed, what to look at and what is only information. Nothing stored.