Ahrefs Domain History

The Ahrefs Domain History node reads how a domain's Domain Rating, referring domains and organic traffic moved over a date range, with the first-to-last change computed per metric.

What does the Ahrefs Domain History node do?

The Ahrefs Domain History node reads how a domain moved over a date range: its Domain Rating, its referring domains and its estimated organic traffic, one series per metric.

A snapshot says what a domain is worth today; only a series says whether that is good news. Ahrefs exposes three history endpoints — domain-rating-history, refdomains-history and metrics-history — all keyed by the same date range and grouping, and none of them joined. This node runs them together and adds a change block comparing the first point of each series to the last.

That comparison is computed server-side on purpose. It is the thing every report reads first, and getting it wrong is easy: a first point of zero has no meaningful percentage growth, and two series rarely have exactly the same number of points.

Common use cases:

  • Measuring the effect of a link campaign over several months.
  • Reporting a trend rather than a single figure.
  • Detecting when a traffic drop or a backlink loss started.
  • Comparing the growth rate of a site against a competitor.
  • Feeding a chart with a ready-made series.

Quick setup

Connect your Ahrefs account

In the Draft & Goal sidebar, open Integrations and connect your Ahrefs API token.

Add the node to the canvas

Open the Node Library, go to Integrations > SEO Tools > Ahrefs, then drag the Ahrefs Domain History node onto your workspace.

Set the target and the range

Fill in Target and Start date. Leave End date empty to run up to today — which is what a scheduled workflow wants, since a pinned end date keeps reporting the same window forever.

Choose the grouping

Monthly is the default and the cheapest. Weekly and especially daily multiply the number of billed rows for the same trend.

Pick the series

Switch off any series you do not read. Each is a separately billed call.

Connect the outputs

Connect Change to an LLM or a Conditional Node for the deltas alone, or one of the series anchors to a chart or a sheet.

Configuration parameters

Required fields

Ahrefs integration integration required

Integration — The connected Ahrefs account whose API token authenticates the call.

Target string required

Target domain or URL — The site to read. The scheme and a trailing slash are removed on save, except a slash on a path under Exact URL or Prefix, where it is part of the request.

Scope enum required default: domain

Target scope — domain, subdomains, prefix or exact.

Start date string required

First point of the series — A YYYY-MM-DD date. Validated locally, so a malformed date fails the node before any billed call goes out.

Grouping enum required default: monthly

Series granularity — One point per daily, weekly or monthly period. This is the main cost lever on the node.

Cache window enum required default: 24h

Cache window — off, 1h, 6h, 24h, 7d or 30d.

Optional fields

End date string

Last point of the series — A YYYY-MM-DD date. Empty means today.

Protocol enum default: both

Protocol — http, https or both.

Country string

Country — A lowercase ISO 3166-1 alpha-2 code scoping the traffic series only. Empty means worldwide.

Volume mode enum default: monthly

Volume mode — Search volumes for the last month (monthly) or as a twelve-month average (average).

Domain Rating boolean default: true

Read the Domain Rating series — One billed call.

Referring domains boolean default: true

Read the referring-domains series — One billed call.

Organic traffic boolean default: true

Read the traffic series — One billed call.

Traffic columns array

Columns of the traffic series — org_traffic, org_cost, paid_traffic, paid_cost. Empty returns all of them. date is always added back: a series without its dates cannot be plotted, and it is the one column that costs nothing to carry.

Force refresh boolean default: false

Ignore the cache — Skips the cached answer and calls Ahrefs. The fresh answer is still cached.

Warning

Grouping drives the bill. Ahrefs charges per returned row, so a daily series over a year is 365 rows per metric where a monthly one is 12 — roughly thirty times the cost for the same trend. Use daily only when the exact day a metric moved actually matters.

What does the node output?

Five anchors, so a node that wants the deltas does not receive three full series:

AnchorContents
ChangeFirst-to-last comparison per metric
Domain Rating historyThe DR series
Referring domains historyThe referring-domains series
Traffic historyThe traffic series
HistoryThe whole payload, including the cache report
history string

A JSON payload with one series per requested metric, the change block, the provenance and the cache report.

{
  "target": "example.com",
  "mode": "domain",
  "date_from": "2026-01-01",
  "date_to": "2026-10-21",
  "history_grouping": "monthly",
  "domain_rating_history": [
    { "date": "2026-01-01", "domain_rating": 71.2 },
    { "date": "2026-10-01", "domain_rating": 76.5 }
  ],
  "refdomains_history": [
    { "date": "2026-01-01", "refdomains": 4210 },
    { "date": "2026-10-01", "refdomains": 5120 }
  ],
  "traffic_history": [
    { "date": "2026-01-01", "org_traffic": 240100 },
    { "date": "2026-10-01", "org_traffic": 328400 }
  ],
  "change": {
    "domain_rating": {
      "from": 71.2, "from_date": "2026-01-01",
      "to": 76.5, "to_date": "2026-10-01",
      "absolute": 5.3, "percent": 7.44
    },
    "refdomains": {
      "from": 4210, "from_date": "2026-01-01",
      "to": 5120, "to_date": "2026-10-01",
      "absolute": 910, "percent": 21.62
    },
    "org_traffic": {
      "from": 240100, "from_date": "2026-01-01",
      "to": 328400, "to_date": "2026-10-01",
      "absolute": 88300, "percent": 36.78
    }
  },
  "retrieved_at": "2026-10-21T16:04:11Z",
  "source": "Ahrefs API v3 (Site Explorer)",
  "cache": { "hits": [], "misses": ["domain-rating-history"], "units_cost": 86 }
}
Note

A metric whose series has fewer than two usable points is absent from the change block rather than reported as a zero change. No data and no movement are different answers, and a report that conflates them reads a missing series as a stable one. A first point of zero yields "percent": null, never an infinity.

The change block covers every traffic column the series carries, paid included (paid_traffic, paid_cost_cents) — a node that selected only the paid columns gets its deltas like any other.

Usage examples

Example 1: Twelve-month trend report

Workflow:

  1. Ahrefs Domain History with Start date 2026-01-01, Grouping monthly, Cache window 7d.
  2. The History anchor feeds a Merge With Template node.
  3. The result is written to a Google Docs document.

Example 2: Campaign measurement

Workflow:

  1. Ahrefs Domain History over the campaign window, Grouping weekly, Organic traffic switched off.
  2. The Change anchor — four numbers rather than three full series — feeds an LLM asked to explain what moved.

Example 3: Traffic-drop alert

Workflow:

  1. Ahrefs Domain History with only Organic traffic on and Traffic columns limited to org_traffic. One series, one column: the cheapest possible version of this node.
  2. A Conditional Node tests the traffic change against a threshold.
  3. An Email Sender notifies the team when it is breached.

Example 4: Competitor growth comparison

Workflow:

  1. A Text node lists the competitors.
  2. A Loop Node feeds the Target input.
  3. Ahrefs Domain History returns each series.
  4. The Change anchor is appended to a Google Sheets tab, one row per competitor.

Common issues

`The Ahrefs start date must be a date in YYYY-MM-DD format`

Cause: The start or end date is empty, or written in another format.

Solution: Use 2026-01-01. Ahrefs would reject the value for free, but its message names the parameter and not the format, so the node checks it locally and names both.

`The Ahrefs start date is after the end date`

Cause: The range runs backwards, usually because an upstream node supplied the dates in the wrong order.

Solution: Swap them, or leave End date empty to run up to today.

A metric is missing from the change block

Cause: Its series has fewer than two usable points — a range too short for the chosen grouping, or a domain Ahrefs has little history on.

Solution: Widen the date range, or switch the grouping to weekly or daily so the range contains more than one point.

`The Ahrefs refdomains-history endpoint returns a fixed set of metrics and ignores a column selection`

Cause: Column selection applies to the traffic series only. The other two endpoints return a fixed shape.

Solution: Leave Traffic columns to the traffic series; there is nothing to narrow on the other two.

Best practices and pitfalls

Tip

Leave End date empty in any scheduled workflow. A pinned end date keeps reporting the same window forever, which looks like a flat site rather than a stale configuration.

Warning

Three cost levers, in order of effect: the grouping, the series you switch off, and the traffic columns. All three are multiplicative, and all three are in the settings panel next to your remaining unit balance.

How does it fit into a workflow?

graph LR
    Date[Date<br/>campaign start] --> History[Ahrefs Domain History]
    History -->|Change| LLM[LLM<br/>explain the movement]
    History -->|Traffic history| Sheets[Google Sheets<br/>chart data]
    LLM --> Docs[Google Docs<br/>report]