WordPress Plugins
Free Tools
Claude Skills
Pricing Blog Switch to Royal Plugin Graveyard Support My Account Cart
Support / GuardPress / Pre-Launch Security Checklist

The Pre-Launch WordPress Security Checklist (2026)

Everything to verify before a new WordPress site goes live, or before you hand a site off to a client. 35 items, grouped by who owns each: 20 that a good security plugin (GuardPress or similar) automates, 5 that your host handles for you if you’re on a real host, and 10 that you still have to check manually because no plugin can see them.

Print this page or copy it into your handoff runbook

The three tables below are the whole checklist. If you’re running an agency or handing sites off to clients, copy the “you verify manually” column into your standard launch runbook — those are the items that are easiest to skip and hardest to catch after the fact.

What GuardPress automates (20 items)

These are handled automatically once GuardPress is installed, activated, and Quick Start is complete. Nothing to check per launch beyond confirming the dashboard shows green:

Item What it covers
1. Web application firewallBlocks SQL injection, XSS, path traversal, file inclusion, malicious-bot signatures before WordPress loads.
2. Brute-force login protectionIP lockouts on repeated failed sign-ins.
3. Two-factor authentication (TOTP)Second-factor challenge on every sign-in surface.
4. Malware file scannerDaily PHP-file scan against signature list + behavior heuristics.
5. File integrity monitorBaseline hash of WordPress core files, alerts on any change.
6. Vulnerability scannerCross-checks every installed plugin against the CISA Known Exploited Vulnerabilities feed and other CVE data sources.
7. XML-RPC brute-force protectionBlocks the XML-RPC amplification attack vector.
8. WordPress version hidingStrips the generator meta tag so attackers can’t filter for known-vulnerable versions.
9. File-editing lockdownDisables the built-in theme/plugin file editor in wp-admin (DISALLOW_FILE_EDIT).
10. Emergency lockdown modePanic-button to reject all new sign-ins site-wide while an incident is being resolved.
11. Per-role 2FA enforcementRequire 2FA for Administrators / Editors / Shop Managers without forcing it on Subscribers.
12. Sign-in notificationsEmail alert when an administrator signs in from a new device or location.
13. Database security checksScans for common WP DB attack surface: exposed DB_USER, weak admin passwords, tables from removed plugins.
14. IP whitelist / blacklistManual overrides for trust and block, plus auto-populated lockout table from brute-force.
15. Cloudflare / CDN real-IP resolverReads the correct source IP when the site sits behind a proxy.
16. Country blockingGeographic access rules delivered by the Firewall module.
17. CAPTCHA on login formsCloudflare Turnstile / hCaptcha / reCAPTCHA on wp-login.php and every common integration surface.
18. Uploads PHP execution blockPrevents PHP from executing inside wp-content/uploads/, shutting down the “upload a shell via a bad file-type check” attack class.
19. Security event loggingStructured log of every block, lockout, malware finding, and file-integrity change.
20. Email alerts with throttlingCritical events emailed to you with per-attacker throttling so a scan wave doesn’t flood your inbox.

What your host should handle (5 items)

These are your hosting provider’s job. If you’re on a real WordPress-focused host (Kinsta, WP Engine, Pressable, Cloudways, Rocket.net, or similar), all five are default-on. If you’re on generic shared hosting, verify each one manually and consider moving providers if the answer is no.

Item What to check
21. Automatic SSL certificateLet’s Encrypt (or equivalent) auto-provisioned and auto-renewing. Test with SSL Checker.
22. HTTP/2 or HTTP/3 enabledModern protocol support. Not strictly security, but reduces attack surface for slowloris-style attacks.
23. Automatic offsite backupsDaily backups stored somewhere other than the origin server, retained for at least 30 days, and tested restorable. If your host doesn’t do this, run SiteVault to handle it independently.
24. PHP version currently supportedPHP 8.1 or newer. Older versions no longer receive security patches from the PHP core team.
25. DDoS mitigation at the network edgeBasic volumetric-attack absorption. Every major managed WP host provides this; on shared hosting you may need to front the site with Cloudflare’s free plan.

What you still have to check manually (10 items)

These sit outside both the plugin’s scope and the host’s scope. Every one is a common miss on client handoffs. Run through them before every launch:

Item Why it matters, how to check
26. Admin username isn’t admin, administrator, or the site nameHalf of all brute-force attempts try admin first. Rename the primary administrator account before launch. WP Users → create new administrator with a strong username → delete or demote the old one.
27. Every admin account has a strong, unique passwordPassword manager-generated, minimum 20 characters, not reused from any other service. Enforce for the admin account you’re handing off too.
28. readme.html is deleted from the site rootWordPress ships a readme.html that leaks the WordPress version. Delete after every WordPress update via SFTP or a small snippet in the theme’s functions.php.
29. wp-config-sample.php is deletedDoesn’t leak sensitive info, but there’s no reason to leave it in production.
30. wp-config.php file permissions are 400 or 440Read-only for the web-server user, unreadable for anyone else. Prevents a compromised process from exfiltrating DB credentials.
31. Database prefix is not wp_Not a huge win, but reduces the effectiveness of generic SQL-injection payloads that assume the default prefix. Set during WordPress install, or migrate afterward with a plugin.
32. Unused plugins and themes are deleted, not just deactivatedDeactivated plugin code still sits on disk and can be executed via direct file access. Delete anything you’re not actively using.
33. Debug logging is off (or write-only)Confirm WP_DEBUG, WP_DEBUG_LOG, and WP_DEBUG_DISPLAY are all false in production. Debug output on the frontend leaks file paths, PHP version, and sometimes credentials to any visitor.
34. DNS: SPF, DKIM, and DMARC records for transactional emailIf the site sends email (contact forms, WooCommerce receipts, user notifications), these records make sure the mail actually delivers and can’t be spoofed. Set at your DNS provider based on your SMTP delivery service’s documentation.
35. Any secrets in a public git repo are scrubbedIf the site’s source is in git, run a secret scanner (gitleaks, trufflehog) over the whole history before making the repo public. Old commits with a wp-config.php, a stripe key, or an SMTP password are the most common leak class.

Bonus: the client handoff extras

If you’re an agency handing a finished site to a client, add these to the launch runbook. Not strictly security, but each one prevents a class of “the site broke and I don’t know how to fix it” support ticket:

Post-launch: what to watch in the first week

Launching secure is half the job. The other half is knowing when something changes. First-week watch list:

Related GuardPress topics

Deep dives on individual items from this checklist: