🔍 SEO

Internal vs External Link Counter

Paste a page's HTML and its base URL to see exactly which links stay on your domain and which point elsewhere.

Total Links: 0 Internal: 0 External: 0 Other: 0

Paste HTML above to classify its links.

About the Internal vs External Link Counter

This tool runs pasted markup through the browser's own DOMParser, pulls every <a href> it finds, then resolves each href against the supplied base URL using new URL(href, base), the same resolution logic a browser uses to turn a relative path like /about into a full address. A link counts as internal when its resolved hostname matches the base domain (ignoring a leading "www."), external when it points at a different hostname, and "other" when it's a mailto:, tel:, javascript:, or anchor-only # link, since none of those describe a page on any domain and lumping them into internal or external would skew the count.

Why internal links carry real SEO weight

Every internal link is both a discovery path for crawlers and a small transfer of authority from the linking page to the linked one, a page buried five clicks deep from the homepage with almost no internal links pointing at it is genuinely harder for both users and search engines to find than one linked prominently from several other pages. A page's internal link count from this tool is a rough proxy for how well-connected it is within a site's own structure, a page turning up with very few internal links pointing at it, especially one meant to rank for something competitive, is often worth linking to more deliberately from related content elsewhere on the site.

www and non-www are treated as the same host on purpose

Technically, example.com and www.example.com are different hostnames, and without a proper redirect configured between them, a browser or crawler would treat them as entirely separate. This tool strips a leading "www." before comparing hosts because that's almost always the intended behavior for a link-classification check, a site with both versions properly redirecting to one canonical version wants links to either treated as internal, not artificially split into two different domains for counting purposes.

Why anchor and protocol links get their own bucket

An anchor-only link like #pricing resolves to the exact same URL as the current page, technically internal by hostname, but counting it alongside a real internal link to a different page would overstate how many distinct pages a piece of content actually links to. mailto: and tel: links don't point at a webpage at all, they trigger an email client or phone dialer, neither internal nor external in any meaningful SEO sense, which is why all of these get grouped into "other" instead of skewing either main count.

Pairing this with a nofollow check

This tool classifies where a link points, not what attributes it carries, an external link with no rel="nofollow" or rel="sponsored" attribute passes full authority to whatever it links to by default, which matters for paid placements, affiliate links, or user-generated content where that's not the intended behavior. Running the same page's HTML through the Nofollow/Sponsored Tag Finder alongside this tool gives the fuller picture, which external links exist, and separately, which of those are actually marked to prevent passing SEO value.

A quick audit for one page at a time

Pasting a page's HTML and its own base URL in here surfaces the actual link balance on that page, a content page that's almost entirely external links out with barely any internal links back into the rest of the site is a common finding on a blog post written in isolation from the site's overall structure. The per-link list below the summary counts shows exactly which href resolved to which bucket, useful for spotting one specific link that got miscategorized, an internal link accidentally written as a full external-looking URL instead of a relative path, for instance, rather than only seeing the totals.

Frequently Asked Questions

Why do internal links matter for SEO?

Internal links help crawlers discover pages and pass a portion of authority from the linking page to the linked one. A page with very few internal links pointing at it is harder for both crawlers and users to find, even if it's technically part of the site.

Why does this tool treat www and non-www as the same domain?

Technically they're different hostnames, but for a link-classification check, treating them as equivalent matches the intended behavior of a properly configured site where one redirects to the other. This tool strips the leading "www." before comparing hosts to reflect that.

Why are anchor links like #pricing counted as "Other" instead of internal?

An anchor-only link resolves to the same page it's already on, counting it as a real internal link to a distinct page would overstate how many different pages a piece of content actually links to. It's grouped separately to keep the internal count meaningful.

Does this tool check whether external links have a nofollow attribute?

No, it classifies where each link points, not what rel attributes it carries. Pairing this with the Nofollow/Sponsored Tag Finder gives the fuller picture, which links are external, and separately, which of those are actually marked to prevent passing SEO authority.

What's a common problem this tool helps catch?

A content page with almost entirely external links and very few internal links pointing back into the rest of the site, common on a blog post written in isolation from the site's broader structure. The per-link list also helps spot a link miscategorized due to a formatting mistake, like an internal link accidentally written as a full external-looking URL.