My Tool Studio
Text Tools·4 min read

Extracting Links From Documents for a Link Audit

A link audit starts with a list, and building the list is the boring half of the job. Extracting links from documents by hand means scrolling, selecting, and inevitably missing the one address that mattered. The Extract URLs tool does it in a paste: drop in a report, a draft post, or an exported newsletter, and every http and https address comes back one per line, duplicates removed. Here's how the matching behaves, where it clips or overshoots, and how to turn the raw list into an audit you can act on.

Where extracting links from documents fits in an audit

Inventory first, judgment second.

Every serious content review begins with an inventory. Before you can ask whether links are broken, outdated, or pointing at competitors, you need to know what links exist. That's easy on a live page and surprisingly annoying in documents: Word drafts, Google Docs exports, markdown files, and newsletter archives all mix addresses into prose where no crawler can see them.

Auditing links in content that hasn't shipped yet is the highest value case. Catching a dead reference or a staging address in a draft costs nothing; catching it after publication costs a correction. Writers who paste their draft into the extractor before handoff get a checklist of every source in about two seconds, and editors can compare that list against the citations the piece claims to make.

Archives are the other rich vein. A year of newsletter sends, exported as text, condenses into a single deduplicated list of every destination you've ever pointed readers at, which is the raw material for spotting retired campaigns, expired promotions, and partners you no longer work with.

A worked URL extraction with dedupe in action

Three mentions, two results.

Input: The launch post (https://example.com/blog/launch?utm_source=nl) links to https://example.com/docs, and https://example.com/blog/launch?utm_source=nl appears again in the footer. Output: two lines, https://example.com/blog/launch?utm_source=nl) and https://example.com/docs. The repeated launch address collapsed into one entry and the query string survived intact.

Look closely at the first result, though: it ends with a parenthesis. The matcher stops at whitespace, quotes, and angle brackets, but a closing paren pressed against an address gets swept in. That's the single most common artifact in extracted lists, and it's worth a ten second scan before you paste the results anywhere important.

Http vs https in extracted lists

Scheme mix is a finding, not noise.

The extractor captures both schemes and treats them as different strings, so http://example.com/page and https://example.com/page show up as two separate lines even though they usually resolve to the same content. Don't merge them blindly; the split is telling you something.

A cluster of http entries in a modern document almost always marks old content: links copied from ancient posts, templates that predate a TLS migration, or sources that redirect on every click. Flag every plain http address as an upgrade candidate in your audit sheet. It's the cheapest fix on the whole list and it removes a redirect hop for every reader.

URL grabbing mistakes that skew an audit

Know what the pattern can't see.

The matcher is fast and consistent, but a link audit built on it needs to account for its blind spots.

  • Schemeless addresses are invisible. A bare www.example.com or example.com/docs never matches, because the pattern anchors on http. Grep your source for www. as a sanity check.
  • Relative paths don't exist here. A docs page full of /guides/setup style links extracts nothing, since those only become addresses in the context of a site.
  • Trailing punctuation joins the match. Periods, commas, and closing parens glued to an address come along for the ride. Clean these before comparing lists.
  • Duplicate counts are gone. Dedupe is usually what you want, but if you needed to know that one address appeared nine times, count in the source first.

Tips for auditing links in content once you have the list

From raw lines to decisions.

First, paste the output into Sort Text Lines. Alphabetical order groups addresses by domain, which splits your audit naturally into internal links, familiar externals, and the long tail of one off sources that need individual review. Second, keep tracking parameters visible instead of trimming them; inconsistent utm tagging across a campaign is exactly the kind of finding an audit exists to catch.

Third, timestamp the list. An extracted inventory is a snapshot, and pairing it with a date means the next audit can diff against it instead of starting from zero.

Extract URLs or Link Extractor: pasted text or live pages

Two tools, one distinction.

The names are close, so here's the line between them: Extract URLs works on text you paste and never touches the network, while the Link Extractor in the SEO category fetches a live page by its address and lists the anchor tags in its HTML, split into internal and external. Draft in a doc? Paste it here. Page already on the web? Point the Link Extractor at it.

Around the edges, Find and Replace can prepend schemes to www addresses the pattern would otherwise miss, and Extract Emails runs the same paste for people instead of pages when a document references both.

Try it now

Open Extract URLs

The tool is one click away. No sign up, no upload, no payment.

Open Extract URLs