Ask most teams how their link building is going and you get a number: how many links were placed this month. It is the number everyone reports because it is the number everyone tracks. It is also the number that says least about whether the campaign is working.
A placed link is not a permanent asset. It can be removed when the page is redesigned, quietly switched to nofollow, buried in a section that gets deindexed, or — most commonly — never indexed in the first place. None of those events sends you a notification. The link stays in your spreadsheet, ticked off, long after it stopped doing anything.
Four things that happen to links after placement
It never gets indexed. A link on a page search engines have not crawled since it changed is, for ranking purposes, a link that does not exist yet. New and low-traffic pages are the common case. This is the single most under-checked state in link building, because nothing about the page looks wrong when you visit it.
It gets removed. Site redesigns, content audits, editor changes, expired guest-post arrangements. The page still exists; your link does not.
It changes attribute. A publisher tightens policy and adds a nofollow or sponsored attribute sitewide. The link is intact; the calculation behind it is different.
The page decays. The link survives but the page loses its own links, gets deindexed, or ends up behind a redirect chain. Nothing happened to your link — everything happened around it.
Each of these is cheap to detect and expensive to miss, and none of them is visible from a list of URLs in a spreadsheet.
Why the spreadsheet stops working
Spreadsheets are excellent for the acquisition phase: a target list, contact status, notes. They fail at the phase after it, for two structural reasons.
The first is that a spreadsheet holds a snapshot, not a state. A link's condition changes over time and a cell does not know when it was last true. Ask "which links have not been checked in three months" and you cannot answer it, because the sheet never recorded when each row was verified.
The second is that link work is naturally task-shaped and spreadsheets are not. Every target implies a small chain of jobs — research, contact, follow up, verify placement, confirm indexation, re-check later. A sheet can hold a status column, but nothing generates the next task or tells you what is due today.
That is why teams past a certain volume drift toward something that treats each link as a record with a state, a history and a queue of actions attached — closer to a project tracker than to a reporting tool. SEO Pro, a Hebrew-language SEO management system, is built around exactly that shape: a database of link targets, tasks generated per target, per-link status tracking, and an index-ping action for links that are live but not yet picked up. If you work in Hebrew that combination is worth a look directly; if you do not, the structure is still the thing worth copying.
What a usable link record contains
Whatever you build it in, each link needs these fields to stay useful:
- Target and destination. The page that carries the link, and the page it points at. Both matter — a campaign that quietly puts every link on the homepage is a different campaign from the one you planned.
- Anchor text, recorded at placement, so you can see the profile you are actually building rather than the one you intended.
- Attribute (followed, nofollow, sponsored, UGC) as observed, not as promised.
- Status, from a fixed short list: prospecting, contacted, placed, verified, indexed, lost. Free-text status is the reason nobody trusts the sheet after two months.
- Last checked, as a date. This one field turns a static list into something you can audit.
- Owner, once more than one person works the campaign.
Six fields. The discipline is not in having them; it is in the last one staying current.
A re-check cadence that is actually sustainable
Checking everything constantly is neither realistic nor necessary. A workable pattern:
- At placement: verify the link exists, note the anchor and the attribute. This is the check most teams do, and the least informative one on its own.
- Two to four weeks later: verify the page carrying the link has been indexed and that the link survived the first content review. Most removals and most indexation failures surface in this window.
- Quarterly: sweep the whole set for removals and attribute changes. Anything not checked in a quarter should surface automatically — which is exactly what the last-checked field is for.
The point of the cadence is not thoroughness for its own sake. It is that a link you know is gone can be replaced, and a link you assume is live cannot.
Reporting on the set, not the month
Once links have states, the reporting question changes from "how many did we build" to something more honest: how many are live and indexed right now, how many were lost this quarter, and what the replacement rate is. That corresponds to what a client is actually buying, and it is usually a smaller and more defensible number than the acquisition count.
It also changes prioritisation. A campaign losing links faster than it places them does not need more outreach; it needs better targets. You cannot see that distinction from a monthly total. For the acquisition side of the same work, our link building guide covers how to pick targets worth keeping in the first place.
FAQ
How do I check whether a link has been indexed?
Check whether the page carrying it is in the index, not merely whether the page loads. A page that has not been crawled since your link appeared cannot pass anything yet. Some management systems include a ping or submission action for this; otherwise it is a manual check worth scheduling rather than skipping.
Is it worth tracking links from campaigns that have ended?
Yes, and this is where value quietly leaks. Old links are assets you already paid for; a removal you never noticed is a loss you never replaced. A quarterly sweep of the full historical set costs little and regularly turns up losses from years back.
Do I need a dedicated system, or is a spreadsheet enough?
For a handful of links on one site, a spreadsheet with a last-checked column is genuinely fine. The break point arrives with multiple projects or multiple people, when you need tasks generated per target and a queue of what is due — that is when the sheet becomes a list nobody updates.
What is the single most useful field to add today?
The date each link was last verified. It converts an aspirational list into something you can audit, and it immediately shows how much of the sheet you have been trusting on faith.
Next step
Take your existing link list and add two columns: current status from a fixed set, and last-checked date. Fill them in once, honestly. The gap that appears is the real state of your link profile — and it is the argument for moving the whole thing into something that tracks state and generates the next task, whether that is a system like SEO Pro or a structure you build yourself.