Back to Blog
Sana K.March 12, 202610 min read

How to calculate link building ROI

The single most common reason link-building budgets get cut isn't poor results. It's poor measurement. SEO teams produce real ranking gains, real traffic gains, real pipeline contribution — and then can't tie any of it back to the placements that caused it. Finance sees a line item with no attached number, and the line item disappears at the next review.

This guide walks through a measurement framework that ties each placement to keyword movement, attributable revenue, and payback period. The formulas are spreadsheet-ready and assume you have access to a rank tracker (Ahrefs, Semrush, Sistrix, AccuRanker — any will do) and your analytics platform.

The base unit: placement-to-keyword attribution

Every placement should be assigned a primary target keyword and one or two secondary keywords. The choice isn't arbitrary. Use these inputs:

  • The placement's anchor text and surrounding context
  • The page on your site that the placement links to (and that page's primary keyword)
  • The topical cluster the linking page sits in

If a placement links to your "AP automation" page from a finance publisher's article on "invoice processing", the primary target keyword for that placement is whatever commercial term anchors your AP automation page. Secondaries are related variants.

Step 1: Baseline keyword positions

Before each placement goes live, capture the current position of its target keyword. Date-stamp it. Most rank trackers will provide this in CSV export. Store in a sheet with columns:

Placement URL | Target keyword | Baseline position | Baseline date | Search volume | Estimated CPC

The search volume and CPC come from your keyword tool. Both will be relevant for revenue attribution.

Step 2: Track position movement over 90 days

Capture target keyword position at days 30, 60, and 90 post-placement. The 30-day reading is usually noisy. The 60-day and 90-day readings are where the signal stabilizes.

A note on signal: a single placement rarely moves a competitive keyword on its own. The attribution is correlational, not deterministic. What you're building is a portfolio-level pattern. Across 30 placements, the cohort that targeted the "AP automation" cluster should show measurable position improvement, even if individual placements show varied results.

Step 3: Calculate keyword uplift value

For each target keyword, calculate the implied traffic gain from the position change. Use a CTR-by-position curve. Several public studies exist; Advanced Web Ranking publishes one updated yearly. A workable simplified version:

  • Position 1: 28% CTR
  • Position 2: 16% CTR
  • Position 3: 10% CTR
  • Position 4: 7% CTR
  • Position 5: 5% CTR
  • Positions 6–10: 3–4% CTR each
  • Positions 11–20: under 2% CTR each

Implied traffic gain = (CTR at new position − CTR at baseline position) × monthly search volume.

That gives you monthly clicks gained. Multiply by 12 for an annual estimate. Multiply that by your effective click-to-conversion rate to get conversions. Multiply conversions by average customer value or pipeline value per conversion.

Step 4: Attach revenue

This is the step most teams skip and most CFOs care about. You need two numbers from your analytics or revenue platform:

  1. Conversion rate of organic search traffic on the target page (or category of pages)
  2. Average customer value, lifetime value, or pipeline value per conversion (depending on your reporting model)

For a B2B SaaS targeting a $1,200 annual contract with 4% organic conversion rate:

Monthly clicks gained × 0.04 × $1,200 = monthly attributable revenue

A keyword movement from position 12 to position 5 on a 2,400-volume term:

  • CTR delta: 5% − 1.5% = 3.5%
  • Monthly clicks gained: 2,400 × 0.035 = 84
  • Monthly conversions: 84 × 0.04 = 3.36
  • Monthly attributable revenue: 3.36 × $1,200 = $4,032
  • Annualized: $48,384

Step 5: Calculate payback

Payback period for the placement = placement cost ÷ monthly attributable revenue.

A $900 placement that contributes $4,032 monthly revenue (or a portion of it, since the placement isn't the only factor) pays back in well under a month at full attribution, or 3–4 months at conservative 25% attribution credit.

Use the 25% attribution figure as a default. It's conservative enough to survive scrutiny from finance teams and roughly aligned with what controlled link-isolation studies have shown. Some placements deserve more credit (a single high-DR placement on a competitive term sometimes carries 60% of the movement). Some deserve less (a low-tier placement in a campaign of 40 deserves maybe 2%). Averaging at 25% across the portfolio is defensible and explainable.

Step 6: The portfolio view

The individual placement math is useful for the worst and best performers. The portfolio math is what justifies budget. Build a summary that shows:

  • Total placements in period
  • Total spend
  • Total attributable monthly revenue (sum of per-placement attributions)
  • Annualized attributable revenue
  • Portfolio-level ROI multiple
  • Average payback period

A campaign that spent $40,000 and produced $180,000 in annualized attributable revenue at 25% attribution is a 4.5x return on a 12-month horizon. That's the number that survives the budget review.

Common attribution mistakes

Over-attributing single placements. No individual placement causes a ranking move alone in competitive markets. Attribution at the portfolio level, with a discount factor applied per placement, is the only honest model.

Ignoring non-target keyword effects. Your AP automation placement might move related long-tail terms you weren't tracking. A periodic sweep through Search Console for new ranking queries catches this. Adding these to the attribution model increases your defensible ROI number.

Treating CTR-by-position curves as fixed. They're not. They vary by query type (informational vs commercial vs navigational), by SERP feature density (featured snippet, People Also Ask, ads), and by industry. The simplified curve above is a starting point. If your category shows different patterns in Search Console, calibrate.

Confusing correlation with causation. Some keyword movements happen for reasons unrelated to your placements: algorithm updates, competitor weakness, seasonal demand shifts. A portfolio measurement with a consistent attribution discount factor handles this honestly. A per-placement victory lap on every movement does not.

The downloadable

We maintain a Google Sheets template that does all of the above calculations from inputs. It's available on the Bazsy resources page for any active customer. Drop in your placements, your baseline positions, your conversion rate, and your average customer value, and the sheet produces a campaign-level ROI summary in the format finance teams expect.

The framework's value isn't precision. It's defensibility. SEO teams that can produce a coherent ROI calculation get budget. SEO teams that can't, don't.