While doing a site inspection I noticed that we had over 20,000 spam subscribers on the site with addresses that lead to telegram. The WordPress admin is a terrible way to try and delete users when you have this many to do, so we turned to wp cli.
First I noted that the site couldn’t delete all the users at once because the command would time out so I used
wp list user --role=subscriber --number=10 --field=ID to list 10 users and then increased the number of returned results till I was able to retrieve 5,000 users at once. Then it was a matter of combining this with
wp delete user to delete the listed users. Then I ran the command a few times to clean up the site.
Our final command looked like this.
wp user delete $(wp user list --role=subscriber --field=ID --number=5000) --reassign=1