Rankele
RankeleGet $100 free

Recipe

Referring-domain diff: a recipe to check backlinks between two months

You cannot see last month's profile in today's lookup. Save it yourself, then subtract. This recipe takes about twenty lines of script and two API calls per domain.

What you end up with

Three lists: kept, gained, missing

Two copies of the referring-domain list give you domains present in both, domains only in the newer copy, and domains only in the older one. The third list is where most arguments start, so the recipe treats it with suspicion.

  • Needs two copies taken on comparable days
  • Costs 2 credits per domain per month for the list
  • Cannot tell a removed link from a page the crawler missed

Step one: the request

The same call in both months. Sorting by DR descending puts the domains you most care about on the first page, and per=1000 is the maximum rows billed in one call.

bash
curl -s "https://rankele.com/api.php?action=refdomains&q=example.com&per=1000&page=1&sort=dr&order=desc&key=sk_live_..." \
  > example.com.refdomains.2026-09.json

# next month, same call, new file name
curl -s "https://rankele.com/api.php?action=refdomains&q=example.com&per=1000&page=1&sort=dr&order=desc&key=sk_live_..." \
  > example.com.refdomains.2026-10.json

Step two: the three columns worth keeping

Open one saved file first and read the field names it actually contains. Row field names differ by action, so write your script against what you see.

The domain name

This is your join key. Lower-case it and strip a leading www. before comparing, or the same site appears as both lost and gained.

Its DR at snapshot time

DR is a log of referring domains, so it moves slowly. A jump on a single domain between months is worth a look.

The snapshot label

Add a month column yourself. The API returns the current index, and none of the listed actions returns an earlier one.

Step three: read the missing list slowly

Missing does not mean removed. Think of it as unconfirmed. The domain might have deleted the link, redirected the page, blocked the crawler, or simply sat outside this month's crawl, which is why a repeat pass to check backlink online data a month later often clears half the list.

Semrush users know the pattern: a report flags a link as lost, yet the page still carries it. Index timing explains much of that. Ahrefs, Majestic and our index each fetch on their own schedule, so disagreement between tools is normal rather than a sign that one is broken.

Before you act on a missing domain, open the linking page in a browser. Then read the monthly runbook to decide whether a rank move overlaps the window at all.

Keep the list of unconfirmed domains in its own column and review it again after the next snapshot. Domains that reappear were index gaps. Domains still missing two months running deserve a manual visit.

Triage the missing list by what you see on the page

A reading guide. The right-hand column is a suggestion, not a rule.
What you find when you open the pageLikely meaningNext move
Link is there, same anchorIndex gap, not a lossIgnore, re-check next month
Link is there, nofollow addedAttribute changeNote it, check the page's traffic role
Page returns 404 or redirectsReal lossAsk whether the page mattered
Link text removed, page liveEditorial removalDecide if outreach is worth the effort

Step four: keep the diff honest

  1. 1

    Diff the same query depth

    If you pulled only page 1 in one month and page 2 in another, the lists are not comparable. Pin page, per, sort and order.

  2. 2

    Count, then sample

    Record the number of gained and missing domains, then open ten of each at random. A tally with no sampling is a rumour.

  3. 3

    Compare with your rank log

    Keep the diff next to Search Console dates. The suspect table shows what else to rule out.