Краткий ответ: если WordPress показывает ошибку 403, сервер понял запрос, но запретил доступ. Чаще всего причина в .htaccess, правах файлов, security-плагине, WAF/ModSecurity, блокировке IP, hotlink protection, Cloudflare, REST API, admin-ajax.php или настройках хостинга. Начинать нужно не с удаления файлов, а с backup, проверки логов, .htaccess, прав доступа и правил безопасности.
Ошибка 403 Forbidden отличается от 404 и 500. При 404 страница не найдена. При 500 сервер падает с внутренней ошибкой. При 403 файл, страница или запрос могут существовать, но сервер, плагин безопасности или firewall запрещает доступ.
Если 403 появился после обновления, установки плагина, переноса сайта, изменения .htaccess, настройки защиты или подключения CDN, нужно проверять проблему по слоям: браузер, CDN, firewall, веб-сервер, WordPress, плагины и права файлов.
WordPress может показывать ошибку 403 на всём сайте, только в админке, на одной странице, при сохранении записи, при отправке формы, при загрузке файла, при AJAX-запросе или при обращении к REST API. В каждом случае причина может быть разной.
Главная логика такая: где-то на пути запроса стоит запрет. Это может быть правило сервера, .htaccess, права файлов, security-плагин, WAF, Cloudflare, блокировка IP, неправильный владелец файлов или защита от подозрительных запросов.
| Где появляется 403 | Возможная причина | Что проверить |
|---|---|---|
| На всём сайте | .htaccess, права файлов, WAF, хостинг | error_log, .htaccess, permissions, firewall |
| Только в wp-admin | security-плагин, IP-блокировка, cookies, WAF | плагины защиты, логи, IP, wp-admin rules |
| При сохранении записи | ModSecurity, REST API, Gutenberg, длинный контент | Network, WAF logs, REST API |
| При отправке формы | WAF, reCAPTCHA, AJAX, security-плагин | admin-ajax.php, Network, error_log |
| При загрузке файла | права uploads, размер файла, MIME, security rules | wp-content/uploads, PHP limits, логи |
| На изображениях | hotlink protection, CDN, права файлов | CDN, .htaccess, file permissions |
| В WooCommerce checkout | WAF, AJAX, payment plugin, сессии | wc-ajax, WooCommerce logs, payment logs |
| Только у одного пользователя | IP заблокирован, cookies, firewall, роль | IP whitelist, cookies, security logs |
Если вместе с 403 не открывается админка, дополнительно проверьте инструкцию Не работает админка WordPress. Если ошибка появилась после обновления или установки плагина, полезно проверить конфликт плагинов WordPress.
Диагностику 403 нужно делать аккуратно. Нельзя сразу ставить права 777, отключать все плагины на рабочем магазине или удалять .htaccess без копии. Сначала нужно понять, кто именно отдаёт 403: WordPress, сервер, security-плагин, CDN или WAF.
Откройте сайт с другого устройства, другой сети или мобильного интернета. Если у других сайт открывается, а у вас 403, возможно заблокирован ваш IP, cookies, VPN, страна, браузер или устройство.
Важно понять, ошибка возникает на всём сайте или только в конкретном месте.
Если 403 появляется только при AJAX или REST API, проблема часто связана не с правами файлов, а с WAF, security-плагином, nonce, cookies, кешем или блокировкой запроса.
Логи помогают увидеть, кто блокирует запрос. Особенно это важно при ModSecurity, Imunify360, Nginx rules, Apache deny rules, Cloudflare или security-плагинах.
Что искать в логах:
На Apache-серверах .htaccess часто становится причиной 403. Ошибка может появиться после настройки редиректов, security-плагина, кеш-плагина, hotlink protection или ручной правки.
В .htaccess проверьте правила:
Неправильные права файлов могут привести к 403, если веб-сервер не может прочитать нужный файл или папку.
| Объект | Частое безопасное значение | Комментарий |
|---|---|---|
| Папки | 755 | обычно достаточно для чтения и выполнения каталогов |
| Файлы | 644 | обычно подходит для PHP, CSS, JS, изображений |
| wp-config.php | 400, 440 или 640 | зависит от хостинга и владельца файлов |
| uploads | 755 для папок, 644 для файлов | не должно быть 777 без причины |
Не ставьте 777 на весь сайт. Это может временно убрать 403, но сильно ухудшит безопасность.
Wordfence, iThemes Security, All In One WP Security, Sucuri и похожие плагины могут блокировать IP, страны, user-agent, wp-login.php, XML-RPC, REST API, admin-ajax.php или подозрительные запросы.
Если не хотите рисковать сайтом и тратить время на эксперименты, можно оставить заявку. Я посмотрю задачу и предложу аккуратное решение.
Исправление зависит от причины. Ниже безопасный порядок, который помогает найти и убрать 403 без хаотичного отключения всего сайта.
Перед изменением .htaccess, прав файлов, плагинов, темы или настроек security-плагина сохраните копию сайта.
Через FTP или файловый менеджер хостинга откройте корень сайта и найдите:
/.htaccess
Переименуйте его в:
.htaccess_old
Если сайт открылся, причина была в .htaccess. После этого создайте новый стандартный .htaccess WordPress и добавляйте дополнительные правила только после проверки.
Если админка недоступна, можно временно отключить security-плагин через FTP.
Откройте папку:
/wp-content/plugins/
Переименуйте папку security-плагина, например:
wordfence_disabled
Если 403 исчез, причина в настройках плагина или его firewall. После этого нужно не просто оставить защиту отключённой, а найти правило, которое блокировало запрос.
Если после переноса сайта, восстановления backup или изменения владельца файлов появилась 403, проверьте permissions и owner/group. На shared-хостинге это часто видно в файловом менеджере или через поддержку.
Обычно папки должны быть 755, файлы 644. Но точное значение зависит от сервера, пользователя PHP-FPM и политики хостинга.
Если 403 появляется при сохранении записи, отправке формы, AJAX-запросе, checkout или длинном тексте, часто виноват не WordPress, а WAF/ModSecurity.
Что делать:
Если сайт подключён через Cloudflare или другой CDN, 403 может отдавать не WordPress, а внешний firewall.
Если сайт открывается, но редактор, форма, фильтр, checkout или кнопки не работают, откройте DevTools → Network и найдите запрос с 403.
Чаще всего нужно проверить:
Если 403 ломает формы заявок, проверьте также материал Не приходят заявки с сайта WordPress.
Важно: команды и код ниже могут повлиять на доступ к сайту, админку, формы, REST API, WooCommerce, оплату, корзину и безопасность. Перед изменениями сделайте backup файлов и базы. Не ставьте права 777 и не отключайте защиту навсегда без диагностики.
Куда вставлять: файл .htaccess в корне сайта. Перед заменой сохраните старый файл.
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Куда выполнять: SSH в корне сайта.
find . -type d -exec chmod 755 {} ;
find . -type f -exec chmod 644 {} ;
Важно: эти команды массово меняют права. Используйте только если понимаете структуру сайта и требования хостинга. Для wp-config.php может потребоваться более строгое значение.
chmod 640 wp-config.php
На некоторых серверах может понадобиться 400 или 440. Если после изменения сайт перестал работать, верните значение, которое поддерживает ваш хостинг.
Куда выполнять: SSH в корне сайта.
ls -la
ls -la wp-content
ls -la wp-content/uploads
Если файлы принадлежат неправильному пользователю, chmod может не помочь. Нужно исправлять owner/group через хостинг или SSH с правами администратора.
Используйте только для диагностики, лучше на staging-копии. На WooCommerce-сайте это может временно сломать оплату, доставку и заказы.
wp plugin deactivate --all
wp plugin deactivate plugin-folder-name
Откройте в браузере:
https://example.com/wp-json/
Если там 403, проверьте security-плагин, WAF, .htaccess, Cloudflare и правила, которые блокируют REST API.
Откройте в браузере:
https://example.com/wp-admin/admin-ajax.php
Нормальный ответ может быть 0 или похожий пустой ответ. Если там 403, проверьте WAF, .htaccess, security-плагин и блокировку wp-admin.
После правильного исправления ошибка 403 должна исчезнуть там, где она появлялась: на сайте, в админке, REST API, admin-ajax.php, форме, загрузке файла или checkout.
Хороший результат:
Если ошибка появляется только у одного человека, проверьте его IP в security-плагине, Cloudflare, панели хостинга и server firewall. Иногда IP попадает в блок после нескольких неправильных входов в админку.
Если 403 появляется только на странице входа, возможно включена защита wp-login.php, скрытый URL входа, лимит попыток входа, блокировка XML-RPC или country blocking.
Если 403 появляется только на изображениях, проблема может быть в защите от хотлинков. Проверьте .htaccess, CDN и настройки хостинга.
Если 403 появляется при открытии папки или раздела сайта, проверьте, есть ли index.php или index.html. Сервер может запрещать просмотр директории, если index-файла нет.
Иногда 403 появляется после взлома или после того, как хостинг заблокировал подозрительные файлы. Если есть неизвестные администраторы, странные редиректы или чужие страницы в Google, проверьте безопасность сайта. Для базовой защиты полезна статья Защита WordPress от взлома.
Это опасно. Да, иногда 403 пропадает, но сайт становится уязвимее. Правильнее найти причину: owner, group, server user, permissions или WAF.
В .htaccess могут быть важные правила редиректов, кеша, безопасности и постоянных ссылок. Перед заменой сохраните старую версию.
Если security-плагин блокирует нормальный запрос, нужно найти правило, а не просто оставить сайт без защиты.
403 часто создаётся не WordPress, а сервером или WAF. Без логов можно долго искать проблему не там.
При 403 сервер запрещает доступ. При 500 сервер падает с ошибкой. Диагностика разная.
Если включён Cloudflare или другой CDN, 403 может приходить от него, а не от WordPress.
Если wp-json заблокирован, редактор, формы, интеграции и некоторые плагины могут работать неправильно.
Возможная причина: .htaccess, права файлов, WAF, блокировка хостинга, неправильный owner файлов.
Что делать: проверить error_log, переименовать .htaccess, проверить permissions, обратиться к хостингу по WAF/ModSecurity.
Возможная причина: security-плагин, IP-блокировка, правила доступа к wp-admin, cookies, firewall.
Что делать: проверить IP-блокировки, отключить security-плагин для теста, проверить .htaccess в корне и wp-admin.
Возможная причина: ModSecurity/WAF блокирует текст, HTML, iframe, script, длинные параметры или REST API-запрос.
Что делать: открыть Network, найти запрос с 403, записать время ошибки и попросить хостинг проверить WAF logs.
Возможная причина: WAF, reCAPTCHA, AJAX, security-плагин, nonce, REST API или admin-ajax.php.
Что делать: проверить Console, Network, admin-ajax.php, wp-json, логи формы и security-плагина.
Возможная причина: hotlink protection, неправильные права uploads, CDN, блокировка расширений.
Что делать: проверить wp-content/uploads, права файлов, .htaccess, CDN и защиту от хотлинков.
Возможная причина: заблокирован IP, страна, user-agent, VPN, cookies или роль пользователя.
Что делать: проверить с другой сети, очистить cookies, проверить IP в security logs и whitelist.
Возможная причина: новый firewall rule, конфликт security-плагина, изменение REST/AJAX-запросов, кеш или права файлов.
Что делать: отключить обновлённый плагин для теста, проверить debug.log, error_log, Network и настройки безопасности.
Ошибка 403 означает, что сервер понял запрос, но запретил доступ. Причина может быть в .htaccess, правах файлов, security-плагине, WAF, IP-блокировке, CDN или настройках хостинга.
Сделайте backup, проверьте error_log, .htaccess, права файлов, security-плагины, WAF/ModSecurity, Cloudflare и доступность сайта с другой сети.
Чаще всего папки используют 755, файлы 644, а wp-config.php — более строгие права вроде 400, 440 или 640 в зависимости от хостинга.
Часто из-за security-плагина, IP-блокировки, правил wp-admin, firewall, cookies, WAF или ограничений на wp-login.php.
Потому что сервер, WordPress, security-плагин, firewall или CDN запретил доступ к странице, файлу или запросу. Нужно проверить .htaccess, права файлов, логи, WAF, IP-блокировки и плагины защиты.
Сначала сделайте backup. Затем проверьте сайт с другой сети, переименуйте .htaccess для теста, проверьте права файлов, отключите security-плагин через FTP и посмотрите error_log.
Нет, это плохое решение. Права 777 могут создать угрозу безопасности. Лучше исправить владельца файлов, права папок/файлов или правило сервера, которое вызывает 403.
Да. Security-плагины могут блокировать IP, страны, wp-login.php, REST API, admin-ajax.php, XML-RPC, подозрительные запросы и действия администратора.
Да. Неправильные правила Deny, Require, hotlink protection, защита wp-admin или блокировка IP могут отдавать 403.
Часто запрос блокирует WAF, ModSecurity, security-плагин, reCAPTCHA, admin-ajax.php или REST API. Нужно смотреть Network и логи сервера.
Возможна блокировка ModSecurity из-за текста, HTML, iframe, script, длинных параметров или REST API-запроса редактора Gutenberg.
Посмотрите страницу ошибки, headers, error_log, WAF logs и отключите плагины для теста. Если 403 появляется до загрузки WordPress, причина чаще на уровне сервера, .htaccess, CDN или firewall.
Проверьте владельца файлов, права папок и файлов, .htaccess, PHP-FPM user, путь к сайту, настройки хостинга и server logs.
Если 403 блокирует админку, формы, заявки, WooCommerce checkout, REST API, оплату или появляется после взлома, лучше не исправлять сайт наугад. Нужна проверка логов, WAF, файлов, прав и настроек WordPress.
Если WordPress показывает ошибку 403, причина почти всегда в запрете доступа: .htaccess, правах файлов, security-плагине, WAF, ModSecurity, CDN, IP-блокировке, REST API, admin-ajax.php или настройках хостинга.
Правильная схема — не ставить права 777 и не удалять файлы, а сделать backup, определить место ошибки, проверить логи, .htaccess, permissions, security-плагины, CDN и WAF. Так можно исправить проблему без лишнего риска для сайта.
Самое важное — понять, кто именно запрещает доступ: WordPress, сервер, firewall или внешний CDN. После этого ошибка 403 обычно решается точечно: правкой правила, восстановлением .htaccess, исправлением прав файлов, настройкой security-плагина или исключением ложного срабатывания WAF.
Об авторе