Free Link Extractor
Extract links and anchor details from pasted HTML or URL lists. Resolve relative paths, classify links, filter results and export locally without fetching websites.
Loading tool…
How to use the link extractor
Extract links and anchor details from pasted HTML or URL lists. Resolve relative paths, classify links, filter results and export locally without fetching websites.
- Paste HTML source or choose a URL-list/CSV input format. HTML is parsed in an inert template.
- Provide an absolute base URL to resolve relative paths and classify internal versus external links.
- Choose same-origin or same-root-domain classification, optional contact/media links and duplicate grouping.
- Process locally, inspect URL/text/rel details and rejected protocols, then copy or export the results.
Who gets the most out of a link extractor
A link extractor is useful whenever you have page source and need a clean list of where it points. Content editors use it before publishing to check that every link in a long article goes where it should. SEO and site maintenance teams use it to audit internal linking on a template, or to find which outbound domains a page references.
It also helps during migrations. If you are moving a site to a new domain, you can paste the old HTML, set the old address as the base URL, and quickly see which links are internal and which point elsewhere. Developers reviewing an email template or a landing page can confirm that no stray test links or unsafe schemes slipped in.
Because the tool works only on text you supply, it suits private drafts, staging pages and exported files that are not public yet. You can also import a local HTML, TXT, CSV or LOG file up to 2 MiB.
Worked example with the built-in sample
Load the example and keep the base URL https://example.com/. The sample contains five anchors: a relative link to /about/ with the text About us, an absolute link to https://example.com/about/ marked rel nofollow with the text Our team, a link to https://www.iana.org/domains/reserved, a mailto link and a javascript link.
With default settings, the relative path resolves to https://example.com/about/ and is classified as Internal. The second anchor resolves to the same URL, so duplicate grouping merges the two into one row with a count of 2 and the text About us | Our team. The IANA link appears as External. Results are sorted A to Z, so the example.com row comes first.
The mailto link is listed under rejected entries because contact links are off by default. Tick Include mailto and tel links and it returns as a Contact row. The javascript link stays rejected with the reason Unsupported or unsafe link protocol.
How the extraction and classification work
HTML is loaded into an inert template element, so nothing in it runs or loads. The tool reads href values from a, area and link elements. With the media option on, it also reads src values from img, video, audio, source and iframe elements. Each row records the final URL, a count, the link type, the anchor text or alt text, the rel value, the element name and the original value.
The Internal link rule decides what counts as internal. Same origin requires the scheme, host and port to match the base URL, so http and https versions of a site are treated as different. Same registrable root domain treats blog.example.com and www.example.com as internal to each other. Only http and https links are accepted, plus mailto and tel when you allow them.
Extra filters let you include only certain suffixes, exclude domains and their subdomains, require a minimum number of occurrences, or keep only rows containing a given text. You can sort by A to Z, original order or frequency. A single run handles up to 20,000 links.
Common mistakes to avoid
Leaving the base URL empty is the most frequent problem. Without it, every relative link is rejected, and the Internal only or External only filters cannot work. Use the page's real address, including the folder, because a link like ../pricing resolves differently from different folders.
Choosing the wrong internal rule can also mislead you. If your site serves a shop on a subdomain, same origin will mark those links as external. Switch to the root-domain rule when subdomains belong to the same site. Finally, remember that a listed link is not a checked link. The tool does not visit URLs, so it cannot tell you whether a page returns an error.
Useful tips and limitations
- The tool reads supplied source; it does not fetch or crawl a website.
- Unsafe schemes such as javascript and data are rejected; imported HTML is never attached to the page.
- Turn on Remove fragments from links when you want page-level results, since links that differ only after the # sign will then be grouped together.
- Paste the rendered HTML from your browser's developer tools if your page builds links with JavaScript, because the raw source may not contain them.
Common questions
Can the link extractor crawl a website URL?
No. Paste its HTML source or import a local HTML file. The tool does not request the website or execute its code.
How are relative links classified by the link extractor?
An absolute base URL resolves them. Internal/external classification then compares either origin or registrable root domain according to your setting.
Why does a grouped row show only one rel value?
When duplicates are grouped, the row keeps the details of the first occurrence and adds the count and any new anchor text. Turn off grouping to see the rel value of each link separately.
Can I extract image URLs as well as links?
Yes. Enable Also extract media and iframe src attributes to include img, video, audio, source and iframe sources alongside regular links.
What happens to links with a port number?
They are kept with the port. Under the same-origin rule a different port makes the link external, while the root-domain rule compares domains only.
Text, local files and results are processed in your browser without AI or uploads. Listed domains, links, email addresses and IPs are not contacted. Save a local export before leaving.
