Free Link Extractor - Extract All URLs from a Web Page
Free link extractor: extract all links from a web page or a block of text. Internal and external URLs, anchor text, nofollow and sponsored flags, filters, and CSV export. No signup.
Enter a page URL to list every link with its anchor text, internal/external type, and rel attributes. Links rendered by JavaScript are not included.
Quick Answer
A link extractor pulls every URL out of a web page or a block of text and lists them in a table you can filter, copy, or download. Paste a page URL to extract all links from the page (resolved to absolute URLs, with anchor text and rel attributes), or paste text to extract URLs with a regex. Runs in your browser, free, no signup.
Quick Facts
- Page mode parses real HTML with the browser's DOMParser and collects every a[href], the canonical link, and optionally every img[src].
- Relative links are resolved to absolute URLs against the page's final URL, honouring a <base href> tag when the page has one, per RFC 3986 section 5.
- Each link is classified Internal or External by comparing registrable domains, so blog.example.com counts as internal to example.com.
- rel=nofollow, rel=sponsored, and rel=ugc are read per link; Google has treated all three as hints rather than directives since March 1, 2020.
- Text mode extracts http(s) URLs, www. addresses, and bare domains on common TLDs from any pasted text, with trailing punctuation trimmed.
- Pages are fetched through a stateless pass-through that reads the first 1 MB of HTML; a truncated flag tells you when a page was larger.
- Export is a UTF-8 CSV with a BOM so Excel opens it correctly, generated in the browser as a Blob - nothing is stored on U2L.
How to extract links from a web page
Enter a URL or paste text, filter, export.
- 1
Choose page or text mode
Use From a web page to fetch and parse a live URL, or From text to pull URLs out of an email, a document, a log, or HTML source you already have.
- 2
Enter the URL or paste the text
In page mode, paste a full URL and click Extract links; turn on Include image URLs to add img[src] targets. In text mode, links are extracted live as you paste.
- 3
Filter and dedupe
Switch between All, Internal, and External, type in the search box to match a URL or anchor text, and leave Remove duplicates on to collapse repeated links to one row each.
- 4
Copy or download
Copy all puts the filtered URLs on your clipboard, one per line. Download CSV saves URL, anchor text, type, rel, and kind for a spreadsheet. Send the list to /tools/bulk-url-checker to find broken ones.
What is a Link Extractor?
Link Extractor is a URL extractor that reads a web page or a block of text and returns every link it contains as a clean list with the link's anchor text, whether it is internal or external, and its rel attributes. It turns a page you can only scroll into data you can filter, count, export, and check.
Every web page is a graph node: the links on it define where crawlers, users, and link equity flow next. Seeing that list plainly answers questions a browser view hides. How many outbound links does this article have, and how many carry nofollow? Which internal pages does the homepage link to first? Does the page link to a competitor, and with what anchor text? A link extractor makes those answers a 10-second task instead of a view-source hunt.
There are two fundamentally different ways to get links out of content. A DOM extractor loads the HTML into a real parser, walks the anchor elements, and resolves each href against the document's base URL, exactly as a browser would. A regex extractor scans raw text for anything shaped like a URL. The first is accurate for web pages, including relative links, anchors with rel attributes, and the canonical tag. The second is the only option for plain text such as an email body, a chat log, a PDF export, or a page's source code copied from a devtools panel. This tool does both, in separate tabs, and tells you which method it used.
The output is deliberately spreadsheet-shaped. Internal link audits, outreach prospecting, competitor outbound-link analysis, and broken-link sweeps all start with a list of URLs plus context, and they all end in a CSV. Each row also carries a U2L shorten button, because a common next step after extracting a set of destination links is to turn a few of them into trackable short links for a newsletter or social post.
How does a Link Extractor work?
In page mode the browser cannot fetch an arbitrary third-party page itself, because the target site's CORS policy blocks cross-origin reads. So the URL is passed to U2L's stateless fetch-text endpoint, which issues one GET with a browser-like user agent, follows up to five redirects, enforces an 8-second timeout, and returns the first 1 MB of the body together with the final URL after redirects, the HTTP status, and the content type. It refuses private and internal addresses, and it returns HTTP 415 for non-text responses such as a PDF or an image, so the tool can tell you the URL is not a web page instead of showing an empty table.
The HTML is then parsed in your browser with DOMParser using the text/html type. DOMParser builds a full document tree with the browser's own HTML5 parser but never executes scripts, loads subresources, or renders anything, which makes it both safe and fast. The tool checks for a base element with an href, resolves that href against the final URL, and uses the result as the base for every link on the page, mirroring the HTML specification's rule that the first base element with an href sets the document base URL. Each a[href] is then resolved with the URL constructor, which implements RFC 3986 reference resolution: ../pricing becomes an absolute path, //cdn.example.com keeps the page's scheme, and #section stays on the same page.
Anchor text is the element's textContent with whitespace collapsed, falling back to an image's alt text when a link wraps only an image. The rel attribute is split into tokens and the tool records nofollow, sponsored, and ugc, the three values Google introduced or redefined in September 2019 for outbound-link classification. The link's type is decided by comparing registrable domains: the last two labels of the hostname, or three when the suffix is a two-label public suffix such as co.uk or com.au. Links with a mailto:, tel:, or javascript: scheme are kept but marked Other and are never offered for shortening. The canonical link element is collected as its own row so you can confirm the page's declared canonical alongside its links; /tools/canonical-url-checker goes deeper on that specific question.
Text mode does not need a server at all. A single regular expression matches three shapes: URLs with an http or https scheme, addresses that start with www., and bare domains ending in a common top-level domain with an optional path. Trailing punctuation such as a period, comma, or closing bracket is trimmed because sentences end and parentheses close after URLs. Bare domains and www. addresses are normalised to https:// for the URL column so they can be copied, checked, or shortened directly. Because there is no source document, text-mode rows have no anchor text and no internal/external classification. Both modes feed the same table, filters, dedupe, copy, and CSV export, and the CSV is built from the filtered rows with RFC 4180 quoting and a UTF-8 byte order mark so Excel reads non-ASCII characters correctly.
Use Cases
How marketers, businesses, and developers use link extractor.
Internal link audit for one page
Extract the links on a key page, filter to Internal, and count them. A pillar page that links to only four of its 20 supporting articles has an internal-linking gap you can fix in an afternoon. The anchor text column shows whether those internal links use descriptive text or generic click here.
Competitor outbound link analysis
Filter a competitor's resource page or article to External to see who they cite, link to, or partner with, and whether those links are nofollow or sponsored. Export the CSV and merge several pages to map their whole outbound footprint before an outreach campaign.
Preparing a broken-link check
Extract every link, download the CSV or copy the URL list, and paste it into /tools/bulk-url-checker to get HTTP status codes for up to 50 URLs per run. Extracting first means you check the links a page actually has, not a list you typed from memory.
Pulling URLs out of an email or document
A newsletter, a meeting summary, or a support thread can contain dozens of links buried in prose. Paste the text into text mode and get a deduplicated list instantly, with tracking-heavy URLs ready to clean with /tools/utm-stripper or shorten for resharing.
Building a link list for a newsletter
Extract the links from a roundup page or a set of sources, pick the ones you want, and shorten each with the per-row button. Every U2L short link gets its own click count, so you learn which stories your subscribers actually opened.
Checking nofollow and sponsored compliance
Publishers who sell placements must mark paid links rel=sponsored and user-generated ones rel=ugc. Extract a sponsored article, look at the rel column, and confirm every paid link is tagged before the advertiser or a reviewer notices it is not.
Inventorying image URLs on a page
Turn on Include image URLs to add every img[src] to the table. Designers use it to find which CDN or host an image comes from; SEOs use it to spot images served from a staging domain or over plain HTTP on an otherwise HTTPS page.
Migration and redirect planning
Before moving a site, extract the links from the old navigation, footer, and key landing pages. That list is the input to your redirect map. Pair it with /tools/redirect-checker after launch to confirm every old URL resolves in one hop.
Research and citation gathering
Students and analysts extract the reference links from a long article or a Wikipedia section in one go rather than copying them one at a time. Text mode also works on a bibliography or a PDF's text layer pasted from a reader.
Link Extractor vs Alternatives
Side-by-side feature and pricing comparison with the top alternatives.
| Feature | U2L | Sitechecker Link Extractor | Browserling URL Extractor | View source + regex |
|---|---|---|---|---|
| Free, no signup | Limited | |||
| Extracts from a live page URL | Manual | |||
| Extracts from pasted text | ||||
| Resolves relative links and <base href> | Varies | |||
| Anchor text and rel (nofollow/sponsored/ugc) | ||||
| Internal/external filter and search | ||||
| CSV export | ||||
| Shorten any extracted link in one click |
Link Extractor vs Sitechecker Link Extractor
Sitechecker's extractor detects internal and external links with anchor text, follow status, and HTTP status codes, and it scales up to a full-site crawl of 1,000 pages once you create an account. If you need every link on every page of a site, a crawler is the right tool and Sitechecker is a capable one.
For a single page, the account requirement and the crawl framing are overhead. This tool reads one page in a couple of seconds with no login, adds a text mode Sitechecker does not have, and leaves status checking to /tools/bulk-url-checker so extraction itself stays instant.
Link Extractor vs Browserling URL Extractor
Browserling's tool is a clean text-mode extractor: paste text, get the URLs, no ads. It handles http, https, and ftp links and is aimed at developers preparing test cases or moderating user content.
It does not fetch a page, resolve relative links, or know what an anchor or rel attribute is. This tool includes the same text extraction and adds a real DOM parse for live pages, internal/external classification, filters, and CSV export.
Best Practices
Use page mode for pages, text mode for everything else
DOM parsing resolves relative links and reads attributes; regex cannot. If you have a URL, use page mode. If you have HTML source pasted from devtools, text mode will still find absolute URLs but will miss relative ones.
Keep dedupe on for counts, off for placement
A footer link appears once per page, but a navigation link may appear twice. Deduped counts tell you how many distinct destinations exist; the raw list tells you how many times each is linked, which matters for internal link weight.
Check the truncation note on long pages
The fetch reads the first 1 MB of HTML. Most pages are far smaller, but a long product listing or an inlined-data page can exceed it. When the note appears, links near the bottom may be missing.
Watch for JavaScript-rendered links
DOMParser does not run scripts. A single-page app that builds its navigation client-side will show few links. Compare the count with what you see in the browser; a big gap means the links are rendered, not served.
Sort by registrable domain before outreach
Open the CSV in a spreadsheet and sort the External rows by domain. Repeated domains are sites the page's author trusts, which makes them warmer prospects than one-off mentions.
Respect the sites you extract from
A single fetch of a public page is equivalent to one browser visit. Extracting many pages in a loop is crawling; check the site's robots.txt with /tools/robots-txt-tester and its terms before you do that at scale.
Send the list to the bulk checker next
Extraction tells you what a page links to; it does not tell you whether those links work. Copy all, paste into /tools/bulk-url-checker, and you have a broken-link report for the page in one more step.
Shorten the links you will reshare
When the goal is a newsletter or a social thread, use the per-row shorten button on the destinations you pick. U2L short links carry click analytics, so the extraction doubles as the start of a tracked campaign.
Common Mistakes to Avoid
Extracting a redirecting URL and reading the wrong base
If the URL you enter redirects, links must resolve against the final URL, not the one you typed. The tool uses the final URL automatically; if you copy links into another tool, use the final address the result shows.
Ignoring the <base> tag
A page with <base href="https://cdn.example.com/"> resolves every relative link against that host. Naive extractors prepend the page URL and produce links that do not exist. Check the base note when relative links look wrong.
Treating subdomains as external
help.example.com is internal to example.com. Classifying by exact hostname inflates external counts and hides internal-linking gaps. The tool compares registrable domains so subdomains stay internal.
Counting fragment links as separate pages
Ten table-of-contents links to #section-1 through #section-10 are one URL with fragments. Dedupe keeps them separate because the fragment differs; strip the fragment in your spreadsheet before counting pages.
Running a text regex on HTML source
Regex on raw HTML catches absolute URLs but misses every href="/relative/path" and picks up URLs inside scripts and comments. Use page mode when you have the URL, so the DOM is parsed properly.
Assuming a PDF or image URL will extract
The fetch only accepts text responses. A link to a PDF returns a 415 error with the content type. Open the PDF, copy its text, and use text mode instead.
Technical Specifications
| Page fetch | Stateless pass-through, one GET, 5 redirects max, 8 s timeout, first 1 MB of body |
| Parser | Browser DOMParser (text/html); no script execution |
| Elements collected | a[href], link[rel=canonical], img[src] (optional) |
| URL resolution | URL constructor against final URL or <base href> (RFC 3986 section 5) |
| Classification | Internal/External by registrable domain; mailto/tel/javascript marked Other |
| rel attributes | nofollow, sponsored, ugc |
| Text mode | Regex for http(s) URLs, www. addresses, bare domains on common TLDs |
| Export | UTF-8 CSV with BOM, RFC 4180 quoting, built as a Blob in the browser |
| Storage | Nothing stored; fetch responses carry a 60 s edge cache header only |
Frequently Asked Questions
What is a link extractor?
How do I extract all links from a web page?
Can I extract URLs from text instead of a web page?
How does the link extractor decide internal versus external?
Does it resolve relative links?
What do nofollow, sponsored, and ugc mean in the rel column?
Why are some links missing from the result?
Why do I get a 415 error?
Why does it say the URL is not allowed or could not be reached?
Can it extract links from an entire website?
How is this different from a bulk URL checker?
Link extractor vs a site crawler like Screaming Frog?
Does it include image URLs?
Is extracting links from a website legal or allowed?
Is my page or text uploaded?
Is the link extractor free?
What does the CSV contain?
Related Free Tools
WhatsApp Link Generator
Create wa.me click-to-chat links with prefilled messages. Add to your bio, ads, or QR codes for instant WhatsApp customer chats.
OG / Metatag Checker
Inspect Open Graph and Twitter Card tags for any URL. Preview link cards on Facebook, X, LinkedIn, and Slack before publishing.
Redirect Checker
Trace the full redirect chain of any URL. See every hop, status code, response time, and final destination.
URL Encoder / Decoder
Encode or decode any URL. Handle special characters, query strings, and percent-encoding. Pure browser, instant.
Schema Markup Generator
Generate valid JSON-LD schema for FAQ, HowTo, Article, Product, and Organization. Boost rich results and AI Overview citations.
URL Expander
Reveal the full destination behind any shortened URL. Check where a short link leads before clicking it.
Key Terms
- Anchor text
- The visible, clickable text of a link. Search engines use it as a signal for what the linked page is about.
- Registrable domain
- The domain a person can register at a registrar: the label before the public suffix, such as example.com or example.co.uk. Used here to classify links as internal or external.
- Base URL
- The URL relative links are resolved against. By default it is the document's own URL; a <base href> element overrides it.
- rel attribute
- A link attribute describing the relationship to the target. nofollow, sponsored, and ugc tell search engines how to treat the link.
- DOMParser
- A browser API that parses an HTML or XML string into a document tree without rendering it or running scripts.
- Canonical URL
- The preferred address for a page, declared with link rel=canonical. The extractor lists it as its own row so you can confirm it.
Turn extracted links into tracked links
Once you have the links you want to share, shorten them with U2L to get branded short URLs, QR codes, and per-link click analytics. Sign up free to remove anonymous rate limits and manage every link in one dashboard.
Sign up free