WordPress и HTTPS обычно работают без проблем — но когда что-то идёт не так, ошибки могут сбивать с толку. Это руководство охватывает все распространённые проблемы SSL в WordPress и способы их решения.
Для первоначальной настройки SSL смотрите наше руководство по установке SSL в WordPress.
ERR_TOO_MANY_REDIRECTS (цикл перенаправлений)
Проблема №1 с SSL в WordPress. Браузер показывает “Эта страница не работает — выполнено слишком много перенаправлений.”
Причина 1: За прокси (Cloudflare, балансировщик нагрузки)
Прокси завершает SSL и передаёт HTTP в WordPress. WordPress видит HTTP, перенаправляет на HTTPS. Прокси снова передаёт HTTP. Бесконечный цикл.
Исправление — добавьте в wp-config.php (перед /* That's all, stop editing! */):
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
$_SERVER['HTTPS'] = 'on';
}
Если используете Cloudflare: Также установите режим SSL в “Full” или “Full (Strict)” — никогда “Flexible.”
Причина 2: Конфликтующие перенаправления
Ваш .htaccess перенаправляет на HTTPS, И плагин WordPress (например, Really Simple SSL) тоже перенаправляет, И конфигурация сервера тоже перенаправляет. Тройное перенаправление = цикл.
Исправление: Оставьте только ОДИН источник перенаправления. Рекомендуется: перенаправление через .htaccess, отключите перенаправления плагинов.
Причина 3: Несоответствие URL-адресов WordPress
В Settings → General указан http://, но сервер принудительно использует HTTPS.
Исправление — обновите через wp-config.php:
define('WP_HOME', 'https://yourdomain.com');
define('WP_SITEURL', 'https://yourdomain.com');
Предупреждения о смешанном контенте (замок сломан/отсутствует)
HTTPS работает, но значок замка показывает предупреждение, или некоторые ресурсы не загружаются.
Причина: Ваши страницы ссылаются на изображения, скрипты или CSS с URL-адресами http:// — обычно сохранёнными в базе данных до миграции.
Быстрое исправление: плагин Really Simple SSL
Установите и активируйте Really Simple SSL — он динамически перезаписывает URL-адреса http:// и добавляет CSP-заголовок upgrade-insecure-requests.
Постоянное исправление: поиск и замена в базе данных
# WP-CLI (recommended)
wp search-replace 'http://yourdomain.com' 'https://yourdomain.com' --all-tables --precise
# Dry run first to see what changes
wp search-replace 'http://yourdomain.com' 'https://yourdomain.com' --all-tables --dry-run
Или используйте плагин Better Search Replace для графического интерфейса.
Также проверьте:
- Файлы темы (
header.php,footer.php) на наличие захардкоженных URLhttp:// - Содержимое виджетов (текстовые виджеты, пользовательский HTML)
- Пользовательский CSS в Customizer
- Настройки плагинов (изображения для социальных сетей, URL логотипов)
Полное руководство по смешанному контенту →
Белый экран / ошибка 500 после включения HTTPS
Причина 1: Конфликт .htaccess
Правило перенаправления HTTPS конфликтует с правилами постоянных ссылок WordPress.
Исправление: Сбросьте .htaccess:
# Rename the current one
mv .htaccess .htaccess.backup
# WordPress regenerates it
# Go to Settings → Permalinks → Save (no changes needed)
Затем заново добавьте только перенаправление HTTPS в начало:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Причина 2: Конфликт плагина
Плагин безопасности или кеширования может конфликтовать с изменением на HTTPS.
Исправление: Отключите все плагины через FTP:
# Rename the plugins directory
mv wp-content/plugins wp-content/plugins.bak
Если сайт заработал, переименуйте обратно и включайте плагины по одному, чтобы найти конфликтующий.
Не могу войти в wp-admin после HTTPS
Причина: Несоответствие домена cookie
Старые cookie, установленные для http://, не работают на https://.
Исправление:
// Add to wp-config.php
define('FORCE_SSL_ADMIN', true);
define('COOKIE_DOMAIN', 'yourdomain.com');
Затем очистите cookie браузера для этого домена или попробуйте режим инкогнито.
SSL-сертификат установлен, но WordPress по-прежнему показывает HTTP
Причина: WordPress не знает о HTTPS
Сертификат установлен на сервере, но настройки URL в WordPress по-прежнему указывают http://.
Исправление: Обновите оба URL:
- Если есть доступ к wp-admin: Settings → General → измените оба URL на
https:// - Если нет доступа к wp-admin: Добавьте в
wp-config.php:define('WP_HOME', 'https://yourdomain.com'); define('WP_SITEURL', 'https://yourdomain.com'); - Если wp-config.php не помогает: Обновите базу данных напрямую:
UPDATE wp_options SET option_value = 'https://yourdomain.com' WHERE option_name IN ('siteurl', 'home');
Elementor / конструктор страниц показывает сломанную вёрстку на HTTPS
Конструкторы страниц хранят абсолютные URL в метаданных записей. После миграции на HTTPS выполните:
wp search-replace 'http://yourdomain.com' 'https://yourdomain.com' --all-tables
Для Elementor конкретно также перейдите в Elementor → Tools → Replace URL и обновите с http:// на https://.
Оформление заказа WooCommerce не работает на HTTPS
Причина 1: Смешанный контент блокирует скрипты оплаты
Stripe, PayPal и другие платёжные шлюзы требуют HTTPS и отказываются загружаться при смешанном контенте.
Исправление: Выполните поиск и замену в базе данных (выше) и проверьте наличие ссылок http:// в WooCommerce → Settings → Payments.
Причина 2: Настройка принудительного SSL для оформления заказа
В WooCommerce есть опция “Force secure checkout”, которая может конфликтовать с HTTPS на всём сайте.
Исправление: Если весь сайт работает на HTTPS, эта опция вам не нужна. Снимите галочку в WooCommerce → Settings → Advanced → Page setup.
Часто задаваемые вопросы
Нужен ли мне плагин Really Simple SSL?
Он упрощает переход с HTTP на HTTPS (особенно при смешанном контенте), но не является обязательным. Если вы выполните поиск и замену в базе данных и настроите перенаправление в .htaccess, плагин не нужен. Плагин добавляет небольшую нагрузку при каждой загрузке страницы, так как динамически перезаписывает URL.
Менять URL-адреса WordPress до или после установки сертификата?
После. Сначала установите сертификат и убедитесь, что HTTPS работает. Затем обновите URL WordPress. Если обновить URL до готовности сертификата, WordPress попытается использовать HTTPS, но не сможет — и вы можете заблокировать себе доступ.
Мой плагин кеширования отдаёт старую HTTP-версию
Очистите все кеши после миграции:
- WP Super Cache / W3 Total Cache / LiteSpeed Cache: Очистите кеш в настройках плагина
- Cloudflare: Purge Everything
- Серверный кеш (Varnish, Nginx cache): Очистите кеш или перезапустите сервис
Я мигрировал месяцы назад, но Google всё ещё показывает HTTP-адреса
Отправьте HTTPS-карту сайта в Google Search Console. Проверьте, что теги <link rel="canonical"> на всех страницах указывают на https://. Google может потребоваться несколько недель для переиндексации — перенаправления 301 помогают, но не мгновенны.