Link extractor: list every link on a page

Enter a page address, or paste its HTML: the tool lists each link with its anchor text, full address, type, rel and target attributes and its area of the page. Filters, sorting, CSV export, and the HTTP status of ten links of your choice.

    Paste HTML instead

    It is used to complete relative links and to recognise internal links.

    How to use the tool

    Paste the full address of a page and click “Extract”. The tool downloads the page the way a browser would, follows redirects to the destination, then picks up every <a> tag in the HTML it receives. If the page is protected, or if you want to test code before publishing it, open “Paste HTML instead”: the analysis then happens entirely in your browser and nothing is sent.

    The result can be filtered by type, by the presence of a rel attribute, by empty anchor or by link that is not crawlable, and sorted by anchor or by address. The CSV file contains the rows on display, with the address as written in the code and its full address. The table shows only the first 500 rows of a filtered list; the CSV holds all of them.

    What each row contains

    What Google expects from a link

    Google reliably follows only an <a> element with an href attribute that resolves to a web address.1 The same document advises against javascript: links, framework attributes such as routerLink and elements made clickable by onclick without an href: Google cannot reliably extract addresses from them. The tool therefore marks as “not crawlable” a link with no href, an empty href, an href reduced to #, or a javascript: one. MDN agrees on the usage side: a fake href such as # or javascript:void(0) breaks opening in a new tab, bookmarking and screen readers, and a button suits an action that leads to no address.3

    Anchor text matters too. Google asks for descriptive, concise text that can be read on its own, out of context, and advises against empty or generic text such as “Click here”. For a linked image, the alt attribute serves as anchor text, and an empty alt is to be avoided.1 The tool does not judge the quality of a text: it flags the absence of text, which you can isolate with the “Empty anchors” filter.

    On the number of links, Google’s documentation is measured: every important page should contain a link to at least one other page of the site, there is no ideal number, and an excess is probably a problem.1 The count summary above the table gives the total, the distinct addresses and the split between internal and external, enough to situate a page.

    nofollow, sponsored, ugc: reading the rel column

    An ordinary link needs no rel attribute. The three values serve the other cases.2 sponsored qualifies paid links, ads or purchased placements. ugc qualifies links that come from user-generated content, comments and forum posts. nofollow remains the value to use when neither of the others fits and you do not want Google to associate your site with the linked page or to crawl it from your site. Values can be combined, for example rel="ugc nofollow".2

    Google presents these attributes as hints: links that carry them are generally not followed, and the linked page can still be discovered through a sitemap or links from elsewhere.2 For a link to a page on your own site, Google recommends the disallow rule of robots.txt instead.2

    The noopener and noreferrer values belong to another subject, the safety of opening in a new tab. According to MDN, target="_blank" implicitly gives the behaviour of rel="noopener", and noreferrer adds that the Referer header is not sent.34 These values appear in the column but carry no weight in search.

    Checking the HTTP status of ten links

    Tick up to ten internal or external links in the table and click “Check the selected links”. The tool queries the ten addresses in parallel, in a single request from your quota, and shows the status code of each first response. It does not follow redirects: a 301 appears as 301, with its destination, which helps spot links to update. The body of the response is not read.

    An address over 300 characters cannot be ticked, and a site that does not answer in time is marked “no answer”. To follow a redirect chain to its end, the redirect and HTTP status checker takes over.

    What the tool does not see

    The tool reads the HTML as the server sends it, without running JavaScript. Links that a script adds after loading, in a dropdown menu or a list loaded on demand, are therefore missing, and a page built entirely in the browser returns few links, or none. Links inside modal windows or tabs are present if they are in the original code.

    Forms, XML sitemaps, links from <link> tags (canonical, hreflang, feeds) and images with no link are not <a> tags: they fall outside the scope. So do the <area> tags of image maps.

    After the extraction

    A page that receives few internal links is hard to find for Google and for visitors alike. The internal linking guide explains how to spread those links, with anchors that say where they lead. To inspect the headers returned by an address found in the list, the HTTP headers analyser gives all those of the response. And when the result shows hundreds of links to rework across a whole site, it is time for a full SEO audit, which prioritises the fixes.

    Frequently asked questions

    Which links does the tool not detect?

    Those that JavaScript adds after the page loads, because the tool reads the HTML as the server sends it. It lists only a tags: forms, link tags and image maps are ignored. If you have the full HTML, you can copy it from the browser inspector and paste it into the tool.

    What is a link that is not crawlable?

    A link Google cannot reliably follow: no href attribute, an empty href or one reduced to #, or a javascript: one. The tool groups them under the “Links that are not crawlable” filter. An anchor link to a passage of the same page, such as #contact, is classed separately.

    Does a nofollow or sponsored link cost the page anything?

    Google presents these values as hints about the nature of the link: links that carry them are generally not followed. They serve to qualify paid links, user links and links you do not wish to endorse. The choice follows the nature of the link.

    Why is a link to my own site classed as external?

    The tool compares host names, “www.” aside. A subdomain such as blog.example.com is therefore external to www.example.com. If the page redirects to another domain, the destination domain is the reference.

    How many requests does the tool use?

    One to read the page and one to check a batch of ten links. The quota is 20 requests per 10 minutes per visitor, shared with the other tools on the site. Analysing pasted HTML uses none.

    Is the data I paste kept?

    No. Pasted HTML is analysed in your browser and sent nowhere. For an address, the server reads the page, returns the links and keeps neither the address nor the content.

    Sources

    The passages of this page that rely on a source point to one of these references.

    1. Google Search Central, “Link best practices for Google”. developers.google.com ↑
    2. Google Search Central, “Qualify your outbound links to Google”. developers.google.com ↑
    3. MDN Web Docs, “<a>: The Anchor element” (href and target attributes, accessibility). developer.mozilla.org ↑
    4. MDN Web Docs, “rel attribute” (nofollow, noopener, noreferrer, external). developer.mozilla.org ↑

    A site whose internal links need rework?

    The SEO audit ties what the extraction reveals to the pages that really matter for your business. I reply within 24 business hours.

    Contact me