Your files never leave your device. All processing happens locally in your browser.
How do I extract and classify every link on a page — internal, external, nofollow — without uploading the page?
Open AnyTool’s Website Link Extractor, open your page and copy its HTML source (View Source / Ctrl+U), paste it in, and add this page’s URL or domain so it can split internal vs external. The tool parses the HTML with the browser’s own DOMParser and inventories every <a href>: it classifies each link as internal (same site), external (other domain), mailto, tel, an in-page anchor (#fragment) or other (javascript:, data:…); reads the rel disposition — follow, nofollow, sponsored or ugc — and the target; resolves relative URLs against your base; and flags SEO issues like empty (invisible) anchor text, generic “click here” anchors, image-only links and duplicate URLs. You get a summary (total / internal / external / nofollow / unique external domains / empty anchors / duplicates), a filterable and sortable table, a list of every external domain, and one-click CSV / JSON export. Everything runs in your browser, so your page HTML is never uploaded — safe for staging pages. It reads only the single page you paste; your browser can’t crawl a live website (cross-origin / CORS) and there’s no server proxy, so for a full multi-page crawl use a server-side crawler such as Screaming Frog.
Paste your page’s HTML source — every <a href> is extracted and classified
Internal vs external (add your URL / domain), plus mailto / tel / anchor / other
rel disposition per link: follow / nofollow / sponsored / ugc + target
100% client-side — page HTML never uploaded; filter, sort and export CSV / JSON
What is
Link extraction & classification
Link extraction is the process of inventorying every hyperlink (<a href>) on a web page and classifying each one. Links are grouped by destination — internal (pointing to the same site) versus external (pointing to another domain) — and by rel disposition: a normal “follow” link passes ranking signals, while rel="nofollow", rel="sponsored" (paid or affiliate links) and rel="ugc" (user-generated content) tell search engines not to pass those signals. A link audit also grades the anchor text (the clickable words), because descriptive anchors help users and search engines understand the destination, whereas empty or generic “click here” anchors waste that context. The goal is a clear map of a page’s internal linking structure, its outbound links and any low-value or mis-attributed links to fix.
Internal links point to pages on the same site; external links point to other domains. Internal links spread link equity and help crawling; external links should be used carefully and paid ones marked sponsored.
Internal links connect pages within your own website and external links point to other domains. Internal linking is one of the most controllable parts of SEO: it distributes link equity, helps search engines discover and understand pages, and a healthy internal structure can lift rankings without any new backlinks — so important pages should have several internal links and sit only a few clicks from the homepage. External (outbound) links add value and context but should be used deliberately, and any paid or affiliate link must be marked rel="sponsored" (or nofollow). To split your links this way the extractor needs your page’s URL or domain as a base; then it labels every link internal or external and lists each external domain you link out to.
They are rel attributes that tell Google not to pass ranking signals: nofollow is generic, sponsored marks paid/affiliate links, and ugc marks user-generated links like comments.
rel="nofollow" signals that a site does not editorially vouch for a link and doesn’t want to pass ranking signals to it. In 2019 Google added two more specific attributes: rel="sponsored" for links that exist because of advertising, sponsorship or other compensation, and rel="ugc" for links in user-generated content such as comments and forum posts. All paid links must carry sponsored or nofollow — marking them only ugc can lead to a penalty. The attributes can be combined (e.g. rel="ugc nofollow"). The extractor reads each link’s rel and labels it follow, nofollow, sponsored or ugc, so you can quickly audit which outbound links pass signals and which correctly withhold them.
Because good anchor text is descriptive. Empty anchors give no context (and hurt accessibility) and generic “click here” / “read more” wastes the chance to describe the destination.
Anchor text is the visible, clickable words of a link, and Google’s own guidance is that it should be descriptive, concise and relevant — good enough to make sense on its own. Empty anchors (a link with no visible text, common on icon or image links) give users, screen readers and search engines no idea where the link goes, and generic phrases like “click here”, “read more” or “learn more” waste the opportunity to provide meaningful context. The extractor flags empty anchors, image-only links (it falls back to the image alt text), generic anchors and duplicate URLs so you can fix the low-value patterns in a link audit — while also warning against over-optimised exact-match anchors, which can look manipulative.
Paste one page’s HTML at a time. Your browser can’t crawl a live site (CORS) and there’s no server proxy, so for a full multi-page crawl use a tool like Screaming Frog.
This is a single-page link inspector: it extracts links from the HTML you paste (View Source / Ctrl+U). Because it is 100% client-side with no server proxy — which is what keeps your page private — your browser cannot follow the links or fetch other pages (almost all live sites block cross-origin requests, or CORS), so it can’t crawl a site or discover pages. The optional “try to fetch a URL” box only works for CORS-enabled or same-origin pages. For a full multi-page site crawl, broken-link discovery or JavaScript-rendered links, use a server-side crawler such as Screaming Frog, Sitebulb or paid SEO suites. Nothing you paste here is ever uploaded.
Detailed Explanation
📖How It Works
What the Website Link Extractor Inventories
The Website Link Extractor is a page-level link auditor: the user pastes a page’s HTML source (View Source / Ctrl+U) and, optionally, that page’s own URL / domain, and the tool inventories every anchor on the page. It parses the pasted HTML with the browser’s built-in DOMParser (no server, no regex guessing) and walks every <a href> element. For each link it records the raw and resolved href, the visible anchor text (collapsed whitespace, falling back to an image’s alt when the link wraps only an <img>), the link TYPE (internal / external / mailto / tel / anchor / other), the rel disposition (follow / nofollow / sponsored / ugc) and the target. Given the optional base URL it resolves relative and protocol-relative links to absolute URLs and classifies each as internal (same host) or external (different host). It then rolls everything into a SUMMARY — total links, internal, external, nofollow, unique external domains, empty anchors, generic anchors, image links and duplicate URLs — alongside a filterable, sortable table and a distinct-external-domain list, all exportable to CSV or JSON.
Page-level: paste your page HTML and see every <a href> classified
Parsed with the browser’s DOMParser — no server call, no CDN, no upload
Type per link: internal / external / mailto / tel / anchor / other
rel disposition per link: follow / nofollow / sponsored / ugc + target
Classification is done from the resolved URL, not string guessing. Each href is first checked for a non-http scheme — mailto:, tel:, an in-page #fragment (anchor), or an “other” scheme such as javascript:, data:, ftp: or sms:. Otherwise the link is resolved with the URL constructor against the supplied base URL: if the resolved host equals the base host it is internal, otherwise external, and its host is recorded so the tool can list every external domain with a link count. Without a base URL, absolute http(s) links are shown as external and relative links as “other”, and the tool prompts the user to add a base for accurate internal/external splitting. The rel attribute is tokenised and lower-cased; the presence of nofollow, sponsored or ugc marks the link as nofollowed, and the highest-priority token (sponsored > ugc > nofollow > follow) drives the badge. SEO issues are flagged per link: an empty (whitespace-only) anchor with no image alt, a generic anchor matched against a built-in list of low-value phrases (“click here”, “read more”, “learn more”…), an image-only link, a duplicate href (counted across the document), and a target="_blank" without rel="noopener"/"noreferrer".
Extracts Pasted HTML — It Cannot Crawl a Live Site
The tool is explicit about its scope. It extracts links from the single HTML string you PASTE; it does not and cannot crawl a live website. Because it is 100% client-side with NO server proxy (which is what keeps your page private), your browser can only fetch CORS-enabled or same-origin pages — almost all live sites block cross-origin requests, so the reliable path is View Source (Ctrl+U) → copy → paste, and the optional “try to fetch a URL” box is only for the rare CORS-enabled case. It reads only the one page you give it: it cannot follow the links, discover other pages, check for broken links, or render JavaScript-injected links (it sees the HTML as pasted). To split internal vs external and resolve relative URLs it needs the page’s URL / domain as a base. For a full multi-page site crawl, broken-link discovery, redirect chains or JavaScript-rendered link auditing, a server-side crawler such as Screaming Frog, Sitebulb or paid SEO suites is the right tool — this is a fast, private, single-page link inspector that complements them.
Extracts links from pasted HTML only — it cannot crawl a site or follow links
No server proxy: the browser can’t fetch most live URLs (cross-origin / CORS)
Sees the HTML as pasted — no JavaScript rendering, no broken-link checking
Needs a base URL / domain to split internal vs external and resolve relative links
For a full multi-page crawl, use Screaming Frog / Sitebulb / paid SEO suites
🔒Privacy & Security
Why Auditing Links In-Browser Is a Privacy Win
Online link checkers send your page — or a URL they crawl server-side — to a remote service. The Website Link Extractor instead runs entirely on the user’s device: the pasted page HTML is parsed with the browser’s built-in DOMParser, nothing is fetched, uploaded, logged or stored, and no page is crawled (there is deliberately no server proxy). That makes it safe to audit STAGING, UNRELEASED or INTERNAL pages whose source you do not want to expose to a third-party service before launch. CSV and JSON exports are generated locally with a Blob and an object URL that is revoked after download, so even the export never touches a server. The tool works offline once cached as a PWA, and closing the tab discards everything entered. It adds no new dependency — all logic lives in a small, pure, well-typed engine (linkExtractEngine.ts) built on the DOMParser and URL APIs.
Page HTML is parsed locally with DOMParser and never uploaded — no server, no CDN, no crawl
Safe for staging / unreleased / internal pages, unlike online link checkers
CSV / JSON exports built locally with a Blob; object URL revoked after download
Works offline once cached; closing the tab discards your data
No new dependency — pure client-side linkExtractEngine.ts on the DOMParser + URL APIs
Link extraction: in-browser (AnyTool) vs online link checkers / crawlers
Capability
AnyTool
Typical online tools
Processing
Runs entirely in your browser
Sends your page / URL to a server
Your page
HTML never uploaded, works offline
Page or URL crawled server-side
Staging / unreleased pages
Safe — nothing leaves the device
Exposed to a third-party service
Input
Paste your page HTML source (View Source)
Often a URL the tool crawls
Internal vs external
Yes — add your URL / domain as a base
Yes
rel disposition
follow / nofollow / sponsored / ugc per link
Varies
Anchor-text checks
Empty, generic “click here”, image links
Varies
Duplicate URLs
Flagged across the page
Varies
Multi-page crawl
No — single page you paste (use a crawler)
Some crawl the whole site
Export
CSV / JSON, generated locally
Varies, often gated
Cost / signup
Free, no signup
Often gated or ad-heavy
AnyTool extracts links from a page’s pasted HTML locally and uploads nothing, which is safe for staging or unreleased pages. It reads only the single page you paste — your browser cannot crawl a live website (cross-origin / CORS) and there is no server proxy — so for a full multi-page site crawl, broken-link discovery or JavaScript-rendered links use a server-side crawler such as Screaming Frog. Comparison as of June 2026.