Import reference · reviewed September 12, 2026

Ahrefs backlink import guide

Prepare Ahrefs backlink rows for AgentLinkOps: source and target columns, a compatible CSV example, preview behavior and common mistakes.

Use the ahrefs adapter for a tabular file with source-page and target-page URLs. The fields below describe the implemented AgentLinkOps adapter. Check your actual headers before using a provider preset; exports can differ by report and version.

Columns this adapter recognizes

Representative compatible headers; aliases may also be supported.
PurposeHeaderInterpretation
sourceReferring page URLRequired URL of the page containing the link
targetTarget URLRequired URL the link points to
anchorAnchorOptional supplier-reported anchor text
first_seenFirst seenOptional provider first-seen timestamp
last_seenLast seenOptional provider observation timestamp
link attributeNofollowOptional supplier flag; inspect its meaning before use

Domain Rating, URL Rating and traffic columns remain provider metrics. They do not become a fresh verification result.

Keep the original export: the adapter retains at most 32 additional nonblank metric fields, limits their names to 64 characters and string values to 256 characters. The normalized record is not a lossless archive.

A small compatible CSV

This synthetic example shows the minimum page pair and an optional anchor. The example domains are placeholders. Use a copy of your own file for a real preview.

Referring page URL,Target URL,Anchor
https://example.org/resources,https://example.com/guide,Example resource

Download this sample CSV

Preview from an existing repository checkout

The development CLI requires access to the AgentLinkOps repository. There is no public package installation step here. Run mkdir -p examples from the repository root, save the sample as examples/ahrefs.csv, then preview it:

node cli/linktrail.mjs import examples/ahrefs.csv --target example.com --from ahrefs

The import command reads and validates the file. It reports accepted, rejected and duplicate rows; it does not write the local ledger, fetch the source pages or create a remote import run. Keep the preview result beside the original export, and resolve rejected rows before using the candidate list.

What to check before proceeding

Referring-domain summaries are useful for grouping but lack the source-page pair this importer requires. Use a page-level file and keep export filters with it.

A row can preserve an older first-seen date even when your preview runs today. Read those as separate timestamps; do not overwrite the provider date with the import date.

If you include a mapped link-attribute column, inspect empty cells. The current parser treats a blank Nofollow cell as false and a blank dofollow cell as false. Those defaults are not evidence from a current fetch; omit an unreliable flag column or normalize it deliberately.

Confirm that the target URLs match the intended site. A well-formed row for a different target is still outside that import scope. If a column is missing, use an explicit mapping to an existing column or prepare the required data; do not fill in an invented source page.

From an imported row to current evidence

Provider dates and flags describe the supplied data. They do not establish that the backlink is live now. Review the candidate, check the source page and preserve the check time before recording a confirmed placement. A failed request remains inconclusive until you have evidence of what the page contains.

Imports and selected candidate checks are available in the private pilot. Live supplier discovery and competitor-gap workflows are still in validation. A local preview alone does not approve or bind a frozen inventory for competitor comparison.

Continue your workflow