Check backlink profile anchors with a seven-step runbook
A procedure for people who want the same answer every month: what anchors point at this domain, in what shares, compared with whom, and what moved since the last snapshot.
Anchor Social research team ·
Cost and time
Roughly 40 minutes and two cents for one domain
Most of the time goes into tagging rows, not fetching them. A 5,000-row pull is five anchors calls at 2 credits each.
Fetch: 10 credits, $0.001
Peer set of 4 rivals: 40 credits, $0.004
Tagging in Google Sheets: the slow part
The seven steps
1
1. Fix the question
Write down whether this is a health check, a competitor comparison or a pre-purchase review. The bucketing rules change slightly for each.
2
2. Pull the anchors
Call anchors with q=yourdomain.com, per=1000, and page until you have 3,000 to 5,000 rows or run out. Save every response as a dated file.
3
3. Strip the noise
Delete rows from your own properties, from sitewide footers you control and from obvious scrapers. Keep a copy of the removed rows so the decision is auditable.
4
4. Bucket
Tag each anchor as brand, bare URL, generic, partial match, exact match, or image/empty. Do the first 200 by hand, then write a formula for the rest.
5
5. Count by domain, not by row
Add a column for the linking domain and compute shares both ways. One site with 900 sidebar links can distort the row count while counting for one domain.
6
6. Build the peer baseline
Repeat steps 2 to 5 for three or four sites that rank where you want to rank. The spread between them is your realistic range.
7
7. Diff and decide
Next month, subtract. Act on movement over several snapshots, not on a single wobble. See the monthly diff section if the numbers look odd.
Steps 2 and 3 as a shell loop
Pages of 1,000 rows, saved by month. The 50,000-row pagination cap is far above what this needs.
bash
D=example.com; M=2026-10
for p in 1 2 3 4 5; do
curl -s "https://anchorsocial.org/api.php?action=anchors&q=$D&per=1000&page=$p&key=sk_live_..." \
-o "$D-$M-p$p.json"
done
jq -s '.[0]._credits' "$D-$M-p5.json"
Why not trust one number
Google has never published a safe branded-to-exact ratio. After Penguin 4.0 in September 2016 and the link spam update of December 2022, the sensible reading is pattern against peers, as the worked example shows.
Where the runbook usually goes wrong
Skipping step 3. Raw exports are full of the owner's own links, and nobody notices until the brand share looks suspiciously high.
Tagging drifts. In October you call a phrase partial match, in November the same phrase becomes exact match, and the diff turns into fiction. Write the rule in the sheet itself, next to the data, and change it only with a note and a date.
Another common slip is the peer set. Choose carefully. Pick rivals that rank for your target terms today, not the biggest names in the niche, because a Wikipedia-sized site and a six-month-old store have nothing to teach each other.
Bucket rules that survive review
Tagging rules for step 4. Edit them once, then keep them fixed across months.
Bucket
Rule
Example row
Brand
Contains the brand or domain name, any casing
Anchor Social
Bare URL
Starts with http or www, or is just the domain
anchorsocial.org
Generic
From a fixed list: click here, website, source, read more
read more
Exact match
Equals a target keyword you track, nothing added
backlink profile checker
Partial match
Contains a target keyword plus other words
a free backlink profile checker for agencies
Image or empty
Blank text from a linked image
(empty)
Runbook questions
How often should I check a backlink profile?
Once a month, right after the index refreshes. More often just re-reads the same snapshot and costs credits. Fewer than four snapshots a year makes it hard to tell a trend from a one-off.
Do I need all 50,000 rows?
Rarely. A few thousand rows usually show the pattern, and larger domains can be sampled by sorting. If you do want everything, fifty calls cost 100 credits, one cent.