A WordPress admin plugin to Customize and secure your WordPress dashboard
Green is closed, red is open
Security settings live in a dozen different screens, so the honest answer to "is this site protected?" is usually "I think so". Deskmode puts every protection on one page, green when it is on and red when it is off, and adds three checks WordPress never runs: must-use plugins loading silently, the PHP .user.ini, executable files sitting in your uploads folder. Every line is a link to the page that fixes it.
Security settings are scattered by design: rate limiting in one screen, two-factor in another, XML-RPC somewhere else again. Each one is easy to set and just as easy to forget, so the honest answer to whether a site is protected is usually a guess. The security summary replaces the guess with a list.
Every protection Deskmode offers appears on a single page with a green or red badge: green when it is on, red when it is off, and one line underneath saying what that means in practice. Not "REST rate limiting: disabled", but "/wp-json answers as fast as the server can". Each line is a link straight to the screen that turns it on.
The summary also looks at things outside the plugin, the ones that stay invisible until someone is already inside. All three are read-only: nothing is changed, moved or deleted.
The uploads scan is kept for one hour and stops after 20,000 files, so it never slows the dashboard on a site with a large media library. When it stops early, the page says so instead of pretending the result is complete.
On .user.ini: it only applies when PHP runs as CGI or FPM. On mod_php the summary says so and gives no verdict, rather than reporting a problem that does not exist on your server.
WordPress security summary: Frequently asked
Five answers on what the page checks, what it deliberately does not do, and how to read a red badge that isn’t your fault.
No, and it is worth being blunt about it. The summary reads settings and looks in three specific places; it does not inspect the contents of your files and it has no database of known malicious code. A backdoor written into a theme file, or hidden inside a legitimate-looking plugin, is invisible to it.
What it does is different and complementary: it tells you which of your own defences are switched off, and it looks where code has no business being. If you need signature-based scanning, run a dedicated tool alongside it, and read the WordPress hardening guide for the measures that sit outside any plugin.
Nothing at all. Every check is read-only: files are listed and settings are read, never modified, moved or deleted. The page has no “fix this for me” button by design, because a plugin that silently rewrites .user.ini or deletes files out of your uploads folder can do more damage than the problem it was solving.
Each line links to the screen where you make the change yourself, having seen what it is.
.user.ini is read-only, but two directives are red. Which is it?Both, and they are separate facts. The file is fine; the values are what is off. A directive that isn’t written in your .user.ini still has a value in effect, inherited from the server’s php.ini, and that is the value the summary reports because that is what PHP actually applies.
The In the file column tells you which is which. “No, from php.ini” means the setting isn’t yours to change from there: either add it to your file, if your host allows it, or ask them to change it.
Not necessarily, and don’t delete anything before you have looked. Some caching, backup and gallery plugins legitimately write PHP into uploads, and an index.php of zero bytes is a common and harmless way of stopping directory listing.
What matters is whether you can account for it. Open the file: if it is obfuscated, base64-encoded, or you have no idea what put it there, treat it as a finding and investigate properly. The summary points the torch, it doesn’t decide for you.
Because the page cannot tell a hosting helper from a backdoor, and pretending otherwise would be worse than the amber. Red here means “look at this”, not “this is malicious”: must-use plugins load on every single request and cannot be deactivated from the Plugins screen, which is exactly why that folder is a favourite hiding place.
Read the names once, recognise what your host put there, and from then on you will notice immediately if something new appears.