---
title: "Measuring link campaigns — Off-Page SEO & Link Building"
description: "Measure what matters to the business Link reports full of third-party metric jumps satisfy nobody for long. Good measurement connects link activity to…"
url: https://optimizeall.com/learn/off-page-seo-and-link-building/measuring-link-campaigns
updated: 2026-10-05
---

Off-Page SEO & Link Building · Relationships and measuring link campaigns · lesson 15 of 17 · 12 min

# Measuring link campaigns

## Measure what matters to the business

Link reports full of third-party metric jumps satisfy nobody for long. Good measurement connects link activity to outcomes the business cares about, while being honest about attribution.

## A measurement framework in three layers

**1. Output (did we do the work?)**

- Prospects qualified, pitches sent, reply rate, positive reply rate.
- Links and mentions won, by tactic.
- Time or cost per link, by tactic.

**2. Quality (was it the right work?)**

- **New relevant referring domains** — count unique domains, not total links.
- Share of links that are editorial and in-content.
- Relevance mix (industry, local, trade, national media).
- Mentions without links (brand exposure still counts).
- Follow/nofollow/sponsored mix (reported factually; nofollow is not "failure").

**3. Outcome (did it matter?)**

- **Referral traffic** and conversions from linking pages (GA4: Traffic acquisition by session source).
- **Organic performance of target pages**: impressions, clicks and rankings for target queries in Search Console, compared against a baseline and, where possible, against pages that did not receive links.
- **Branded search demand**: branded query impressions in Search Console — often rises after strong coverage.
- **Leads and revenue** attributed to organic and referral channels over time.

## Setting a baseline

Before the campaign, record:

- Referring domains to the target pages and the site (from one consistent tool — do not switch tools mid-campaign).
- Search Console clicks and impressions for target pages and query groups.
- Branded impressions.
- Referral traffic levels.

## A monthly report layout

```text
1. Summary: 3 bullets — what we won, what moved, what's next
2. Wins: table of new links/mentions (publication, page, type, follow status, target URL)
3. Quality: new relevant referring domains by category
4. Outcomes: target-page clicks/impressions vs baseline; referral sessions and conversions;
   branded impressions trend
5. Pipeline: pitches in progress, relationship touchpoints, upcoming assets
6. Learnings: which tactics and angles worked; what we'll change
```

## Attribution honesty

Rankings respond to many factors, often with delays of weeks or months, and links are processed over time. Good practice:

- **Use control groups**: compare pages that received links with similar pages that did not.
- **Annotate confounders**: site changes, algorithm updates, seasonality, PR spikes.
- **Report ranges and trends**, not single-day rank snapshots.
- **Avoid claiming causation** from correlation — say "target pages' non-brand clicks rose X% over the quarter while comparable pages without new links were flat", with numbers from your real data.

## Unit economics

Estimate cost per relevant referring domain by tactic (people time plus tools and asset production). Combined with outcomes, this shows where to invest. For example, an agency might find that unlinked mention reclamation is cheap per link but limited in volume, while a data study is expensive but produces higher-quality links and brand exposure. Your numbers will differ — calculate them.

## Tools

- Search Console Links report (Google's sample of links; not complete, but free and useful).
- One primary third-party backlink index for consistency, plus alerts for new/lost links.
- GA4 for referral traffic and conversions.
- A simple dashboard (Looker Studio or similar) combining these.

## Qualitative wins worth reporting

Not everything valuable fits a chart. Record, with evidence: a journalist who now contacts you first for comment; an invitation to speak or contribute; a partner who proposes a co-marketing project; sales calls where prospects mention seeing your research; and citations of your brand or data in AI-generated answers (spot-checked manually, because measurement there is still immature). These signal growing authority even before search metrics move.

## Lost links

Monitor lost links monthly. Common causes: page deleted, redesign, link removed by editor, or your URL changed. Reclaim where possible (redirect your changed URLs; politely ask about removed links when relevant).

## Hands-on: pull target-page data from the Search Console API

Clicking through the UI is fine for one page; for a campaign with 20 target pages and a control group, use the Search Console API. Create a Google Cloud service account, enable the **Google Search Console API**, and add the service account's email as a user on the property. Then (requires `google-api-python-client`, `google-auth` and `pandas`):

```python
import os
import pandas as pd
from google.oauth2 import service_account
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError

SITE = "sc-domain:example.com"              # or "https://www.example.com/" for URL-prefix
KEY_FILE = os.environ["GSC_SERVICE_ACCOUNT_JSON"]
creds = service_account.Credentials.from_service_account_file(
    KEY_FILE, scopes=["https://www.googleapis.com/auth/webmasters.readonly"])
gsc = build("searchconsole", "v1", credentials=creds)

def page_daily(url: str, start: str, end: str) -> pd.DataFrame:
    body = {
        "startDate": start, "endDate": end,
        "dimensions": ["date"],
        "dimensionFilterGroups": [{"filters": [
            {"dimension": "page", "operator": "equals", "expression": url}]}],
        "rowLimit": 25000,
    }
    try:
        rows = gsc.searchanalytics().query(siteUrl=SITE, body=body).execute().get("rows", [])
    except HttpError as e:
        raise SystemExit(f"Search Console API error for {url}: {e}")
    return pd.DataFrame([{"date": r["keys"][0], "clicks": r["clicks"],
                          "impressions": r["impressions"], "page": url} for r in rows])

targets = ["https://www.example.com/services/ecommerce-seo/"]
controls = ["https://www.example.com/services/local-seo/"]
frames = [page_daily(u, "2026-03-01", "2026-08-31").assign(group=g)
          for g, urls in (("target", targets), ("control", controls)) for u in urls]
df = pd.concat(frames)
df["month"] = df["date"].str[:7]
print(df.groupby(["group", "month"])[["clicks", "impressions"]].sum())
```

Compare the **change** in target pages with the change in controls over the same months. Annotate campaign launch dates and known updates. Remember Search Console data is aggregated and some queries are anonymised; trends matter more than single days.

## Cost per relevant referring domain (sheet)

```text
=(Hours * HourlyRate + ToolCosts + AssetCosts) / NewRelevantReferringDomains
```

Calculate it per tactic each quarter. The number is rarely flattering and always useful.

## Branded demand and AI visibility

Add two rows to the outcome layer: branded query impressions (Search Console, filtered with a regex on your brand name and common misspellings) and AI visibility (the Generative AI performance report in Search Console, AI-assistant referrals in GA4, and your monthly prompt panel). Report them as trends with annotations, not as proof of causation.

## Common mistakes

- Reporting only DA/DR changes.
- Counting total links instead of unique relevant referring domains.
- Switching backlink tools mid-campaign and comparing incompatible numbers.
- Promising ranking outcomes by a date.

## Video lecture: Measuring link campaigns

Lecture coming soon · 14 chapters · about 9 minutes. Read the full transcript below.

1. Measuring link campaigns
2. Why it matters
3. Three layers
4. Keep it honest
5. Honest attribution
6. Example 1 (simple)
7. Example 2 (illustrative)
8. Unit economics + modern outcomes
9. Also report
10. Right tool, right job
11. Quiz: 'Why so few referral visits?'
12. Watch me do it: the outcome section
13. Monthly report
14. Recap

## Lecture transcript

### Measuring link campaigns

Here's a monthly link report I see all the time. Our domain rating went from thirty-two to thirty-five. Twelve new links. Great month. And the client's reaction? So what? In this lecture you'll learn a measurement framework that connects link work to outcomes the business actually cares about, how to be honest about attribution, and how to pull the numbers from Search Console with a little Python.

### Why it matters

Why does this matter? Because link building is easy to over claim and easy to under value. Reports full of third party metric jumps satisfy nobody for long, and eventually budgets get cut. Good measurement shows what you did, whether it was the right work, and whether it mattered. It also shows you which tactics to double down on, which is how you get better every quarter.

### Three layers

The framework has three layers. Think of a restaurant. Output is how many dishes the kitchen sent out. Quality is whether they were cooked well. Outcome is whether customers came back and told their friends. For links: output means prospects, pitches, replies and links won by tactic. Quality means new relevant referring domains, editorial in content links, and the relevance mix. Outcome means referral traffic and conversions, target page performance in Search Console, branded search demand, and leads or revenue.

### Keep it honest

A few rules make the layers honest. Count unique relevant referring domains, not total links. A sitewide footer can be a thousand links from one domain. Report the follow and nofollow mix factually. Nofollow isn't failure. Record mentions without links, because brand exposure counts. And before the campaign starts, record a baseline: referring domains from one consistent tool, Search Console clicks and impressions for target pages, branded impressions and referral traffic. Don't switch tools mid campaign.

### Honest attribution

Here's the key idea on attribution. Rankings respond to many things, often with delays of weeks or months. So use control groups: compare pages that received links with similar pages that didn't. Annotate confounders like site changes, algorithm updates, seasonality and PR spikes. Report ranges and trends, not single day snapshots. And don't claim causation from correlation. Say what the data shows: target pages rose this much while comparable pages were flat.

### Example 1 (simple)

Worked example one, simple. A wedding venue near Manchester earns five links from local wedding blogs and a regional magazine over three months. The report says: five new relevant referring domains, all editorial. Referral sessions from those articles: a small but steady number, and three enquiries mentioned the magazine. The venue page's Search Console clicks rose over the quarter, while their conference page, which got no links, stayed flat. Honest, specific, and useful for deciding what to do next.

### Example 2 (illustrative)

Worked example two, realistic and illustrative. An agency manages a campaign for twenty service pages at an e-commerce SEO consultancy, with ten similar pages as a control. Instead of clicking through the interface, they use the Search Console API. The script in the lesson authenticates with a service account whose key path lives in an environment variable, queries daily clicks and impressions for each page, labels target and control groups, and sums by month. The result is one table that shows target pages versus controls month by month.

### Unit economics + modern outcomes

Add unit economics. For each tactic, estimate cost per relevant referring domain: hours times hourly rate, plus tools, plus asset costs, divided by new relevant domains. You might find, for example, that reclaiming unlinked mentions is cheap per link but limited in volume, while a data study costs more but produces higher quality links and brand exposure. Your numbers will differ. Calculate them. And add two modern outcome rows: branded query impressions and AI visibility trends from Search Console, GA4 and your prompt panel.

### Also report

Don't forget qualitative wins. A journalist who now contacts you first. An invitation to speak. A partner proposing a co-marketing project. Sales calls where prospects mention your research. And correct citations of your brand in AI answers. Record them with evidence. And monitor lost links monthly. Pages get deleted, redesigned or edited. Reclaim what you can, especially when your own URL changed.

### Right tool, right job

Let's pause on one metric people misuse: Search Console's Links report. It's Google's own data, which is great, but it shows a sample of links, not all of them, and it can lag. So don't use it to count campaign wins week by week. Use it as a free cross check. Are your new referring domains appearing over time? Is Google seeing links to the target pages you intended? For counting, use one third party tool consistently. For outcomes, use Search Console's performance data and GA4. Each tool has a job.

### Quiz: 'Why so few referral visits?'

Here's a quick quiz. A client asks why referral traffic from a big newspaper article was tiny, even though the link was valuable. What do you say? Referral traffic depends on where the link sits, how relevant it is to readers at that moment, and how long the article stays prominent. A small number of highly relevant visits can still be valuable, and the link can support rankings and brand search over months. So report referral traffic, but never as the only verdict on a link's value. Show the three layers together.

### Watch me do it: the outcome section

Watch me do it. I'll produce the outcome section of a monthly report using the Search Console API. First, I list three target pages that received links this quarter, and three similar pages that didn't, as controls. Next, I make sure the service account email is added as a user in Search Console, and the key path is in an environment variable. Then I edit the script: the site property, the target list, the control list, and a date range covering three months before and three months after the campaign started. I run it. It pulls daily clicks and impressions for each page and sums them by group and month. The table shows target pages up thirty percent after the campaign, and control pages up eighteen percent over the same months, illustrative numbers. I add annotations: campaign start date, and a core update mid-month. Now I write the report sentence carefully. Target pages outperformed comparable pages by about twelve points over the quarter, in a period that included a core update. Finally, I add referral sessions from the linking articles from GA4, and the cost per relevant referring domain. Three layers, one honest page.

### Monthly report

Here's a monthly report layout that works. A three bullet summary: what we won, what moved, what's next. A table of new links and mentions with publication, page, type, follow status and target URL. Quality by category. Outcomes against baseline. Pipeline: pitches in progress, relationship touchpoints and upcoming assets. And learnings: what worked and what you'll change. Common mistakes: reporting only DA or DR, counting total links, switching tools mid campaign, and promising rankings by a date.

### Recap

Recap. Measure in three layers: output, quality and outcome. Count unique relevant referring domains and editorial links, not raw totals. Tie outcomes to target pages, referral traffic, branded demand and revenue against a baseline. Use control groups and annotations for honest attribution. Try this now. Pick three target pages and three similar control pages, and record their last three months of clicks and impressions today. That's your baseline, and it'll make every future report credible.

## Key takeaways

- Measure in three layers: output, quality, outcome.
- Count unique relevant referring domains and in-content editorial links, not raw link totals or DA/DR changes.
- Tie outcomes to target-page performance, referral traffic, branded demand and revenue against a baseline.
- Use control groups and annotate confounders for honest attribution.

## Try it

Design a monthly link-campaign report for a client using the three-layer framework and define each metric's data source.

- [Previous: Building relationships that compound](https://optimizeall.com/learn/off-page-seo-and-link-building/building-relationships-that-compound)
- [Next: Competitor backlink analysis](https://optimizeall.com/learn/off-page-seo-and-link-building/competitor-backlink-analysis)
- [All lessons of Off-Page SEO & Link Building](https://optimizeall.com/learn/off-page-seo-and-link-building)
