TapCub is live — analytics, insights and live chat, free on one platform

Free tool Link extractor with anchor text and rel checks

Paste a page's HTML and get every link in one table: the full URL, its anchor text, whether it is internal or external, and its rel values (nofollow, sponsored, ugc). Links Google cannot follow or cannot understand are flagged. Paste plain text instead and it pulls out the URLs.

  • HTML or plain text
  • nofollow, sponsored, ugc
  • CSV export
Extractor

Extract links

Paste the page source, an email template or any text with URLs. Add the page address so relative links like /pricing resolve and internal links can be told from external ones.

HTML is read as links (<a href>, <area href>). Anything without tags is scanned for http(s):// and www. addresses.

The address this HTML lives at. Used to resolve relative links and to decide internal vs external. www. is ignored when comparing.

The CSV always contains every link.

Links

14

HTML: <a> and <area> elements with href. Text: distinct URLs.

Internal

8

Same host as the page URL, plus relative and #fragment links.

External

4

Other hosts, subdomains included.

nofollow / sponsored / ugc

3

Links with at least one of these rel values.

No anchor text

2

No text, image alt, aria-label or title.

Checks

Problems first. Line numbers point to your HTML.

  • ErrorLine 16Image link with no alt text → https://www.example-shop.com/. Google uses the image's alt as the anchor text, and screen readers announce only "link".
  • ErrorLine 46Image link with no alt text → https://www.example-shop.com/blog/image-formats. Google uses the image's alt as the anchor text, and screen readers announce only "link".
  • WarningLine 27"Click here" → https://www.example-shop.com/guides/core-web-vitals. Google gives "Click here" and "Read more" as examples of anchor text that is too generic; say what the target page is.
  • WarningLine 38href="javascript:void(0)". Google lists javascript: links as not recommended; it may not be able to resolve them.
  • Note1 URLs are linked more than once on this page. Normal for menus; in body text, one link per target is usually enough.
  • NoteLine 47Internal link with rel="nofollow" → https://www.example-shop.com/blog. Google suggests nofollow only for sources you don't trust, not for your own pages.

Links

The "TapCub auto event" column shows what TapCub's script records when a visitor clicks the link.

URLAnchor textTyperelTapCub auto eventLine
https://www.example-shop.com/image, no altInternal——16
https://www.example-shop.com/shopShopInternal——18
https://www.example-shop.com/blogBlogInternal——19
https://help.example-shop.com/Help centerSubdomain—Outbound click20
https://www.example-shop.com/guides/core-web-vitalsClick hereInternal——27
https://web.dev/articles/optimize-lcpGoogle's guide to LCPExternal—Outbound click37
https://partner.example.net/cdn?ref=shopCDN we useExternalsponsoredOutbound click37
https://www.example-shop.com/files/speed-checklist.pdfspeed checklist (PDF)Internal—File download38
javascript:void(0)ask us a questionJavaScript——38
https://candles.example.org/candles.example.orgExternalugc nofollowOutbound click44
https://www.example-shop.com/blog/image-formatsimage, no altInternal——46
https://www.example-shop.com/contactContact usInternal——47
https://www.example-shop.com/blogBack to the blogInternalnofollow—47
mailto:hello@example-shop.comhello@example-shop.comEmail——48
CSV
url,anchor_text,anchor_from,type,rel,tapcub_event,line
https://www.example-shop.com/,,imgNoAlt,internal,,,16
https://www.example-shop.com/shop,Shop,text,internal,,,18
https://www.example-shop.com/blog,Blog,text,internal,,,19
https://help.example-shop.com/,Help center,text,subdomain,,outbound,20
https://www.example-shop.com/guides/core-web-vitals,Click here,text,internal,,,27
https://web.dev/articles/optimize-lcp,Google's guide to LCP,text,external,,outbound,37
https://partner.example.net/cdn?ref=shop,CDN we use,text,external,sponsored,outbound,37
https://www.example-shop.com/files/speed-checklist.pdf,speed checklist (PDF),text,internal,,download,38
javascript:void(0),ask us a question,text,js,,,38
https://candles.example.org/,candles.example.org,text,external,ugc nofollow,outbound,44
https://www.example-shop.com/blog/image-formats,,imgNoAlt,internal,,,46
https://www.example-shop.com/contact,Contact us,text,internal,,,47
https://www.example-shop.com/blog,Back to the blog,text,internal,nofollow,,47
mailto:hello@example-shop.com,hello@example-shop.com,text,mailto,,,48

All links, whatever the table filter. Opens in Excel, Numbers and Google Sheets.

Runs entirely in your browser. Nothing you type here is uploaded or stored by TapCub.

Version v1.0Updated Update history

Read the result

What each column tells you

A link is three things to a search engine: a URL it can crawl, anchor text that describes the target, and an optional rel value that qualifies the relationship. The table shows all three for every link.

Internal, subdomain, external

Internal links share the page's host (www. ignored). Subdomains such as help.example.com are listed separately and counted with external links. Every page you care about should be reachable through at least one internal link.

Anchor text

The visible text, or the alt of an image used as a link. Read it out of context: "Core Web Vitals checklist" stands on its own, "Click here" does not. Empty anchors are errors.

rel values

sponsored for paid links, ugc for comments and forum posts, nofollow for anything else you don't want to vouch for. Values can be combined. Google says links marked this way will generally not be followed, though the target may still be found other ways.

TapCub auto event

TapCub's script records clicks on links to another hostname as outbound clicks and links to files (PDF, ZIP, DOCX and so on) as downloads, with no extra code. Subdomains count as outbound because the hostname differs.

Link checks follow Google's link best practices and qualify your outbound links. They tell you whether links are crawlable and described, not whether they help rankings.

How to use it

Audit the links on a page

Good for content audits, migration checks and reviewing guest posts before they go live.

  1. 1

    Paste the HTML

    Copy the page source, or the HTML of just the article body if you want to skip menus and footers.

  2. 2

    Enter the page URL

    Relative links resolve against it, and internal and external links are told apart by its host.

  3. 3

    Filter and fix

    Switch the table to "Links with problems" for empty and generic anchors, javascript: links and internal nofollow. Use "External" to review where the page sends people.

  4. 4

    Export

    Download the CSV for a spreadsheet audit or a redirect plan. Paste plain text, such as a launch checklist, to pull out its URLs the same way.

Rules

How links are found and classified

Only <a href> and <area href> count as links, which matches what Google says it can crawl. <link> tags in the head (stylesheets, canonical, hreflang) are not page links and are left out.

  • Relative URLs resolve against the page URL with the browser's own URL rules, so ../guide and //cdn.example.com/x come out as full addresses
  • Internal = same host, ignoring a leading www.. Subdomain = one host ends with the other (help.example.com vs example.com). Everything else on http(s) is external
  • Anchor text, in order: visible text → alt of images inside the link → aria-label → title
  • rel is split on spaces or commas, as Google allows, so rel="ugc,nofollow" and rel="ugc nofollow" read the same
Link forms and what Google says about them
MarkupClassified asGoogle link best practices
<a href="/shoes">Shoes</a>InternalRecommended
<a href="https://example.com">ExternalRecommended
<a onclick="goto(…)">Flagged: no hrefNot recommended
<span href="…">Flagged: not a linkNot recommended
<a href="javascript:goTo(…)">JavaScriptNot recommended
<a href="…"><img alt=""></a>Flagged: no anchor textBad: empty link text
Worked example

The example blog post, extracted

The default HTML is a store blog post at www.example-shop.com with 14 links.

Results for the example
GroupLinksNotes
Internal8Menu, article links, the PDF checklist, contact, "Back to the blog" (nofollow)
External4help.example-shop.com (subdomain), web.dev, a sponsored CDN link, a ugc comment link
JavaScript / email1 + 1javascript:void(0) "ask us a question"; a mailto address
nofollow / sponsored / ugc3sponsored; ugc nofollow; nofollow on an internal link (flagged)
No anchor text2The logo link and the "next post" image link, both images with no alt text
Generic anchor1"Click here" pointing to the Core Web Vitals checklist

TapCub would record 4 outbound clicks (the subdomain, web.dev, the CDN and the comment link) and 1 download (the PDF) on this page without any extra tagging.

Common mistakes

Link problems that hide in plain sight

Most of these look fine in the browser and only show up in the source.

Image links without alt

Logos and banner images used as links often have no alt, which leaves the link with no text at all for Google and screen readers.

Buttons pretending to be links

<a onclick> without href, <span> with a click handler, javascript: URLs. They work for a mouse user but are not crawlable links.

nofollow on everything

Adding nofollow to every external link, or to your own pages, isn't what Google recommends. Use sponsored and ugc where they fit, nofollow only for sources you don't trust.

"Click here" everywhere

Generic anchors tell neither readers nor Google what is behind the link. Put the subject of the target page into the link text.

FAQ

Link extractor questions

Still have a question?

Chat with the team behind TapCub — we usually reply within a few hours on business days.

How do I extract all links from a web page?

View the page source (Ctrl+U), copy it and paste it into the box above with the page URL. Every <a href> and <area href> is listed with its full URL, anchor text, type and rel value, and you can download the list as CSV.

How do I check whether a link is nofollow?

Look at the rel column, or set the filter to "nofollow / sponsored / ugc". The rel attribute is read as Google reads it: values separated by spaces or commas, case ignored.

What is the difference between nofollow, sponsored and ugc?

Google asks for sponsored on paid or advertising links, ugc on links in user content such as comments and forums, and nofollow when neither applies and you don't want your site associated with the target. You can combine them, for example rel="ugc nofollow".

Should I nofollow external links?

Not by default. Google's link guidance says linking to other sites is fine and that nofollow is for sources you don't trust, not for every external link. Paid links should be marked sponsored.

Can it extract URLs from plain text?

Yes. If the input has no HTML tags, the tool scans it for http(s):// and www. addresses, removes trailing punctuation, merges duplicates and shows how often each appears.

Why is a subdomain counted as external?

A subdomain is a different hostname: it may be a separate app, help center or shop system, and TapCub records clicks to another hostname, subdomains included, as outbound clicks. The table labels them "Subdomain" so you can tell them apart from third-party sites.

Does it check whether the links work?

No. It reads your HTML and does not request any URL, so it cannot see status codes. For redirects you are planning, the redirect rule generator turns an old → new list into server rules.

Is my HTML uploaded?

No. Everything runs in your browser. The HTML, the page URL and the CSV stay on your device.

Changelog

Update history

New features, fixes and data refreshes for this tool, newest first.

  1. · v1.0

    LaunchedFirst release.

Missing something or found an error? Tell us — requests that come up often go into the next update. All tool updates

Next step

See which links people click

Add TapCub to the page and outbound clicks and downloads are recorded from the first visit, with no tagging work.

See your data clearly. Find your growth.

Every click, backed by data. Install one line of code and see your first numbers in a minute.

No credit card · Free plans for analytics and chat · Cookieless analytics