<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: xusteve</title>
    <description>The latest articles on DEV Community by xusteve (@xusteve).</description>
    <link>https://dev.to/xusteve</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F481489%2F1d748736-2ecd-4cca-920c-5fd980084576.jpeg</url>
      <title>DEV Community: xusteve</title>
      <link>https://dev.to/xusteve</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/xusteve"/>
    <language>en</language>
    <item>
      <title>The Ultimate WordPress Security Checklist for 2026</title>
      <dc:creator>xusteve</dc:creator>
      <pubDate>Sun, 21 Jun 2026 15:45:41 +0000</pubDate>
      <link>https://dev.to/xusteve/the-ultimate-wordpress-security-checklist-for-2026-255m</link>
      <guid>https://dev.to/xusteve/the-ultimate-wordpress-security-checklist-for-2026-255m</guid>
      <description>&lt;h1&gt;
  
  
  The Ultimate WordPress Security Checklist for 2026
&lt;/h1&gt;

&lt;p&gt;WordPress powers over 43% of all websites — making it the most popular CMS in the world and, by extension, the most targeted platform for attackers. In 2024 alone, over 24,000 WordPress plugins were flagged for security vulnerabilities. If you're running a WordPress site, you need a systematic approach to security, not a reactive one.&lt;/p&gt;

&lt;p&gt;This checklist covers everything you need to lock down your WordPress installation — from basic hardening to advanced monitoring. At the end, we'll show you how to automate most of these checks.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Core WordPress Hardening
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Keep Everything Updated
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;WordPress core&lt;/strong&gt;: Enable auto-updates for minor releases; test major releases on staging first&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Themes &amp;amp; plugins&lt;/strong&gt;: Delete unused ones. Outdated plugins are the #1 attack vector — 56% of known vulnerabilities come from third-party plugins&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PHP version&lt;/strong&gt;: Run PHP 8.1+ (7.4 reached EOL in November 2022 and has known security holes)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Strengthen Authentication
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Enforce strong passwords&lt;/strong&gt; for all users (use a password manager)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enable Two-Factor Authentication (2FA)&lt;/strong&gt; — the single most effective step against brute force&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Limit login attempts&lt;/strong&gt; — plugins like Wordfence or CSF (ConfigServer Security &amp;amp; Firewall) can block IPs after 3-5 failed attempts&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Change the default "admin" username&lt;/strong&gt; — if you're still using it, create a new admin and delete the old one&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Secure wp-config.php
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Move wp-config.php one directory above the web root if possible&lt;/span&gt;
&lt;span class="c1"&gt;// Add these lines:&lt;/span&gt;
&lt;span class="nb"&gt;define&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'DISALLOW_FILE_EDIT'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;       &lt;span class="c1"&gt;// Disable file editor in admin&lt;/span&gt;
&lt;span class="nb"&gt;define&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'AUTOSAVE_INTERVAL'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;300&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;          &lt;span class="c1"&gt;// Reduce autosave frequency&lt;/span&gt;
&lt;span class="nb"&gt;define&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'WP_POST_REVISIONS'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;            &lt;span class="c1"&gt;// Limit post revisions&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  2. File System &amp;amp; Server Security
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Protect Sensitive Files
&lt;/h3&gt;

&lt;p&gt;Block access to these files via &lt;code&gt;.htaccess&lt;/code&gt; or nginx config:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;wp-config.php&lt;/code&gt; — contains DB credentials&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;.git/&lt;/code&gt; and &lt;code&gt;.env&lt;/code&gt; — if using Git deployment&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;readme.html&lt;/code&gt; and &lt;code&gt;license.txt&lt;/code&gt; in the root — these leak your WordPress version&lt;/li&gt;
&lt;li&gt;XML-RPC if not needed (often used for DDoS amplification)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Directory Permissions
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;wp-config.php&lt;/code&gt;: 400 or 440 (read-only)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;wp-content/&lt;/code&gt;: 755 (directories), 644 (files)&lt;/li&gt;
&lt;li&gt;Never use 777 — it's an open invitation&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Disable Directory Browsing
&lt;/h3&gt;

&lt;p&gt;Add to &lt;code&gt;.htaccess&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight apache"&gt;&lt;code&gt;&lt;span class="nc"&gt;Options&lt;/span&gt; -Indexes
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Implement a Web Application Firewall (WAF)
&lt;/h3&gt;

&lt;p&gt;A WAF sits in front of your site and blocks malicious requests before they reach WordPress. Options:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cloudflare&lt;/strong&gt; (free tier available) — blocks SQL injection, XSS, and known bad bots&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Wordfence&lt;/strong&gt; — WordPress-native WAF with real-time threat defense feed&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sucuri&lt;/strong&gt; — CDN + WAF with DDoS protection&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  3. Database Security
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Change the Table Prefix
&lt;/h3&gt;

&lt;p&gt;The default &lt;code&gt;wp_&lt;/code&gt; prefix is well-known. Change it during installation, or use a plugin like WP-DBManager to rename it on an existing site.&lt;/p&gt;

&lt;h3&gt;
  
  
  Regular Backups (3-2-1 Rule)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;3 copies&lt;/strong&gt; of your data&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;2 different media&lt;/strong&gt; (server + cloud)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;1 offsite&lt;/strong&gt; (Google Drive, Dropbox, S3)&lt;/li&gt;
&lt;li&gt;Recommended: UpdraftPlus, BlogVault, or your host's built-in backup&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Limit Database Access
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Create a dedicated MySQL user with only the necessary privileges&lt;/li&gt;
&lt;li&gt;Never use the root MySQL user for WordPress&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  4. SSL/TLS &amp;amp; HTTPS
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Install an SSL Certificate
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Free options: Let's Encrypt (most hosts support one-click install)&lt;/li&gt;
&lt;li&gt;Verify HTTPS is enforced site-wide (301 redirect HTTP → HTTPS)&lt;/li&gt;
&lt;li&gt;Check for mixed content warnings (Chrome DevTools → Console)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  HSTS Header
&lt;/h3&gt;

&lt;p&gt;Add to your server config:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight nginx"&gt;&lt;code&gt;&lt;span class="k"&gt;add_header&lt;/span&gt; &lt;span class="s"&gt;Strict-Transport-Security&lt;/span&gt; &lt;span class="s"&gt;"max-age=31536000&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;includeSubDomains&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;preload"&lt;/span&gt; &lt;span class="s"&gt;always&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  5. Content Security Policy (CSP)
&lt;/h2&gt;

&lt;p&gt;A CSP header tells browsers which resources are allowed to load. Start with a report-only mode:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;Content-Security-Policy: default-src 'self'; script-src 'self' https://trusted.cdn.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then monitor the reports and tighten over time.&lt;/p&gt;




&lt;h2&gt;
  
  
  6. Monitoring &amp;amp; Alerts
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Uptime Monitoring
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;UptimeRobot&lt;/strong&gt; (free, 50 monitors)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;StatusCake&lt;/strong&gt; — also monitors SSL expiry&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Change Detection
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;WPScan&lt;/strong&gt; — checks if your WordPress version/plugins have known vulnerabilities&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WordPress Site Health&lt;/strong&gt; (built-in, Tools → Site Health)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Security Logging
&lt;/h3&gt;

&lt;p&gt;Enable WordPress debug logging (&lt;code&gt;WP_DEBUG_LOG&lt;/code&gt; in wp-config.php) and review regularly. For production, use a plugin like WP Activity Log.&lt;/p&gt;




&lt;h2&gt;
  
  
  7. Common Mistakes That Undermine Everything
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Mistake&lt;/th&gt;
&lt;th&gt;Why It's Dangerous&lt;/th&gt;
&lt;th&gt;Fix&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Using &lt;code&gt;admin&lt;/code&gt; as username&lt;/td&gt;
&lt;td&gt;Brute force bots target it first&lt;/td&gt;
&lt;td&gt;Create new admin, delete &lt;code&gt;admin&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No 2FA&lt;/td&gt;
&lt;td&gt;Credential stuffing is rampant&lt;/td&gt;
&lt;td&gt;Use Wordfence 2FA or WP 2FA plugin&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Outdated PHP&lt;/td&gt;
&lt;td&gt;PHP 7.x has unpatched CVEs&lt;/td&gt;
&lt;td&gt;Upgrade to PHP 8.1+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nulled plugins/themes&lt;/td&gt;
&lt;td&gt;Often contain backdoors&lt;/td&gt;
&lt;td&gt;Buy from official sources only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No backups&lt;/td&gt;
&lt;td&gt;Ransomware can wipe everything&lt;/td&gt;
&lt;td&gt;Automated offsite backups, test restores&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;XML-RPC enabled&lt;/td&gt;
&lt;td&gt;Used for DDoS and brute force&lt;/td&gt;
&lt;td&gt;Disable if not using Jetpack/mobile apps&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  8. Automate Your Security Audit
&lt;/h2&gt;

&lt;p&gt;Manually checking all 37+ security items above every month is unrealistic. That's why we built &lt;strong&gt;&lt;a href="https://app.wpseo.help" rel="noopener noreferrer"&gt;wpSEO&lt;/a&gt;&lt;/strong&gt; — a free tool that automates WordPress security scanning:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ &lt;strong&gt;37 security checks&lt;/strong&gt; — version exposure, security headers, WAF, 2FA, PHP version, and more&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;125+ total checks&lt;/strong&gt; combining security + SEO in one report&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;No signup required&lt;/strong&gt; — paste your URL and get results in seconds&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;10 languages&lt;/strong&gt; — available in English, Chinese, Japanese, Korean, German, Russian, Arabic, French, Spanish, Portuguese&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;PDF reports&lt;/strong&gt; — export and share with your team or clients&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Actionable fixes&lt;/strong&gt; — every check includes a "how to fix" description&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Try it free&lt;/strong&gt;: &lt;a href="https://app.wpseo.help" rel="noopener noreferrer"&gt;https://app.wpseo.help&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Word
&lt;/h2&gt;

&lt;p&gt;WordPress security isn't a one-time setup — it's ongoing hygiene. The checklist above covers the fundamentals. Run through it quarterly, stay on top of updates, and use an automated scanner to catch what you miss.&lt;/p&gt;

&lt;p&gt;Your WordPress site is your business. Lock it down.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Got questions about WordPress security? Drop a comment or reach out — happy to help.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>wordpress</category>
      <category>security</category>
      <category>seo</category>
      <category>webdev</category>
    </item>
    <item>
      <title>digkeywords.net - SEO  Keyword Tool</title>
      <dc:creator>xusteve</dc:creator>
      <pubDate>Thu, 15 Oct 2020 11:03:46 +0000</pubDate>
      <link>https://dev.to/xusteve/digkeywords-net-seo-keyword-tool-101k</link>
      <guid>https://dev.to/xusteve/digkeywords-net-seo-keyword-tool-101k</guid>
      <description>&lt;p&gt;All in One SEO KeyWord Research Tool&lt;br&gt;
&lt;a href="https://digkeywords.net"&gt;https://digkeywords.net&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Google keyword tool&lt;br&gt;
Bing keyword tool&lt;br&gt;
Amazon keyword tool&lt;br&gt;
eBay keyword tool&lt;br&gt;
YouTube keyword tool&lt;br&gt;
Yahoo keyword tool&lt;br&gt;
Wikipedia keyword tool&lt;/p&gt;

&lt;p&gt;FREE All In One SEO Keyword Research Tool that helps you to get the top keyword ideas or long tail keywords from most popular websites such as Google, Bing, Yahoo, Amazon, Ebay, Youtube, Wikipedia and checks the domain names already registered or still available of those keywords to find the BEST Keyword Domain Names for you.&lt;/p&gt;

&lt;p&gt;You also can use our Free Google Keyword Rank Checker to Check Your Keyword Positions in Google Search Results for your sites.&lt;br&gt;
Why Do You Need Dig Keywords Tool?&lt;/p&gt;

&lt;p&gt;Dig KeyWords Tool is the BEST alternative keyword research tool to Google keyword planner and other keyword research tools&lt;br&gt;
Dig KeyWords Tool helps to find long-tail keywords that are ignored by you or your competitors!&lt;br&gt;
Dig KeyWords Tool helps you find the right keywords for SEO and content creation.&lt;br&gt;
Dig KeyWords Tool helps you dig the relevant keywords that you target with your CPC ads!&lt;/p&gt;

</description>
      <category>keyword</category>
    </item>
    <item>
      <title>Whoisdomainthis - Domain Statistic Search Tool</title>
      <dc:creator>xusteve</dc:creator>
      <pubDate>Sat, 03 Oct 2020 23:59:29 +0000</pubDate>
      <link>https://dev.to/xusteve/whoisdomainthis-domain-statistic-search-tool-22f1</link>
      <guid>https://dev.to/xusteve/whoisdomainthis-domain-statistic-search-tool-22f1</guid>
      <description>&lt;p&gt;Free Domain Statistic Search Tool shows you related information about domain name such as WHOIS record/DNS records, number of pages indexed in Search Engines (Google, Yahoo, Bing), Server IP and Geo location, Alexa statistic, Like count and more...&lt;/p&gt;

&lt;p&gt;WHOIS Lookup Tool&lt;br&gt;
&lt;a href="https://whoisdomainthis.com/whois.html"&gt;https://whoisdomainthis.com/whois.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;DNS Record Lookup&lt;br&gt;
&lt;a href="https://whoisdomainthis.com/dns.html"&gt;https://whoisdomainthis.com/dns.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;IP Address Lookup&lt;br&gt;
&lt;a href="https://whoisdomainthis.com/ip.html"&gt;https://whoisdomainthis.com/ip.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What Is My Public IP Address?&lt;br&gt;
&lt;a href="https://whoisdomainthis.com/whatismyip.html"&gt;https://whoisdomainthis.com/whatismyip.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Favicon Generator&lt;br&gt;
&lt;a href="https://whoisdomainthis.com/favicon/"&gt;https://whoisdomainthis.com/favicon/&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>DNS.glass checks the health and configuration &amp; provides DNS report and mail servers report.</title>
      <dc:creator>xusteve</dc:creator>
      <pubDate>Sat, 03 Oct 2020 23:54:18 +0000</pubDate>
      <link>https://dev.to/xusteve/dns-glass-checks-the-health-and-configuration-provides-dns-report-and-mail-servers-report-4ck4</link>
      <guid>https://dev.to/xusteve/dns-glass-checks-the-health-and-configuration-provides-dns-report-and-mail-servers-report-4ck4</guid>
      <description>&lt;p&gt;DNS.glass checks the health and configuration &amp;amp; provides DNS report and mail servers report.&lt;/p&gt;

&lt;p&gt;And provides suggestions to fix and improve your domain DNS, with references to protocols’ official documentation. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://dns.glass/google.com"&gt;https://dns.glass/google.com&lt;/a&gt;&lt;br&gt;
&lt;a href="https://dns.glass/name.com"&gt;https://dns.glass/name.com&lt;/a&gt;&lt;br&gt;
&lt;a href="https://dns.glass/bluehost.com"&gt;https://dns.glass/bluehost.com&lt;/a&gt;&lt;br&gt;
&lt;a href="https://dns.glass/dns.glass"&gt;https://dns.glass/dns.glass&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>TempMail - Forget about spam, advertising mailings, hacking and attacking robots.</title>
      <dc:creator>xusteve</dc:creator>
      <pubDate>Sat, 03 Oct 2020 23:47:05 +0000</pubDate>
      <link>https://dev.to/xusteve/tempmail-forget-about-spam-advertising-mailings-hacking-and-attacking-robots-2bfg</link>
      <guid>https://dev.to/xusteve/tempmail-forget-about-spam-advertising-mailings-hacking-and-attacking-robots-2bfg</guid>
      <description>&lt;p&gt;&lt;a href="https://TempMail.at"&gt;https://TempMail.at&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Free Temporary Email Address- tempmail, 10minutemail, throwaway email, fake-mail or trash-mail!&lt;/p&gt;

&lt;p&gt;Forget about spam, advertising mailings, hacking and attacking robots. Keep your real mailbox clean and secure. tempmail.at provides free temporary, secure, anonymous, free, disposable email address.&lt;/p&gt;

</description>
      <category>tempmail</category>
    </item>
  </channel>
</rss>
