Переезд на HTTPS за три шага

Инструкция от команды студии веб-разработки VT Digital.

С июля 2018 года все HTTP-сайты в браузере Google Chrome будут помечаться как ненадёжные. Это произойдёт после выхода Chrome 68. Тема эта отнюдь не нова, однако до сих пор актуальна: владельцы сайтов по-прежнему совершают ошибки при переходе на HTTPS.

Готовимся к переезду

Ещё до смены протокола все внутренние абсолютные ссылки меняем на относительные. Например, для перехода на страницу на вашем же сайте лучше использовать <a href="/news/ "> вместо <a https://www.site.ru/news/">. Не забудьте исправить все ссылки на файлы, картинки, видео, виджеты и прочие внешние сервисы. Код «Яндекс.Метрики» и Google Analytics также должен подгружаться по относительному протоколу.

Чтобы настроить отслеживание реферального трафика, добавляем на HTTPS-страницах мета-тег <meta name="referrer" content="origin"> до закрывающего тега </head>.

Покупаем SSL-сертификат. Цена для ранжирования не имеет смысла, главное условие — валидность. О цене сертификатов и разнице между ними можно узнать на сайте предпочитаемого хостинг-провайдера. С недавних пор практически все они продают сертификаты.

Проверяем правильность настройки SSL-сертификата.

Переезжаем

Создаем версию сайта с HTTPS. Обе версии (HTTP и HTTPS) должны быть доступны и работать без ошибок. Файл robots.txt должен быть одинаков для обеих версий. Пока «Яндекс» не проведёт склейку зеркал, не настраивайте 301-редирект с HTTP.

В robots.txt указываем отдельно User-Agent: Yandex с Host: https:// и Sitemap: https://. Если приоритетная поисковая система для вас «Яндекс», то нужно закрыть сканирование всего сайта роботу Google, чтобы избежать дублей страниц в поиске Google.

Когда «Яндекс» полностью склеит страницы (в веб-мастере на неглавных зеркалах количество проиндексированных страниц будет равно нулю) и HTTPS будет выбрано главным зеркалом, открываем доступ Google в файле robots.txt. Если сервер на nginx, прописываем строки в .htaccess для доступности robots.txt по HTTP-протоколу:

<FilesMatch "robots.txt$">
RewriteEngine off
</FilesMatch>

Проверяем для HTTPS-версии протоколы в rel=”canonical”, rel=”alternate” и протокол ссылок в sitemap.xml. Для HTTPS-версии ссылки должны быть доступны по HTTPS. Для HTTP — в HTTP.

Тестируем

  1. Делаем 302-редирект с http:// на https:// на время теста.
  2. Добавляем обе версии сайта в «Яндекс.Вебмастер». Жмём «Настройка индексирования» — «Переезд сайта» и указываем предпочтительный протокол HTTPS. В «Структуре сайта» добавляем разделы сайта. В Google Search Console после склейки в «Яндексе» добавляем сайт с протоколом HTTPS и подтверждаем права. В разделе «Поисковый трафик» — «Таргетинг по странам и языкам» указываем, с какой страной связан домен, а в «Сканирование» — «Параметры URL» загружаем параметры из HTTP версии. Далее добавляем файл Disavow для HTTPS-версии по ссылке.
  3. Чтобы позиции по геозависимым запросам не просели, указываем в разделе «Региональность» регион для вкладки «Вебмастер».
  4. Меняем ссылки для региональных представительств, которые указаны в «Яндекс.Справочнике». Для этого пишем через форму в техподдержку «Яндекс.Справочника» о переезде на HTTPS.
  5. Ждём склейки в «Яндексе». Переклейка начинается примерно через две-три недели. Обратите внимание, что при переезде обнуляется тИЦ. Ничего страшного в этом нет, как сообщает «Яндекс» он вернётся после следующего обновления, которое происходит примерно раз в месяц.
  6. Когда «Яндекс.Вебмастер» покажет, что зеркала связаны, и основным уже выбрана HTTPS-версия, можно настраивать 301-постраничный редирект, кроме файла robots.txt и страницы 404 ошибки.
  7. Проверяем корректность присвоенного региона в «Яндексе» после переклейки. Если возникают проблемы с присвоением регионов, пишем в техподдержку.
  8. Проверяем смешанное содержимое — у всех страниц сайта протокол HTTPS. Это можно сделать через ScreamingFrog или подобную программу.

Далее индексирующий робот проверит корректность переезда (обычно это занимает от двух часов до трёх дней), и если не допущено никаких ошибок, то скоро в результатах поиска появится нужная HTTPS-версия сайта.

Во время склейки зеркал трафик может просесть. Это происходит из-за того, что поисковики воспринимают сайт с HTTPS как новый. Когда HTTPS-версия будет признана главным зеркалом, о чём вебмастер получит уведомление, все показатели HTTP-версии начнут учитываться для HTTPS.

0
70 комментариев
Написать комментарий...
Григорий Клюшников

А зачем покупать сертификат, когда есть letsencrypt?

Ответить
Развернуть ветку
Андрей Нефедов

не везде будет работать.

Ответить
Развернуть ветку
Харламка

Где не будет работать? Они даже WinXP поддержали уже.

Ответить
Развернуть ветку
Андрей Нефедов

В ВКонтакте

Ответить
Развернуть ветку
Харламка

В каком смысле? Всё там работает.

Ответить
Развернуть ветку
Андрей Нефедов

Да и в чём сложность оплатить 1500 рублей за год. Копейки.

Ответить
Развернуть ветку
Харламка

В чем смысл покупать сертификат тем, кто не делает приложение? Сами сайты НИКТО не ущемляет по факту сертификата. Пол мира ими пользуются. А потратить 1500 рублей можно и в другом месте.

Ответить
Развернуть ветку
Андрей Нефедов

А если нужно сделать сертификат на поддомены?
letsencrypt уже не справится. нужно покупать нормальный сертификат. бесплатно - гавно.

Ответить
Развернуть ветку
S-ed
А если нужно сделать сертификат на поддомены?
letsencrypt-auto certonly -a standalone -d mydomain.com -d www.mydomain.com -d sub.mydomain.com --keep

--keep позволяет оставить активные сертификаты (без этого ключа команда работает как renew)

Если привязать letsencrypt к серверу (к примеру Apache)

letsencrypt --apache

то он будет сам обновлять список поддоменов, хотя letsencrypt не поддерживает wildcart (*.mydomain.com)

Ответить
Развернуть ветку
Харламка

Прекрасно справляется он с поддоменами.

Ответить
Развернуть ветку
Андрей Нефедов

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

Ответить
Развернуть ветку
67 комментариев
Раскрывать всегда