Search "link building ROI" and every guide opens with the same formula:
ROI = (Revenue - Cost) / Cost x 100
It's correct. It's also the easy part, and it's not why you're stuck.
You're stuck because you fed that formula real numbers once and got an answer you didn't believe. That isn't the formula's fault. It's the two inputs:
Those two numbers are the whole job. Get them right and the ROI is arithmetic. Get them wrong, which is the default, and you get a confident percentage that means nothing.
And no benchmark can hand them to you. The "average link building ROI" figures floating around (the 5-to-10x rules of thumb, the several-hundred-percent headlines) describe other companies: their costs, their margins, their markets. Fine as a sanity check. Useless as your answer.
Your ROI isn't a number you look up. It's one you build. Here's the build.
The short version
Run the math twice, for two different jobs.
- Before you spend (the forecast): estimate it pessimistically, to decide whether to bother.
- After you spend (the reckoning): measure what actually happened, and subtract what would have happened anyway.
Almost every fake ROI number comes from the same two shortcuts: counting only half the cost, and crediting the links with growth they didn't cause. This guide fixes both.
"What's our link building ROI?" is really three different questions. People mix them up, then argue past each other. Figure out which one you mean before you touch a spreadsheet.
| When you ask about ROI, you might mean | The real question | Covered here |
|---|---|---|
| Should we spend on this at all? | A forecast, before you commit | Phase 1 |
| Did the money we spent work? | Attribution, after the fact | Phase 2 |
| Is this better than putting the budget into ads? | A channel comparison | Touched on, not the focus |
Most of this guide is the first two, because they're the ones nobody shows you how to do. The third one gets a whole industry of "SEO vs PPC" posts already.
Every average in this article, and in every article on this topic, is someone else's weather. Before you borrow one, here are three reasons it can't be your number.
Your costs are local. A guest post that runs $250 through a US freelancer costs something completely different if you hire an in-house link builder in a high-salary US city, or run it through an agency retainer, or work with a team whose loaded hourly rate is a third of the US figure. The "$100 to $300 per link" range you see everywhere is a US-outsourced placement price with the labor stripped out. Your real cost depends on where and how you hire.
Your returns depend on your business. Published link building ROIs swing from a few hundred percent to well over a thousand. That spread isn't noise. It's the gap between a thin-margin store and a firm where one closed deal pays for years of SEO. Your return rides on your margin, your average order value, your sales cycle, and how commercial your keywords are. Two companies spending the same on the same links can land an order of magnitude apart.
Most averages aren't even measuring links. A lot of the big headline figures are whole-SEO or organic-search returns, with link building folded in next to content, on-page, and technical work. That's a fair way to report an SEO program. It just isn't the return on your link line, which is the number you're trying to isolate.
Don't sanity-check your ROI against the average. Check your inputs. Your honest number can land far outside every published range and still be right. One targeted link that lands a $1M enterprise deal and one that lands nothing can cost exactly the same. So the question is never "does my number match the benchmark." It's "did I count all the cost, and did I subtract what would have happened anyway?" Get those two right and whatever falls out is yours. Let's get them right.
Here's the chain a link has to travel before it turns into money:
link acquired → site authority rises → page ranks higher → traffic grows → visitor converts → revenue lands
Five steps. Each one takes time. Each one gets pushed around by things that have nothing to do with your link.
Over the same months your links are working, you're also (if you're any good) improving pages, fixing technical issues, earning brand searches, and riding whatever the algorithm did. Rankings move for all of those reasons at once. Google never sends a receipt that says "this link moved this keyword."
That's the trap in the standard formula. Revenue from organic growth - Cost only works if you pretend the links caused 100% of the growth. They didn't. That one hidden assumption is why the reported numbers look so good and mean so little.
The fix isn't a smarter formula. It's changing what you're precise about:
Ask ten SEOs what their link building costs and nine name the retainer or the per-link price. That's usually less than half the real number. The missing half is the part you can actually control, so it's the part worth getting right.
There are five buckets, not one.
That last bucket is the one nobody counts, and it quietly eats returns you already earned. If a tenth of your links die in a year, a tenth of your placement budget bought assets that no longer exist.
Copy this into your link tracker:
- Placement / vendor fee (per link)
- Content written to host or attract the link
- Team hours × loaded hourly cost
- Tool cost (the share that supports links)
- Links that died this period (paid for, now worth nothing)
Two of those buckets, internal time and decay, go uncounted for the same reason: they're annoying to track. The hours live in someone's head, and the dead links sit in a spreadsheet nobody reopens until a quarterly panic.
So keep both in one place. That's what LinkWatchr does. Its custom columns let you log cost, vendor, and campaign tag against every link you monitor, so your cost ledger and your link list stop being two files that drift apart. And it re-crawls your links on the schedule you set and flags any that go missing or turn nofollow, so decay stops hiding. You hear about a dead link on the next crawl, not six months later when a page slips. If you already treat backlinks as tracked assets, that's the gap between a real cost number and a guess.
Add the five buckets and you have a fully-loaded cost. That number is not an estimate. It's the one hard figure in the whole equation, and everything else divides by it.
Track each link's cost and vendor, and get alerted the moment one dies or goes nofollow.
The forecast answers one question: should we do this at all?
It's not a promise, and its whole value comes from running it pessimistically. A forecast that assumes everything goes right is a sales pitch. A forecast that still clears after you beat up its own inputs is a decision you can defend.
Three inputs, all from your own data.
Input 1: revenue per organic visit. Your ceiling on optimism, straight from analytics. Sell directly? Divide organic revenue by organic sessions over six months. Sell through leads? Walk the chain: visits, to leads, to customers, to lifetime value, back to a per-visit number.
Input 2: a traffic lift, then cut it. Look at the referring-domain gap between you and the pages beating you. Estimate the links to close it. Model the traffic. Then discount hard: assume you capture only part of the lift, and assume revenue per visit drops as you rank for broader, less commercial terms.
Input 3: the fully-loaded cost from your five-bucket ledger.
Here's a worked version. Round numbers, so you can follow the logic:
| Input | Where it comes from | Worked example |
|---|---|---|
| Revenue per organic visit | Your analytics | $18,000/mo ÷ 1,200 visits = $15 |
| Modeled traffic lift | Competitor gap | 1,200 → 2,400 visits/mo |
| Lift after discounting | Take 60%, be pessimistic | +720 visits/mo |
| Revenue per visit, adjusted down | Traffic broadens | $15 → $12 |
| Monthly benefit at month 12 | Multiply | 720 × $12 = $8,640/mo |
| Fully-loaded cost | Your cost ledger | $4,700/mo = $56,400/yr |
Now read what it tells you:
What the forecast reveals
The benefit ramps up from near zero, so year-one cumulative benefit is roughly $46,000, just under the $56,400 you spent. Year one is basically break-even, maybe slightly down.
But that $8,640/mo run-rate (over $100,000 a year) carries into year two at almost no new cost, because the links you already bought keep working. Year two is where the return shows up.
That is the real shape of link building. It usually pays in year two, not year one. Plan for that, or you'll quit at month four exactly when it's about to work.
And if your pessimistic forecast can't clear even by year two? The keyword isn't commercial enough, or the gap is wider than your budget. That's a no-go, and finding it on a spreadsheet beats finding it after you've spent $56,400.
The forecast was guesswork with discipline. The reckoning uses real data, but real data still isn't the truth. Before-and-after revenue is contaminated by everything else you did, and by everything that would have happened anyway. The reckoning cleans that up.
Four steps.
Step 1: set a baseline. You can't measure a change without a starting line, and you have to capture it before the first link goes live. For your target pages, snapshot: organic sessions (90-day average), keyword positions, referring domains, and organic conversions. Grab your top competitors' referring-domain counts too, so later you can tell your movement from the market's.
Step 2: measure per page, not per site. This is the single biggest correction in the method. Don't track sitewide traffic, it moves for a hundred reasons. Track the exact pages that got links. Built links to four pages? You have four experiments, each measured against its own baseline. Sitewide numbers hand your links credit for growth they never caused.
Step 3: subtract what would have happened anyway. This is the step almost nobody does, and it's the difference between a number and a story. Estimate what your linked pages would have done with no links, and take it out.
Two ways to estimate it, and you should use both:
Whatever's left is your incremental traffic. And even that isn't 100% links, because content and technical work ran alongside. Give links a share you can defend, and write down why.
The 70% rule of thumb. If links were your main lever and everything else was maintenance, crediting them ~70% of the incremental is defensible. Shipped a big content overhaul at the same time? Drop it. The exact figure matters less than stating one you can argue for. A defended 70% beats an unstated 100% every time.
Step 4: value it in profit, not "traffic value." The favorite proxy in these guides is sessions × CPC, sold as "what you'd pay for this in Google Ads." It's a fine way to explain SEO to a CFO and a bad ROI input, because it's a gross number with no margin, and it's money you'd never actually spend.
Instead, value your incremental, link-attributed traffic through your own revenue per visit, then your gross margin, to land on profit. Profit over fully-loaded cost is the only ROI a finance team will respect.
Watch what the two methods do to one identical, illustrative campaign. You built 120 links over a year to four commercial pages. Target-page traffic rose from 1,200 to 2,300 visits a month. Twelve of the 120 links died before year-end.
| Step | The usual method | The honest method |
|---|---|---|
| Traffic gain | Sitewide, +1,100/mo | Target pages only, +1,100/mo |
| What would've happened anyway | Nothing subtracted (100% credited) | Control pages grew 15%: subtract 180 |
| Parallel content work | Ignored | Links credited 70% of the rest |
| Link-attributed visits | 1,100 | 644 |
| How it's valued | 1,100 × $4.50 CPC = "$4,950/mo value" | 644 × $15 × 80% margin = $7,728/mo profit |
| Annualized benefit | $59,400 | $92,700 |
| Cost counted | Retainer only, $30,000 | Five buckets, $56,400 |
| Year-1 ROI | +98% ("2x, ship it") | ~ -18% (underwater) |
| Year-2 ROI (holding) | not calculated | ~ +415% |
Read the last two rows again. The usual method reports a confident +98% and stops. The honest method reports a small year-one loss and a big year-two gain. Same links, same traffic, opposite conclusion. The usual number would have you celebrating in month twelve, right before the real return arrives, and it would justify quitting a campaign that was about to pay.
One more thing: the honest annual benefit ($92,700) is actually bigger than the usual one ($59,400). Valuing real traffic at your real revenue per visit beats valuing inflated traffic at retail CPC. Honesty isn't the same as pessimism.
Now zoom out from one campaign to the whole company, and watch the 100% habit turn absurd.
The CEO asks four teams for their ROI. Content credits the revenue to content. SEO credits it to SEO. The link builder credits it to links. Paid credits it to paid. Each number looks great on its own slide. Add them up, and the company apparently earned four times what it actually made.
Both things can't be true. Either every team is inflating, or, by the same logic, you could shut three of the four departments tomorrow because "nothing else was really driving revenue." Neither holds. Every channel borrowed credit from the others, and nobody paid it back.
This is why the counterfactual matters. Your link building ROI is only real if it subtracts the growth the other teams would have delivered anyway. A number that claims 100% isn't a strong result. It's a math error that happens to flatter you.
The whole method assumes you pointed links at specific pages and specific keywords, so you have real experiments to measure. That's a targeted campaign, and for a targeted campaign the process is tight.
It falls apart for scattered spend. Know which one you're running before you try to calculate anything.
| If your links point at... | You're running... | So measure it with... |
|---|---|---|
| Specific money pages and keywords | A targeted campaign | The full two-pass ROI above |
| The homepage, "raise our DR," broad PR | A brand / scatter play | Brand metrics, not page-level ROI |
For scattered and brand work, the returns are real but spread out: brand lift, easier ranking across the whole site, citations you can't track, the odd partnership that walks in through a trade-magazine link. None of it lands on one page you can baseline, so a page-level ROI number will either miss it or invent it.
Don't force the spreadsheet onto it. Judge it like a sponsorship: branded search volume, direct traffic, sitewide referring-domain growth. And be honest about the split. If 80% of your budget is scattered brand work, the tidy number you calculated on the targeted 20% is not your program's ROI. It's one slice, and calling it the whole is exactly the category mistake we started with.
A little common sense recovers the rest. You can't attribute a PR campaign link by link, but you can notice branded searches jump the month a big feature runs. Track the coarse signal for the coarse spend. Save the fine instrument for the targeted spend it was built for.
Even with the right framework, these are the errors that put a fictional ROI in a deck.
sessions × CPC isn't revenue and definitely isn't profit.Before you spend another dollar on links:
- Pull revenue per organic visit from your own analytics.
- List the exact pages you'll point links at (money pages, not the homepage).
- Snapshot today's baseline for those pages: traffic, rankings, referring domains.
- Build the five-bucket cost, including your own hours.
- Run the pessimistic forecast. If it can't clear by year two, don't start.
Link building ROI is measurable. Just not the way the guides promise, with one formula and a borrowed benchmark. It's measurable as a two-pass discipline: a pessimistic forecast that decides whether to spend, and a clean reckoning that learns what the spend did, with an honest haircut in between for everything that wasn't the links.
The number you get will be smaller than the headlines and slower to arrive than the "quick win" pitch. It'll also be real, defensible in a room full of skeptics, and specific to your business. That's the trade. A real 90% you can prove beats a borrowed 700% you can't, because you can make decisions with the real one.
And the part you control is the cost side. You'll never make the revenue estimate perfect. You can make the cost exact, and you can stop paying for links that died months ago without your knowing. Get those two right and your ROI stops being a story you tell your boss and starts being a fact you run your budget on.
There's no universal "good" number, and any guide that hands you one is quoting an average from businesses that aren't yours. A good target is any positive return, measured honestly, over a two-year window, because link building is usually break-even or negative in year one and profitable in year two once the links you already paid for keep working at no new cost. Judge your result against your own pessimistic forecast, not a published benchmark.
Run it twice. Before you spend, forecast: estimate revenue per organic visit from your own data, model a conservative traffic lift, and divide the benefit by your fully-loaded cost. After you spend, reckon: baseline your target pages, measure traffic at the page level, subtract what control pages and your old trend would have delivered anyway, credit links a share you can defend, value that in profit rather than gross traffic value, and divide by the full five-bucket cost. The famous formula, `(Revenue - Cost) / Cost`, is only as honest as the amount you subtract before you use it.
Because a link is several steps removed from revenue, the timeline is long, and your links are never the only thing changing. Content, technical SEO, brand growth, and algorithm updates all move organic traffic at once, and Google never tells you which link moved which ranking. You can't isolate links perfectly, so the goal is a defensible estimate with a stated attribution share, not false precision.
Yes, at the fully-loaded rate (salary plus overhead, not base pay). Uncounted time is the most common reason an in-house program looks cheaper than an agency when it isn't, and the most common reason a reported ROI is too high. Prospecting, outreach, and reporting hours are real spend even though no invoice arrives.
No. Traffic value (`organic sessions × average CPC`) estimates what your organic traffic would cost to buy through ads. It's a gross figure with no margin, and it's money you'd never actually spend, so it overstates the return. Use it to explain SEO's scale to non-SEO stakeholders. Don't divide it by cost and call it ROI.
Plan for year two. Leading signs (new referring domains, position shifts, rising impressions) should appear within three to four months, and if they don't, something's wrong with execution. But the real return, measured against a full cost base and an honest haircut, usually lands in the second year, once year one's authority carries traffic at no new cost. Campaigns killed at month four rarely recover the early spend.
Start monitoring today
Track every backlink automatically and get instant alerts the moment something changes.