How to use Spurn, from your first paste to uploading the file to Google. Spurn is free and works inside your own WordPress admin.
Before you start. Google says most sites never need to disavow. Google ignores most spammy links on its own, and removing good links can hurt your rankings. Use the disavow tool for real problems: many spammy, paid or artificial links that caused a manual action, or likely will. Read Google’s guide to disavowing links.
Getting started
Spurn needs WordPress 6.2 or newer and PHP 7.4 or newer.
- Install Spurn from Plugins → Add New in your dashboard (search for “Spurn”), or download it from WordPress.org.
- Activate it.
- Go to Tools → Spurn.
Only administrators can open Spurn. It adds nothing to your site’s public pages.
Spurn reads your site’s address from your WordPress settings. It uses it to flag your own site, so you can’t disavow it by mistake. If it’s wrong, click Change next to the site name at the top and type the right one. If no site shows, click Set your site.
Spurn has four tabs: Add, The list, Upload and Compare.
The Add tab
This is where new entries come in.
- Paste text into the box, or drop a .txt, .csv or .tsv file on it. UTF-8 and UTF-16 files both work.
- Spurn picks out the domains and links, and checks each one against your list. A summary shows what’s new, what’s already listed, what a listed domain already covers, and what was repeated.
- New entries appear in a review list with tick boxes. Flagged entries start unticked. Untick anything you want to keep.
- Pick a Source (Ahrefs, Semrush, Search Console, Moz, Majestic, Manual review or Other). Add a Reason if you like. It is saved as a comment in the file.
- Click Add. The ticked entries are saved as one set, dated today.
What Spurn can read
- Plain lists, one domain or link per line.
- Ahrefs and Semrush exports, Search Console link exports and other CSV files. Each cell is read on its own, so extra columns never stick to a link.
- Existing disavow files, including
domain:lines and comments. - Bullets, numbering, smart quotes, ports, invisible characters, and defanged links such as
example[.]comorhxxp://. - International domain names. These are saved in punycode, the form Google expects.
IP addresses and email addresses are ignored and counted.
How entries are cleaned
www.is removed from domains, because a domain line already covers it.- A homepage link becomes a domain.
- Other links are kept exactly as they are. The http and https versions of a link are separate entries, and so are versions with and without a trailing slash.
- A subdomain or link is skipped when a domain on your list already covers it.
Big pastes are saved in small batches. If the server can’t save some rows, Spurn tells you how many. Click Add again to finish the same set.
The list tab
Everything you’ve saved, in three views:
- By set: each batch with its date, source and reason. Edit a set’s details, copy it, or delete it (two clicks).
- By site: each root domain grouped with its subdomains and links.
- A to Z: every entry in one sorted list.
Search across everything, or filter to Root domains, Subdomains, Links, or Needs a look. Every subdomain has a “subdomain of example.com” tag. Click it to see everything on your list from that site.
When a site has 3 or more subdomains or links on your list, Spurn suggests disavowing the whole site with one domain line.
You can remove single entries. Removing an entry, deleting a set, disavowing a whole site and marking an upload can all be undone.
Flags explained
Some entries could do harm if you disavow them by mistake. Spurn flags them, starts them unticked in the review, and counts them in a banner. Use the Needs a look filter to find them later.
| Flag | What it means |
|---|---|
| Shared host | A shared hosting platform, such as blogspot.com or pages.dev. A domain line for it would disavow every site hosted there. Disavow the single site instead. |
| Your site | Your own site, or its parent domain. |
| Major platform | A big platform, such as YouTube, Facebook, Wikipedia or Amazon. Google already discounts spammy links from big platforms, so disavowing it rarely helps. |
| Unknown ending | The ending is not a known domain extension, so this may not be a domain. Tick it if it is. |
| Too long | A link over 2,048 characters. Google accepts links up to that length. |
Spurn knows which domains are shared hosts from the Public Suffix List, which it bundles. Sites on a shared host are treated as separate sites, so one never covers another.
The Upload tab
This is where you build the file.
- Google disavow file: the format Google’s tool reads.
- Plain list: one entry per line, for Bing and other tools.
- Dates, sources and reasons as comments: adds a comment line above each set. Turn it off for a smaller file.
Click Download .txt, or Copy file to copy it.
Export format
With comments on, the file looks like this:
# Disavow file for example.com, exported 2026-10-08 with Spurn
# 2 domains, 1 links
# Added 2026-10-08 | Ahrefs | Paid links (3)
domain:spam-site.example
domain:link-farm.example
https://blog.example.net/cheap-links/Domains come first in each set as domain: lines, then single links. Entries already covered by a domain on your list are left out of the file.
Limits
Google accepts files of up to 100,000 lines and 2 MB. Meters on the Upload tab show your file against both, and say “near the limit” above 90%. If you go over, turn off comments, or swap single links for domain lines.
Spurn itself was tested with 105,000 entries.
Uploading to Google, step by step
- Download the file from the Upload tab. It always holds your whole list, because each upload replaces what Google has.
- Open Google’s disavow links tool.
- Pick the URL-prefix property for your site, such as
https://www.example.com/. - Upload the file. If Google lists errors, your old list stays in place until you fix them.
- Back in Spurn, click Mark as uploaded today. Next time, Spurn shows what you’ve added since.
URL-prefix properties only. Google’s disavow tool doesn’t work with Domain properties. If you also have an http or non-www property for the same site, upload the same file there too.
Changes take a few weeks to take effect.
The Compare tab
Use this to check your list against the one Google already has.
- In Google’s disavow tool, download the list you uploaded before.
- Paste it into the Compare tab, or drop the file there.
- Spurn shows what’s in both lists, what’s only in Google’s, what’s only in Spurn, and what is repeated or already covered.
To bring Google’s extra entries into Spurn, import them as a set in one click. Flagged entries are held back for you to review.
Your data
Spurn keeps your list in two tables in your WordPress database. All processing happens in your browser and your database. Nothing is sent to outside services, and there’s no account.
Deleting Spurn from the Plugins screen removes its tables and settings.
Questions
For common questions, such as why http and https links count twice, see the Spurn FAQ. For what changed in each version, see the changelog.