New 24/7 monitoring and daily cloud backups now included in every Shield Pro plan.

HTTP 403

Learn how to fix a WordPress 403 forbidden error.

A 403 forbidden error means the server understood the request but refused to serve it. WordPress files, security plugins, or hosting firewalls often block access. This tutorial covers permissions, .htaccess, and security plugin recovery.

Time: 15-30 minutes Level: Beginner
Neil McNaught, founder of BugShield and WordPress author
Written by
Written by
Updated
Updated

What this problem looks like

A 403 error on WordPress usually comes from wrong file permissions, aggressive security plugins, mod_security rules, or IP blocks in .htaccess. Unlike a 500 error, the server is actively refusing access rather than crashing.

Start by noting whether wp-login.php, wp-admin, or the whole site is blocked. A path-specific 403 error often points at a security plugin or hotlink protection rule.

Step 1: Map where the 403 appears

Open the homepage, a blog post, wp-login.php, and wp-admin in a private browser window. If only wp-admin is blocked, a security plugin or host firewall is the likely cause.

  • Sitewide 403: check the root .htaccess file and folder permissions.
  • wp-admin only: security plugin or host admin protection.
  • Uploads folder 403: hotlink protection or wrong permissions on wp-content/uploads.

Step 2: Fix file permissions on Linux hosting

Directories should be 755 and files 644. Never set 777 on a live site.

On shared hosting, use File Manager in cPanel, Plesk, or Site Tools. Select wp-content, wp-admin, and wp-includes, then change permissions recursively to 755 for folders and 644 for files. The exact control is usually labelled Permissions or Change Permissions.

Only run the commands below if you have SSH access to the server. They will not work inside File Manager.

bash
find /path/to/wordpress -type d -exec chmod 755 {} \;
find /path/to/wordpress -type f -exec chmod 644 {} \;

Step 3: Inspect .htaccess for deny rules

Find .htaccess in your site root, next to wp-admin and wp-content. Look for Deny from all, Require all denied, or plugin-generated blocks. Comment out suspicious sections and reload the site.

Step 4: Deactivate security plugins via FTP

Plugins like Wordfence, iThemes Security, and All In One WP Security can return a 403 error on wp-admin after a misconfiguration. Rename that plugin folder in wp-content/plugins/ via File Manager, SFTP, or FTP to deactivate it without admin access.

  1. Rename wordfence to wordfence.off (or the matching folder name for your security plugin).
  2. Reload wp-admin.
  3. Reconfigure or replace the plugin before renaming the folder back and reactivating.

Step 5: Contact host about mod_security

If a 403 error appears when saving posts or uploading files, mod_security may flag legitimate requests. Ask your host to check the mod_security logs and whitelist the rule ID blocking your action.

When to stop DIY and hire help

Persistent 403 errors after permission fixes often involve host firewall rules or a corrupted .htaccess file from multiple security plugins. BugShield resolves access blocks at a confirmed price without hourly billing surprises.

Questions answered

WordPress 403 forbidden error FAQs

Answers about permissions, security rules, firewalls, and restoring access without weakening your WordPress site.

Why does wp-admin show a 403 error but the front end works?

Security plugins, host admin URL protection, or IP whitelists commonly block wp-admin only. Deactivate security plugins via File Manager, SFTP, or FTP first.

Can wrong permissions cause a 403 error?

Yes. Files set to 600 or folders to 700 can make the web server refuse to read them. Use 644 for files and 755 for directories.

Should I chmod 777 to fix uploads?

No. 777 is a security risk. Fix ownership with your host so the web server user can write to wp-content/uploads.

How do I fix a 403 error after migrating hosts?

Reset permissions, regenerate .htaccess from Settings → Permalinks in wp-admin, and confirm the new host does not block your IP range.

What causes a WordPress 403 forbidden error?

A 403 means the server understood the request but refused it. Common causes include security rules, incorrect permissions, blocked IP addresses, and invalid .htaccess directives.

Can a WordPress security plugin cause a 403 error?

Yes. A firewall rule can block wp-admin, AJAX, REST API, or login requests. Review its logs and disable only the specific rule or plugin while testing.

Can a hosting firewall block WordPress with a 403?

Yes. ModSecurity, a web application firewall, or host-level IP blocking can reject a legitimate request before WordPress loads. Hosting logs can confirm the rule ID.

How do I test whether .htaccess causes the WordPress 403 error?

Save a copy, rename .htaccess, and retest. If access returns, regenerate normal WordPress rewrite rules and re-add custom directives one at a time.

Why does only one visitor receive a WordPress 403 error?

Their IP, country, browser pattern, or repeated requests may have triggered a firewall rule. Compare the blocked request with security and server logs before changing global protection.

When should I ask a developer to fix a WordPress 403 error?

Get help when admin access is blocked, server rules are unfamiliar, or relaxing a firewall or permission could expose customer data or payment pages.

Would you rather a developer fixed it?

Request a fix at a confirmed price and speak directly with the BugShield developer working on your site.

Request a Fix