TraceLinker
Docs
CSV Format

CSV Format

The exact CSV format TraceLinker expects, plus converters for Ahrefs, Semrush, Moz, and Linkody exports.

This page is the canonical CSV format reference for audit and competitor uploads, plus how to convert exports from common SEO tools.

Required columns

The minimum CSV schema is three columns:

source_url,target_url,anchor_text
https://example.com/blog/post,https://yoursite.com/landing,best widget
ColumnRequiredNotes
source_urlYesFull URL of the page hosting the link. Include protocol (http:// or https://).
target_urlYesFull URL the link should point at.
anchor_textNoAnchor text. If empty, we extract from the page during crawl.

Extra columns are ignored, so paste any export verbatim. The header row is required - we use the column names, not positions.

Optional columns

If you provide these, we use them. Otherwise we extract from the source page.

ColumnWhat it does
relPre-set the rel attribute (dofollow, nofollow, sponsored, ugc). Skips re-detection.
first_seenISO date the link was first observed (for monitoring history).
last_seenISO date the link was last observed.
drExternal Domain Rating (Ahrefs-style). Ignored by AI scoring; useful for your own filtering.
noteFree-text notes you want stored on the row.

Encoding

  • UTF-8 without BOM.
  • Comma-separated, double-quote-wrapped strings if values contain commas.
  • Excel sometimes saves as UTF-8-with-BOM or as Windows-1252. Resave from a fresh editor if upload fails.
  • Line endings: LF or CRLF, both work.

Limits

  • Free: 100 rows per audit.
  • Pro: 1,000 rows per audit.
  • Agency: 10,000 rows per audit.

If your file exceeds the per-audit cap, split into multiple audits (each counts against your monthly audit cap).

Converting an Ahrefs export

Ahrefs Site Explorer → Backlinks tab → Export. The export contains many columns; map these:

Ahrefs columnMap to
Referring page URLsource_url
Target URL (or Linked Domain + Linked URL)target_url
Anchoranchor_text
Typeoptional rel (Nofollow → nofollow, otherwise dofollow)
Domain ratingoptional dr

Quick awk conversion:

awk -F'\t' 'BEGIN { OFS="," }
NR==1 { print "source_url,target_url,anchor_text"; next }
{ gsub(/"/, "", $0); print $5, $7, $11 }
' ahrefs-export.tsv > rbm-input.csv

Adjust column indexes based on which Ahrefs export profile you're using. Ahrefs has changed their column order multiple times.

Converting a Semrush export

Semrush Backlink Analytics → Backlinks → Export. Map:

Semrush columnMap to
Source URLsource_url
Target URLtarget_url
Anchor textanchor_text
Typeoptional rel
Source page authority scoreoptional dr

Semrush exports as .xlsx by default; export as CSV for simpler processing, or open in Excel/Sheets and save as CSV.

Converting a Moz export

Moz Link Explorer → Inbound Links → Export. Map:

Moz columnMap to
Source URLsource_url
Target URLtarget_url
Anchor textanchor_text
Reloptional rel
Domain authorityoptional dr

Converting a Linkody export

Linkody Backlinks → Export CSV. Map:

Linkody columnMap to
Source URLsource_url
Target URLtarget_url
Anchoranchor_text
Statusignored (we re-fetch status)

Converting a GSC export

If you exported manually instead of using the GSC integration: GSC → Links → Top linking sites → Export → "More sample links." For each linking site you have to drill in to get URLs - it's tedious. Use the GSC Integration instead - one-click pull, no manual export.

If you do export manually:

source_url,target_url,anchor_text
{source URL from "Sample link"},{your-domain},{leave empty}

GSC doesn't expose anchor text in exports, so leave the column empty - we extract during crawl.

Common errors

"Missing source_url column." The header row doesn't include source_url. Check column names - typos like sourceurl or Source_URL won't match. Headers are case-sensitive.

"Row 47: source_url is invalid." Either missing protocol (example.com/post instead of https://example.com/post) or malformed. Check that row.

"Row 102: target_url domain doesn't match audit target." If you set the audit target to yoursite.com, every target_url should be on yoursite.com. Rows where target is on another domain are skipped with a warning. This is intentional - prevents accidentally auditing competitor links you got via export.

"File too large." Exceeds your plan's per-audit cap. Split.

"Encoding error." Save as UTF-8 without BOM. Excel default UTF-8 includes BOM; use "CSV UTF-8 (Comma delimited)" in Excel's save-as menu.

Validating before upload

You can preview the parse before submitting. The New Audit form shows a row count and a sample of the first 5 parsed rows after you paste/upload. Check that source/target/anchor look right before clicking Start.

For larger files, run a head -5 your-file.csv locally to inspect the header and a few rows.

Sample CSV

source_url,target_url,anchor_text,rel,dr
https://blog.acme.com/best-tools-2024,https://yoursite.com/widgets,best widget tool,dofollow,68
https://newsletter.example.io/issue-12,https://yoursite.com/,Example Inc,dofollow,42
https://forum.example.com/thread/123,https://yoursite.com/blog/setup-guide,setup guide,nofollow,23
https://corp.example.org/partners,https://yoursite.com/,acme widgets,dofollow,55

Save as rbm-sample.csv, paste-upload to test the round trip.

Next