ConvertCSV

Extract HTML Links to CSV for Audits, SEO, and Research

By Convert CSV Editorial TeamLast updated August 3, 2026

Convert HTML anchor links into a CSV of URLs, anchor text, and attributes. Build link audits for US/UK/EU sites without messy copy-paste into Excel.

Link Lists Belong in Spreadsheets

SEO audits, content migrations, legal URL inventories, and competitive research all need a table of href + anchor text. Copying links by hand from a browser is slow and error-prone. Extracting HTML links to CSV gives marketers and engineers in the US, UK, Australia, Canada, and Europe a file they can filter in Excel, Sheets, or BI tools.

What Gets Extracted

Typical columns from an HTML link harvest.

ColumnSource
hrefa[href] attribute (may be relative)
textVisible anchor text
titletitle attribute if present
relrel value (nofollow, sponsored, …)
target_blank and friends
href,text,rel,target
/guides/csv-to-markdown,CSV to Markdown,,
https://example.com/pricing,Pricing,noopener,_blank
mailto:hello@example.com,Email us,,

Step-by-Step: HTML → Link CSV

Client-side path for a saved page or snippet.

  • Save the page HTML, or copy the relevant DOM fragment from DevTools.
  • Open HTML Links to CSV on Convert CSV Online.
  • Paste/upload; preview extracted rows.
  • Download CSV; open in Online CSV Editor.
  • Resolve relative URLs against the page origin if you need absolute links.
  • Filter out mailto:, tel:, javascript:, and # duplicates as needed.
  • Export Excel for stakeholders or keep CSV for scripts.

Absolute vs Relative URLs

Relative links are correct on the site and annoying in audits.

Resolve with a base URL

Use the page’s origin when turning /about into https://example.com/about:

const base = "https://example.com";
const absolute = new URL("/guides/csv-to-markdown", base).href;
// https://example.com/guides/csv-to-markdown

Python batch resolve

Adds an absolute_url column using urllib.parse.urljoin.

from urllib.parse import urljoin
import csv

base = "https://example.com"
with open("links.csv", newline="", encoding="utf-8") as inp, \
     open("links_absolute.csv", "w", newline="", encoding="utf-8") as out:
    reader = csv.DictReader(inp)
    fieldnames = list(reader.fieldnames or []) + (["absolute_url"] if "absolute_url" not in (reader.fieldnames or []) else [])
    writer = csv.DictWriter(out, fieldnames=fieldnames)
    writer.writeheader()
    for row in reader:
        row["absolute_url"] = urljoin(base, row["href"])
        writer.writerow(row)

SEO and Migration Use Cases

Where this conversion pays rent.

  • Crawl exports aside: quick audit of a single template or footer.
  • Find broken internal paths before a domain move.
  • Inventory nofollow/sponsored attributes on affiliate pages.
  • Build a redirect map: old path column → new path column.
  • Content teams: extract “further reading” lists into editorial trackers.

HTML Tables vs HTML Links

Pick the right extractor.

NeedTool
Rows/columns from <table>HTML Table to CSV
Every <a href>HTML Links to CSV
Both on a complex pageRun both; join in Excel via URL keys if needed

Noise You Should Filter

Raw extractions lists are messy — that is normal.

  • Navigation duplicates across header/footer.
  • Empty anchors used for buttons.
  • # sections and same-page jumps.
  • Tracking parameters — decide whether to strip ?utm_*.
  • Localized paths (/de/, /en-gb/) when auditing multi-country sites.

Legal and Ethical Notes

Extracting links from HTML you are allowed to access is routine. Bulk crawling someone else’s site may violate terms or robots rules — prefer exports you own, staging HTML, or authorized audits.

Common Mistakes

Audit foot-guns.

  • Treating relative /pricing as broken because Excel is not a browser.
  • Forgetting UTF-8 on non-English anchor text.
  • Deduping only on text and merging different URLs.
  • Using HTML Table to CSV when the links are not in a table.
  • Pasting rendered text instead of HTML — anchors disappear.

Best Practices

Make link CSVs reproducible.

  • Record the source URL and capture date in the filename.
  • Normalize to absolute URLs before sharing.
  • Separate internal vs external with a simple domain match column.
  • Keep a raw extract and a cleaned extract.
  • Convert in-browser when HTML contains unpublished URLs.

Why Use Convert CSV Online?

Convert CSV Online is free, browser-based, and requires no account for everyday conversions. HTML Links to CSV builds audit tables quickly; clean results in the Online CSV Editor and ship Excel to clients. Works on Windows, macOS, and Linux browsers for SEO and migration teams across US, UK, AU, CA, and EU.

Extract links to CSV now

Paste HTML, preview href/text columns, download CSV, and continue your audit.

Conclusion

HTML links to CSV turns messy page markup into a filterable URL inventory. Extract, absolutize, dedupe, and document the source — then analyze in Excel instead of clicking one link at a time.

FAQ

How do I export all links from an HTML page to CSV?

Provide the page HTML to an HTML Links to CSV tool, download the resulting table of href and anchor text, then clean and absolutize URLs as needed.

Can I extract links from a live URL?

Save or view-source the page to HTML first (or use your own crawler), then convert. Browser-side tools typically work on HTML you supply.

What is the difference between HTML table to CSV and HTML links to CSV?

Table conversion reads <table> rows and cells. Links conversion reads <a href> anchors anywhere in the markup.

How do I convert relative links to absolute?

Resolve each href against the page’s base URL using a URL library or spreadsheet formula after extraction.

Will this get meta refresh or JS-only navigations?

No. It extracts HTML anchors. Client-side routers and non-anchor clicks need different tooling.

Is link extraction legal?

Working with HTML you own or are authorized to audit is standard. Respect site terms and robots rules for third-party crawling.

References

Convert your CSV in the browser

Preview, clean, and convert CSV files free with Convert CSV Online—no installation and no account required for everyday conversions.