You need to calm and chill about this. First, get rid of any rules blocking ASN's and IP's, they aren't effective in any way, shape or form.1800 now. So all this work the last three weeks and the numbers are right back up again.
(((http.user_agent contains "Chrome/1" and not any(lower(http.request.headers.names[*])[*] == "sec-ch-ua"))) or (((http.user_agent contains "Mozilla/5.0" and (http.user_agent contains "Chrome/1" or http.user_agent contains "Firefox/1")) and not any(lower(http.request.headers.names[*])[*] == "sec-fetch-mode"))) or (((http.user_agent contains "Mozilla/5.0" and (http.user_agent contains "Chrome/1" or http.user_agent contains "Firefox/1")) and not any(lower(http.request.headers.names[*])[*] == "accept-language")))) and (not cf.client.bot) and (not http.cookie contains "xf_user")
(http.user_agent contains "Chrome/120." or http.user_agent contains "Chrome/145." or http.user_agent contains "Chrome/133." or http.user_agent contains "Chrome/146." or http.user_agent contains "Firefox/135." or http.user_agent contains "Firefox/133." or http.user_agent contains "Chrome/131." or http.user_agent contains "Chrome/116." or http.user_agent contains "Chrome/124." or http.user_agent contains "Chrome/110." or http.user_agent contains "Chrome/107." or http.user_agent contains "Chrome/104." or http.user_agent contains "Chrome/136." or http.user_agent contains "Chrome/99." or http.user_agent contains "Chrome/123." or http.user_agent contains "Chrome/119." or http.user_agent contains "Chrome/100." or http.user_agent contains "Chrome/101." or http.user_agent contains "Chrome/142." or http.user_agent contains "Chrome/65." or http.user_agent contains "Firefox/147." or http.user_agent contains "Firefox/144." or http.user_agent contains "Chrome/108." or http.user_agent contains "Chrome/112." or http.user_agent contains "Chrome/109." or http.user_agent contains "Chrome/117." or http.user_agent contains "Chrome/103." or http.user_agent contains "Chrome/106.") and http.referer eq "" and (not cf.client.bot) and (not http.cookie contains "xf_user")
(starts_with(http.request.uri.path, "/whats-new") or starts_with(http.request.uri.path, "/search"))
and not cf.client.bot
and not http.cookie contains "xf_user="
((http.request.uri.path contains "xmlrpc.php" or http.request.uri.path contains "/wp-login.php" or http.request.uri.path contains "/wp-admin/" or http.request.uri.path contains "/wp-includes/" or http.request.uri.path contains "/wp-content/" or http.request.uri.path contains "wlwmanifest.xml" or http.request.uri.path contains "wp-config.php" or http.request.uri.path contains "/.env" or http.request.uri.path contains "/.git" or http.request.uri.path contains "/vendor/phpunit" or http.request.uri.path contains "/cgi-bin/" or http.request.uri.path contains "/etc/passwd" or http.request.uri.path contains "eval-stdin.php" or http.request.uri.path contains "/.aws/") or (http.request.uri.path in {"/wp-json" "/wordpress/" "/wp/"})) or ((http.user_agent contains "Googlebot" or http.user_agent contains "bingbot" or http.user_agent contains "Applebot" or http.user_agent contains "DuckDuckBot" or http.user_agent contains "Google-InspectionTool" or http.user_agent contains "Mediapartners-Google" or http.user_agent contains "AdsBot-Google" or http.user_agent contains "YandexBot" or http.user_agent contains "Baiduspider") and (not cf.client.bot))
(http.user_agent contains "meta-externalagent" or http.user_agent contains "ClaudeBot" or http.user_agent contains "Amazonbot" or http.user_agent contains "SemrushBot" or http.user_agent contains "DotBot" or http.user_agent contains "AhrefsBot" or http.user_agent contains "Bytespider" or http.user_agent contains "GPTBot" or http.user_agent contains "MJ12bot" or http.user_agent contains "AcademicBot" or http.user_agent contains "ExaSearchBot" or http.user_agent contains "ShapBot" or http.user_agent contains "PetalBot" or http.user_agent contains "meta-webindexer" or http.user_agent contains "ReflectionBot" or http.user_agent contains "yacybot" or http.user_agent contains "LinkupBot" or http.user_agent contains "compatible; crawler)" or http.user_agent contains "Scrapy" or http.user_agent contains "Sogou" or http.user_agent contains "Qwantbot" or http.user_agent contains "Barkrowler" or http.user_agent contains "curl" or http.user_agent contains "ClueWeb-Crawler" or http.user_agent contains "Turnitin" or http.user_agent contains "MathPicDatasetCrawler" or http.user_agent contains "PurityBot" or http.user_agent contains "img2dataset" or http.user_agent contains "quillbot" or http.user_agent contains "IbouBot" or http.user_agent contains "Go-http-client" or http.user_agent contains "Brightbot" or http.user_agent contains "Mediatoolkitbot" or http.user_agent contains "webzio" or http.user_agent contains "YisouSpider" or http.user_agent contains "AwarioBot" or http.user_agent contains "CCBot" or http.user_agent contains "okhttp" or http.user_agent contains "serpstat" or http.user_agent contains "DataForSeo" or http.user_agent contains "Google-Extended" or http.user_agent contains "Timpibot" or http.user_agent contains "cohere-ai" or http.user_agent contains "anthropic-ai" or http.user_agent contains "ZoominfoBot" or http.user_agent contains "Applebot-Extended" or http.user_agent contains "Diffbot" or http.user_agent contains "ImagesiftBot" or http.user_agent contains "FacebookBot" or http.user_agent contains "omgili" or http.user_agent contains "BLEXBot" or http.user_agent contains "W3C_Validator") and (not cf.client.bot) and (not http.cookie contains "xf_user")
Beg to differ on that... ASN to IP CIDR blocking should be reserved for the most abusive networks. It has legitimate use, but shouldn't be the be-all-end-all solution. Networks such as Huawei Cloud, TenCent Cloud (Aceville), Alibaba Cloud, among some others, all are deserving candidates for that particular use.First, get rid of any rules blocking ASN's and IP's, they aren't effective in any way, shape or form.
Agreed. I don't use it, as there is nothing that abusive that isn't being caught in my existing rules.ASN to IP CIDR blocking should be reserved for the most abusive networks.
Once more, as said before: This is completely wrong and really bad advice.First, get rid of any rules blocking ASN's and IP's, they aren't effective in any way, shape or form.
Beg to differ on that... ASN to IP CIDR blocking should be reserved for the most abusive networks. It has legitimate use, but shouldn't be the be-all-end-all solution.
Agreed. I don't use it, as there is nothing that abusive that isn't being caught in my existing rules.
Intersting. Of all those ASNs I do have only a few in my list (but quite a bunch of countries blocked, so possibly caught a relevant of those ASNs automatically as well)https://www.spamhaus.org/drop/asndrop.json Spamhaus's list of abusive ASNs.
This seems a very interesting list and pretty large as well:https://github.com/bountyyfi/bad-asn-list - seems to interface with Cloudflare workers system for ASN management.
Possibly worth having a closer look.Complete list of 2234 blocked ASNs with organization names
This is really interesting--having CF workers access other resources, like a list of ASNs, and being able to add onto our filtering.https://github.com/bountyyfi/bad-asn-list - seems to interface with Cloudflare workers system for ASN management.
All good points. I've actually done a few of these since the days of vBulletin--I think I either changed permissions or modified the actual files to get rid of the Members Online block and a few other things way back then.Don't forget to lock down the forum permissions for Guests group. I just took a look - search is disabled an access to member profiles is prohibited, but I can still see who's currently online, or that big block of "Members recently online". Do guests really NEED to see that and trigger another database query for it? And many details of a member's profile are a mouse hover away in that big list... Let people outside the garden peek through holes in the fence, but keep some of the goodies away from prying eyes.
Disable member tooltip for guests:
A free addon to disable the Xenforo member tooltips to everyone or guests only
The US is one of the largest hosts of bots... you will continue to get smashed if you aren't actioning headers and such methods against US traffic.although still excluded Uk and US
The harder you make it to view your site, the less people will register or interact with it. That is decades old human psychology assessment on webpage interaction.If your language is left to right, you browse a webpage the same. If right to left language, browse the site that way. Your eyes move like that due to your trained reading. This is all marketing 101 stuff which you need to understand to run a social interaction website, let alone a website where you keep the visitor engaged to improve your conversion, whatever that is.So I could potentially harden the limited guest viewing so all guests are asked to register as soon as they hit the site - ie no page views or warnings (with a note explaining it's to prevent malicious bots) and bots wouldn't get past the 0 views registration page.
I am but this is just in a final "catch leftovers" ruleThe US is one of the largest hosts of bots... you will continue to get smashed if you aren't actioning headers and such methods against US traffic.
So I could potentially harden the limited guest viewing so all guests are asked to register as soon as they hit the site - ie no page views or warnings (with a note explaining it's to prevent malicious bots) and bots wouldn't get past the 0 views registration page.
The harder you make it to view your site, the less people will register or interact with it.
Maybe you should try to understand it yourself first before giving advice - it could avoid giving wrong advice. Proof: I limited guest views to the first post of a thread and locked down some forums to just the thread titles, articles to just the first couple of lines and hid a bunch of other stuff. This along with a note explaining why.This is all marketing 101 stuff which you need to understand to run a social interaction website
This limited guest addon doesn't stop search engines - they are allowed through. So it's just guests who aren't search engines. Even so, being asked to register before they have even seen the site, could be offputting. I've left it as it is for now with a few views first.On our busiest forums, we have nearly 25 years of information that is buried deep in nearly one million threads and over 38 million posts; threads can run dozens of pages long. The Googles and Bings of the world index that and it sends us traffic.
So it depends on the forum if limited content for guests will work for them or not. For ours it won't. If I had more proprietary information, where indexing didn't matter as much. I would lock them down.
It could be quite enlightening if you could simply tell the name of the add on. Also, regarding "doesn't stop search engines" it is the question how it does that: If it simply refers to the user agent it is easy for bots to fake being a search engine bot. I.e. yesterday I had a series of requests on one of my test sites scanning for vulnerabilities and claiming to be Googlebot - which it wasn't:This limited guest addon doesn't stop search engines - they are allowed through. So it's just guests who aren't search engines. Even so, being asked to register before they have even seen the site, could be offputting. I've left it as it is for now with a few views first.
I'm not sure it would work to stop bots that go direct to a path anyway. Or the bots would start to fake being search engines or something.
94.154.46.243 - - [23/Sep/2026:03:04:37 +0200] "GET /wp-config.php.save HTTP/1.1" 444 0 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

We use essential cookies to make this site work, and optional cookies to enhance your experience.