Single URL • Internal vs external + rel flags

Internal vs External Links Checker

Paste a page URL — we’ll extract all <a href> links, classify internal vs external, and show nofollow/ugc/sponsored patterns.

Page URL
Tip: “Internal” is based on the site’s apex domain (www ignored). Subdomains usually count as internal.

Results

Type Link Rel Target Flags
Run an analysis to see results here.
“Flags” show nofollow / ugc / sponsored on the link.

Quick interpretation

External links help users and references. Internal links power crawl paths and authority flow.

  • Internal links point to the same site (apex domain match)
  • External links point to other sites
  • Nofollow tells bots not to pass signals (depends on crawler)
Link profile

Internal vs external links: see your page structure fast

Too few internal links can hurt crawl depth. Too many external nofollows can look unnatural. This tool gives you a clean snapshot of what’s on the page.

What we measure

  • Internal vs external split
  • Unique links vs total
  • Rel flags: nofollow / ugc / sponsored
  • Special links: mailto, tel, javascript, hash

FAQ

How do you decide whether a link is internal or external?

We compare the apex domain of the analyzed page to the apex domain of each HTTP(S) link. We ignore www and use a practical “same site” heuristic, so blog.example.com and www.example.com usually count as internal. If the link’s apex domain differs, it’s marked as external.

This is designed for speed on shared hosting. It’s not a full Public Suffix List implementation, but it matches typical SEO expectations for most sites.

Do subdomains count as internal?

Most of the time, yes. If the apex domain matches, the tool treats subdomains as internal (for example, shop.example.com is internal for example.com).

If you work with multi-tenant platforms where subdomains represent different entities, interpret this accordingly — the checker’s goal is a fast “same site vs other site” split.

Why do some links show as “Other” instead of internal/external?

Only HTTP(S) URLs can be classified by hostname. The tool labels non-web links separately, including:

  • mailto: email links
  • tel: phone links
  • javascript: pseudo-links
  • fragment-only links like #section
  • malformed URLs that can’t be parsed into a host

Those aren’t automatically “bad” — they’re just not standard web URLs.

How do you handle relative URLs and redirects?

We fetch the page with manual redirect following (by Location) up to your hop limit. Then we resolve every link against the final URL after redirects, so relative paths like /about become absolute URLs.

This matters because the “base” can change after redirects (HTTP→HTTPS, non-www→www, trailing slash rules, etc.).

Is “nofollow” a problem? What about UGC and sponsored?

Nofollow isn’t automatically bad. It’s commonly used for ads, affiliate links, user-generated links, or untrusted references. The tool highlights it so you can spot patterns quickly.

We also detect typical rel tokens:

  • rel="ugc": user-generated content (comments, forums)
  • rel="sponsored": paid placements, sponsorships, ads

Use the report to confirm consistency (e.g., sponsored links should usually be labeled properly).

Does the tool count unique links, and what is “unique” here?

Yes. “Unique” means unique by URL after basic normalization (we ignore fragments like #reviews). So https://example.com/page#A and https://example.com/page#B count as one unique URL.

This helps you see how repetitive navigation/footer links are versus the real variety of destinations on the page.

Why can the link list be “truncated”?

Large pages can contain thousands of links. To keep the UI responsive, the tool caps the number of rows returned to the front-end (default is typically 200).

If the cap is hit, you’ll see an issue like link list truncated. Increase max_links (your backend supports up to 1000) and rerun.

Why might results look incomplete or different from what I see in the browser?

This checker parses the HTML returned by a server request. Some sites add or rewrite links via JavaScript after the page loads (menus, injected widgets, consent banners). Those links may not appear in the fetched HTML.

If you suspect JS rendering is the reason, compare the “view source” HTML to the live DOM in DevTools — the tool is designed for server-side HTML analysis.