Не только 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, теперь для Яндекса инструкция достаточно проста: добавьте новый домен и настройте редирект.
Яндекс предоставил рекомендации по миграции, с подробным описанием можно ознакомиться здесь. Рекомендую внимательно изучить. В кратком изложении:
- Добавьте новый сайт в панель вебмастера.
- Настройте директиву Host в robots, важно, чтобы robots.txt был одинаковым для обоих сайтов. Неактуально.
- После того как оба сайта признаны зеркалами, поменяйте протокол в вебмастере в разделе “Настройки индексирования — Главное зеркало”. Подождите несколько недель, пока не установится основное зеркало.
- Настройте редирект со старого протокола на новый.
Рекомендации от Google
О переносе сайта для Google можно прочитать здесь и здесь.
- Добавить новый сайт в Search Console.
- Проверьте, что со старого сайта предусмотрен 301 редирект на новый с каждой страницы.
Как правильно осуществить перенос без потерь в позиции
- Убедитесь, что все страницы корректно функционируют с https.
- Внесите в robots директиву Host с указанием https. Неактуально.
- Добавьте новый сайт (с https) в Яндекс Вебмастер.
- Настройте 301 редиректы с http на https.
- Добавьте новый сайт в Google Вебмастер.
Когда вы начинаете думать о настройке https и получении сертификата, часто возникает еще один вопрос (поскольку эти настройки на хостингах зачастую располагаются близко друг к другу): как перейти на новую версию php 7.4 и выше.
Несоблюдение порядка действий при переходе на https может привести к ошибкам. Узнайте, как устранить ошибку err too many redirects, если она появилась на вашем сайте после смены протокола.