Как отладить и исправить ошибку 500 в WordPress

Ошибка 500 Internal Server Error — одна из самых неприятных проблем, с которыми сталкиваются разработчики и администраторы сайтов на WordPress. Она не дает понять, в чем именно дело, поскольку браузер выдает лишь общее сообщение об ошибке сервера. В этой статье подробно разберем, как найти причину появления ошибки 500 и как ее исправить, используя как стандартные инструменты WordPress, так и плагины и примеры кода.

Основные причины ошибки 500 в WordPress

Ошибка 500 обычно связана с внутренними проблемами на сервере. В контексте WordPress наиболее частые причины:

  • Ошибки в файле .htaccess или неправильные правила перезаписи;
  • Проблемы с плагинами — конфликт, ошибка в коде или несовместимость;
  • Ошибки в теме оформления (theme);
  • Перегрузка PHP-памяти — часто из-за больших скриптов или плагинов;
  • Неправильные права доступа к файлам и папкам;
  • Проблемы с версией PHP или её настройками;
  • Ошибки в пользовательском коде, если вы добавляли кастомные функции.

Чтобы эффективно устранить ошибку, нужно провести поэтапную диагностику.

Включение отладки WordPress для выявления ошибки

Первая и главная рекомендация — включить режим отладки WordPress. Для этого в файле wp-config.php добавьте или измените следующие строки:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

Это активирует логирование всех ошибок в файл wp-content/debug.log, при этом ошибки не будут выводиться на экран, что безопаснее для рабочего сайта.

После включения отладки повторите действие, вызывающее ошибку 500, и затем проверьте лог ошибок. Там обычно указывается файл и строка, где возникла проблема.

Проверка файла .htaccess и восстановление стандартных правил

Файл .htaccess может содержать некорректные правила, вызывающие ошибку 500. Чтобы проверить это:

  1. Переименуйте текущий .htaccess в .htaccess_old.
  2. Зайдите в админ-панель WordPress в раздел Настройки – Постоянные ссылки.
  3. Просто нажмите кнопку «Сохранить изменения», чтобы WordPress создал новый стандартный .htaccess.

Если ошибка исчезла, причина была в старом файле. Можно сравнить старый и новый файлы, чтобы найти проблемную строку.

Отключение плагинов для выявления конфликтов

Частая причина ошибки 500 — несовместимый или сломанный плагин. Чтобы проверить:

  1. Подключитесь к сайту по FTP или через файловый менеджер хостинга.
  2. Переименуйте папку wp-content/plugins в plugins_old, чтобы отключить все плагины.
  3. Проверьте, исчезла ли ошибка.
  4. Если да, верните папку обратно и отключайте плагины по одному, чтобы найти виновника.

Для удобства можно использовать плагин Clearfy Pro, который позволяет управлять плагинами и отключать их быстро из админки.

Увеличение лимита памяти PHP в WordPress

Если ошибка вызвана нехваткой памяти, можно увеличить лимит в wp-config.php:

define('WPSHAB_increase_php_memory_limit', function() {
    if (!defined('WP_MEMORY_LIMIT')) {
        define('WP_MEMORY_LIMIT', '256M');
    }
});
WPSHAB_increase_php_memory_limit();

Также можно обратиться в панель управления хостингом и проверить настройки PHP. Иногда лимит памяти задается на уровне сервера.

Проверка прав доступа к файлам и папкам

Неправильные права на файлы и папки могут привести к ошибке 500. Рекомендуемые значения:

  • Папки — 755;
  • Файлы — 644;
  • Файл wp-config.php — 600 или 640.

Права можно проверить и изменить через FTP или SSH командой chmod. Например:

chmod 755 wp-content
chmod 644 wp-config.php

Использование плагина WP Debugging для упрощенной отладки

Если не хотите вручную редактировать файлы, установите плагин WP Debugging. Он автоматически включает режим отладки и логирования, а также может выводить подробные ошибки на экран в безопасном режиме.

Пример кастомной функции для логирования ошибок в отдельный файл

Если нужна более гибкая диагностика, можно добавить в functions.php темы следующий код для логирования ошибок PHP в отдельный файл:

function wpshab_log_php_errors($errno, $errstr, $errfile, $errline) {
    $log_entry = date('Y-m-d H:i:s') . " | Error: $errstr in $errfile on line $errline\n";
    error_log($log_entry, 3, WP_CONTENT_DIR . '/php_errors.log');
    return false; // Передать стандартному обработчику
}
set_error_handler('wpshab_log_php_errors');

Этот код поможет отследить даже предупреждения и ошибки, которые могут косвенно вызывать 500 ошибку.

Как проверить логи сервера и что искать

На большинстве хостингов доступен просмотр логов ошибок Apache или Nginx. Обычно они находятся в корне аккаунта или доступны через панель управления хостингом. В логах ищите записи, совпадающие с временем возникновения ошибки 500. Это могут быть ошибки PHP, ошибки модуля mod_security, превышение лимитов и др.

Если вы используете кэш и CDN (например, Cloudflare), временно отключите их для исключения влияния на ошибку.

Дополнительные рекомендации и полезные плагины

  • Health Check & Troubleshooting — плагин для диагностики проблем, позволяет в безопасном режиме отключать темы и плагины для проверки;
  • Query Monitor — для анализа запросов к базе данных и выявления проблем в коде;
  • WP-Optimize — для оптимизации базы данных, что может снизить нагрузку и предотвратить ошибки;
  • Clearfy Pro — для комплексной оптимизации и управления сайтом, включая отключение ненужных скриптов и плагинов.

Использование этих инструментов поможет не только устранить текущую ошибку, но и предотвратить появление подобных в будущем.

Как создать автоматическую регистрацию пользователей в WordPress с подтверждением по email
29.12.2025
Как создать автоматические заголовки для рубрик в WordPress
27.01.2026
Как удалить пустые теги и мета-теги в WordPress
13.03.2026
Автоматизация обработки форм в WordPress с WPRemark
24.12.2025
Кастомизация переходов между страницами в WordPress без перезагрузки
04.01.2026