TraceLinker
Docs
Run a Backlink Audit

Run a Backlink Audit

Step-by-step guide to running an AI-powered backlink audit using CSV upload or Google Search Console import.

A backlink audit is the entry point of every TraceLinker workflow. This guide covers running one end to end, including the trade-offs between CSV upload and GSC import, deduplication, and what to do with the results.

When to run an audit

  • Onboarding a new client - import their backlink list from Ahrefs/Semrush export or GSC, get an AI scored profile in one screen.
  • Vetting a backlink supplier - paste the CSV they delivered, see which placements are real, valuable, and not toxic.
  • Refreshing a profile - rerun an audit on the same CSV monthly to track which placements changed or died.
  • Pre-disavow review - audit a profile to identify the toxic candidates before generating the disavow file.

Quotas

PlanAudits / monthMax items per audit
Free1100
Pro51,000
Agency5010,000

If you hit the audit count cap mid-month, you'll see a 402 error with an upgrade prompt. Items per audit is a hard limit per submission - splitting a 5,000-link list across two Pro audits is fine, but exceeds the per-audit cap.

Method 1 - CSV upload

The most flexible input. Works with exports from any tool (Ahrefs, Semrush, Linkody, Monitor Backlinks, GSC manual export, your own scrape).

Open the New Audit form

From the dashboard, click Audits in the sidebar, then + New Audit in the top right.

Audits index page with New Audit button

Choose CSV upload

The form has two tabs: CSV and Google Search Console. CSV is the default.

New Audit form CSV tab

Prepare your CSV

The required columns are:

source_url,target_url,anchor_text

source_url is where the link lives. target_url is where it points (your domain or a specific page). anchor_text is optional - we extract it from the page if missing.

Extra columns (like Ahrefs Domain Rating, URL Rating, External Backlinks) are ignored, so you can paste any export verbatim. See the CSV Format reference for converting common exports.

Set the target domain

Above the CSV box, enter the target domain (e.g. yoursite.com). This is what we use to filter links during audit - any source URL we crawl will only contribute discovered backlinks if at least one anchor on the page points at this domain (or a subdomain or path under it).

Paste or upload

Either paste your CSV directly into the textarea, or drag a .csv file onto the upload zone. The form previews a row count before you submit.

Click Start audit

The form does an immediate insert into the backlink_audits table with status queued, then redirects you to the detail page. The audit runs server-side and is unaffected by you closing the tab.

Method 2 - Google Search Console import

Faster for sites where GSC has good link coverage. Requires GSC connected first - see GSC Integration.

Switch to the GSC tab

In the New Audit form, click the Google Search Console tab.

New Audit form GSC tab with site selector

Pick a verified property

The dropdown shows every Search Console property your connected Google account has access to. Pick the one matching your target domain.

Choose a date range

GSC stores 16 months of link data. Default is the most recent 90 days, which covers active changes without pulling ancient links.

Click Pull from GSC

We call the GSC API, page through results (max 1,000 per request, paginated), and turn each row into an audit input. After import, the rest of the flow is identical to CSV - you land on the audit detail page with progress streaming.

GSC vs CSV trade-offs:

GSCCSV
CoverageOnly what Google indexesWhatever your tool found
Anchor textSometimes missingUsually included
TimingLags 2-3 daysAs fresh as your export
SetupOne-time OAuthNone
CostFreeFree

Best practice: GSC for routine refreshes, CSV when migrating from another tool or getting a one-time supplier delivery.

Watching the audit run

Once submitted, you land on the detail page at /dashboard/audits/{id}. The page polls every 2 seconds while the audit is running.

📸 Audit detail page mid-run with progress bar at 47% and recent rows

What you see while running:

  • Progress bar - percentage complete (processed / total).
  • Status banner - queued, processing, done, or failed with an error message.
  • Recent rows - the last 5 scored links stream in live so you can sanity-check early.
  • Cancel button - stops processing and marks the audit as cancelled.

Average runtime: about 5 seconds per link including crawl + AI score. A 100-link audit is roughly 1 minute. A 1,000-link audit is closer to 8 minutes.

You don't have to wait. Close the tab, do other work. An email arrives when it finishes (default setting).

Reading the results table

Once status flips to done, the table fills with one row per discovered backlink:

📸 Audit detail completed with full results table

ColumnWhat it shows
Source URLThe page on which the link was found. Click to open in a new tab.
TargetThe page on your site the link points at.
AnchorAnchor text. Long anchors are truncated with a tooltip.
Statusalive (link found), changed (target changed since last seen), dead (no anchor found).
Score1-100 with a colour band: red below 30, amber 30-69, green ≥70.
ReasoningOne sentence explaining the score. Click the row to see the full thing.
Toxicitysafe / caution / toxic badge.
ActionsNumber of AI-suggested actions (3-5 per row). Click to expand.

Sortable columns: Score, Toxicity, Status. Filterable: by status, score range, toxicity flag.

Acting on results

Top of the page has bulk-action buttons:

📸 Bulk action toolbar above results table

  • Move to monitoring - takes selected rows (default: rows scoring 70+) and adds them to your monitored links list.
  • Download disavow.txt - generates a Google-ready file from rows where is_toxic = true. See Disavow Toxic Links.
  • Compose outreach - opens the outreach modal for selected low-score rows. See Reclaim Lost Links.
  • Export CSV - downloads the full results table for sharing or archive.

Rerunning an audit

You can rerun any audit from the detail page (button next to Export). A rerun creates a new audit row pointing at the same input, then crawls and scores everything fresh. Because the originals are kept, you can compare snapshots over time.

This is the easiest way to spot:

  • Links that decayed (score dropped, status flipped).
  • Links that went dead but you missed because they weren't in monitoring.
  • New links Google indexed that weren't in last month's GSC pull.

Troubleshooting

"No backlinks discovered" The audit ran but no source URL contained a link to your target domain. Check:

  • Is target_url correct? Common typo: missing protocol, wrong subdomain.
  • Are the source URLs reachable? If they all 404, you'll see them as dead rows but no scores.

Audit stuck at "queued" for more than a minute The worker may be backlogged on the free shared tier. Refresh - if still queued after 3 minutes, file a bug. Pro and Agency get higher worker priority.

"Failed: rate limited by source" Some target sites block rapid crawls (Cloudflare bot challenge). The audit completed everything it could; the blocked rows show status=failed. You can retry just those rows via the row dropdown.

Score column shows "—" The DeepSeek API call failed for that row (rate limit, timeout). Click Rescore in the row dropdown to retry that single row.

Next