Перенос сайт на https без боли

Вчера обратился клиент с просьбой перенести сайт на https. Задача достаточно актуальная из-за ужесточения требований к безопасности персональных данных и ростом доверия поисковиков к сайтам на протоколе https.

Что такое https и зачем оно надо

HTTPS — расширенный протокол передачи данных HTTP с поддержкой шифрования.

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

Пример отображения иконки сайтов в браузере которые работают на HTTPS
Пример отображения иконки сайтов в браузере которые работают на HTTPS

Чем полезен переезд на HTTPS

  • Защита персональных данных между пользователем и сайтом: пароли, банковские карты, контактные данные.
  • Повышение доверия к сайту со стороны поисковиков.
  • Появление оповещения в браузере о защищенности сайта и увеличение доверия пользователей к сайту.
  • Возможность подключения к сайту Пуш-уведомлений — доступно только сайтам на https протоколе.

Зеркала и склейка

Самая большая тревога при переносе сайта на https — потеря позиций в поисковой выдачи и падение посещаемости. Решением проблемы является создание зеркала сайта.

Зеркало сайта — дополнительный адрес сайта прикрепленный к основному адресу. Если проще, то два адреса одного и того же сайта.

Объединение нескольких сайтов в один называется склейкой. В нашем случаи склеивать мы будем старый адрес сайта и новый с https. При склейки адресов показатели индексирования перенесутся на новый адрес: входящие ссылки, уникальный контент, ТиЦ и тд. Правильный переезд никак не должен нарушить позиции сайта, но в тоже время поисковики не гарантируют это.

Перенос и настройка сайта

Правильная последовательность действий поможет за 1 день перенести сайт на HTTPS. Разделим перенос сайта условно на 3 этапа:

  • Установка сертификата
  • Подготовка сайта
  • Обновление данных для поисковых систем (Настройка поисковой оптимизации)

Этап 1. Получение и установка SSL сертификата

Получить SSL сертификат и установить на домен в 99% случаев возможно через панель управления вашего хостинга. Например у Бегет это делается в 2 клика.

Установка SSL сертификата у бегет
Установка SSL сертификата у бегет

Выбираем нужный тип сертификата и кликаем «Установить». Нам интересен бесплатный Let’s Encrypt. Через 30 минут получаем SSL.

Возможность получить SSL сертификат есть почти на всех хостингах и как правило все происходит в 1-2 клика. Если такой возможности нет, то бегите от него.

Далее будем считать, что Ваш хостинг провайдер зарегистрировал и привязал к нужному домену SSL сертификат. С этой задачей справились.

Теперь проверим не установлен ли хостинг-провайдером автоматический редирект с http на https. Сайт может из-за этого некорректно открывается и быть потерян поисковиками.

В личном кабинете вебмастера заходим в раздел «Инструменты» — «Проверка ответа сервера» и вставляем старый адрес сайта с http. Кликаем «Проверить». Если редиректа на домене нет, то ответ сервера должен быть «200 OK». У нас именно так и значит все в порядке.

Проверка редиректа через вебмастер яндекс.

Проверьте открывается ли сайт по новому адресу с https. После установки сертификата сайт должен открыться по новому и по старому адресу.

Теперь можно проверить корректность установки сертификата. Для этого воспользуемся сервисом SSL Lab. Заполняем форму нашим адресом, но уже с https в начале адреса и кликаем «Submit».

Проверка сертификата через сервис SSL Lab
Проверка сертификата через сервис SSL Lab

Ждем 2-5 минут и получаем результаты тестирования сертификата. В идеале должны увидеть 3 зеленые шкалы. Если они желтые или красные, то есть замечания. Посмотрите на рекомендации и попробуйте их устранить.

Рекомендации SSL Lab по SSL сертификату
Рекомендации SSL Lab по SSL сертификату

SSL сертификаты имеют срок действия от 3 мес. до нескольких лет. Обязательно уточните у хостинг-провайдера или организации выдавшей вам сертификат о порядке продления. Обычно это происходит автоматически.

Этап 2. Подготовка сайта

Главная цель этапа подготовки — замена всех внутренних абсолютных ссылок на относительные ссылки. Все необходимые для работы сайта файлы должны быть доступны по новому адресу: картинки, скрипты, стили и тд.

Пример:

site.ru/catalog — абсолютная ссылка

/catalog/ — относительная ссылка

Для небольших проектов это не занимает много времени.

Если сайт на вордпрес

1) В панель управления сайтом в раздел «Настройки» — «Общие» у 2 полей «Адрес WordPress (URL)» и «Адрес сайта (URL)» в адресе заменим http на https. Сохраняем изменения.

Смена адреса сайта в панели управления вордпрес
Смена адреса сайта в панели управления вордпрес

2) Заменим все внутренние ссылки на сайте на https через sql запрос в phpmyadmin.

phpmyadmin — инструмент администрирования баз данных. Должен присутствовать в личном кабинете вашего хостинга.
Процесс такой же как и перенос сайта вордпрес на другой домен.

В phpmyadmin заходим во вкладку «SQL» и копируем туда запрос:

UPDATE wp_options SET option_value = REPLACE(option_value, 'http://old_site.ru', 'https://new_site.ru') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://old_site.ru', 'https://new_site.ru');
UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://old_site.ru','https://new_site.ru');
UPDATE wp_comments SET comment_content = REPLACE (comment_content, 'http://old_site.ru', 'https://new_site.ru');
UPDATE wp_comments SET comment_author_url = REPLACE (comment_author_url, 'http://old_site.ru','https://new_site.ru');
UPDATE wp_posts SET guid = REPLACE (guid, 'http://old_site.ru', 'https://new_site.ru') WHERE post_type = 'attachment';

Предварительно замените в запросе «http://old_site.ru» на адрес вашего старого сайта, а вместо «https://new_site.ru» адрес нового сайта с https. Кликаем «Вперед».

Не забудьте поменять префикс базы данных «wp_» в sql запросе если вы его меняли ранее. Если нет, то оставляйте как есть.

Вкладка SQL в phpMyAdmin

Теперь нужно проверить нет ли где то на сайте ссылок на старый адрес. Если есть, заменить на новый адрес, а лучше на относительный адрес (ведущий отсчет от корня сайта без указания домена и протокола). Это могут быть неправильно подключенные файлы стилей, скриптов или фоновых картинок.

Пример не правильного и правильного адреса
Пример не правильного и правильного адреса в коде сайта

Для этого запустите инструмент разработчика в браузере хром. Запустить можно правой кнопкой мыши и «Просмотреть код» или кнопкой «F12». Зайдите во вкладку «Console». Если проблемы с ссылками остались, то там будут ошибки «this content should also be loaded over HTTPS» с указанием ресурсов которые подключаются по старому адресу. Исправьте все ошибки.

Вкладка «консоль» в инструментах разработчика гугл хром
Вкладка «консоль» в инструментах разработчика гугл хром

Если сайт на Опенкарт

1) В панели управления магазином зайти в «Система» — «Настройки». Зайти во вкладку «Сервер» и переключить на «Да» параметр «SSL». Сохранить.

Включение поддержки SSL в настройка опенкарт

2) Открыть для редактирования 2 файла «config.php». Один находится в корне сайта, второй в папке «admin».

3) Заменить в строках HTTP_SERVER’, ‘HTTP_CATALOG’, ‘HTTPS_SERVER’, ‘HTTPS_CATALOG’ http на https.

Фаил config.php в опенкарт
Фаил config.php в опенкарт

Если сайт НЕ на вордпрес

Это общие принципы, которые подойдут под любой сайт.

1) Заменить все внутренние ссылки на сайте относительными. Перенаправляем все подключаемые к сайту ресурсы на новый адрес: скрипты, css, картинки.

Старайтесь вообще не использовать абсолютные пути до файлов и адреса. По возможности везде прописывайте относительные пути.

2) Обновить или сгенерировать заново файл sitemap.xml с новым адресом.

После правильной процедуры подготовки сайта и смены всех адресов на относительный увидите в адресной строке «Надежный».

Адресная строка в браузере после правильной настройки HTTPS
Адресная строка в браузере после правильной настройки HTTPS

Этап 3. Сообщаем поисковикам о переносе.

Необходимо сообщить поисковикам о всей проделанной работе. Это снизит вероятность потери поисковых позиций и проиндексированных страниц. Воспользуемся панелью для вебмастеров.

В процессе смены зеркал и переезда на https сайт может потерять позиций. Это временная проблема. При правильном переносе позиции сайта должны вернутся в течении 1-2 мес.

Очень важно сменить адрес директивы host в файле «robots.txt». В строке Host и Sitemap меняем в адресе http на https. Сохраняем.

Вебмастер.яндекс

1) Добавить новый адрес с https в вебмастер: https://webmaster.yandex.ru/sites/add/

Добавление адреса в вебмастер.яндекс
Добавление адреса в вебмастер.яндекс

Если до этого у Вас не был добавлен старый адрес c http, то вначале добавьте его. В панели вебмастера должны быть добавлены старый и новый адрес.

2) Настройте уведомления: https://webmaster.yandex.ru/settings/

В вебмастере появилась возможность настройки оповещений о проблемах и событиях связанных с вашими сайтами. Настройте нужные оповещение. Рекомендую включить оповещение «Обновление главного зеркала». Так мы узнаем когда произойдет склейка старого и нового сайта.

Настройка уведомлений в вебмастер.яндекс

3) В вебмастере заходим в инструмент «Переезд сайта» в разделе «Индексирование» по адресу текущего главного зеркала который с http. Отметьте пункт «Добавить HTTPS». Сайт адреса на этой же страницы должен поменяться на https. Нажимаем на кнопку «Сохранить».

Инструмент «Переезд сайта» в вебмастере.яндекс
Инструмент «Переезд сайта» в вебмастере.яндекс

Если все верно, то увидите уведомление об успешной отправки информации поисковому роботу на перепроверку сайта и возможность сделать версию сайта с https главным зеркалом. Процесс подтверждения заявки на смену главного зеркала занимает от 3 часов до 2-3 дней. Соответствующее уведомление появится на странице «Переезд сайта» и в уведомлениях из предыдущего пункта.

В поисковой выдачи ссылки обновляются в течение 2-4 недель.

После смены главного зеркала в вебмастере сайты буду сгруппированы следующим образом:

Группировка зеркал в вебмастере.яндекс
Группировка зеркал в вебмастере.яндекс

Версия с http будет признана не главным зеркалом и находится под адресом в версией https.

Косвенно смену главного зеркала можно увидеть по активности индексирования страниц. При заходе на старую http версию мы будем видеть уменьшение проиндексированных страниц, а в версии c https резкое увеличение.

4) Перенос дополнительных настроек. Если для старой версии сайта в панели вебмастера у вас присутствуют дополнительные настройки, их нужно перенести на новую версию.

Например это может быть:

  • Настройки региона (геотаргетинг)/ Региональная принадлежность
  • Настроить «Товары и цены»
  • Добавить «Важные страницы»
  • Файлы Sitemap.xml

Google Search Console

1) Добавление сайта с https в Google Search Console. Как и в случаи с вебмастером.яндекс в гугл консоль должны быть добавлены 2 версии сайта: с http и https. https://www.google.com/webmasters/tools/

2) Перенос дополнительных настроек. Если для старой версии сайта в панели вебмастера у вас присутствуют дополнительные настройки, их нужно перенести на новую версию.

Например это может быть:

  • Настройки региона (геотаргетинг)/ Региональная принадлежность
  • Файлы Sitemap.xml
  • Список ссылок в Disawov Tool
  • Исключенные параметры URL

Настройка редиректа

Финальным этапом переезда является настройка 301 редиректа со старого сайта http на новый https.

Редирект нужно устанавливать только после склейки/объединения адресов в яндекс!

В противном случае есть большой риск потерять проиндексированные страницы и позиции. Со старого адреса будет редирект на новый, а новый еще не будет признан основным зеркалом. В результате выпадение из поискового индекса.

Желательно не просто подождать склейки, но и дождаться появления яндекс ссылок с новым адресом, а кол-во ссылок с http адресом обнулились.

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

Редирект сайта с http на https осуществляется через файл htaccess. Откроем htaccess в редакторе кода или текстовом редакторе. Копируем в файл код редиректа (если первые 2 строки уже есть, то копировать их не нужно):

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{SERVER_PORT} ^80$ [OR]
RewriteCond %{HTTP} =on
RewriteRule ^(.*)$ https://domain.ru/$1 [R=301,L]

Вместо «https://domain.ru» пишите свой адрес с https

Сохраняем фаил и проверяем. Введите адрес сайта без https в браузере. Должно перекинуть на https://вашсайт.ру.

Резюмируем

  1. Очень важно правильно прописать директиву host в robots.txt.
  2. Не забыть перенести настройки индексирования внутри панели вебмастера на новый адрес.
  3. Обновите или создайте карту сайта для нового адреса.
  4. Настройку редиректа лучше производить после склейки сайтов в яндекс.
  5. Вероятность потери трафика всегда присутствует. Не забывайте об этом.

Полезные ссылки

Добавить комментарий