Published: May 13, 2021 Updated: Sep 3, 2026

Link Analyzer Free Tool


Enter a URL



About Link Analyzer

What This Tool Actually Does

The Link Analyzer on this page is a page links extractor with a narrow, precise job. You give it one URL. It fetches the raw HTML of that page from this server, reads every <a> tag it can find in that raw source, removes duplicate href values, and sorts what remains into two tables. One table holds internal links, meaning links that point back to the same website. The other table holds external links, meaning links that point to a different website. Each row in either table carries a simple label. The label is either NoFollow or DoFollow.

The tool performs only this single action. The tool does not render the page like a browser would. It does not execute JavaScript. It does not look at anchor text. It does not check whether any of the links are broken. It does not build a backlink profile for your site. It performs one server-side fetch of a single page's HTML, and it lists what it finds. The output is a set of four summary badges, two link tables, and a CSV export button. You can use it as a website link analyzer online whenever you need a fast inventory of the outbound hrefs on a specific URL.

The live test run for this rewrite used http://example.com as the input. That page contains exactly one link, which points to https://iana.org/domains/example. The tool reported Total Links 1, Internal Links 0, External Links 1, and NoFollow Links 0. The external table showed the single link with a DoFollow label. The same test against https://www.wikipedia.org produced blank totals, a NoFollow count of zero, and two empty tables. Wikipedia answers that request with a forbidden status because the fetch carries no user agent, and the tool has no error message for that case. You get empty tables and no explanation.

How to Use This Tool

  1. Open the tool page. Find the input box above this article, on the Link Analyzer page itself.
  2. Enter a full URL. Type or paste the address of the page you want to analyze, including the domain and usually the path.
  3. Let the browser add the scheme. If you type a bare domain like example.com, the page adds http:// for you. If you include https:// yourself, the tool keeps it.
  4. Submit the form. Click the button that sends the URL to the analyzer and wait for the fetch to finish.
  5. Read the four badges. Check Total Links, Internal Links, External Links, and NoFollow Links at the top of the results.
  6. Export or rescan. Use the CSV button to download the same rows as a file, or click Try New URL to run another page.

The form contains only the required input fields. It has one text field and one submit button. If you enter a string with no dot in it, the page refuses it. If the URL fails validation, you see the message Input Site is not valid!. If the fetch succeeds, the results appear below the form in a fixed order. First come the badges, then the internal table, then the external table, then the export control.

Reading the Four Badges and Two Tables

The summary row is the first thing you see after a successful scan. It contains four colored badges, each with a number. Total Links counts every unique href that the tool accepted from the page's HTML. Internal Links counts the subset that point back to the same host. External Links counts the subset that point elsewhere. NoFollow Links counts the rows in both tables that carry the nofollow flag.

The two tables share a structure. Each has three columns. The first column is a simple sequence number. The second column holds the link's URL as it appeared in the page source. The third column holds either NoFollow or DoFollow. The internal table carries the heading Internal Links (Links inside the current website). The external table carries External Links (Links going to outside websites). There is no anchor text column, no position column, and no HTTP status column. What you see is what the raw HTML contained.

Badge Meaning Example value
Total Links Unique hrefs found in raw HTML 1
Internal Links Same host or single-slash path 0
External Links Different host or protocol-relative 1
NoFollow Links Exact rel="nofollow" rows 0

That table comes from the live example.com run. The single link on that page is external, so the internal count is zero. The nofollow count is zero because the link carries no rel attribute at all. The four badges always appear in that order, and the numbers in the two tables always add up to the total.

The way the tool decides internal versus external follows a fixed rule. A link is internal when its host equals the page host, with or without the www. prefix. A link that starts with a single slash, like /about, is also internal. A link is external when its host differs from the page host or when it begins with //, which is the protocol-relative form. That rule means https://example.com/page on example.com counts as internal, while //other-site.com counts as external.

Link form Example Classification
Same host https://example.com/about Internal
Single slash /contact Internal
Different host https://other.com/ External
Protocol-relative //cdn.other.com/x External
Special scheme mailto:a@b.com Neither list

Links in that last row fall outside both categories. A mailto: address, a javascript: call, a tel: number, or a relative path like page.html does not fit either category. The tool adds those to the Total count only. They appear in neither the internal table nor the external table. That behavior is easy to miss if you scan a page full of email links and wonder where they went.

The nofollow flag follows a comparably strict rule. The tool lower-cases the entire rel attribute value and compares it as a whole string. Only the exact value nofollow produces a NoFollow label. Any other value, including an empty rel, noopener, sponsored, ugc, or the combined nofollow noopener, produces a DoFollow label. This exact-match comparison is the single most important detail on this page, and it drives several consequences you should understand before you trust the output.

Correcting the Old Description of This Tool

The previous version of this page made claims that the tool's own source code contradicts. This section names those claims and states what the tool actually does, based on the code and the live tests. The old copy said the tool sorts links by whether a link carries rel=nofollow, rel=sponsored, or rel=ugc. It does not. The comparison is exact-match against the single string nofollow. A link with rel="sponsored" receives a DoFollow label. A link with rel="ugc" receives a DoFollow label. A link with rel="nofollow noopener" receives a DoFollow label, because the full string does not equal the short string.

The old copy said the tool reports what anchor text a link uses. It does not. No anchor text appears anywhere in the output, not in the tables and not in the CSV. The old copy said the tool reports where on the page a link sits. It does not. There is no position column, no line number, and no paragraph index. The old copy described the tool as finding every hyperlink in the rendered HTML. It does not render anything. It fetches raw source with no user agent and no JavaScript execution, so any link that a script would inject into the DOM is invisible to this tool.

The old FAQ contained a question about the difference between a nofollow link and a sponsored link, and the answer implied the tool could tell them apart. It cannot. Both come back as DoFollow. The old FAQ also asked whether the scan detects broken links, and the answer did not mention that a blocked fetch produces blank tables with no message. When a site answers a forbidden status to a request without a user agent, the tool shows empty badges and empty tables. You receive no error text and no hint about what went wrong.

Old claim What the tool does
Detects sponsored and ugc Reports both as dofollow
Shows anchor text Shows URL only
Shows link position Shows sequence number only
Scans rendered HTML Scans raw HTML, no JavaScript
Explains blocked fetches Shows blank tables silently

Those corrections matter because the tool's value depends on knowing exactly what its labels mean. A DoFollow label on this page does not mean the link is good for SEO. It means the rel attribute did not equal the exact string nofollow. A blank table does not mean the page has no links. It means the fetch failed or the page truly had no qualifying hrefs, and the tool gives you no way to tell which case you are in.

The Rel Comparison Rule and Its Consequences in 2026

The exact-match comparison for rel values is the heart of this tool, and it collides with a change in how the web uses rel attributes. In September of 2019, Google announced that it would treat rel="sponsored" and rel="ugc" as signals for paid links and user-generated content respectively. The announcement came alongside the existing rel="nofollow" hint. From that point forward, many sites began using those two new values on their own or in combination with nofollow. The Link Analyzer was written against an older mental model where nofollow was the only flag that mattered.

The tool lower-cases the rel value and compares it to nofollow. That means a link marked rel="sponsored" is dofollow by this tool's definition. A link marked rel="ugc" is dofollow. A link marked rel="nofollow ugc" is dofollow, because the full string is longer than the comparison target. A link marked rel="ugc nofollow" is also dofollow. Only the bare six-letter string nofollow, with nothing before or after it, earns the NoFollow label.

You might wonder whether that matters in 2026. It does, because the three-value system from that 2019 announcement is now the normal way that large platforms annotate their outbound links. Wikipedia uses rel="nofollow" on its external links, so those would flag correctly if the fetch succeeded. Many forum systems use rel="ugc". Blog comment sections and sponsored post footers use rel="sponsored". A link audit tool free of charge that reports all of those as dofollow gives you a picture that diverges from how search engines read the same markup.

rel value on the page Label this tool shows What Google has said since then
nofollow NoFollow Treat as a hint
sponsored DoFollow Treat as a hint for paid links
ugc DoFollow Treat as a hint for user content
nofollow noopener DoFollow Nofollow plus a security flag
sponsored ugc DoFollow Mixed hints

You cannot use this tool to determine whether a page signals paid links or user-generated content to search engines. You can use it to find every link whose rel attribute is exactly nofollow, and you can treat every other link as unclassified by this tool. The DoFollow label is a statement about the comparison rule. Google has said since that change to the newer permanent code that all three values are hints, and none of them is a hard directive. A page might still pass authority through a sponsored link if Google chooses to ignore the hint.

The practical approach for 2026 is to read the NoFollow column as a narrow filter. When you export page links to CSV and sort by the NoFollow column, you are separating exact nofollow links from everything else. The everything else bucket contains clean dofollow links, sponsored links, ugc links, and combined values. If your goal is to find which outbound links carry any trust signal at all, you need a different tool or a manual look at the source.

What Counts as Unclassified

Several categories of links and attributes fall outside the tool's two tables and its single flag. The special-scheme and relative-path group is the first category. mailto: links, javascript: links, tel: links, and relative paths like page.html or ../about add to the Total count but appear in neither table. The tool has no column for them, so you see the total rise without seeing the individual entries.

Everything that is not an <a> tag with an href is in the second category. Image links wrapped in <a> tags count, because the anchor still has an href. But an <img> tag with a src and no wrapping anchor does not appear at all. <link> elements in the document head, such as stylesheets or canonical tags, do not appear. JavaScript-generated links do not appear, because the tool never runs the page's scripts. If a page builds its navigation menu entirely with client-side code, this tool sees none of it.

The third category is attributes that the tool ignores even when they are present. The target attribute, whether _blank or anything else, has no effect on the output. The title attribute has no effect. The anchor text between the opening and closing tags has no effect. The position of the link in the document has no effect. The tool reads one attribute, href, and one attribute, rel, and it ignores everything else on the anchor.

The fourth category is the failure state itself. When the fetch fails, the tool does not classify anything. It does not tell you that the site blocked the request, that the connection timed out, or that the server returned an error status. The summary badges show blank values except for NoFollow, which shows zero. Both tables are empty. You are left to infer that something went wrong, and the only way to confirm is to try the URL again or fetch it yourself with a browser.

Unclassified item Why it is absent What to use instead
mailto: and tel: links Neither internal nor external Manual review
JavaScript-injected links No script execution Browser DevTools
Anchor text Not read by the tool Anchor diversity tool
Broken link status No HTTP check Broken links checker
Blocked fetch reason No error message Try the URL yourself

That last row is the one that surprises most people. A site like Wikipedia returns a forbidden status to a request with no user agent, and the tool shows you an empty result as if the page had no links. The live test confirmed this behavior from the same server that runs the tool. You should treat any empty result with suspicion and verify the page manually before you conclude that it has no outbound links.

The CSV Export Format

The Export as CSV button sits below the two tables and builds a file called links.csv entirely in your browser. The file contains the same rows you see on screen, arranged in two sections. The first section holds the internal links, and the second section holds the external links. Each section repeats the three-column structure from the tables, with the column headers No., Link's URL, and NoFollow/DoFollow.

The export does not include the summary badges. It does not include the Total, Internal, External, or NoFollow counts. It does not include the input URL or the scan time. The file is a flat list of the links from both tables, with no section marker other than the repeated header row. If the internal table has three rows and the external table has five, the CSV has three rows under one header, then five rows under another header.

CSV column Content Example
No. Sequence number 1
Link's URL Full href string https://iana.org/domains/example
NoFollow/DoFollow Exact-match label DoFollow

The live test confirmed that the CSV export for http://example.com contains the single external row with the iana.org URL and the DoFollow label. The file format is plain comma-separated values, which opens in any spreadsheet application. You can use it to keep a record of a page's outbound links over time, to compare two versions of a page, or to feed the list into another analysis tool.

Because the CSV is built in the browser from the same rows that the tables display, it inherits all the tool's limitations. It contains no anchor text, no position data, no HTTP status codes, and no classification for sponsored or ugc links. A link that the tool labeled DoFollow because its rel value was sponsored exports as DoFollow. A blocked fetch would export a file with no link rows.

What This Tool Does Not Do

The Link Analyzer has a clear boundary, and respecting that boundary keeps you from misreading its output. The tool does not check whether any link on the page is broken. It never makes a second request to the linked URLs. It fetches only the page you give it, and it inspects the href strings without following them. A page full of links to dead sites will show all of them as healthy rows in the tables.

The tool does not analyze backlinks. A backlink is a link from another site pointing to your site, and discovering those requires crawling the rest of the web or querying a link index. This tool looks at the links on one page that you specify, which is the opposite direction. It is an internal external links checker for a single URL.

The tool does not read anchor text. The text between the opening and closing anchor tags is invisible to it. If you need to know which keywords anchor a page's outbound links, you need the Anchor Text Diversity Auditor, which is linked in the Related Tools section below. The tool does not report where on the page each link appears. There is no paragraph number, no section name, and no line count.

Task Does this tool do it?
List hrefs from raw HTML Yes
Separate internal and external Yes
Flag exact nofollow Yes
Export rows to CSV Yes
Detect broken links No
Find backlinks No
Show anchor text No
Run JavaScript No
Detect sponsored or ugc No

The tool also does not handle pages that require a login, pages behind a bot wall, or pages that serve different content to different user agents. Its fetch carries no user agent at all, which many modern sites treat as suspicious. The Wikipedia test is the canonical example. A request without a user agent gets a forbidden status, and the tool has no code path for showing you that error. You see blank tables and you have to figure out the cause yourself.

Limitations

The most visible limitation is the failure mode. When a site blocks the user-agent-less request, the tool shows empty badges and empty tables with no message. You cannot distinguish a blocked fetch from a page that genuinely has no links. The live Wikipedia test produced exactly this result, and the same server confirmed by hand that Wikipedia returns a forbidden status to a request without a user agent. Any page with similar bot protection will look empty through this tool.

The exact-match rel comparison is the second limitation, and it is baked into the code. Only the string nofollow earns the NoFollow label. The combined value nofollow noopener, which is extremely common because many content management systems add noopener automatically, comes back as DoFollow. Sponsored and ugc values come back as DoFollow. The tool cannot tell you which links carry any of the three trust signals that Google has recognized since that change to the newer permanent code.

Limitation Effect on your results
No user agent on fetch Many bot-protected sites return 403
No error message on failure Empty tables look like zero links
Exact-match rel check nofollow noopener reads as dofollow
No JavaScript execution Script-injected links are missing
Dedup by exact string Two URLs differing by a query count twice
Single page only No site-wide crawl

Deduplication happens by exact href string. That means https://example.com/page and https://example.com/page?ref=1 count as two separate links, even though they point to the same resource. A page with heavy query-string tracking can show an inflated total. The tool does not normalize URLs or strip fragments.

Long pages take as long as the download takes. The tool fetches the entire HTML document before it parses anything, and there is a 20-minute script limit on the server. A page with a very large HTML file or a slow response time can hit that limit and produce no output. The tool does not stream or paginate its results. It waits for the full document, then processes it in one pass.

Related Tools

When you need a count of links across a whole site rather than a single page, use the Links Counter, which tallies links for a domain you specify. When you want to know which of the links on your pages return errors, use the Broken Links Checker, which follows the URLs and reports HTTP statuses. When you need the anchor text that this tool deliberately ignores, use the Anchor Text Diversity Auditor, which focuses on the clickable text of your links.

The Live Example.com Run

The live test on http://example.com shows the tool's normal behavior. The page at that address is maintained by the Internet Assigned Numbers Authority and contains a single informational link. The tool reported Total 1, Internal 0, External 1, and NoFollow 0. The external table listed the one link with the URL https://iana.org/domains/example and the label DoFollow. The CSV export contained that same row.

That run shows the tool working as designed. The fetch succeeded, the parser found one anchor with a non-empty href that was not a hash, the deduplication left one row, the host comparison classified it as external, and the rel comparison found no rel attribute at all, which defaults to DoFollow. Every step of the pipeline produced a visible result.

The example.com page is a stable and minimal target. You can run the tool on it any time to confirm that the analyzer itself is functioning. If you get the same four numbers and the same single row, the tool is healthy. If you get blank tables, the problem is likely on the network path between this server and the target site.

The Wikipedia Blank Case

The live test on https://www.wikipedia.org produced the opposite outcome. The summary badges were blank except for NoFollow, which showed zero. Both tables were empty. The page itself contains many links, so the empty result did not reflect the actual content. The cause was the fetch. Wikipedia returns a forbidden status to requests that carry no user agent, and this tool sends no user agent.

The same server confirmed that status by hand, which rules out a transient network problem. The behavior is deterministic for Wikipedia and for any other site that rejects agent-less requests. Cloudflare-protected sites, many government portals, and some large media sites use similar policies. When you see empty results from this tool, your first hypothesis should be a blocked fetch, not a link-free page.

This case also explains why the tool has no error message. The code path for a failed fetch simply produces no rows. There is no branch that says Input Site is not valid! for a forbidden status, because the validation happens before the fetch. There is no branch that prints an HTTP status. The tool was written for the happy path where the fetch succeeds, and the failure path is silent.

Test target Total Internal External NoFollow
http://example.com 1 0 1 0
https://www.wikipedia.org Blank Blank Blank 0

Those two runs bracket the tool's behavior. One shows a successful parse with a clear result. The other shows a silent failure with an empty result. Both are reproducible, and both follow directly from the source code.

How the Fetch Works Under the Hood

The tool uses PHP's file_get_contents function to retrieve the target page. That function performs a simple HTTP GET request with no special headers. It sends no user agent string. Many web servers treat a missing user agent as a bot signal and respond with a forbidden status. That is exactly what happened with Wikipedia.

The fetched HTML is then parsed with the Simple HTML DOM library, which builds a DOM-like structure from the raw source. The parser walks every <a> element and reads its href attribute. It skips empty hrefs and hrefs that are exactly #. It collects the rest, deduplicating by the exact href string. The deduplication happens before classification, so a URL that appears twice in the source appears once in the output.

The classification logic compares strings directly. Internal means the host equals the page host, with or without the www. prefix, or the href starts with a single slash. External means a different host or a // prefix. The rel check lower-cases the attribute value and compares it to nofollow. No other value produces a NoFollow label. There is no user agent, no cookie jar, and no JavaScript engine involved at any step.

The 20-minute script limit is a server-level constraint on how long any single request can run. A page that downloads slowly can exhaust that limit before the parser finishes. The tool does not cache results, so every submission triggers a fresh fetch. There is no CAPTCHA on this tool and no tool-specific request cap, but a shared site-wide throttle applies to every page of this site. Roughly fifteen requests within a single second from one visitor address blocks that address for the rest of the day.

Practical Use Cases

A website link analyzer online serves several real purposes despite its limits. You can use it to inventory the outbound links on a competitor's page before you write a guest post pitch. You can use it to verify that a page you manage has no accidental nofollow flags on your important internal links. You can use it to compare two versions of a page after a redesign and confirm that the link structure survived. You can export page links to CSV and keep a dated record of a page's outbound profile.

The tool is also useful for spotting anomalies. A page that should have dozens of internal navigation links but shows only a handful may have a JavaScript-driven menu. A page that shows an unexpected external link may have been compromised or may include a hidden footer link. A page whose total count is much higher than the sum of its internal and external tables has a pile of mailto: or relative-path links that are invisible in the tables.

The nofollow dofollow checker aspect is most valuable on pages you control. If you have a page where you deliberately set rel="nofollow" on certain outbound links, this tool tells you whether the exact string survived your content management system. Many editors add noopener automatically, which breaks the exact match. The tool shows those links as DoFollow, which alerts you to check the raw source.

Use case What you learn What you miss
Competitor link inventory Which sites they link to Why they link there
Internal link audit Which pages you link to Anchor text and context
Nofollow verification Exact nofollow flags Sponsored and ugc hints
Redesign comparison Link count before and after Broken destinations
CSV record keeping A dated link list Link authority

The tool's best use is as a quick first pass. Run it on a URL to get a list of links, then take that list to a more capable tool for the questions this one cannot answer. The Related Tools section points to three such follow-ups.

Frequently Asked Questions

Why does the tool show blank tables for a page that clearly has links?

The most common cause is a blocked fetch. The tool requests the page with no user agent, and many sites respond with a forbidden status. Wikipedia is a known example. The tool has no error message for this case, so it shows empty badges and empty tables. Try the URL in your own browser to confirm the page exists and has links.

Does a DoFollow label mean the link passes authority?

It means the rel attribute did not equal the exact string nofollow. A link with rel="sponsored" or rel="ugc" gets a DoFollow label, even though Google has treated those as separate hints since that change to the newer permanent code. The label is a statement about this tool's comparison rule, not about search engine behavior.

Why does rel="nofollow noopener" show as DoFollow?

The tool compares the entire lower-cased rel value against the string nofollow. The combined value nofollow noopener is longer than the comparison target, so it does not match. Only a bare nofollow with nothing else in the attribute earns the NoFollow label. Many content management systems add noopener automatically, which makes this case common.

Does the tool check whether links are broken?

It does not. The tool fetches only the page you submit and reads the href strings without following them. It never makes a second request to any linked URL, so it cannot know whether a destination returns 200, 404, or any other status. Use the Broken Links Checker for that purpose.

Can I see the anchor text of each link?

No. The output contains only the sequence number, the URL, and the NoFollow or DoFollow label. Anchor text is not read from the HTML and does not appear in the tables or the CSV export. The Anchor Text Diversity Auditor handles that aspect of link analysis.

Why do some links appear in the total but in neither table?

Links with schemes like mailto:, javascript:, and tel: do not fit the internal or external categories. Relative paths such as page.html also fall outside both tables. The tool adds those to the Total count only. If the total is higher than the sum of the two tables, this is where the extra links went.


Free Software