Переход и настройка HTTPS для WordPress

Не только Google настоятельно рекомендует переход на протокол HTTPS, но это также значительно повышает уровень безопасности вашего сайта. Это особенно важно, если на вашем веб-ресурсе есть формы для заполнения, регистрация пользователей или функции входа.

Протокол HTTPS шифрует все данные, передаваемые между вашим сайтом и браузером, что делает невозможным доступ злоумышленников к любой информации, которую вы и ваш сайт обмениваетесь, включая пароли, адреса электронной почты и данные для платежей.

Существуют различные виды SSL сертификатов, их цена колеблется в среднем от 1500 до 5000 рублей, однако диапазон цен может быть весьма широким. Есть сертификаты, которые требуют подтверждения юридического лица, а также наличие поддержки поддоменов.

Подготовка

Первоначально необходимо получить SSL сертификат; его можно приобрести или воспользоваться бесплатным вариантом. В данной статье мы рассмотрим самый простой метод, когда установку сертификата выполняет ваш хостинг-провайдер. Еще проще — получить бесплатный сертификат от Beget всего в два клика.

После установки сертификата, в адресной строке браузера вводим URL вашего сайта, заменив http на https.

  • Если сайт открывается — все в порядке, можно переходить к следующему шагу.
  • Если сайт не загружается — подождите 10-15 минут и попробуйте снова. Если ситуация не изменилась, необходимо проверить, корректно ли установлен сертификат.
  • Если происходит автоматический редирект на http-версию сайта — нужно искать причину в плагинах, файле functions.php или в правилах htaccess и удалить соответствующие настройки.

Меняем адрес сайта в настройках

Затем заходим в раздел «Настройки» — «Общие» и вводим новый адрес с https, после чего сохраняем изменения.

Загляните на сайт и проверьте, например, меню или ссылки на ваши материалы. Они должны быть обновлены в соответствии с новым протоколом.

Если сайт перестал открываться?

Следует вернуть протокол обратно и разобраться с проблемами в плагинах или файле functions.php темы.

Откройте файл wp-config.php и добавьте туда следующий код:

define('WP_HOME','http://yoursite.ru'); define('WP_SITEURL','http://yoursite.ru');

Замените yoursite.ru на адрес вашего сайта с протоколом http. Таким образом, мы жестко фиксируем старый адрес в коде.

Теперь необходимо определить источник проблемы или редиректа. Пошагово отключайте плагины, удаляйте код из wp-config.php и проверяйте, стало ли всё работать. Затем смените тему на стандартную и повторите эту процедуру. Также стоит открыть файл .htaccess, расположенный в корневом каталоге сайта — возможно, именно там кроется причина.

Меняем адрес сайта в статьях

Теперь нужно обновить адреса ссылок в самих статьях. Выполнять это вручную — занятие длительное и неэффективное. Здесь нам поможет любимый инструмент search-replace.

Важно!

Перед проведением этой операции обязательно создайте резервную копию!

Введите слева адрес сайта с http, а справа — с https. Нажмите Dry Run. Проверьте все результаты внизу, чтобы убедиться, что все изменения корректны. Затем выполните Live Run и проверьте ссылки в ваших статьях.

Теперь все ссылки должны соответствовать новому протоколу.

В нашей практике мы никогда не производим прямую замену данных в базе. Это связано с тем, что WordPress хранит определенные настройки в сериализованных массивах, длина которых зависит от длинны строки. При изменении адреса изменяется также длина строки, и такие данные могут просто перестать отображаться. Мы уже сталкивались с подобной ситуацией на одном из проектов, когда виджеты пропали после переноса сайта.

Если что-то пошло не так?

Скорее всего, вы допустили ошибку при выполнении замены в searches-replace. В таком случае нужно восстановить бэкап. Если после восстановления все заработало исправно, значит, проблема действительно заключалась в проведенной замене.

Повторите эту процедуру, но на этот раз тщательно проверьте выполнение замены в процессе Dry Run. Если не удается устранить проблему, советуем обратиться за профессиональной помощью.

Меняем протокол в Вашей теме

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

Это также касается подключения стилей и скриптов с внешних ресурсов, таких как виджеты обратного звонка, чаты, счетчики и попапы.

Скачайте свою тему на компьютер. Затем выполните поиск по строке “http://” в файлах вашей темы. Например, с помощью редактора Sublime можно сделать это одномоментно во всех файлах темы. Исправьте пути на корректные, а еще лучше используйте функции для их замены (необходимы базовые навыки разработки).

Если нет возможности указать протокол, можно заменить ссылки следующим образом:

http://site.ru/ на //site.ru

Правильный редирект с http на https

Не спешите с установкой редиректов. Яндекс рекомендует дождаться завершения склеивания доменов. Для Google вы можете настроить редирект сразу. Наилучшим вариантом будет сначала дождаться склеивания, а затем уже устанавливать редирект. Подробно о поисковых системах мы расскажем ниже.

Через htaccess

В начале файла .htaccess добавьте следующее:

RewriteEngine On RewriteCond % =off RewriteRule (.*) https://%% [QSA,L]

Если это не сработает, попробуйте следующую конфигурацию:

RewriteEngine On RewriteCond % ^[A-Z]\ /(.*)\ HTTP/ [NC] RewriteCond % off [NC] RewriteRule .* https://%%% [R=301,QSA,L]

Таким образом, мы устанавливаем редирект на уровне сервера. Обратите внимание на то, что мы явно указываем, что это 301 редирект.

Также можно использовать PHP для создания редиректа:

add_action('init', 'redirect_http_to_https'); function redirect_http_to_https()< if( is_ssl() ) return; if ( 0 === strpos($_SERVER['REQUEST_URI'], 'http') ) wp_redirect( set_url_scheme( $_SERVER['REQUEST_URI'], 'https' ), 301 ); else wp_redirect( 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 301 ); exit; >

Лучше всего разместить этот код в своем плагине или в папке mu-plugins. В крайнем случае его можно добавить в файл functions.php вашей темы, чтобы при изменении темы не потерять редиректы.

Можно использовать оба метода, однако предпочтительнее первый, так как запросы обрабатываются на сервере, а не через PHP.

С помощью Clearfy Pro

Если вы опасаетесь нанести ущерб файлу .htaccess, можете обратиться в службу поддержки вашего хостинга с просьбой настроить переход на https за вас. Однако проще всего будет просто активировать соответствующую опцию в плагине Clearfy WPShop на вкладке “SEO”. В этом же разделе вы найдете ссылку на документацию с подробным описанием данного функционала.

На сегодняшний день многофункциональный плагин стал необходимым инструментом для большинства квалифицированных веб-разработчиков, так как он позволяет решить множество актуальных задач. Если у вас его нет, сейчас отличный момент, чтобы купить его с выгодной скидкой для читателей.

Код для Clearfy Premium

Как смена протокола влияет на SEO

Не забудьте обновить адрес сайта в файле robots.txt и указать новое основное зеркало в панелях вебмастеров поисковых систем.

Обычно, после перехода на новый протокол наблюдается небольшое снижение позиций в поисковых системах и уменьшение трафика, однако это временные явления. Поэтому, чем скорее вы осуществите переход, тем меньшими будут потери в области SEO.

В настоящее время Google заявляет, что будет отдавать предпочтение сайтам с протоколом https, но как это будет реализовано на практике, покажет будущее.

Советы от Яндекса

Обновление: Яндекс отменил директиву Host, теперь для Яндекса инструкция достаточно проста: добавьте новый домен и настройте редирект.

Яндекс предоставил рекомендации по миграции, с подробным описанием можно ознакомиться здесь. Рекомендую внимательно изучить. В кратком изложении:

  1. Добавьте новый сайт в панель вебмастера.
  2. Настройте директиву Host в robots, важно, чтобы robots.txt был одинаковым для обоих сайтов. Неактуально.
  3. После того как оба сайта признаны зеркалами, поменяйте протокол в вебмастере в разделе “Настройки индексирования — Главное зеркало”. Подождите несколько недель, пока не установится основное зеркало.
  4. Настройте редирект со старого протокола на новый.

Рекомендации от Google

О переносе сайта для Google можно прочитать здесь и здесь.

  1. Добавить новый сайт в Search Console.
  2. Проверьте, что со старого сайта предусмотрен 301 редирект на новый с каждой страницы.

Как правильно осуществить перенос без потерь в позиции

  1. Убедитесь, что все страницы корректно функционируют с https.
  2. Внесите в robots директиву Host с указанием https. Неактуально.
  3. Добавьте новый сайт (с https) в Яндекс Вебмастер.
  4. Настройте 301 редиректы с http на https.
  5. Добавьте новый сайт в Google Вебмастер.

Когда вы начинаете думать о настройке https и получении сертификата, часто возникает еще один вопрос (поскольку эти настройки на хостингах зачастую располагаются близко друг к другу): как перейти на новую версию php 7.4 и выше.

Несоблюдение порядка действий при переходе на https может привести к ошибкам. Узнайте, как устранить ошибку err too many redirects, если она появилась на вашем сайте после смены протокола.

Оставьте комментарий