Off-Page SEO & Link BuildingSpam policies, penalties and disavow · Lesson 5 of 17

Manual actions, disavow and recovery

Article · 12 min · 9 min lecture

Video lecture

Manual actions, disavow and recovery

14 chapters · about 9 min · full transcript

Coming soon

Chapter 1 of 14

Manual actions, disavow and recovery

  • When to disavow
  • When not to
  • How to recover

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

  1. Algorithmic neutralisation — Google's systems identify and ignore spammy links. Usually the effect is that the links simply stop helping; you will not get a notification.
  2. Manual action — a human reviewer at Google applies an action for unnatural links. You will see it in Search Console's Manual actions report, with a description such as "Unnatural links to your site". Actions can affect specific pages or the whole site.

There is also "Unnatural links from your site" — for sites selling or exchanging links. That action typically targets the site's outbound links' trust rather than its rankings, but it signals a serious problem.

Do you need to disavow?

Google's documented position: most sites do not need to use the disavow tool. Google ignores most random, spammy links automatically. The tool is intended for cases where you have a considerable number of spammy, artificial or low-quality links pointing to your site, and those links have caused or are likely to cause a manual action — typically because you (or a previous agency) built them.

SituationDisavow?
Random spammy links from scraper sites you never builtGenerally no
"Toxic score" alerts from an SEO toolNot on that basis alone — tool scores are not Google's view
You have an unnatural links manual actionYes, after trying to remove links
A previous agency bought hundreds of paid links with keyword anchorsConsider it proactively, even without a manual action
Negative SEO worry after a sudden spike of spam linksUsually not needed; monitor; disavow only if clearly harmful patterns and you are concerned

Disavowing good links can harm you, so be precise.

The disavow file format

A UTF-8 or 7-bit ASCII .txt file, one URL or domain per line:

# Links bought by previous agency in 2023 — removal requests sent 2026-02-10, no response
domain:cheap-links-network.example
domain:seo-articles-hub.example
# Individual pages where site owner refused removal
https://blog.example.net/best-plumbers-2023/
  • Use domain: to disavow an entire domain (usually safer than individual URLs, since spam sites have many pages).
  • Comments start with #.
  • File limits: 2 MB and 100,000 lines.
  • Uploading a new file replaces the previous one for that property — always maintain a master file.
  • The disavow tool works per property; use the Domain property or the property matching your canonical version.
  1. Read the manual action in Search Console carefully — scope and example links.
  2. Export all backlinks from Search Console's Links report plus at least one third-party tool, and deduplicate by domain.
  3. Classify each linking domain: natural, questionable, unnatural. Look for paid posts, link networks, exact-match anchors, sitewide footer links, low-quality directories.
  4. Attempt removal: contact site owners (politely, with specific URLs). Log every attempt with dates.
  5. Disavow the unnatural links you could not remove, at domain level where appropriate.
  6. Stop the cause — end any contracts with link vendors and document it.
  7. Submit a reconsideration request explaining: what happened, what you did (with a link to a shared spreadsheet of removal efforts), and how you will prevent it recurring. Be honest and specific; vague requests are often rejected.
  8. Wait — responses can take days to weeks. If rejected, review the feedback and repeat with more thorough clean-up.

A reconsideration request template (outline):

We received a manual action for unnatural links on [date].
Cause: Between 2022 and 2024 our previous SEO vendor bought guest posts with
keyword-rich anchors on ~180 domains. We ended that contract on [date].
Actions: We audited all 1,240 linking domains (spreadsheet: [link]). We requested
removal from 180 domains (log with dates attached); 64 removed the links.
We disavowed the remaining 116 domains at domain level (file uploaded [date]).
Prevention: All link acquisition now follows our written policy (attached):
no paid links without rel=sponsored; monthly review of new links.

After recovery

Rankings rarely return exactly to pre-action levels, because the manipulative links that inflated them are gone. Recovery means you are now eligible to rank on genuine merit — which is why the rest of this course focuses on building that merit.

Negative SEO: keep perspective

Competitors pointing spam at you is a common fear. Google says its systems are good at ignoring such links. Monitor your new links monthly; if you see a large, clearly malicious pattern (for example, thousands of exact-match adult anchors) and you are worried, a targeted disavow is a low-cost precaution. Do not obsess over every spammy link.

Hands-on: build and validate a disavow file from your audit sheet

After classifying domains (see the lesson on link audit spreadsheets), generate the file programmatically so it is complete, deduplicated and merged with your master list. This script uses only the Python standard library:

import csv
from pathlib import Path

AUDIT = Path("link_audit.csv")          # columns: domain,classification,removal_status
MASTER = Path("disavow_master.txt")     # the file you uploaded last time (may not exist)
OUT = Path("disavow_upload.txt")

existing = set()
if MASTER.exists():
    for line in MASTER.read_text(encoding="utf-8").splitlines():
        line = line.strip()
        if line and not line.startswith("#"):
            existing.add(line.lower())

new = set()
with AUDIT.open(newline="", encoding="utf-8") as f:
    for row in csv.DictReader(f):
        if row["classification"].strip().lower() == "unnatural" and row["removal_status"] != "removed":
            new.add("domain:" + row["domain"].strip().lower().removeprefix("www."))

lines = ["# Disavow master - generated from link_audit.csv", *sorted(existing | new)]
text = "\n".join(lines) + "\n"
assert len(lines) <= 100_000, "Too many lines for the disavow tool"
assert len(text.encode("utf-8")) <= 2 * 1024 * 1024, "File larger than 2 MB"
OUT.write_text(text, encoding="utf-8")
print(f"{len(existing)} existing + {len(new - existing)} new entries -> {OUT}")

Because an upload replaces the previous file, merging with the master is the step that prevents accidental "un-disavowing". Keep disavow_master.txt in version control or a shared drive with a change log.

Where AI-era signals fit

A manual action for unnatural links does not come with a separate "AI penalty": AI Overviews and AI Mode draw on the same index and ranking systems. Clean-up restores eligibility across Search surfaces. Do not buy "AI citation" packages during recovery — they are the same problem in a new wrapper.

Common mistakes

  • Disavowing based solely on a tool's toxicity score.
  • Uploading a new disavow file that accidentally removes previous entries.
  • Submitting a reconsideration request without real removal efforts.
  • Disavowing high-quality links out of panic.

Key takeaways

  • Google neutralises most spammy links automatically; most sites never need to disavow.
  • Disavow when you have unnatural links you or a vendor built, especially with a manual action.
  • Use domain: entries, keep a master file, and remember uploads replace the previous file.
  • Reconsideration requests need honest detail: cause, removal efforts, disavow, prevention.

Check your understanding

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

  1. An SEO tool flags 300 'toxic' links from scraper sites you never built. No manual action exists. Best course?
  2. What happens when you upload a new disavow file for a property?
  3. Which element strengthens a reconsideration request most?

Put it into practice

Write a disavow file for a hypothetical clean-up of five domains and a matching three-paragraph reconsideration request.

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.