---
title: "Security Hardening: Lock Down Your WordPress Sites from the Dashboard"
description: "Learn how to close the WordPress attack surface site by site, with hardening toggles you control from your WP Umbrella dashboard. No security plugin, no hand-edited .htaccess files. Security Hardening is part of the Security add-on (formerly Site Protect), alongside the Firewall & Virtual Patching and the Security-Driven Activity Log. See What's Included in the Security Add-on for the full picture."
url: https://support.wp-umbrella.com/en/articles/95-security-hardening-lock-down-your-wordpress-sites-from-the-dashboard
collection: "Monitoring & Security"
updated: 2026-11-01
language: en
---

# Security Hardening: Lock Down Your WordPress Sites from the Dashboard

Learn how to close the WordPress attack surface site by site, with hardening toggles you control from your WP Umbrella dashboard. No security plugin, no hand-edited .htaccess files.    Security Hardening is part of the Security add-on (formerly Site Protect), alongside the Firewall & Virtual Patching and the Security-Driven Activity Log. See What's Included in the Security Add-on for the full picture.

## Overview

Most compromised WordPress sites aren't hacked with anything clever. Attackers list usernames through public endpoints, brute-force a password, then use built-in features like the theme editor to inject code. Hardening closes those doors before anyone knocks.

With WP Umbrella you can see exactly what is protected, and adjust each rule to what the site actually needs.

⏱ **Estimated time to configure:** 2–3 minutes per site (defaults are applied automatically)

✅ **Prerequisites:**

-   WP Umbrella plugin installed and activated on your WordPress site
    
-   Active Security add-on (+2€/month per site)
    

## Where to Find It

Go to the Security tab of any site in your dashboard and open the **Hardening** section.

![](https://staticfiles.gleap.io/ghelparticle/A4ogtJOZ9fLinVFSvp7nydAjlwhYsNMKz0Fk4iY1kyDM3GjdL7Utd03TFVaoqCVYoxpGcgDiADs.png)

## Hardening settings:  

<table data-id="cd7a165a-c39a-4247-8f43-b1efaffcc469" style="min-width: 50px;"><colgroup><col style="min-width: 25px;"><col style="min-width: 25px;"></colgroup><tbody><tr><td colspan="1" rowspan="1" style="border: 1px solid rgb(196, 199, 197); padding: 8px 12px; font-family: &quot;Google Sans Text&quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important;"><p data-id="a312c197-461c-460c-a272-1d7cbbd504b9"><strong>Protection</strong></p></td><td colspan="1" rowspan="1" style="border: 1px solid rgb(196, 199, 197); padding: 8px 12px; font-family: &quot;Google Sans Text&quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important;"><p data-id="2881f6f6-3af7-4e23-98c4-6a3156ad35d1"><strong>What it does &amp; Why it matters</strong></p></td></tr><tr><td colspan="1" rowspan="1" style="border: 1px solid rgb(196, 199, 197); padding: 8px 12px; font-family: &quot;Google Sans Text&quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important;"><p data-id="9ef11b95-860c-431a-8113-453ab7d0819d"><span><strong>Hide your WordPress version</strong></span></p></td><td colspan="1" rowspan="1" style="border: 1px solid rgb(196, 199, 197); padding: 8px 12px; font-family: &quot;Google Sans Text&quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important;"><p data-id="872d989e-e602-48a6-803c-1005af68bdaa"><span>Removes the WordPress version from your site's HTML and feeds so attackers cannot target version-specific exploits.</span></p></td></tr><tr><td colspan="1" rowspan="1" style="border: 1px solid rgb(196, 199, 197); padding: 8px 12px; font-family: &quot;Google Sans Text&quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important;"><p data-id="046b3404-443f-438a-9249-17830df21ae1"><span><strong>Block user enumeration</strong></span></p></td><td colspan="1" rowspan="1" style="border: 1px solid rgb(196, 199, 197); padding: 8px 12px; font-family: &quot;Google Sans Text&quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important;"><p data-id="a70fdc1c-a572-4a81-b296-988d91b531af"><span>Stops bots from listing your usernames through author pages, the REST API, and your sitemap. Author archives will safely redirect to your homepage for logged-out visitors.</span></p></td></tr><tr><td colspan="1" rowspan="1" style="border: 1px solid rgb(196, 199, 197); padding: 8px 12px; font-family: &quot;Google Sans Text&quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important;"><p data-id="05e7ceab-9ffe-4b4e-ad75-46505e11ce0f"><span><strong>Mask login error messages</strong></span></p></td><td colspan="1" rowspan="1" style="border: 1px solid rgb(196, 199, 197); padding: 8px 12px; font-family: &quot;Google Sans Text&quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important;"><p data-id="aaee41f4-be19-4939-bec0-2376ba88117e"><span>Shows a single generic message on failed logins so attackers cannot tell whether a username actually exists in your database.</span></p></td></tr><tr><td colspan="1" rowspan="1" style="border: 1px solid rgb(196, 199, 197); padding: 8px 12px; font-family: &quot;Google Sans Text&quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important;"><p data-id="1c6e6b8b-363d-4eba-8b87-fc4af34204e9"><span><strong>Disable the theme and plugin file editor</strong></span></p></td><td colspan="1" rowspan="1" style="border: 1px solid rgb(196, 199, 197); padding: 8px 12px; font-family: &quot;Google Sans Text&quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important;"><p data-id="da066c6f-2054-4d68-8667-d9eadb1e3d7c"><span>Removes the built-in code editor from wp-admin, ensuring a compromised account cannot inject PHP directly into your site.</span></p></td></tr><tr><td colspan="1" rowspan="1" style="border: 1px solid rgb(196, 199, 197); padding: 8px 12px; font-family: &quot;Google Sans Text&quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important;"><p data-id="ede034d0-8c5a-471e-b6aa-c483a7483db0"><span><strong>Add security headers</strong></span></p></td><td colspan="1" rowspan="1" style="border: 1px solid rgb(196, 199, 197); padding: 8px 12px; font-family: &quot;Google Sans Text&quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important;"><p data-id="4d097c2f-c9b3-4c4e-b8e0-478408ac1fc9"><span>Sends hardening HTTP headers such as X-Frame-Options and X-Content-Type-Options to protect against clickjacking and content sniffing.</span></p></td></tr><tr><td colspan="1" rowspan="1" style="border: 1px solid rgb(196, 199, 197); padding: 8px 12px; font-family: &quot;Google Sans Text&quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important;"><p data-id="d3d6b75f-bc79-4e77-9a5c-f477fe7b56a1"><span><strong>Rate-limit login attempts</strong></span></p></td><td colspan="1" rowspan="1" style="border: 1px solid rgb(196, 199, 197); padding: 8px 12px; font-family: &quot;Google Sans Text&quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important;"><p data-id="ff662a1d-f846-4e68-9446-1fa47afb8c24"><span>Throttles repeated failed logins from the same source to slow down brute-force attacks.</span></p></td></tr><tr><td colspan="1" rowspan="1" style="border: 1px solid rgb(196, 199, 197); padding: 8px 12px; font-family: &quot;Google Sans Text&quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important;"><p data-id="822b9f8b-3dd7-4394-847f-2ab99be51bb0"><span><strong>Block known attacker IPs</strong></span></p></td><td colspan="1" rowspan="1" style="border: 1px solid rgb(196, 199, 197); padding: 8px 12px; font-family: &quot;Google Sans Text&quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important;"><p data-id="207b4656-d396-4b21-84ea-1f367138b0eb"><span>Turns away IP addresses caught attacking sites across the WP Umbrella network before they ever reach yours. This is included only in the Security add-on.</span></p></td></tr><tr><td colspan="1" rowspan="1" style="border: 1px solid rgb(196, 199, 197); padding: 8px 12px; font-family: &quot;Google Sans Text&quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important;"><p data-id="85cd56b7-713a-4141-aaf6-16087d81a6cc"><span><strong>Disable XML-RPC</strong></span></p></td><td colspan="1" rowspan="1" style="border: 1px solid rgb(196, 199, 197); padding: 8px 12px; font-family: &quot;Google Sans Text&quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important;"><p data-id="d300c9fa-034a-403d-b68a-830ec86996cd"><span>Closes the XML-RPC endpoint that attackers abuse to amplify brute-force attempts and pingback DDoS. Leave this off if your site relies on the WordPress mobile app or Jetpack.</span></p></td></tr><tr><td colspan="1" rowspan="1" style="border: 1px solid rgb(196, 199, 197); padding: 8px 12px; font-family: &quot;Google Sans Text&quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important;"><p data-id="1cc445c6-2e32-4e20-b1a6-7e28bf4ff16e"><span><strong>Harden your .htaccess</strong></span></p></td><td colspan="1" rowspan="1" style="border: 1px solid rgb(196, 199, 197); padding: 8px 12px; font-family: &quot;Google Sans Text&quot;, sans-serif !important; line-height: 1.15 !important; margin-top: 0px !important;"><p data-id="2e4179a9-f9d3-49ac-904b-2cc0e0827615"><span>Adds a protective block to your .htaccess that stops PHP from running in writable folders like uploads, blocks access to sensitive files such as wp-config.php and database dumps, and turns off directory listing. WP Umbrella tests the rules in a safe location first and rolls everything back automatically if your server rejects them.</span></p></td></tr><tr><td colspan="1" rowspan="1"><p data-id="e7ebb286-ee46-47f4-8117-95693e02f9fc">Require two-factor authentication for administrators</p></td><td colspan="1" rowspan="1"><p data-id="b9550fd7-9850-47a9-b27b-127bce870adb">Every administrator of this site is asked to set up an authenticator app the next time they log in, then to enter a code at each login. Recovery codes are generated during setup, and one-click access from WP Umbrella keeps working</p></td></tr></tbody></table>

### Defaults, and When to Change Them

A portfolio-wide policy can sometimes break a client's edge case. Always check what each site depends on before you restrict access so you get the security win without creating a new support ticket.

For instance, disabling XML-RPC is excellent for security, but you must leave it toggled off if the site relies on the official WordPress mobile app or Jetpack to function properly.

## Frequently Asked Questions

### **❓**Do I need to configure anything for the defaults to apply?

No. Enabling the Security add-on applies the recommended configuration instantly. The Hardening section is there when you want to tighten or loosen individual rules.

### **❓**Will these rules break my site?

The default set is chosen to be safe for the vast majority of sites. The rules that most often interact with legitimate functionality (application passwords, REST API restriction) are off by default, and everything is reversible with one toggle.
