Please provide evidence of spamming on several wikis.Spam that only affects a single project should go to that project's local blacklist. Exceptions include malicious domains and URL redirector/shortener services. Please followthis format. Reports can also be submitted throughSBRequest.js. Please check back after submitting your report, there could be questions regarding your request.
Please check ourlist of requests which repeatedly get declined. Typically, we do not remove domains from the spam blacklist in response to site-owners' requests. Instead, we de-blacklist sites when trusted, high-volume editors request the use of blacklisted links because of their value in support of ourprojects. Please consider whether requesting whitelisting on a specific wiki for a specific use is more appropriate - that isvery often the case.
Other discussion
Troubleshooting and problems - If there is an error in the blacklist (i.e. aregex error) which is causing problems, please raise the issue here.
Discussion - Meta-discussion concerning the operation of the blacklist and related pages, and communication among the spam blacklist team.
Whitelists There is no global whitelist, so if you are seeking a whitelisting of a url at a wiki then please address such matters via use of the respectiveMediawiki talk:Spam-whitelist page at that wiki, and you should consider the use of the template {{edit protected}} or its local equivalent to get attention to your edit.
Pleasesign your posts with ~~~~ after your comment. This leaves a signature and timestamp so conversations are easier to follow.
Latest comment:2 hours ago14 comments7 people in discussion
This section is for proposing that a website be blacklisted; add new entries at thebottom of the section, using the basic URL so that there is no link (example.com, nothttp://www.example.com).Provide links demonstrating widespread spamming by multiple users on multiple wikis. Completed requests will be marked as {{added}} or {{declined}} and archived.
They have been on a journey that is now 17 years long, and inbelow thread we still see that COI editors come here to request removal/whitelisting (and then they went on a spamming spree on en.wikipedia). Wikipedia is NOT for promotion of YOUR business. --Dirk BeetstraTC (en:U,T)10:56, 27 November 2025 (UTC)Reply
This section is for proposing that a website beunlisted;please add new entries at thebottom of the section. Use a suitable 3rd level heading and display the domain name as per this example{{LinkSummary|targetdomain.com}}. Please do not add the protocol part of domain name, eg.http
Remember to provide the specific domain blacklisted, links to the articles they are used in or useful to, and arguments in favour of unlisting. Completed requests will be marked as{{removed}} or{{declined}} and archived.
See alsorecurring requests for repeatedly proposed (and refused) removals.
Notes:
The addition or removal of a domain from the blacklist isnot a vote; please do not bold the first words in statements.
This page is for the removal of domains from the global blacklist, not for removal of domains from the blacklists of individual wikis. For those requests please take your discussion to the pertinent wiki, where such requests would be made atMediawiki talk:Spam-blacklist at that wiki.Search spamlists— remember to enter any relevant language code
This section is for comments related to problems with the blacklist (such as incorrect syntax or entries not being blocked), or problems saving a page because of a blacklisted link. This isnot the section to request that an entry be unlisted (seeProposed removals above).
It would be nice to have a tool that shows when an entry (or at least a specific domain or page) was last triggering a blacklist entry.
As in 2015[1] (see alsoArchives/2015-01) we should delete old entries that have not triggered the SBL for x years. (x = 5?)
It might be reasonable to move simple SBL entries, i.e. domains, (that are not locally whitelisted) to the global BED (list of blocked external domains). However,Special:BlockedExternalDomains is disabled. So it this an option now anyway?
Concerning 1.: I'm using a script for this. But for every domain it needs ~1000 db requests (one for each wiki). So I'm not sure, whether I should put that in a public web interface.--seth (talk)14:58, 5 October 2025 (UTC)Reply
Re 1. The URL for SBL hits is encoded in logging.log_params in a non-indexable way (see e.g.quarry:query/97741). To make that feasible we would need to collect hits in a user db. I have been thinking about doing this for spamcheck for quite a while.
Re 2. We could, but I don't see why that should be a priority IMHO.
1. Yes, using the `logging` table in the db is what I do in my script and what I also did in 2015. I'm using the replica db at toolforge. Using the replica directly, i.e. without having a separate db that contains the needed information only, searching all ~1000 wmf wikis takes about 1 or 2 minutes for a given regexp.
2. I mentioned reasons in the thread above. In short: performance. However,you don't need to do anything. I'd do that.
3. "Once it is implemented [...]": I see. So let's skip that for now.
1. I've backparsed the db once (and some of that data is in the offline linkwatcher database), however that is taking a lot of time, and since it are one-off runs it does not go up-to-date. Search engine would be nice per-wiki (just looking back for the lastn additions, with n defaulting to 2 or 3, looking backward for a choice timeframe), and one for cross wiki (with additional limitation for 'the big 5 wikis', 'the big 18 wikis + commons and wikidata', . For the application I suggested it does not have to find all additions, just the last couple. 2. I agree with the sentiment that it does not have priority, that performance loss is minimal, and I don't feel particularly worried if I blacklist 100 domains in one go that I bring the wiki down. Cleanup is good, though, it has a couple of advantages in administration as well (the occasional 'this website was spammed 15 years ago, it has now been usurped by another company', editing speed on the lists, easier to find complex rules). 3. BED really needs the whitelist to work on it, otherwiseespecially a global BED is going to be a pain for local wikis.Dirk BeetstraTC (en:U,T)06:02, 6 October 2025 (UTC)Reply
Unfortunately it seems that BlockedExternalDomain hit log entries are not being replicated to the Toolforge replicas. The log entries are just missing there. @Ladsgroup Is that on purpose?Count Count (talk)07:56, 6 October 2025 (UTC)Reply
@Count Count Hi. I don't think that's on purpose and fixing it is rather easy. Would you mind creating a phabricator ticket assigning it to me with link to this comment? ThanksAmir (talk)15:32, 6 October 2025 (UTC)Reply
1. I wrote a script to fetch all SBL data from all wmf wikis since 2020 and write all the data into a sqlite-db (the script needs ~7 minutes). This is not soo big (3,4M datasets in a 0,7GB db-file) and could be a) updated automatically (e.g. every day or every hour) and b) used in a little web interface to search the data. If I automatically delete all data that is older than 5 years, this might even scale. After the bug Count Count mentioned will be fixed, I could add the BED logs.
@Lustiger seth: Very cool. With this relatively miniscule amount of data I don't think that there even is a need to delete older data at all. It would be great if you could make the data available on a publicToolsDB database.Count Count (talk)04:28, 8 October 2025 (UTC)Reply
With that size I would even suggest to go back to the beginning of time. We do have some really long-term spamming cases (10+ or 15+ years). I ran into spamming of a website that related to one of those cases just last month. Having access to that (preferably through a query link in our {{LinkSummary}} (and maybe also the user templates) would be great.Dirk BeetstraTC (en:U,T)06:35, 8 October 2025 (UTC)Reply
Ok,the script created a databases51449__sbllog_p with one single tablesbl_log containing all sbl log entries of all wmf projects now and is continuously updated every 5 minutes. Its size is around 1,7GB and is has 8,1M entries. The columns are:id,project (e.g. 'dewiki'),log_id (local log_id),log_timestamp,log_namespace,log_title,comment_text,log_params (just the url),actor_name.
Next step is the creation of a web interface for queries. I'll try to do that on weekend.
@Lustiger seth: For faster domain querying Mediawiki (and spamcheck) store and index hostnames in reverse split order (e.g.www.google.com becomescom.google.www.. Maybe you could add such an indexed column and either keep the full URL or break it up in protocol + hostname + rest?Count Count (talk)13:30, 10 October 2025 (UTC)Reply
Because of RL things I haven't continued the work. I'll try to do something this weekend.
I think, that is a good idea. For spamcheck I am getting the global user id and storing that instead which survives renames and takes up a little less space but that is not really necessary IMHO.Count Count (talk)06:44, 22 October 2025 (UTC)Reply
I added an index for actor_name, now.
Global user id: I see, yes, makes sense. Let's hope that it's really not necessary. :-)
The query should probably be forWHERE d.domain_rev_index LIKE ? with the param being e.g.'com.chasedream.%' so we get hits forwww.chasedream.com as well. And each reversed hostname/domain should end with a '.' so that we can thus match both 'www.chasedream.com' and 'chasedream.com' but not 'chasedreamxyz.com' like this.Count Count (talk)13:42, 21 October 2025 (UTC)Reply
Nevertheless, I found a bug in my scripts. The new database of the logs has several wrong entries, because some of the original entries in the wmf tables are really strange. I'll fix that bug first and then rebuild the tables.
Why: This page is the product homepage for EaseUS RecExperts software.Target pagesen:Comparison of screencasting software en:Comparison of webcam softwareUseAdd table row “EaseUS RecExperts” with neutral specs; no promo text.RemedyAffiliate spam removed; only documentation/release notes remain on subdomain.COII am an EaseUS employee, disclosed on talk pages.Thank you for your consideration.—{User:Cheesecreamalin} {14:50, 26 November 2025}Cheesecreamalin (talk)07:07, 26 November 2025 (UTC)Reply