Website Security: A 20-Point Checklist That Protects Your Website and Your Customers
A practical 20-point website security checklist: HTTPS, updates, strong authentication, backups, security headers, form protection, WAF, file permissions, monitoring, incident response and compliance.
- November 10Last updated
- 5min read
- 16sections
- 5trusted sources

On this page
- Essentials (every website)
- Server and configuration
- Forms, logins and user data
- Monitoring and response
- WordPress-specific tips
- Static and custom sites
- What to do if your site is hacked
- Compliance basics
- Security headers to set
- Backups: the 3-2-1 rule
- Passwords and access
- A monthly security routine (30 minutes)
- Security for WordPress at a glance
- Incident response: the first 24 hours
- Security for forms and user data
- Frequently asked questions
- Most breaches exploit outdated software and weak credentials; updates and 2FA prevent many of them.
- HTTPS, security headers and a firewall are low-cost, high-impact protections.
- Off-site backups with tested restores are your safety net.
- Protect forms and logins from abuse with validation, rate limiting and CAPTCHA where needed.
- Monitor, and have a plan for what to do if something goes wrong.
Most website attacks aren't personal. Automated bots scan millions of sites every day looking for outdated plugins, weak passwords and misconfigurations. A small business site is a target not because it's important, but because it's often unprotected. The consequences, defaced pages, spam, stolen data, Google warnings, lost rankings, can be serious.
This checklist covers 20 practical measures, from essentials every site needs to deeper protections for stores and platforms.
Essentials (every website)
- HTTPS everywhere with a valid SSL certificate and HTTP redirected to HTTPS.
- Keep everything updated: CMS, plugins, themes, dependencies and server software.
- Strong, unique passwords stored in a password manager.
- Two-factor authentication for the admin, hosting, domain registrar and email.
- Automatic off-site backups with periodic restore tests.
- Remove unused plugins, themes and accounts.
- Least privilege: give each user only the access they need.
Server and configuration
- Security headers: Content-Security-Policy, Strict-Transport-Security, X-Content-Type-Options, Referrer-Policy and frame-ancestors.
- Correct file permissions and no directory listing.
- Hide sensitive files:
.env, backups, config files and version control folders must never be publicly accessible. - A web application firewall (WAF) via your host or a CDN.
- Disable unnecessary services and admin endpoints you don't use.
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
Header always set X-Content-Type-Options "nosniff"
Header always set Referrer-Policy "strict-origin-when-cross-origin"Forms, logins and user data
- Validate and sanitize all input on the server.
- Rate-limit logins and forms, and use CAPTCHA or honeypots against spam.
- Secure session cookies (HttpOnly, Secure, SameSite).
- Never store card data; use your payment gateway's tokenization.
- Collect only necessary personal data and protect it.
Monitoring and response
- Uptime and security monitoring with alerts.
- Google Search Console for security issues and malware warnings.
- An incident plan: who to call, how to restore from backup, how to change credentials and how to inform users if needed.
WordPress-specific tips
- Limit plugins to reputable, maintained ones.
- Change the default admin username and protect the login page.
- Disable file editing from the dashboard.
- Use a security plugin or host-level firewall.
- Keep PHP on a supported version.
Static and custom sites
Static sites are naturally more secure (no database or public admin), but still need HTTPS, security headers, protected deployment credentials, dependency updates and secure forms. Custom apps should follow the OWASP Top 10.
What to do if your site is hacked
- Take the site offline or into maintenance mode if needed.
- Change all passwords: hosting, admin, database, FTP, email.
- Restore a clean backup from before the compromise.
- Update everything and remove the vulnerable component.
- Scan for remaining malware and backdoors.
- Request a review in Search Console if Google flagged the site.
- Find the root cause to prevent a repeat.
Compliance basics
- A privacy policy that matches what you collect.
- Consent where required for cookies and marketing.
- Local data protection laws, such as Egypt's Law 151 of 2020 and Saudi PDPL.
- PCI DSS compliance through your payment provider for card payments.
Maintenance routines that keep security in place are in the website maintenance guide.
Security headers to set
| Header | Purpose |
|---|---|
| Strict-Transport-Security | Forces HTTPS on future visits |
| Content-Security-Policy | Limits where scripts and styles can load from |
| X-Content-Type-Options: nosniff | Prevents MIME type confusion |
| Referrer-Policy | Controls how much URL data is shared |
| Permissions-Policy | Disables camera, mic and location unless needed |
| X-Frame-Options or frame-ancestors | Prevents clickjacking |
Backups: the 3-2-1 rule
Keep 3 copies of your data, on 2 different types of storage, with 1 copy off-site. Automate daily backups of the database and weekly full backups, and test a restore at least every quarter. A backup you have never restored is a guess, not a plan.
Passwords and access
- Unique, long passwords stored in a password manager.
- Two-factor authentication on hosting, domain registrar, CMS admins and email.
- Separate accounts for each team member; remove access when people leave.
- Least privilege: editors don't need admin rights.
- Keep the domain registrar locked and its contact email secure; losing it means losing the site.
A monthly security routine (30 minutes)
- Update CMS, plugins, themes and server packages.
- Review admin users and remove unused accounts.
- Check uptime and security alerts.
- Confirm the latest backup exists and is complete.
- Scan for malware or unexpected files.
- Check SSL certificate expiry.
See also the Website maintenance guide.
Security for WordPress at a glance
| Risk | Prevention |
|---|---|
| Outdated plugins | Update weekly, remove unused plugins |
| Weak admin passwords | Strong passwords, 2FA, limit login attempts |
| Nulled themes | Only use licensed themes from trusted sources |
| File editing from dashboard | Disable with DISALLOW_FILE_EDIT |
| Spam and bots | Captcha or honeypot on forms, firewall |
Incident response: the first 24 hours
- Take a snapshot of the current state for investigation, then put the site in maintenance mode if needed.
- Change all passwords: hosting, CMS admins, database, FTP/SFTP, email.
- Restore from the last clean backup, or clean infected files.
- Update everything: core, plugins, themes, server packages.
- Scan again and check for backdoors and unknown admin users.
- Request a review in Search Console if Google flagged the site.
- Write down what happened and what you'll change to prevent it.
Security for forms and user data
- Validate input on the server, not only in the browser.
- Use prepared statements to prevent SQL injection.
- Escape output to prevent cross-site scripting.
- Rate-limit login and contact forms.
- Store passwords only as strong hashes (bcrypt or Argon2).
- Collect only the data you need and delete it when no longer required.
Frequently asked questions
Is a small website really at risk?
Yes. Automated bots attack any site with known vulnerabilities, regardless of size.
Does an SSL certificate make my site secure?
SSL encrypts traffic, which is essential, but it doesn't protect against outdated software, weak passwords or vulnerable code.
Which security plugin is best for WordPress?
Several reputable options exist; choose a well-maintained one, configure it properly, and combine it with updates, backups and 2FA.
How do I know if my site was hacked?
Signs include unknown admin users, spam pages in Google results, redirects, warnings in browsers or Search Console, and unusual traffic or server load.
Is a free SSL certificate enough?
Yes for most sites. Free certificates encrypt traffic just as well; paid ones mainly add organization validation or warranties.
How do I know if my site is hacked?
Warning signs include unexpected redirects, spam pages in Google results, unknown admin users, a Search Console security warning or a sudden traffic drop.
Are static websites more secure?
Generally yes, because there's no database or admin panel exposed on the server, which removes many common attack paths.

Web Design & Development
Secure websites with hardened hosting, security headers, backups and monitoring.
Keep reading
Web Design & DevelopmentWebsite Maintenance: What to Do Every Month and Every Year to Keep Your Site Healthy
A practical website maintenance guide: weekly, monthly, quarterly and yearly tasks for security, updates, backups, speed, SEO, content, forms and renewals, plus maintenance plans and costs.
5 min read
Web Design & DevelopmentHow to Choose a Domain Name and Web Hosting: A Practical Guide You Won't Regret a Year Later
How to choose a domain name and hosting: naming rules, extensions, registrars, ownership, DNS, hosting types, speed, SSL, backups, email, renewals and the mistakes that cost businesses their websites.
6 min read
Web Design & DevelopmentHow to Design and Build a Professional Website in 2026: The Complete Step-by-Step Guide
The complete guide to designing and building a website: goals, sitemap and content, domain and hosting, choosing the tech stack, responsive design, speed, SEO, security, launch and maintenance.
16 min read