Support

Admin Tools

#42996 404 shield from previous site URLs, e.g. wp-content and wp-themes

Posted in ‘Admin Tools for Joomla!’
This is a public ticket

Everybody will be able to see its contents. Do not include usernames, passwords or any other sensitive information.

Environment Information

Joomla! version
6.1
PHP version
8.4
Admin Tools version
7.8.8

Latest post by karendunne on Thursday, 25 June 2026 15:22 CDT

karendunne

moaarch.com launched on May 29th. It's a Joomla site and it replaced a Word Press site. I was not involved in the WP site. The client tells me that they were using WP Engine. 

Ever since launching, there has been a tremendous number of hits to the previous WP urls. Please see attached screenshot for example. My client has reported being blocked from accessing the front end of the site (different IP addresses). I don't understand why. 

I've asked them to disable WP Engine. Other than that, I don't understand why there would be so many. All 404 Shield reasons, i.e. Last 7 days 1904, Yesterday 1132, Today 672.

I've built a lot of Joomla sites and I use Admin Tools on all of them, but I've never encountered anything like this. 

Do you have any recommendations for what I should do next?

Thank you,

Karen

nicholas
Akeeba Staff
Manager

It looks like you get hundreds of requests to static images which used to be hosted on the site. I can't really tell you what that traffic is. Some of it looks like search engine traffic, some of it looks like someone is spidering the site.

That has nothing to do with your client being blocked, in the sense that Admin Tools will obviously only block the IP address of an attacker, not some other, random IP. If you have not cleared "Email this address on blocked request" and / or "Email this address after an automatic IP ban" you may have your site try to send way too many emails which might explain why the server slowed down to the point your client complained; empty those two options in the Configure WAF page. If that's not the case, your client blocked themselves somehow. You need their IP address and search for it in the Blocked Requests Log page. Check the Target URL and Reason to find out why they got blocked.

Nicholas K. Dionysopoulos

Lead Developer and Director

🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

karendunne

Thanks, Nicholas,

Admin Tools is not set to send me emails on blocked requests; only for failed or successful login attempts. So I haven't been getting tons of emails. I have received some that said, "We would like to notify you that the website MOA ARCHITECTURE is currently blocking an increased number of requests. A total of 69 requests has been blocked since 2026-06-01 21:22:24. You might want to check the reason of the blocked requests, and consider whether additional measures might be necessary if you suspect it's the beginning of a sustained attack against your site."

I unblocked their IP on two occasions (two different IPs). The reasons for those are in the attached screenshot, which are the same as any other of the 404 shields. And that's what's puzzling. 

 

karendunne

I've added a couple screenshots of the settings. I'm not inclined to remove the /wp-content* from the 404 shield list as a solution, would you agree?

nicholas
Akeeba Staff
Manager

So, to make sure that we are talking about the same thing. You unblocked your client's IP address because it was blocked due to 404Shield. If this is not the case, disregard the rest of this reply and tell me who those IP addresses belonged to.

If the IP was your client's, they are running something on their computer / network which tries to access their old site's images. Maybe they have some kind of web spider or SEO software they were previously using?

Nicholas K. Dionysopoulos

Lead Developer and Director

🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

karendunne

Yes, those are the client's IPs that they reported to me. I have requested more info from them because it doesn't make any sense to me. They said they were viewing the new website and then got blocked. Weird; I need more info from them. 🤷‍♀️

nicholas
Akeeba Staff
Manager

Is it possible that imported content from the old site is still referencing images from the old wp-content image location?

Nicholas K. Dionysopoulos

Lead Developer and Director

🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

karendunne

No, this was a fresh start and we didn't use anything from their old site. 

nicholas
Akeeba Staff
Manager

Then I don't know. You should look in the access log of the server to figure out what's making those requests. Hopefully it will have a sensible user-agent string which is recorded in the access log.

Nicholas K. Dionysopoulos

Lead Developer and Director

🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

karendunne
Checking the server access logs was informative. Thank you. I’ve been working on this since we corresponded but I was waiting to reply until I has something more concrete to come back with. So here’s what I’ve determined thus far:

I asked my host (Liquid Web) to check the server access logs and they reported the following regarding the source of the old WordPress URL requests:

"Jetpack / WordPress.com: The previous site was connected to a WordPress.com account. Their servers are still trying to poll xmlrpc.php to sync stats and monitor uptime.
Bots are crawling old indexed image paths under /wp-content/ and /moawp/.

"What we did this morning:
We updated the .htaccess file to block these requests at the server level with an HTTP 410 Gone status. This stops them from hitting Joomla and triggering the 404 security alerts, while also instructing search engines to remove the old URLs from their index.

"Action required:
To stop the Jetpack traffic entirely, please go to your WordPress.com account and disconnect/remove moaarch.comfrom the dashboard."

————

The HTTP 410 gone status they added to the htaccess file is as follows:
# Block common WordPress endpoints (case-insensitive) at root or inside /moawp/
RewriteRule ^(moawp/)?(xmlrpc\.php|wp-login\.php|wp-admin|wp-includes) - [G,NC,L]

# Block wp-content requests (case-insensitive) at root or inside /moawp/
RewriteRule ^(moawp/)?wp-content/ - [G,NC,L]

However, I haven't noticed any change to the 404 shield and the number is now approaching 18,000 since we launched the site three weeks ago. So I’m not confident in their statement that it would stop them from hitting the Joomla site and triggering the 404 shield. Does the statement really stop them from hitting the site?

————

All those blocked request are significantly slowing the load speed of the backend, too. Under Tools in Admin Tools, will “Purge Sessions” remove all those?

————

The blocked requests that were coming from the client's office IP were caused by Microsoft 365 making calls for a logo that has a previous wp-content path. That has been resolved with an edit to the Microsoft 365 settings.

————

Regarding this Jetpack thing (new to me; for that matter, everything WP is new to me): My client has not been able to access Jetpack. Nor have they been able to reach the previous web developer. I have been told that they cancelled their WordPress account via WP Engine.

Might you have any other suggestions to rid the site from these hits?

nicholas
Akeeba Staff
Manager

Ah, now it makes a lot more sense! This was previously a WordPress site and now it's a Joomla! site.

I cannot tell you for sure if disabling JetPack would do anything. The PDF you sent me does not show this to be an ongoing issue. Moreover, the previous person obviously confuses their WPEngine (hosting) account with the WordPress.com account used to manage JetPack. Not only they are not the same company, these two companies have been fighting each other in court for the past year and a half. You can't fix stupid, so there's that.

Now, the PDF you send me shows that a lot of external IPs are trying to access static media files on the previous WordPress site. You can't stop that. Even if you disable Admin Tools completely you won't really fix anything since all these URLs do not exist on your server, result in an HTTP 404 Not Found, therefore are handled by Joomla. Since Joomla takes hundreds of milliseconds and Megabytes of memory to render the 404 page, your server load increases. You can amend the .htaccess rule to include wp-content in it:

RewriteRule ^(moawp/)?(xmlrpc\.php|wp-login\.php|wp-admin|wp-includes|wp-content) - [G,NC,L]

This won't stop the requests, but instead of being handled through Joomla they will very quickly return an HTTP 401 Gone response. This will lighten the load on your server a bit. At least, that's the hope.

Nicholas K. Dionysopoulos

Lead Developer and Director

🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

karendunne
Thank you, Nicolas. I've added RewriteRule ^(moawp/)?(xmlrpc\.php|wp-login\.php|wp-admin|wp-includes|wp-content) - [G,NC,L]
to the htaccess file.

All those blocked request are significantly slowing the load speed of the backend, too. Under Tools in Admin Tools, will “Purge Sessions” remove all those?

nicholas
Akeeba Staff
Manager

All those blocked request are significantly slowing the load speed of the backend, too. Under Tools in Admin Tools, will “Purge Sessions” remove all those?

I got that the first time.

I actually did reply to it.

No, it won't help.

This has nothing to do with session management.

It has also nothing to do with Admin Tools per se.

As I told you, the problem will persist even if you completely disable or even uninstall Admin Tools:

Even if you disable Admin Tools completely you won't really fix anything since all these URLs do not exist on your server, result in an HTTP 404 Not Found, therefore are handled by Joomla. Since Joomla takes hundreds of milliseconds and Megabytes of memory to render the 404 page, your server load increases.

Your problem is that you have a large number of external sources requesting static media files on the no longer existing WordPress paths.

All these requests result in an HTTP 404 Not Found each.

Joomla handles HTTP 404.

You MUST NOT remove Joomla's handling of 404 pages from the .htaccess file. That would be the WRONG solution as it WILL break Joomla SEF URLs.

Since Joomla takes a lot of time to process each 404 page, your server load increases.

Since your server load increases, your site gets slower – both frontend and backend.

Ideally, you want to stop these requests from happening.

This is objectively NOT under your or our control.

The second best option is to block these requests as quickly as possible, before they can reach Joomla.

This is what the amended .htaccess code does.

This might not be enough if you are receiving hundreds to thousands of them every day.

If this is the case, you need to stop these requests from hitting your server.

How can you stop a request from hitting your server if you have no control over the person or service making the request?

The answer is using something like CloudFlare CDN.

If you put the site behind CloudFlare CDN you can create a rule which matches all those /wp-* URL paths, with a block decision.

URLs blocked at the CloudFlare CDN level never reach your server.

However, I consider using CloudFlare CDN for this use case to be the last resort.

Let's see if the changes you made have an effect.

Keep monitoring your site for a few more days.

Nicholas K. Dionysopoulos

Lead Developer and Director

🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

karendunne
Thanks, Nicolas. I appreciate the explanation.

My wording was not correct I think. I noticed that the log of blocked requests was slowing the load speed in the backend admin. What I ended up doing to clear the log was TRUNCATE TABLE `moa_admintools_log`; via PHP my admin. The backend is loading quickly again.

Support Information

Working hours: We are open Monday to Friday, 9am to 7pm Cyprus timezone (EET / EEST). Support is provided by the same developers writing the software, all of which live in Europe. You can still file tickets outside of our working hours, but we cannot respond to them until we're back at the office.

Support policy: We would like to kindly inform you that when using our support you have already agreed to the Support Policy which is part of our Terms of Service. Thank you for your understanding and for helping us help you!