AM Jarvis

URL Extractor: Get Every Link From Text or HTML

Paste text or page source and list every link with its anchor text, internal or external type, nofollow flag and a CSV export.

Or drop files HTML, TXT, CSV, XML sitemap, DOCX, XLSX or PDF (links and text)

    Runs in your browser. Nothing is uploaded and no page is fetched: paste the source of a page (View source, then select all) to list its links.

    In short

    Paste plain text or a page's HTML source, or drop HTML, TXT, CSV, DOCX, XLSX or PDF files. The URL extractor lists every link it finds, including href values with their anchor text and plain URLs written in the text. Enter your domain to split internal and external links, strip tracking parameters if you like, and copy or download the list.

    On this page
    1. How to extract links
    2. Example: one blog post snippet
    3. Options explained
    4. How links are found
    5. The CSV columns
    6. What you can use it for
    7. Limits to know

    Sometimes you need every link in one place: all the product URLs in a supplier email, the outbound links in a blog post you are auditing, the links inside a PDF catalog, or the internal links on a page you are about to redesign. Doing it by hand means clicking through source code and missing the ones hidden in buttons and images.

    This URL extractor reads text and HTML and returns a clean list. When you paste HTML, it reads the actual link elements, so you also get the anchor text and rel attributes such as nofollow. When you paste plain text, it finds addresses that start with http, https or www. It runs in your browser and does not fetch any page.

    1. Paste text into the box. For a web page, open it, press Ctrl+U (Option+Command+U on a Mac) to view the source, select all, copy and paste.
    2. Or drop files: HTML, TXT, CSV, XML sitemaps, DOCX, XLSX or PDF. In Word and Excel files the hyperlink targets are read; in PDFs, the clickable link annotations and any URLs in the text.
    3. Enter Your domain (for example harborlane.com) to label links as internal or external. If the source has a canonical tag, the domain is picked up from it automatically.
    4. Add a Base URL if the source uses relative links like /pages/shipping and you want full addresses.
    5. Pick options, then copy the list or download it as CSV or TXT.

    Example: one blog post snippet

    The tool loads with a small piece of HTML from a store blog. It holds a canonical tag, two links to the same collection with different UTM tags, a relative link, a nofollow link and a YouTube address typed as plain text. The extractor returns:

    URL foundAnchor textType
    https://harborlane.com/pages/shippingshipping policyinternal
    https://harborlane.com/collections/linen?utm_source=blog&utm_medium=postlinen collectioninternal
    https://www.textileexchange.org/Textile Exchange (nofollow)external
    https://harborlane.com/collections/linen?utm_source=footerLineninternal
    https://www.youtube.com/watch?v=abc123XYZ09(plain text)external

    Turn on Strip tracking parameters and the two collection links become the same URL, so the unique list drops from 5 to 4. That is a quick way to see which pages a post really links to, regardless of how each link was tagged.

    Options explained

    OptionWhat it does
    Show: all, internal, externalFilters by your domain. A relative link always counts as internal.
    Subdomains count as internalWith it on, shop.brand.com and blog.brand.com are internal to brand.com.
    Unique onlyLists each URL once and counts repeats in the CSV column times_found.
    Strip tracking parametersRemoves utm_ tags, gclid, gbraid, wbraid, fbclid, msclkid, Mailchimp, HubSpot and similar click IDs. Other query parameters, like ?variant= or ?page=, are kept.
    Remove #fragmentsCuts the part after #, so page#reviews and page#specs count as one page.
    Include images, scripts and stylesheetsAlso lists img src and srcset, script src, iframe src, video and audio sources and link tags such as stylesheets, icons and canonical.
    Include mailto: and tel:Adds contact links, labeled contact.

    The stat boxes count links found, unique links, internal, external, nofollow (including sponsored and ugc) and distinct domains. The table shows up to 1,000 rows; copy and download always include everything.

    When the input looks like HTML, the extractor parses it the way a browser would, without running any scripts, and reads the href of every a and area element. The visible text of the link becomes the anchor text. If a link wraps an image instead of text, the image's alt text is used and marked [image], which is handy for spotting image links with empty alt attributes. It then scans the visible text for written-out URLs so that addresses typed into a paragraph are not missed.

    Links that cannot lead anywhere useful are skipped: javascript: links, data: URLs, and a bare # that only scrolls the page. Protocol-relative links that start with // get https: added. If the source contains a <base href> tag, relative links are resolved against it, the same way the browser does.

    The CSV columns

    The download has one row per link with eight columns: url, domain, type (internal, external, contact or link when no domain is set), element (link, image, script, stylesheet and so on), anchor_text, rel, times_found and source. The file is UTF-8 with a byte order mark, so it opens cleanly in Excel. Sort it by domain in a spreadsheet to see which sites a page links to most, or filter the rel column to check every affiliate link carries sponsored or nofollow.

    A practical check for internal linking: paste the source of your ten most important pages one at a time, download the internal links, and combine the files. Pages that never appear in the url column are pages your own site does not link to, and those are often the ones that struggle to rank. The same files also show anchor text, so you can see whether you link to a collection as "click here" or with words people actually search for.

    What you can use it for

    Link audits before a redesign or migration

    Paste the source of your key pages and download the internal links. That list is the starting point for a redirect map when URLs change. Check the old addresses afterwards with the redirect checker to confirm each one lands where it should.

    Outbound link review

    Filter to external links to see who a page links out to and which links carry nofollow or sponsored. Affiliate and review sites use this to confirm every paid link is marked. The meta tag analyzer covers the rest of a page's on-page signals.

    Collecting product links from supplier mail

    Suppliers often send dozens of product URLs in one message or PDF. Drop it in, filter to their domain, strip tracking tags and you have a clean import list. In AM Jarvis, the Product Importer accepts product URLs from public Shopify and WooCommerce stores, so a clean list saves real time.

    Checking a sitemap

    Drop a sitemap.xml file to list the URLs it holds, then sort by domain or A to Z to spot staging addresses or http links that should not be there.

    Cleaning a messy URL list

    If you already have URLs but they are mixed with notes, tagged with different campaigns and repeated, paste the whole block. With Unique only, Strip tracking parameters and Remove #fragments on, a long column of shared links from a spreadsheet shrinks to the distinct pages behind them, because the same page tagged five different ways counts once. Sort A to Z and the list is ready to paste into a rank tracker, a redirect test or a spreadsheet. Since the work happens in the browser, there is no upload wait and no limit on how many times you run it.

    Limits to know

    • Nothing is fetched. To list links on a live page, paste its source; the tool cannot follow links or crawl a site.
    • Links that a page builds with JavaScript after loading are not in the raw source. Copy the rendered HTML from your browser's developer tools (right-click the html element, Copy, Copy outerHTML) to include them.
    • Plain text URLs must start with http://, https:// or www. A bare domain such as harborlane.com in a sentence is not treated as a link, because it could just as well be a brand name.
    • Scanned PDFs have no text layer and only their clickable links, if any, are read.

    If you are researching a niche and want the pages competitors rank with rather than the links on one page, Niche Research in AM Jarvis maps real Google searches into a site plan, and the guide to niche keyword research explains the method.

    Frequently asked questions

    How do I extract all links from a web page?

    Open the page, view its source (Ctrl+U on Windows, Option+Command+U on a Mac), select all, copy and paste it into the box. The extractor reads every a and area element with its anchor text. Add your domain to see internal and external links separately.

    Can it extract URLs from plain text?

    Yes. Paste any text and it finds addresses that start with http://, https:// or www. Trailing punctuation such as a period or a closing bracket at the end of a sentence is trimmed, while brackets that belong to the URL are kept.

    Does it work with relative links?

    Yes. Relative links like /products/mug are listed as internal. Enter a base URL, or paste source that includes a canonical or base tag, and they are turned into full addresses such as https://yourstore.com/products/mug.

    Which tracking parameters are removed?

    All utm_ parameters plus common click IDs: gclid, gclsrc, dclid, gbraid, wbraid, fbclid, msclkid, ttclid, twclid, yclid, igshid, srsltid, li_fat_id, Mailchimp mc_cid and mc_eid, HubSpot _hsenc and _hsmi, and a few more. Parameters that change the page, like variant or page, stay.

    Can I get the links from a PDF or Word document?

    Yes. Drop the file. For PDFs the tool reads clickable link annotations and URLs in the text layer. For DOCX and XLSX it reads hyperlink targets stored in the file and URLs typed in the text. Nothing is uploaded.

    Is there a limit on how many URLs it can extract?

    There is no fixed limit. Pages with thousands of links work fine; the on-screen table shows the first 1,000 rows, and Copy, TXT and CSV include every link. Very large files are limited only by your device memory, with a 50 MB cap per file.