Enter a URL
Links Counter scans a web page and counts every hyperlink it finds in the rendered HTML. You give it a URL, it fetches the page, parses the markup for <a href="..."> elements, and returns a breakdown of how many links exist and what kind they are. Instead of opening "View Source" and scrolling through hundreds of lines of markup looking for anchor tags, you get the count and the categorization in one pass: total links, internal links pointing to the same domain, external links pointing off-site, and often a split between dofollow and nofollow attributes.
It's a small, single-purpose tool, and that's the point. Nobody wants to fire up a full crawler for a five-second question like "how many outbound links does this article have?" Links Counter answers that specific question fast, without an account, a paid plan, or a crawl budget to manage.
https:// prefix. The tool needs the exact page, not just a domain — a homepage and a blog post on the same site will have completely different link counts.Search engines discover and rank pages largely by following links. The number and quality of links on a page tells you (and, in aggregate, tells a crawler) a lot about how that page fits into your site's architecture and how much authority it's likely to pass along.
A few concrete reasons link counts are worth tracking:
rel="nofollow" or rel="sponsored" attribute is a compliance check as much as an SEO one.Not every link on a page behaves the same way, and a useful link counter separates them rather than dumping one flat number. Here's the breakdown most tools in this category use, and why each type matters:
| Link Type | Definition | Why It Matters |
|---|---|---|
| Internal link | Points to another page on the same domain | Distributes authority across your own site, guides crawlers to deeper pages, helps users navigate |
| External link | Points to a different domain | Signals trust/citation when relevant, but too many can leak authority or look spammy if irrelevant |
| Dofollow link | No rel attribute blocking crawl equity, follows normally | Passes ranking signal to the destination |
| Nofollow link | Carries rel="nofollow" | Tells search engines not to pass ranking credit — standard for ads, untrusted UGC |
| Sponsored link | Carries rel="sponsored" | Google's specific tag for paid/affiliate placements, introduced to separate them from generic nofollow |
| UGC link | Carries rel="ugc" | Used for user-generated content like forum posts or comments |
| Anchor/jump link | Points to an ID on the same page (e.g. #section-2) | Navigational only, doesn't affect authority distribution the same way |
A page that mixes all of these is normal. A blog post might have a dozen internal links to related articles, two or three external citations, one nofollowed affiliate link, and a handful of jump links in a table of contents. What you're checking for isn't a single "correct" number — it's whether the mix matches your intent for that page.
People reach for a link counter in a handful of recurring situations:
Under the hood, a link counter does two things: it fetches the raw HTML of a URL (typically with a server-side HTTP request, similar to what curl would return), and then it parses that HTML looking for anchor tags. The parsing step matters more than it sounds — a naive regex-based approach can miscount links inside comments, script tags, or malformed HTML, while a proper DOM parser builds an actual tree of the document and only counts genuine <a> elements with a valid href.
Once the anchors are extracted, the tool classifies each one:
rel attribute to decide dofollow vs. nofollow vs. sponsored vs. ugc.href starts with #, mailto:, tel:, or javascript: to separate navigational, email, phone, and script links from normal page-to-page links.This is functionally the same first step a search engine crawler takes when it processes a page — extract every link, note its attributes, and queue up what to crawl next. The difference is scale: a search engine does this across billions of pages and builds a link graph from it, while a link counter does it for one page on demand and hands you the summary.
There's more than one way to answer "how many links does this page have." Here's how the options compare:
| Method | Speed | Categorizes link type? | Best for |
|---|---|---|---|
| Links Counter (this tool) | Seconds | Yes (internal/external, dofollow/nofollow) | Quick one-page checks, no setup |
| Browser View Source / DevTools | Manual, slow for large pages | No, manual reading required | Spot-checking a single suspicious link |
| Browser "Ctrl+F" on rendered page | Fast but unreliable | No | Rough visual estimate only |
| Desktop crawlers (e.g. Screaming Frog) | Minutes to hours depending on site size | Yes, plus much more (status codes, redirects) | Full-site audits, not single-page checks |
| Custom script (Python + BeautifulSoup) | Instant once written | Fully customizable | Developers who need repeatable automation |
Links Counter sits in the gap between "eyeballing the source code" and "running a full crawler." If you need one page checked right now and don't want to install anything, it's the fastest path. If you need to audit thousands of pages with redirect chains, status codes, and depth analysis, that's a job for a proper crawler.
A single-page link counter is the wrong tool if you're trying to answer site-wide questions: how many pages link to a given URL, which pages have no internal links at all, or where redirect chains are wasting crawl budget. Those questions need a crawler that visits every page on the site and builds the full link graph, not a per-page count. Use Links Counter for the quick check, and escalate to a site crawl when the question is structural rather than page-specific.
Once you have the numbers, here's what to actually do with them:
rel="sponsored" (or at minimum nofollow). Search engine guidelines are explicit about this, and a link counter is a fast way to spot-check compliance.It's worth being upfront about what a browser-based link counter can't do:
There's no single correct number of links a page should have, and anyone who gives you a fixed target (like "always have exactly 5 external links") is oversimplifying. Context drives the right count far more than any rule of thumb.
A few reference points that are more useful than a flat number:
The more useful exercise is comparing a page's link count against its own history or against similar pages on the same site, rather than against some external benchmark. If a page that historically had fifteen internal links suddenly drops to two after a template change, that's the signal worth investigating — not the absolute number itself.
No. It counts and categorizes links based on their href and rel attributes, but it doesn't follow each link to check the response code. If you need to know which links are broken, that's a separate check — a dedicated broken-link or dead-link checker follows each URL and reports its status.
Two common reasons: some links are added by JavaScript after the initial page load and won't show up in a raw HTML fetch, or the page has hidden links (in dropdown menus, mobile navigation, or collapsed accordions) that aren't visually obvious but exist in the markup.
They're generally the same thing — links pointing to a domain other than the one you scanned. Some tools use one term, some use the other; the underlying logic (comparing the link's domain to the page's domain) is identical.
No. The tool fetches the page as an unauthenticated visitor, the same way a search engine crawler or a first-time reader would. Pages behind a login wall, paywall, or IP restriction can't be scanned this way.
Not inherently, but relevance matters more than raw count. A navigation-heavy page (like a sitemap or category page) naturally has many links, and that's expected. A single article stuffed with dozens of loosely related internal links, purely to boost link count, is a weaker practice than a page with a handful of genuinely useful related links.
Yes — counting them is exactly how you verify they're tagged correctly in the first place. If an affiliate or sponsored link is missing its nofollow/sponsored attribute, the only way to catch that is by checking the full link list, nofollow included.