Spurn is a free WordPress plugin for the file you send to Google’s disavow tool. You paste in backlink exports, check what it found, and it keeps a dated record of every domain and link you disavow. It is now free on WordPress.org, and this post covers why we built it and what it does.
Why we built Spurn
We had a real disavow file to clean up. It had grown to about 17,000 lines, built from Ahrefs and Semrush exports pasted into a text file one batch at a time. Most of it was spam, which was fine. The trouble was a small set of mistakes that nobody could see by scrolling.
The file disavowed a few whole blog platforms. A line like that tells Google to ignore every site on the platform, not only the spam blogs we meant. It also listed pages on big sites like Wikipedia and Facebook, which almost never helps. The worst one came from the first version of our own tool. It treated a bare pages.dev line as if it covered every pages.dev site. Each of those sites has its own owner, and 143 separate spam sites on pages.dev and web.app quietly dropped out of the export.
None of that is unusual. A disavow file is a plain text file with no memory of where each line came from, so mistakes pile up quietly. Spurn exists to give that file a memory and to catch the mistakes before they reach Google.
Before you disavow anything
Google’s own advice is that most sites never need the disavow tool. Google ignores most spammy links by itself, and disavowing good links can hurt your rankings. The tool is meant for real problems, such as a lot of paid or artificial links that caused a manual action, or probably will. You can read Google’s guide to disavowing links for the details.
Spurn is for people who already know they need a disavow file and want to keep it accurate. It does not decide what is spam for you. It helps you avoid the mistakes above and keeps a clear record of what you decided.
How it works
- Paste text or drop a file on the Add tab. Plain lists, Ahrefs and Semrush exports, Search Console link exports and the disavow file Google already has all work.
- Spurn picks out the domains and links and checks each one against your list. A summary shows what is new, what is already listed, what a listed domain already covers, and what was repeated.
- You review the new entries. Anything risky starts unticked, and only ticked entries are added.
- The ticked entries are saved as one set, with the date, a source such as Ahrefs or Semrush, and an optional reason.
- When you are ready, you export the file and upload it in Google’s disavow tool. Then you mark the upload in Spurn, so next time you can see what changed since.
It reads messy exports
Backlink exports are rarely clean. Spurn reads CSV files cell by cell, so an extra column never gets stuck to the end of a link, and a title like “Learn ASP.NET today” never turns into a domain. It handles UTF-16 files, which is how Ahrefs saves its exports, along with smart quotes, bullets, numbering and defanged links such as example[.]com or hxxp://. International domain names are saved in punycode, the form Google expects. IP addresses and email addresses are ignored, and Spurn tells you how many it skipped.
Repeats and subdomains are handled for you
Spurn removes “www.” from domains, because a domain line already covers it. A subdomain or link is skipped when a domain on your list already covers it, and anything you added before is skipped too, so each entry is stored once across your whole list.
Shared hosts get special care. Spurn bundles the Public Suffix List, so it knows that blogspot.com and pages.dev host many separate sites. On those platforms each subdomain counts as its own site, and one spam blog never makes another look covered. That rule would have kept our 143 sites in the file.
Every subdomain carries a “subdomain of example.com” tag. The By site view groups each root domain with its subdomains and links, and hovering over an entry highlights everything else from the same site. If a site has three or more subdomains or links on your list, Spurn suggests replacing them with one domain line. For a real news site with a few bad pages, keeping the single links is often the better choice, and the suggestion says so.
Risky entries start unticked
Some lines do harm when they go in by mistake, so Spurn flags five kinds of entry and leaves them unticked in the review:
- shared hosts, where a domain line would disavow every site on the platform
- your own site, or the parent domain that would cover it
- major platforms such as YouTube, Facebook, Wikipedia and the Amazon stores, where a disavow rarely helps
- endings that are not real domain extensions, which usually means the text was not a domain at all
- links longer than 2,048 characters, the most Google accepts
You can still tick any of them if you mean it. A badge on The list tab counts flagged entries already saved, and the Needs a look filter shows them in one place.
A file Google will take
The Upload tab builds the file in Google’s format, with “domain:” lines and full links. You can add a comment above each set with its date, source and reason, which makes the file easy to read months later. Two meters show the file against Google’s limits of 100,000 lines and 2 MB. There is also a plain list for Bing and other tools.
Each upload to Google replaces the list Google had before, so Spurn’s file always holds your whole list. The tab walks through the upload itself, including the detail that Google’s tool only works with URL-prefix properties in Search Console, not domain properties.
Compare with the list Google already has
If you already have a disavow file in Search Console, download it and paste it into the Compare tab. Spurn shows what is in both lists, what only Google has, and what only Spurn has. Google-only entries can be imported as a new set in one click, with flagged ones held back for you to check.
We ran our own 17,181-line file through it. Spurn kept 15,129 entries and held back 19 flagged ones for a second look. The other 2,033 lines were repeats, or subdomains that a listed domain already covered.
Private, and light on your server
Only administrators can open Spurn, under Tools. It adds nothing to your public pages and sends nothing to any outside service. Your list lives in two database tables, and deleting the plugin removes them. Large pastes are saved in small batches, and we tested it with more than 100,000 entries. Removing an entry, deleting a set and marking an upload can all be undone. It also follows your admin colors, with a light and a dark look and a switch if you prefer one.
How to get it
Spurn was approved for the WordPress.org plugin directory on 9 October 2026. Install it from Plugins, then Add New, in your own dashboard, or get it from its WordPress.org page. It needs WordPress 6.2 or newer and PHP 7.4 or newer.
The Spurn page has the overview, and the Spurn docs explain every tab and flag in detail.
