When I first wrote about judging backlink quality in 2020, the advice was to collect three or four scores, compare them and decide. Half of those scores have since disappeared or changed. The purpose has changed too: Google is built to ignore most junk on its own, so an audit is now about understanding which links are real.
This post is part of my AI-powered backlink strategy guide. It covers why to audit, what makes a link valuable, which tools measure what, and the AI-assisted audit I ran on mlforseo.com on 7 November 2026, mistakes included.
November 2026: a 2020 post, rebuilt. This replaces my old “6 tools to help determine the quality of a backlink” post on my personal site. I’ve kept what still holds, corrected what didn’t age well (Alexa Rank, SEOquake index counts, a Domain Authority threshold I can’t source) and rebuilt the worked example with current tools.
On this page
Why do a backlink audit in 2026?
Google’s December 2022 link spam update says SpamBrain, its AI-based spam system, detects sites buying links and sites that exist to pass them, and works to neutralise unnatural links. The disavow tool page says “most sites will not need to use this tool”; it is for unnatural links that have caused, or are likely to cause, a manual action. John Mueller calls toxic links a concept made up by SEO tools.
So fear is a poor reason to audit. There are four better ones:
- Understand what earns links. Which pages, formats and topics do real sites cite? That shapes what you make next.
- Find reclaimable value. Links pointing at URLs that now 404 are the cheapest links you will ever get back.
- Spot real risk. Links someone actually bought or built for you, say a previous agency, are what the spam policies and the disavow tool are written for. Ambient spam you never asked for is a different matter.
- Report honestly. 2,611 backlinks sounds healthy until you see where they come from. An audit gives you the number that means something.
What makes a backlink valuable: the research
One caveat first: a patent describes an idea a company protected, and does not prove Google uses it. Papers describe what worked in an experiment, often at another search engine.
Placement, context and anchor
Brin and Page’s 1998 paper defined PageRank per page, as the chance a random surfer lands there, and credited anchor text to the page a link points to. Google’s expired reasonable surfer patent describes a surfer who follows some links more than others based on link features: position (running text, list, sidebar, footer), font size, the anchor words and how commercial they are, the words around the link, and how well the linking page’s topic matches the anchor. Another Google patent, ranking based on reference contexts, uses words either side of the link to resist anchor text spam.
Topical relevance and trust
Hilltop (around 1999) ranked pages by links from “expert documents” that link to many non-affiliated pages on a topic: the clearest early basis for “links from relevant, independent sites count more”. TrustRank (2004) spread trust from a small reviewed seed set, because good pages seldom point to bad ones. Both are research. Google holds a patent on a similar seed-set idea, ranking pages by link distance from diverse trusted seeds.
How link spam gets detected
Spam mass estimation (2006) measured how much of a page’s PageRank came from spam. Becchetti and colleagues built classifiers from link features alone that matched content-based ones, the academic precedent for scoring links with ML. A Google patent on historical data names a sudden spike in backlinks as a possible spam signal. SpamBrain’s features aren’t public, so claims about what it uses are guesses.
What Google says
Google’s link best practices call links a signal for relevancy and discovery, and ask for descriptive, natural anchors. The spam policies list bought links, excessive exchanges, low-quality directories, site-wide footer links and “links with optimized anchor text in articles, guest posts, or press releases” as link spam. Since 2019, nofollow, sponsored and ugc are hints. Research and documentation point the same way: a relevant, independent page, linking from its main content with a natural anchor.
Good links and bad links
The best links are still editorial: another site refers to yours in quality content because it helped them, the way I’d cite a study in a client report. That means referring to you as a resource, crediting you as the creator of a chart or dataset, including you in a roundup, or interviewing someone from your business. Business profiles on sites you genuinely belong to are good, and so are links to your webinars, free tools, whitepapers and ebooks.
Good to have, though worth less: sponsored mentions (marked sponsored), a guest post link in the author bio, newsworthy PR, and comment or forum links (marked ugc). I no longer call guest posts a powerful link source, since Google lists optimised anchors in them as link spam; I treat them as a way to reach an audience.
Avoid what the policies describe: unqualified paid links, spammy PR written only for links, generic directories and comment spam. Irrelevant links also muddy your analytics, because referral traffic from a link farm tells you nothing about your audience.
In 2020 I named three factors behind a link’s value: Domain Authority, follow status and placement. Placement still matters. I’d now put relevance, editorial placement and independence (not your own site, a network or a paid placement) first, then a real audience and a natural anchor. Link attributes are hints, and third-party scores are for triage.
The metric-by-metric checks, updated for 2026
My rule from 2020 stands: never rely on one metric to tell the full story. Every score below is a third-party estimate from that company’s own crawl, and Google uses none of them.
| Metric | What it measures | How I use it |
|---|---|---|
| Moz Domain Authority | A 1 to 100 comparative score from an ML model, mainly on link data. Moz says it isn’t a Google ranking factor | Comparison only. I’ve dropped my old “cautious below DA 40” rule: it never had a source |
| Semrush Authority Score | 0 to 100, compounding link power, organic traffic and spam factors | Triage. My old post called it “Domain Score” |
| Ahrefs DR and UR | DR: a site’s backlink strength on a 100-point scale. UR: a page-level, PageRank-like score | UR is closer to how links work, since PageRank is per page |
| Majestic Trust Flow, Citation Flow, Topical Trust Flow | Trust Flow (0 to 100): closeness to reviewed trusted seeds. Citation Flow: link volume. Topical Trust Flow: a score per topic | In my experience, Trust Flow far below Citation Flow points to many weak links. Topical Trust Flow is a quick relevance check |
| Moz Spam Score | The share of sites with similar features (27 in the model) that Moz found penalised or banned | Describes the linking site; Moz says a high score doesn’t make a site spammy |
| DataForSEO rank and spam score | Rank: 0 to 1,000, original PageRank formula, damping factor 0.5. Spam score: 0 to 100 from 18 on-page and domain signals | What my audit used. The spam score is a site heuristic, so a tidy piracy page scores clean |
Relevance still matters most and still needs business context. As I wrote in 2020, only the client or someone inside the company can really judge it; as a consultant I can only look at the data, which at the end of the day is just that: data. Embeddings make a good first filter at scale.
Index presence. I used to suggest checking indexation on “Google, Alexa and Bing” and a strong Alexa Rank. Alexa was never a search engine, and Amazon retired Alexa.com on 1 May 2022. SEOquake’s 9 September 2026 rebuild removed its index counts, and seoquake.com now redirects to a Backlinko tool. I now check that a site still appears in Google for its own name and looks maintained.
Missing data. I once wrote that no Majestic data highly indicates a link farm. That was wrong: a gap in one index says nothing about spam. Anchor text. I used to recommend your brand name plus a keyword variation. Google asks for natural anchors and treats optimised ones in placed content as spam. Branded anchors are fine; in Ahrefs’ study of 75,000 brands they correlated with AI Overview visibility at 0.527 (a correlation, not proof of cause).
Backlink audit tools compared
No tool sees every link; each index is a different slice of the web.
| Tool | Good for | Limits |
|---|---|---|
| Search Console Links report | Free, from Google: top linking sites and anchors | A sample: tables limited to 1,000 rows, no nofollow data, may list removed links |
| Ahrefs | DR and UR | Third-party index and scores |
| Semrush | Authority Score; a Backlink Audit with 45+ toxic markers | “Toxic” is the tool’s concept; Google says most sites don’t need to disavow |
| Majestic | Trust Flow, Citation Flow, Topical Trust Flow | Missing data proves nothing |
| Moz | Domain Authority, Spam Score | Spam Score describes the linking site, not your link |
| DataForSEO Backlinks API | Raw data: rank, spam scores, anchors, placement, broken links. Pay per request and row, no monthly minimum since 1 July 2026 | Needs code or an MCP client. Link status lagged by days to weeks in my run |
| Screaming Frog list mode | Confirms a link still exists, its anchor and rel, via custom extraction | Custom extraction needs a paid licence |
| Claude or another LLM | Reads titles and anchors, spots patterns, explains each verdict | Sees metadata unless you give it the page; verdicts vary between runs |
| Sentence embeddings | A cheap relevance score for every link, run locally | A proxy; English-first models under-score other languages |
Evaluating a single link, end to end
In 2020 I walked one unfamiliar directory through each score and compared it with a well-known site of the same type. Here it is in 2026, with two real links from the 7 November run. Link A is a Moz article on 2026 SEO trends linking with the anchor “Intro to Machine Learning”. Link B is a course-listing page, which I won’t name, offering one of my courses as a download.
| Check | Link A: Moz article | Link B: “download” page |
|---|---|---|
| Domain rank (DataForSEO, 0 to 1,000) | 540 | 381 |
| Spam score (DataForSEO) | 0 | 0 |
| Relevance (embedding, 0 to 1) | 0.49 | 0.38 to 0.60 across this group of sites |
| Title and anchor | Expert roundup; descriptive anchor, followed | Title offers my course as a download |
| Rule verdict | Valuable (spam under 15, rank 150+, relevance 0.30+) | Valuable on metrics; the word “download” sent it to review |
| Claude’s verdict | Not needed | Investigate, high confidence: “possible course piracy” |
| Business context | An editorial mention I’m glad of | I never authorised this listing |
On every score, Link B looks good. It takes the title, and one question no tool can answer (do I sell through this site?), to see a copyright problem dressed up as a link. If you use Majestic, add Trust Flow here; I didn’t pull it for this run. Before acting on any link, open the page or crawl it in Screaming Frog list mode to confirm it’s still there.
The AI-powered backlink audit, step by step
This is the process I ran on mlforseo.com on 7 November 2026. One full run cost $0.17: $0.146 for five DataForSEO calls and $0.024 for Claude.
1. Pull the data
Summary, referring domains, backlinks, anchors and broken backlinks. DataForSEO reported 2,611 backlinks from 288 main referring domains, a domain rank of 219, and a profile spam score of 34 against 3 for the site itself: the spam points at the site from outside. New to the API? Start with DataForSEO API in Python.
2. Keep one link per domain
A site-wide footer turns one relationship into hundreds of backlinks, so audit referring domains: 288 rows, each with its strongest link and a link count.
3. Mark owned and related domains
My personal site, my newsletter archive and a community site I run sent most of the 840 links that ended up in Neutral. Tell the tool what you own, or your own navigation tops every “strongest links” list.
4. Apply rule flags to the clear cases
Spam score 60 or more: likely spam. A spam-prone TLD with spam score 30 or more: likely spam. Spam under 15, rank 150 or more and relevance 0.30 or more: valuable. A short list of review words (download, sale page, group buy, leak, torrent, course) sends a row to review whatever its scores. The rules decided 224 of 288 domains.
5. Score relevance with embeddings
Each link’s page title, anchor and domain were embedded with a small sentence-transformers model and compared with a one-line site description by cosine similarity. It’s a proxy with weak spots: link-selling pages are about SEO, so spam had a median relevance of 0.267 and reached 0.457, above the median valuable link.
6. Ask an LLM to review the ambiguous middle
The 64 rows the rules couldn’t settle went to Claude Haiku 4.5 in batches of 25, with a structured output schema: a verdict, a reason and a confidence per row. This is LLM-as-a-judge with a reason you can check. The prompt said it only sees metadata and should choose “investigate” when that isn’t enough.
Two lessons. Claude leaned on any number I gave it: with the embedding score in the rows, it put on-topic German, Japanese and Spanish entity SEO articles in Neutral because the English-first model scored them 0.06 to 0.22. Telling it to distrust the score changed only 5 verdicts; removing the score changed 14 of 64, 11 of them to Valuable. And it isn’t perfectly consistent: run twice on identical batches, 54 of 64 verdicts matched. All 11 spam verdicts held, and every disagreement was between neighbouring categories.
7. Review by hand
Read everything in Investigate and spot-check each bucket. My spot check found one probable rule mistake (a page about my personal site sent to spam as off-topic) and one probable Claude miss (a scraped copy of a Search Engine Journal article marked Valuable because its title matched the original).
8. Sort into buckets
| Bucket | Referring domains | Links from them | Decided by rules | Decided by Claude |
|---|---|---|---|---|
| Likely spam | 213 (74.0%) | 1,456 | 202 | 11 |
| Valuable | 45 (15.6%) | 191 | 19 | 26 |
| Investigate | 16 (5.6%) | 109 | 0 | 16 |
| Neutral | 14 (4.9%) | 840 | 3 (own sites) | 11 |
| Total | 288 | 2,596 | 224 | 64 |
161 of the 213 spam domains belonged to three link-selling networks advertised on Telegram. More than 1,100 backlinks were nofollow ads for these sellers, and 26 followed links advertised a private blog network with my domain in the anchor. Nobody at MLforSEO bought any of them. Spam can look strong: 39 spam domains had a DataForSEO rank of 100 or more, and the highest, a day-trading page on a real news site’s subdomain, had rank 468 and spam score 0.
The Valuable bucket is where the audit pays off: 45 domains, 42 followed and 40 linking from content, including Moz, Search Engine Journal, Search Engine Roundtable, Advanced Web Ranking, Hallam, iPullRank and Oncrawl. It shows what earns links for MLforSEO: practical ML methods, trend roundups and course mentions.
The finding I most want course creators to see: course piracy and reseller pages had clean spam scores (0 to 15), ranks up to 381 and high relevance. Without the review words, a metric-only rule would have filed six of them as Valuable, unseen by any human.
9. Re-check live status before acting
DataForSEO flagged 33 broken backlinks, all pointing at two URLs. Both returned 200 on 7 November 2026; one is my guide to ML clustering, which returned a 404 at some point when DataForSEO’s crawler visited. So the reclamation list was empty. The redirect suggester came with a warning: fuzzy matching scored the classification guide 88 out of 100 as a replacement for the clustering guide, a different page. String similarity counts shared words, so check suggested redirects by eye, as in the 404 and redirect mapping tutorial.
Then report honestly. The profile spam score of 34 is an average over links, pulled down by a few big clean sources, while 74% of referring domains were likely spam. Report domains by bucket, name the editorial links, and say how much you’re ignoring and why.
How to run it yourself
There are two ways. The no-code route with Claude and the DataForSEO MCP server asks the same questions in plain English. The Python notebook runs every step above with a spend cap and logged costs. If embeddings and Python are new to you, Introduction to Machine Learning for SEO covers both from the start. Then what to do after the backlink audit covers what to ignore, the rare cases for disavowing, reclaiming broken links and which prospects to pursue.
FAQ
How often should I do a backlink audit?
A full audit once or twice a year, plus a monthly look at new and lost referring domains on active sites. Do a full one after a migration or redesign, or when you inherit a site with an unknown link history.
Can AI do a backlink audit on its own?
No. In my run Claude sorted the 64 ambiguous domains usefully, but it only saw metadata, agreed with itself on 54 of 64 verdicts and was fooled by a scraped copy. Use it to sort and explain, then review the Investigate bucket yourself.
Which tool is best for a backlink audit?
Search Console for Google’s own sample, plus one third-party index (Ahrefs, Semrush, Majestic, Moz or DataForSEO), used consistently. Add embeddings and an LLM when you have more links than you can read.
Should I disavow the links my audit flags as toxic?
Usually not. Google says most sites will not need the disavow tool, and SpamBrain neutralises spam you didn’t build. Consider it for links you or an agency built in breach of the spam policies, especially with a manual action.
MLforSEO Academy
Take your skills further — pick your path
Semantic ML-enabled Keyword Research
by Lazarina Stoy
Query understanding, search intent and semantic clustering for how people and AI really search.
View course →AI Search Optimisation & Agentic SEO
by Beatrice Gamba
How agentic systems retrieve, evaluate and select — and how to become the source they cite.
View course →AI Search, LLMs, Entity SEO & Knowledge Graph Strategies
by Beatrice Gamba
Build the entity authority and knowledge-graph presence that makes AI recognise and trust your brand.
View course →Introduction to Machine Learning for SEO
by Lazarina Stoy
Ship practical ML workflows — classification, clustering, entity extraction — no CS degree required.
View course →


