Pruning users from Drupal 6 site

2 minutters læsning

My site has a lot of users, and we appreciate that. However, reviewing the list of users reveals that there are some inactive users also. Some people only logged in once, and it has been a while for those one-timers. We have to consider them inactive, so I wanted a nice way to keep the userbase clean and prune the userbase for

Keep clean, only signup with e-mail confirmation

Everybody can sigup to the site without approval, so to make sure that we are dealing with interested people, I made sure that people can only signup, if they confirm the subscription via e-mail. You can do that from: /admin/user/settings. That will pretty much take care of spam users.

Pruning users

I had a look around to find a good module, and it seems that the best candidate for performing actual pruning is inactive_user module. Even though it is currently in beta and the issue queue is rather active, I took it for a spin. And it seemed to work allright.

The module has a rather simple configuration page:

Configuration page

I decided to use the following settings:

  • Reactivate. Notify users when they have not logged in for three months. Hopefully that will win them back to the site. I have not altered the standard e-mail-text, but you could probably tell people, what they are missing.
  • Block. After 6 months of inactivity I choose to block users which are not content owners from the site. I haven’t really considered why I am blocking people first instead of just deleting them. I give the user a warning 2 weeks before the action is executed.
  • Delete. If users has not logged in for one year, I delete them giving them 2 weeks notice.

First time to run inactive users had unexpected side effects

Inactive users runs through a cron job. I knew I had some users that had not logged in to the site for a couple of years. I considered them inactive and dead. However, I was expecting the system to send a warning to the users before deleting them. Apparently that did not happen because when the first cron was run, my administrator account got plenty of mails telling me about blocked and deleted users. I filed an issue for this.

However, knowing this, inactive user is easy to use and gets the job done. You all might have better time periods, e-mail notifications or other suggestions. Please feel free to use the comments.