Logo

Extract All Links From a Webpage

Copying links by hand means right-click, copy address, paste, repeat — and missing three of them. Most extractors hand back a bare list of addresses with no context. This one keeps the anchor text, splits internal from external, and flags nofollow.

Why a link extractor online beats copying by hand

Right-click, copy address, paste, repeat. Forty links in and you have missed three, duplicated one, and lost track of which was which.

The bigger problem is that a bare list of addresses tells you very little. Which of these are navigation? Which point off-site? Which carry nofollow? Without that, you are looking at a column of URLs and guessing.

So the output here keeps the anchor text next to each URL, splits internal from external, and flags nofollow. Duplicates are merged by resolved URL, so a page linked from the header and the body appears once.

One thing worth knowing before you compare counts with a crawler: most crawlers report every instance of a link, and we report every unique destination. Neither is wrong, but the numbers will not match.

How to list internal and external links accurately

The split compares hostnames with the www. prefix removed, so example.com and www.example.com count as one site.

Subdomains count as external. That surprises people, but for link analysis blog.example.com usually behaves like a separate property with its own authority, so lumping it in with the main site hides more than it reveals.

Relative links resolve against the final URL after redirects, not the address you typed. A site that redirects between www and non-www would otherwise hand you a list that quietly 404s on every entry.

We drop mailto:, tel: and javascript: links. The first of those is deliberate — an exportable list of email addresses is a spam-harvesting feature, and we would rather not build one.

Reading anchor text extractor output for SEO

Anchor text is the part most people skip, and it carries the most signal.

Entries reading “no anchor text” wrap an image or an icon. A handful is normal. A long run means a section of your page passes no context at all to search engines or to anyone using a screen reader.

Repeated generic anchors — “read more”, “here”, “this page” — are the other pattern to look for. They tell a crawler nothing about the destination, and they are easy to fix once you can see them listed together.

One caveat on the nofollow flag: it reports the literal nofollow value only. Google also treats sponsored and ugc as similar hints, so a link carrying only one of those will not be flagged here.

Where this stops working

Pages that build their navigation with JavaScript return far fewer links than you can see on screen, because we read the first HTML response before any script runs.

That is the same limit the rest of this toolkit has, and it is explained properly in links injected after page load. If a count looks far too low, that is the first thing to check.

One page per run, too. Crawling a whole site is a different activity with different obligations — our note on crawl politeness and rate limits covers what actually causes problems.

What to do with the exported list

The CSV keeps anchor text, classification and the nofollow flag, with quotes escaped so a quotation mark in anchor text does not break your columns.

Checking whether those links still resolve is a separate job, and deliberately so — hundreds of links means hundreds of requests. Run the export through a broken link checker when that is what you need.

For a list of pages a site wants indexed rather than pages one page links to, start from pull URLs from an XML sitemap. The two answers overlap less than people expect.

Getting more from a tool that can extract all links from a webpage

Start with the external filter on an unfamiliar site. It shows who they reference, which is usually the fastest read on what a page is actually about.

Need the prose rather than the links, the full page content extractor pulls headings, paragraphs and meta tags in the same pass. For a version aimed at models rather than people, LLM-ready markdown output keeps the structure and drops the furniture.

Frequently Asked Questions

How is this different from extracting URLs from a sitemap?

+
A sitemap lists what a site wants indexed. This lists what one page actually links to, which is often a different set. Pages get linked without being in the sitemap, and sitemap entries frequently have nothing linking to them at all.

Why are internal and external counted against the naked domain?

+
We compare hostnames with the www prefix removed, so example.com and www.example.com count as the same site. Subdomains still count as external, because for most link analysis blog.example.com genuinely behaves like a separate property.

A page has 200 links but only 40 came back. Why?

+
Almost always because the rest are added by JavaScript after load. Menus, infinite-scroll listings and cookie-gated content are common cases. We read the first HTML response, which is what a crawler sees before rendering.

Why do some links show "(no anchor text)"?

+
The anchor wraps an image or an icon rather than words. That is genuinely useful to know — an image link with no alt text passes no context to a search engine or a screen reader, so a run of these is worth investigating.

Does the nofollow flag include sponsored and ugc?

+
No, it reports the literal nofollow value only. Google treats sponsored and ugc as separate hints with similar effects, so a link marked only sponsored will not be flagged here. Check the source when the distinction matters.

Are duplicate links to the same page merged?

+
Yes, we deduplicate by resolved URL, so a page linked from both the header and the body appears once. Worth remembering when comparing our count against a crawler that reports every instance.

What happens to mailto: and tel: links?

+
They are dropped, along with javascript: and any other non-web scheme. The list is meant for URLs you can request. Keeping email addresses in an exportable list is also a spam-harvesting feature we would rather not build.

How are relative links turned into full URLs?

+
Against the final URL after redirects, not the address you typed. On a site that redirects between www and non-www, resolving against the original gives you a list of links that quietly 404 when you try them.

Can I check whether the extracted links still work?

+
Not from this page — export the CSV and run it through a link checker. We kept the two jobs separate because checking hundreds of links means hundreds of requests, which needs its own rate limiting.

Does the CSV keep the anchor text?

+
Yes, along with the internal or external classification and the nofollow flag. Quotes inside anchor text are escaped properly, so a link whose text contains a quotation mark will not break the column alignment in a spreadsheet.

Related Tools You Might Like

Advertisement