Content audits stall when nobody has a list of what a page actually links to. Marketing wants every outbound partner link. Legal wants sponsored attributes on affiliates. SEO wants internal links to the new hub page. Developers want to know which hrefs still point at the old domain after a migration.
The fastest start is one URL, one HTML fetch, one table — or paste HTML from View Source when fetch is blocked. The Link Extractor on Scrawl does exactly that: up to 500 <a href> rows with anchor text, absolute URL, internal vs external, rel tokens, filters, and CSV export. URL fetch does not render JavaScript.
Link extractor vs Internal Link Analyzer
These tools overlap on paper but solve different jobs. The link extractor is a flat inventory — every anchor, strong on external URLs and rel flags, with CSV for spreadsheets. The Internal Link Analyzer maps internal link structure: placement (header, nav, body, footer), anchor patterns, and how equity flows between your URLs. Run the extractor when legal or SEO needs an outbound list; run the analyzer when you are sculpting internal links on a template.
When to extract links instead of crawling
Use a single-page extractor when:
- You are reviewing one article, landing page, or policy page and need every href in context.
- You are about to rewrite a template (footer, related posts, author box) and want a before snapshot.
- You exported a URL list elsewhere and only need anchors from a handful of money pages.
- You need a CSV for a stakeholder who will not run Screaming Frog.
Use a crawler or log analysis when you need every URL on a site or links that only appear after JavaScript runs.
What the extractor returns
Choose Fetch URL or Paste HTML (set the page URL when hrefs are relative). The tool:
- Fetches the HTML (with redirects, up to the usual timeout) or parses your paste.
- Walks every
<a href>in that HTML. - Resolves relative paths to absolute URLs against the final URL.
- Classifies internal (same registrable host, ignoring
www) vs external. - Reads rel for nofollow, sponsored, and ugc (case-insensitive token match).
- Captures anchor text (visible text, else image alt, else
[image]).
Summary counts show totals for internal, external, nofollow, sponsored, ugc, and special schemes (mailto, tel, javascript, empty #).
Truncation: Pages with more than 500 anchors return the first 500 rows and flag truncation. Mega-sitemaps in HTML are rare; tag pages with hundreds of related links are the usual edge case.
No JS: If your nav only exists after React hydrates, this list will miss it. Note that in the audit doc and use manual testing or a rendering crawl for that template.
Filter and export workflow
Inside the tool:
- Filter Internal to see on-site paths you are passing equity to.
- Filter External for partner, citation, and affiliate links.
- Filter Nofollow / Sponsored / UGC to QA compliance.
- Use the search box to find a domain (
examplecdn.com) or anchor phrase (pricing).
Click Download CSV for the filtered set. Columns include anchor text, absolute URL, original href, internal/external flags, and rel summary.
Typical next steps with other Scrawl tools:
| Goal | Next tool |
|------|-----------|
| Are these hrefs alive? | Broken Link Checker on the same URL |
| Status on a pasted list | Bulk Status Checker |
| Internal anchor distribution | Internal Link Analyzer |
| Outbound follow vs nofollow | Nofollow Link Checker |
How to audit the CSV
Internal links
- Do important pages link to the new hub with descriptive anchors, not "click here"?
- Are footer links duplicated on every row (expected) — fix once in the template.
- After migration, do any internal hrefs still use the old hostname? Filter the CSV for the old domain.
External links
- Do affiliate or paid placements have
rel="sponsored"(and oftennofollow)? - Do forum or comment links use
ugcwhere your policy requires it? - Are there unexpected outbound domains (expired widgets, old embeds)?
Special rows
mailto:andtel:are fine; they are not HTTP checks.javascript:void(0)rows signal buttons implemented as fake links — accessibility and crawlability issue, not a broken HTTP link.
Worked example: post-migration article
You migrated blog.old.com to www.example.com/blog/. Open a top post on the new host in the Link Extractor.
- Filter External. If you see
blog.old.comin absolute URLs, content still points at the old property — update hrefs or rely on redirects (redirects work for users but clean hrefs are better). - Filter Internal. Confirm links to
/pricingand/docsuse the new paths, not staging. - Export CSV and attach to the migration ticket.
- Run Broken Link Checker on the same URL to HTTP-check every http(s) href.
Mistakes that waste time
- Expecting SPA nav links without server-side HTML. Fix the template or accept that you need a different tool.
- Treating extraction as a crawl. One URL per run. Repeat for each template type.
- Skipping rel review because status codes are all 200. Follow attributes are policy, not uptime.
- Checking 500 rows when only 40 are external. Filter before export.
FAQ
How do I get all links from a page?
Use the Link Extractor: one URL, HTML parse, CSV export.
Does it run JavaScript?
No. Initial HTML only.
Extractor vs broken link checker?
Extractor lists hrefs; broken link checker requests them.
How many links?
Up to 500 returned per page.
Why rel matters?
Sponsored, ugc, and nofollow change how outbound links are treated.
Extract links now
Paste the page URL into the Link Extractor, filter what you care about, export CSV, then run status checks on the same URL or your exported list.