Off-Page SEO & Link BuildingRelationships and measuring link campaigns · Lesson 15 of 17

Measuring link campaigns

Article · 12 min · 9 min lecture

Video lecture

Measuring link campaigns

14 chapters · about 9 min · full transcript

Coming soon

Chapter 1 of 14

Measuring link campaigns

  • A three-layer framework
  • Honest attribution
  • Search Console API hands-on

The narrated lecture is in production

Every chapter is scripted and ready. Browse the chapters and read the full transcript now — the video will appear here when it’s published.

Chapters

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

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.

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):

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)

=(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.

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.

Check your understanding

Quick questions to lock in the lesson. They don’t count towards your certificate.

  1. Which metric best reflects link-building quality?
  2. Why might branded search impressions be tracked in a link/PR campaign report?
  3. Why use one consistent backlink tool throughout a campaign?

Put it into practice

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

Enrol for free to save your progress

Reading is always free. Enrol to keep your place, take the final assessment and earn a verifiable certificate.