Verifying the Link Line Item on an Agency Report
A monthly report saying “10 links built” is a summary of ten specific rows, and the only way to evaluate it is to see the rows. Every property that determines whether a delivered link is worth anything — the URL, the date, the attribute, the target, whether the page is indexed — is a per-row field, and all of them are erased by the aggregate.
This is a data-verification exercise, not an accusation. Reports get summarised because summaries are shorter, and a competent agency will hand over the underlying rows without objection. If the rows aren’t available, that itself is the finding.
The fields a link row needs
For each delivered link, six fields make it checkable:
| Field | Why it matters |
|---|---|
| Linking URL | The exact page, not the domain. A domain isn’t verifiable. |
| Target URL | Which of your pages it points at, including any parameters. |
| Anchor text | Needed for distribution analysis later. |
| Link attribute | nofollow, sponsored, ugc or none. |
| Date first observed | Establishes the link is new in this period. |
| Discovery method | How they know it exists: your index, theirs, or the placement itself. |
A report that supplies the linking domain but not the URL isn’t verifiable at all, because you can’t check a page you haven’t been given.
The per-row check
1. Fetch the linking URL and find the link in the response. Not in a browser with everything rendered — fetch the HTML and search it. A link injected client-side is a different object from one in the served markup, and it’s worth knowing which you got. This is the difference A Link Row Records One Rendering is about: a tool’s row is a claim about one fetch at one moment, and your fetch is a second observation.
2. Confirm the target. The link should point at the URL the report says. A link to a redirecting URL, a parameterised variant, or a page that’s since moved is not the same delivery as a link to the target — the signals may still arrive, but the row as written is inaccurate.
3. Read the attribute off the markup, not off the report. rel="sponsored" or rel="nofollow" is a fact in the HTML, and it’s the single field most often wrong in summaries. Tools also count these inconsistently — see How Tools Count Nofollow, UGC and Sponsored Links — so read the source rather than a column.
4. Check whether the linking page is indexed. A link on a page a search engine hasn’t indexed is a link that may never have been processed. Whether the Linking Page Is Indexed has the method and its limits.
5. Check the date. “First seen” in a link index means the date the index first observed the link, not the date it was published — those can differ by weeks, and the gap is a property of crawl scheduling. What First Seen and Last Seen Mean covers the distinction. The relevant question is whether the link is genuinely new this period, and an index date is weak evidence for that while a page publication date, an archive capture or the placement’s own timestamp is stronger.
6. Look at the page. Not a metric: read it. Is it about anything? Does the link sit in editorial context or in a list of unrelated outbound links? Links on Page and Outbound Link Counts covers what to count once you’ve looked.
Ten rows takes half an hour the first time and less after that. Worth doing on the first two reports in full, then on a random sample of rows each month afterwards — a sample you choose, not one they supply.
Where reports go wrong without anyone lying
Several of the common problems are artefacts of tooling rather than misrepresentation, and recognising them keeps the conversation useful.
Links that were already there. If the report is generated by exporting new rows from a link index, an index that only just crawled an old link will report it as new. Lost Link Reports and Index Churn covers the same mechanism in the other direction. Cross-check against a prior export of your own if you have one, which is the argument for keeping your own baseline.
Links nobody built. Any active site earns links passively — press pickup, aggregators, someone’s blogroll. Those appear in a new-links export and are indistinguishable from delivered work unless the report separates built from earned. Ask for the split; it’s a reasonable question and the answer is informative either way.
Syndication counted as multiple links. One piece placed on a wire service can appear on dozens of hosts. Whether that’s one placement or thirty links is a definitional question — see What Counts as One Referring Domain — and it should be stated, not resolved silently in whichever direction produces the bigger number.
Site-wide links counted per page. A footer or sidebar link on a 5,000-page site is thousands of backlinks from one referring domain. Reporting the backlink count rather than the domain count inflates the total enormously: see Referring Domains Versus Total Backlinks.
Metric snapshots with no date. An authority score quoted for a linking domain is a value as of some day. Without the date and the vendor it can’t be compared to anything, including a re-check you run yourself, because scores move on recrawl for reasons unrelated to the site: When a Metric Moves but Nothing Changed.
Establishing your own baseline
The structural fix is to stop relying on a report you can’t reproduce. Keep your own monthly export of referring domains from whichever index you use, with the date and vendor stamped on the file. Then each month’s delivered rows can be checked against your own prior state rather than against the vendor’s characterisation of it.
Two caveats on that baseline. Your index has its own coverage gaps and its own churn, so an absence from your export isn’t proof a link doesn’t exist — What a Link Index Actually Contains and Sampling, Export Caps and Missing Rows both apply. And if you switch tools, the history doesn’t transfer cleanly: Changing Link Tools Without Losing History.
The standard to hold the report to is the one in Building a Link Report You Can Defend, applied to someone else’s work: every figure has a source, a date and a method, and every claim is checkable from the rows. A report that meets that standard is useful even when the numbers are modest. A report that doesn’t is a number you can’t do anything with.