Security May 11, 2026 6 min read

Common Website Security Issues Small Businesses Ignore

Attackers follow checklists too. These are the issues they look for first on small business websites — most of which take less than an hour to fix once you know they're there.

When someone scans your website looking for an entry point, they're not doing something exotic. They're running through a well-known list of common vulnerabilities — the same issues that appear on thousands of websites, never got fixed, and eventually became the way in.

Here are the ones that show up most often on small business websites, what each one actually means, and how to fix it.

High Severity
Issue 1
Missing or Misconfigured HTTP Security Headers

HTTP security headers are instructions your web server sends to browsers telling them how to behave when displaying your site. Headers like HSTS, Content-Security-Policy, X-Frame-Options, and Referrer-Policy protect against clickjacking, cross-site scripting, and insecure connections. Most small business websites are missing several of them.

Fix: These are configured in your web server settings (Apache, Nginx, Cloudflare, or your hosting control panel). Most hosting providers have documentation on how to add them. Running a scan first tells you exactly which ones you're missing.
High Severity
Issue 2
Outdated CMS, Plugins, or Themes

WordPress, Drupal, and Joomla all have a public record of every known vulnerability in every version. When you're running an outdated version, attackers can look up exactly what exploit applies to your site. This is one of the most common entry points for small business website compromises — not because the attacker is skilled, but because the vulnerability is well-documented and the exploitation is automated.

Fix: Enable automatic updates for your CMS core, themes, and plugins. Remove plugins you're not using — they're still attack surfaces even when inactive. Scan for which version you're running and which CVEs apply to it.
High Severity
Issue 3
Publicly Accessible Admin Panel

If your WordPress site's admin panel is accessible at /wp-admin from any IP address in the world, that's a brute-force target. Automated tools cycle through password lists against these endpoints constantly. It's not targeted — it's just automated opportunism at scale. The same applies to /phpmyadmin, /cpanel, /admin, and other common admin paths.

Fix: Restrict admin panel access by IP address if your IP is static. Enable two-factor authentication on all admin accounts. Consider moving the admin login URL to a non-standard path. At minimum, rate-limit login attempts.
Medium Severity
Issue 4
No DMARC Policy (or Policy Set to None)

DMARC tells email servers what to do when someone sends email claiming to be from your domain without authorization. Without it — or with a DMARC policy of "p=none" — anyone can send phishing emails that appear to come from your domain. Your customers, partners, and employees can receive fraudulent emails that look exactly like they're from you.

Fix: Set your DMARC record to at minimum p=quarantine. Make sure SPF and DKIM are correctly configured first, or DMARC enforcement will block legitimate email. This is a DNS change — your domain registrar or hosting provider can help.
Medium Severity
Issue 5
SSL Certificate About to Expire

An expired SSL certificate immediately breaks the padlock in the browser, triggers security warnings, and tells visitors — and search engines — that your site is not secure. Google deprioritizes sites with SSL issues. Visitors bounce. And in the window between expiration and renewal, your traffic is unencrypted. This is a purely operational failure that's completely avoidable.

Fix: Enable automatic SSL renewal through your hosting provider or use Let's Encrypt with auto-renewal configured. Set a calendar reminder 30 days before expiry. Ghost scans flag certificates expiring within 30 days.
Medium Severity
Issue 6
JavaScript Files Exposing API Keys or Credentials

Developers sometimes hardcode API keys, database credentials, or internal service tokens into JavaScript files that get served publicly to browsers. This is more common than most business owners realize — it's a development shortcut that gets pushed to production and forgotten. Anyone who views your page source or runs a scan can extract these credentials.

Fix: Audit your public JavaScript files for patterns that look like API keys or tokens. Move any credentials to server-side environment variables. Rotate any key that was ever exposed in a public file — assume it's been collected.
Medium Severity
Issue 7
Overly Permissive CORS Policy

CORS (Cross-Origin Resource Sharing) controls which other websites can make requests to your site's API or resources. A policy set to "allow all origins" (Access-Control-Allow-Origin: *) means any website on the internet can make requests to your API — including malicious ones. For APIs that handle user data or authenticated requests, this is a serious misconfiguration.

Fix: Restrict CORS to specific trusted origins. If your API is only used by your own frontend, the allowed origin should be your domain only — not a wildcard.

How to Find These Issues on Your Site

You don't need to manually check all of these. A well-designed automated scan covers every issue on this list — and runs them all in minutes.

Ghost checks for all seven of these plus 14 additional security factors: breach data, subdomain exposure, open ports, admin panel paths, redirect chains, technology CVEs, cookie security flags, domain impersonation, API endpoint exposure, and authentication surface analysis.

Find Out What's Exposed

Scan Your Website for Free

Ghost checks your site for the issues above plus 14 more — in minutes. Free quick scan, no account required.

→ Run a Free Scan
👨‍💻
Ernesto "Moose" Tapia
Founder of ALCE Consulting. 15+ years in DoD classified systems, TS/SCI cleared. Builds AI-powered security tools for businesses that can't afford to get security wrong.