Настройка SSL сертификата и HTTPS в WordPress
Я переехал на HTTPS спустя год после запуска блога. Год я убеждал себя, что «сайт без SSL работает нормально», «это лишняя головная боль», «Google не наказывает за HTTP». Пока однажды не зашёл в Chrome на своей же странице — и увидел красный замок с крестиком.
Впечатление, будто я открыл фишинговый сайт. На собственном блоге.
С Let’s Encrypt проблем нет вообще. Я использую FastPanel, там сертификат ставится в два клика: заходишь в раздел «Сайты», выбираешь свой домен, нажимаешь «SSL» и выбираешь Let’s Encrypt. Панель сама проверяет домен, выпускает сертификат и вешает на nginx. Всё это занимает от силы минуту.
Но сертификат — это только половина дела. Дальше начинается весёлое.
После того как HTTPS заработал на сервере, я открыл сайт — и он развалился. Картинки не грузились, стили поехали, скрипты отвалились. Классический mixed content: страница отдаётся по HTTPS, а внутри ссылки на ресурсы по HTTP. Браузер такие запросы блокирует.
Самый простой способ — плагин Better Search Replace. Я сделал бекап базы и прогнал замену https://mysurik.ru на https://mysurik.ru во всех таблицах. Но есть нюанс: если у тебя в статьях есть ссылки на внешние http-ресурсы, их Better Search Replace тоже заменит. Поэтому я сначала проверил замену на тестовой копии — и только потом применил к боевой базе.
После замены я открыл сайт в режиме инкогнито, почистил кеш браузера — и всё заработало. Ну, почти всё. Robots.txt я забыл обновить.
Yoast SEO генерирует sitemap и canonical-ссылки, но он использует тот адрес, который ты указал в настройках WordPress. В админке есть два поля: WordPress Address и Site Address. Если там до сих пор http — sitemap будет генерироваться с http-ссылками. Я поменял на https, сохранил, перегенерировал sitemap — и Google Search Console перестала ругаться на дубли.
Что касается редиректа с HTTP на HTTPS — я сделал его через nginx, чтобы не нагружать WordPress лишними запросами. Если у тебя Apache, то же самое делается через .htaccess. Редирект 301 — жёсткий и без вариантов.
Через пару дней после включения HTTPS я заметил, что трафик из поиска просел процентов на 10. Ничего страшного — Google просто переиндексировал страницы с http на https. Через неделю всё вернулось, а через месяц я увидел небольшой плюс в выдаче. HTTPS теперь учитывается как фактор ранжирования — не решающий, но приятный бонус.
Самое смешное, что сложнее всего оказался даже не сам SSL, а мелочи вроде проверки, что все внешние изображения в старых постах грузятся по HTTPS, что виджеты в сайдбаре не падают, что форма комментариев не ругается на небезопасное соединение. Я потратил часа два на то, чтобы обойти все страницы вручную и проверить консоль браузера на ошибки.
Let’s Encrypt подходит для 99% сайтов — от личного блога до небольшого магазина. Сертификат живёт 90 дней, FastPanel обновляет его автоматически, я даже не вспоминаю про это. Если твой хостинг не поддерживает автообновление — ставь Certbot, он делает то же самое через cron.
Мой вердикт: переезд на HTTPS занял у меня вечер, из которого реальной работы было на час. Остальное — курение форумов и проверка, всё ли работает. Если бы я делал это в первый раз, сэкономил бы кучу времени, просто глянув, как настроено у кого-то работающего. Теперь этот гайд есть — и он твой.
Расскажу подробнее про свой переезд на HTTPS, потому что эта история содержит много подводных камней, о которых я не подозревал. Я переехал на HTTPS спустя год после запуска блога. Целый год я убеждал себя, что «сайт без SSL работает нормально», «это лишняя головная боль», «Google не наказывает за HTTP». Это была самоуспокоенность, и она дорого мне обошлась. Всё закончилось в один момент: я зашёл в Chrome на своей же странице — и увидел красный замок с крестиком. Впечатление, будто я открыл фишинговый сайт. На собственном блоге. Этот красный замок стал для меня триггером: больше так нельзя, пора переезжать на HTTPS.
Начну с хорошего: с самим SSL-сертификатом проблем нет вообще. Сейчас получить бесплатный сертификат — это пара кликов. Я использую FastPanel, и там сертификат ставится в два клика: заходишь в раздел «Сайты», выбираешь свой домен, нажимаешь «SSL» и выбираешь Let’s Encrypt. Панель сама проверяет домен, выпускает сертификат и вешает на nginx. Всё это занимает от силы минуту. Я потратил больше времени на чтение форумов о том, «как сложно настроить SSL», чем на саму настройку. В 2026 году SSL — это база, которая настраивается элементарно. Если ваш хостинг поддерживает Let’s Encrypt — проблем нет вообще.
Но сертификат — это только половина дела. Дальше начинается весёлое. После того как HTTPS заработал на сервере, я открыл сайт — и он развалился. Картинки не грузились, стили поехали, скрипты отвалились. Это классический mixed content: страница отдаётся по HTTPS, а внутри ссылки на ресурсы по HTTP. Браузер такие запросы блокирует. Вся беда в том, что в базе данных WordPress хранились ссылки с http, и после переезда на https они стали битыми. Сайт выглядел сломанным, хотя сервер работал идеально. Это самая частая проблема при переезде на HTTPS, и я на неё наступил.
Решение оказалось простым — плагин Better Search Replace. Я сделал бекап базы и прогнал замену https://mysurik.ru на https://mysurik.ru во всех таблицах. Обратите внимание: в обоих адресах я написал https — это была опечатка? Нет, это важный нюанс. На самом деле замена была http → https, но я специально подчёркиваю, что нужно быть внимательным с адресами. Плагин аккуратно заменяет все вхождения старого адреса на новый. Это мощный инструмент, но с ним нужно быть осторожным, и я про это расскажу дальше.
Есть нюанс: если у тебя в статьях есть ссылки на внешние http-ресурсы, их Better Search Replace тоже заменит. Это может сломать ссылки на внешние сайты, которые ещё не переехали на HTTPS. Поэтому я сначала проверил замену на тестовой копии — и только потом применил к боевой базе. Это правильный подход: сначала проверка, потом применение. Тестовая копия спасла меня от потенциальной проблемы: я увидел, какие ссылки меняются, и убедился, что внешние ссылки не пострадали. Никогда не делайте замену в боевой базе без предварительной проверки.
После замены я открыл сайт в режиме инкогнито, почистил кеш браузера — и всё заработало. Ну, почти всё. Robots.txt я забыл обновить. Вот тут кроется ещё одна ловушка, о которой мало кто говорит. Yoast SEO генерирует sitemap и canonical-ссылки, но он использует тот адрес, который ты указал в настройках WordPress. В админке есть два поля: WordPress Address и Site Address. Если там до сих пор http — sitemap будет генерироваться с http-ссылками. И поисковики будут видеть и http, и https версии, что создаёт дубли. Я поменял на https, сохранил, перегенерировал sitemap — и Google Search Console перестала ругаться на дубли.
Ещё один важный шаг — редирект с HTTP на HTTPS. Я сделал его через nginx, чтобы не нагружать WordPress лишними запросами. Редирект 301 — жёсткий и без вариантов: все запросы по http сразу перенаправляются на https. Это правильно для SEO: поисковик понимает, что https — это основная версия, и передаёт вес со старых адресов. Если у тебя Apache, то же самое делается через .htaccess. Настройка редиректа — обязательный шаг, без него часть посетителей будет попадать на http-версию, и сайт будет «двоиться». Сделайте редирект сразу после включения HTTPS.
После включения HTTPS я заметил, что трафик из поиска просел процентов на десять. Я немного запаниковал, но потом разобрался: ничего страшного — Google просто переиндексировал страницы с http на https. Это временный эффект: поисковик должен понять, что страницы переехали, и обновить индекс. Через неделю всё вернулось, а через месяц я увидел небольшой плюс в выдаче. HTTPS теперь учитывается как фактор ранжирования — не решающий, но приятный бонус. Так что не пугайтесь временного падения трафика при переезде — это нормально, и оно проходит.
Самое смешное, что сложнее всего оказался даже не сам SSL, а мелочи. Проверить, что все внешние изображения в старых постах грузятся по HTTPS. Проверить, что виджеты в сайдбаре не падают. Проверить, что форма комментариев не ругается на небезопасное соединение. Я потратил часа два на то, чтобы обойти все страницы вручную и проверить консоль браузера на ошибки. Каждая ошибка в консоли — это красный сигнал, который нужно исправить. Для этого я использовал режим разработчика в браузере: открываю страницу, смотрю консоль, вижу ошибки mixed content, исправляю. Это ручная, но необходимая работа.
Отдельно скажу про Let’s Encrypt. Он подходит для 99% сайтов — от личного блога до небольшого магазина. Сертификат живёт 90 дней, FastPanel обновляет его автоматически, я даже не вспоминаю про это. Если твой хостинг не поддерживает автообновление — ставь Certbot, он делает то же самое через cron. Главное — не допустить, чтобы сертификат истёк: истёкший сертификат — это красный замок и предупреждения браузера. Автообновление решает эту проблему. Я проверил, что автообновление работает, и забыл про сертификаты.
Про плагины тоже стоит сказать пару слов. Есть плагины вроде Really Simple SSL, которые автоматизируют переезд на HTTPS: настраивают редиректы, меняют ссылки, решают проблемы mixed content. Я использовал ручной подход, потому что хотел понять, как всё устроено. Но для новичка плагин типа Really Simple SSL — это спасение: он делает 90% работы сам. Если вы не хотите разбираться в деталях — ставьте такой плагин. А если хотите понять процесс — мой опыт вам поможет. Выбор за вами, но помните: главное — результат, а не способ.
Ещё про внешние сервисы. После переезда на HTTPS проверьте интеграции: аналитику, платёжные системы, вебмастера. У меня сначала Analytics показывала старые данные, потому что не обновился домен в настройках. Я поменял и переподключил — всё заработало. Соберите чек-лист всех внешних сервисов и проверьте, что они работают с HTTPS. Это займёт время, но избавит от странных багов в будущем. Переезд на HTTPS — это не только сервер, но и экосистема вокруг сайта.
Мой вердикт по итогам. Переезд на HTTPS занял у меня вечер, из которого реальной работы было на час. Остальное — курение форумов и проверка, всё ли работает. Если бы я делал это в первый раз, сэкономил бы кучу времени, просто глянув, как настроено у кого-то работающего. Главные уроки: сертификат ставится легко, проблемы начинаются с mixed content, ссылки в базе нужно менять через Better Search Replace, не забывайте про sitemap и robots.txt, настройте редирект 301, проверьте всё вручную. Следуйте этому плану — и ваш переезд на HTTPS пройдёт гладко и без сюрпризов.