XF 1.2 Spam Cleaner working in mysterious ways

Having gotten the Spam Cleaner working yesterday, I logged into the forum today, and had a user awaiting approval. With absolutely no indication of why I had to approve this user's registration.

On looking at things, this user is a spammer (ok, allegedly a spammer). Manually checking StopForumSpam found the IP address.

However, there is no indication, to me the administrator/moderator, that this registration attracted the wrath of the Spam Cleaner. The Spam Cleaner log says that it has never been run. The public profile (which can only be gotten to from the Admin Control Panel as the user is not-yet-approved) does have a link to the Spam Cleaner, but the box that pops up doesn't a reason on it. The Admin Control Panel user pages have no indication of the Spam Cleaner at all (or its results).

Checking all the other logs showed nothing.

Am I missing something here, or are we just supposed to guess as to why some users require approval and some don't?


Well-known member
The spam cleaner only runs when someone with permissions runs it. The approval is dealt with (and caused) by your options for spam registrations.
Now I'm confused.

The only way that the Spam Cleaner will run (checking against StopForumSpan) is when a new registration is received. I have not found a way to run the external Spam Cleaner otherwise.

In this case, the Spam Cleaner obviously ran on a new registration. What I'm not seeing is any indication that it ran, other than a new registrant requiring manual approval, with no explanation of why the new registrant needs to be manually approved. No notice on the manual approval form, no Spam Cleaner log, no nothing.

Is there supposed to be some indication that the Spam Cleaner was ran against this new registrant? Is there supposed to be some indication on the user's profile pages (public and admin) of the results of the Spam Cleaner running? Is there any indication, anywhere, of why the new registrant is considered to be a spammer?

It would be nice if there was a list of the spammer criteria that the new registrant met, such as StopForumSpam (username, email address, IP address) and DNSBL (IP address). A preformatted link to StopForumSpan would be very nice. For example, someone with a username hit, but clean email and IP address may not be a spammer, but someone with all three maybe. At this point, it would take me 2 or 3 searches on StopForumSpam to get the same information that my forum has already received, and acted upon. It just won't share that information with me, the administrator/moderator.

Part of the confusion is the use of the Spam Cleaner name to mean two very different things: the checking against external sources (StopForumSpam and DNSBL) and the pop up form on the user's public profile that allows the admin/moderator to banish the user for being a spammer.

Chris D

XenForo developer
Staff member
It seems that the Spam Cleaner isn't what you think it is.

The Spam Cleaner is a manual action a moderator or admin performs on a user. Its purpose is to ban them and remove all their content in a single action.

That's the only way that the Spam Cleaner runs.

This page is useful to understand what the Spam Cleaner does: https://xenforo.com/help/spam/

The Spam Cleaner never runs automatically.

Separate to the Spam Cleaner are some completely different features which check a user during registration. These include Stop Forum Spam and DNSBL. These are absolutely not related to the Spam Cleaner.

If a user is blocked via Stop Forum Spam or DNSBL there is no indication as to why they were blocked other than them appearing in Users Awaiting Approval. There is an open suggestion (I think) for some metrics to be logged to elaborate why a user was blocked. Until then it's up to you to either allow the user to register or block and delete them. You can make this decision based on a manual look up of various sites including Stop Forum Spam (and probably others).

Having a second look at it, I see where I got confused.

On the profile page, it's called Spam Cleaner.

In the admin/options, it's called Spam Management, and the sub heading is 'Default options for the Spam Cleaner and Prevention systems are located here.' and of course, the first options are for the registration spam prevention, not the Spam Cleaner.

At the very least, the Spam Preventer (StopForumSpam) should leave some indication of why it kicked the authorisation of the user to the manual management system.

And you should be able to run the Spam Preventer against existing users, either singly on their profile page (and admin user page), or in batches on the Admin user pages. The code is already written, it just needs some hooks and logging.

Mr Lucky

Well-known member
Either click on a name and choose "Spam" on the user name or in the user profile it says "Spam Cleaner"
I don't see either of those.

When you say click on a name, do you mean their name under a post, next to a post, in their profile? Where would I choose spam?

Is there a setting where I need to enable spam cleaner to see it?

The manual doesn't actually tell you this.


XenForo moderator
Staff member
The manual doesn't actually tell you this.
It does.


The Spam Cleaner itself can be run from several locations:
  • On a thread or profile post by clicking the Spam link to the right of the time and date.
  • On a member card by clicking the Spam link which overlays the avatar.
  • On a profile page by clicking the Spam Cleaner link below the member name.