Как перевести сайт с http на https и не потерять трафик

419
4
3

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

Хочу отметить, что процедура перехода на https очень похожа на обычную склейку зеркал. Для тех кто не знает что такое зеркало сайта, то вот небольшая справка. Зеркало сайта — это такой же сайт (с идентичным содержанием), который расположен по другому адресу. Самый простой пример зеркала сайта, которое имеется у любого сайта в интернете: in-trips.ru и www.in-trips.ru Для пользователя всё понятно, но поисковые системы видят подобные адреса как два разных сайта.

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

Что следует помнить при переходе на https

  • переход на https в яндексе и в гугле отличаются — как правило, гугл осуществляет склейку намного быстрее, яндекс в этом пока отстает;
  • получить ssl сертификат можно бесплатно — для большинства туристических сайтов нет никакой надобности покупать дорогие сертификаты, бесплатный ssl сертификат от letsencrypt отлично подойдет для большинства сайтов;
  • не обязательно добавлять переносимые сайты в вебмастера поисковых систем — наличие сайтов в вебмастере яндекса может ускорить склейку, но это не обязательное требование;
  • директива Host в robots.txt — это одно из обязательных условий для быстрой склейки сайта поисковиками.

Алгоритм перехода сайта с http на https


На этом графике можно понять сколько времени потребовалось поисковикам, что бы перенаправить трафик на https

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

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

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

Особенности перехода на https для Яндекса

Яндекс внимательно смотрит на директиву Host в файле robots.txt, именно по ней он склеивает сайты. Поисковик также учитывает тег canonical.

Особенности перехода на https для Google

Google по умолчанию будет индексировать и выдавать в поиске страницы по протоколу https, и внимательно смотреть на тег canonical.

Подготовка сайта к переходу на https


Процесс установки SSL сертификата на хостинге Бегет занял менее минуты

  • (Важно!)Обязательно сделать резервную копию сайта и базы данных;
  • Пройтись по сайту и проверить чтобы все урлы на страницах, все картинки и стили грузились с https.

Сам процесс перехода на https

  • Установить ssl сертификат;
  • (Важно!)Указать в robots.txt хост сайта (Host: https://in-trips.ru);
  • (Важно!)Обязательно проверить доступность файла robots.txt с http и https протокола;
  • Зайти в Яндекс вебмастер на сайт с http, в разделе «Переезд» поставь галочку на https и нажать кнопку «сохранить»;
  • (необязательно) Добавить Яндекс вебмастере домен с https протоколом;
  • (необязательно) Добавить я гугл вебмастер домен с https протоколом;
  • (Важно!)Настроить sitemap.xml так что бы все урлы были с https;
  • (Важно!)Настраиваем тег canonical так что бы все урлы были с https;
  • Ждем склейки сайта в Яндексе (можно определить по Яндекс Вебмастеру), когда главным зеркалом будет указан домен с https протоколом (примерно от 2 до 8 недель).

Завершение перехода сайта на https

  • Удостовериться что большинство станиц сайта (можно определить по Яндекс Вебмастеру) в яндексе проиндексировано на https протоколе, особенное внимание следует уделить страницам, которые несут основной трафик;
  • Настроить серверный 301 редирект с http на https;
  • (Важно!) Обеспечить доступность robots.txt на http и на https протоколе (это должен быть один файл robots.txt), для этого делается исключение при настройке серверного редиректа для файла robots.txt;
  • (необязательно) Чтобы ускорить склейку, можно воспользоваться возможностями HSTS.

Зачем я перевел туристический сайт на https

Вот несколько причин, которые побудили меня перевести обычный информационный сайт, туристической тематики (который отлично себя чувствовал на http протоколе) на протокол https.

Удобство для пользователей сайта. В моём случае, основной причиной для перевода сайта на протокол https, было желание сделать сайт более удобным для посетителей. Ведь никому не нравиться навязчивые предостережения браузеров про «небезопасность сайта» и прочие красные замочки рядом с доменом в адресной строке браузера.

Ускорить работу сайта. При переходе на https, сайт автоматически начинает работать по протоколу HTTP/2 (новой версии протокола HTTP). Этот протокол позволяет выполнять множество запросов в рамках одного соединения, благодаря чему должна повысится производительность и скорость загрузки сайта. Все подробности про HTTP/2, можно прочитать в Википедии.

Увеличить видимость сайта в Google. Поисковая система Гугл прямым текстом заявляет, что наличие защищенного соединения дает для сайта небольшой бонус при ранжировании (проверим :)).

Быть на волне технического прогресса. Звучит пафосно, но сегодня протокол https является более современным и перспективным, чем его предшественник http.

Как я переводил сайт с http на https (пошаговая инструкция)

Теперь на практике пройдемся по всем пунктам из вышеуказанного списка.


На моём сайте лучшим временем для перехода на https оказалось лето и начало осени

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

Подготовка сайта к переходу на https


Резервную копию сайта и базы данных на хостинге Бегет можно сделать в два клика

Резервная копия. Сайт расположен на хостинге Бегет, тем кто с ним знаком знает, что многие рутинные операции на нем делаются в два клика (очень просто и быстро). Копия делается прямо из панели хостинга.

Исправление урлов на https. Это самый муторный и долгий процесс, если делать всё руками. Но если применить автоматизацию, то все урлы вида http:// меняются на https:// за пару секунд. Вот вам простой запрос к SQL базе данных:

UPDATE ТУТ_ИМЯ_БАЗЫ . ТУТ_ИМЯ_ТАБЛИЦЫ SET ТУТ_СТОЛБЕЦ_ТАБЛИЦЫ = REPLACE( ТУТ_СТОЛБЕЦ_ТАБЛИЦЫ , 'http://', 'https://')

После всех манипуляций проверьте работоспособность сайта, если сайт всё ещё работает, то можно продолжать. :) Если что-то пошло не так, то откатитесь назад, ведь есть бекап. В моем случае порушилась одна из таблиц, когда я её правил не через указанный SQL запрос, а из веб интерфейса phpMyAdmin.

У любого сайта туристической тематики будут всевозможные сторонние виджеты и карты, которые могут что-то подтягивать на сайт по небезопасному протоколу http. В моём случае проблемными виджетами стали карты, вернее сами слои карт (картинки карт), они тянулись скриптом из Интернета по http. Пришлось немного повозиться и найти альтернативный источник карт.

Сам процесс перехода на https


Процесс установки SLL сертификата на хостинге Бегет прост и понятен

Установить ssl сертификат. Как я уже говорил ранее, сайт расположен на хостинге Бегет, который позволяет использовать установку бесплатного ssl сертификата Let's Encrypt. Весь процесс получения и продления сертификата упрощен до безобразия (смотрите скрин экрана). Если нужен платный сетрификат, то цены на SSL–сертификаты Thawte, Comodo, GlobalSign и Symantec, можно посмотреть по ссылке.


Проверка правильности установки SSL сертификата

Далее, следует проверить правильность работы сертификата, есть много онлайн-сервисов, вот один из них globalsign.ssllabs.com

Указать в robots.txt хост сайта. Это самый простой пункт. Идем в файловый менеджер и правим файл robots.txt, указывая Host: https://in-trips.ru (у вас будет соответственно имя вашего домена). У Бегета прямо в панели управления хостинга есть удобный файловый менеджер, так что нет необходимости устанавливать на компьютер дополнительные программы.

Проверка доступности файла robots.txt. Обязательно следует проверить доступность файла robots.txt с http и https протокола. Сделать это очень просто, надо зайти из браузера на этот адрес по разным протоколам и убедится, что файл открывается.


Вот так должно выглядеть окно в Яндекс Вебмастере, после того как вы уведомили Яндекс в своем желании перейти на https

Указать в Яндекс вебмастере главное зеркало. Иду в Яндекс вебмастер и указываю, что теперь главное зеркало будет по протоколу https. С этим тоже никаких проблем нет, но следует убедиться что Яндекс вебмастер принял внесенные изменения и не выдал ошибок.

Настроить sitemap.xml. Тут всё просто, иду в админку сайта и там указываю протокол https. Сбрасываю кеш и новая карта сайта готова.

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

Ждем склейки сайта в Яндексе. Это пожалуй самая мучительная и волнительная стадия перехода. Тут следует только ждать и не делать лишних действий.

Завершение перехода сайта на https

Ждем когда яндекс проиндексирует https. Следует удостовериться что большинство станиц сайта была в поиске по нужному протоколу. Это можно узнать в Яндекс Вебмастере или простым поисковым запросом site:in-trips.ru (вводить прямо в окно поиска). Как 90% сайта будет иметь протокол https и в разделе Яндекс Вебмастера обновится главное зеркало (если вы там видите https), то можно смело прописывать 301 серверный редирект.

Яндекс вебмастер имеет систему уведомлений (очень удобная штука), она так же подскажет, что сайты склеились.

Серверный 301 редиркет с http на https. Далее, следует настроить серверный 301 редиркет с http на https. Тут можно использовать примерно такой код (код может быть и немного другой) в файле .htaccess:

RewriteCond %{HTTP:X-Forwarded-Protocol} !=https
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

Далее, следует проверить правильность редиректа, для этого есть много онлайн-сервисов, вот ссылка на один из них redirect-checker.org

Проверка доступности файла robots.txt. Следует внести изменения в файл .htaccess, код может быть примерно следующего содержания:

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

Обязательно следует проверить доступность файла robots.txt с http и https протокола. Сделать это просто, следует из браузера зайти на этот адрес по разным протоколам и убедится, что он открывается и не редиректит на https.

Что стало с сайтом после перехода на https

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

Моя ошибка при указании тега canonical


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

Вижу что страницы с https в индексе Гугла уже присутствуют, но по одинаковым поисковым запросам присутствуют страницы с протоколом http (см. картинку). Причем это полные дубли. Возможно это из-за того, что я накосячил и забыл указать в теге canonical верный протокол (https). Вот поисковик и думает, что основная страница должна быть с http.

Вот как я понимаю эту ошибку, поисковый бот приходит из файла sitemap.xml на страницу по https протоколу, а в тегах видит, что каноническая страница должна быть по протоколу http и поисковый робот входит в ступор. После исправления этой ошибки, всё пошло как и положено.

Первая неделя после установки SSL сертификата

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

Гугл быстро понял что сайт доступен по протоколу https и уже в первую неделю трафик по этому протоколу увеличился до 70%. На графике видно, что в первые дни перехода на https, заходы гугл бота на сайт увеличились в разы (узнал по логам сервера и по графику из гугл вебмастера).

В гугл вебмастере стала появляться информация по поисковым запросам, по которым посетители идут с поиска на сайт по https протоколу — это радует. При этом в статистике сайта http (старый сайт), запросы постепенно падают.

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

Вторая неделя после установки SSL сертификата


Письмо от Яндекса, оно говорит что сайт с http и https склеены. Теперь можно настроить 301 редирект

Наконец-то Яндекс официально склеил сайты https и http, о чём уведомил в вебмастере. Для склейки потребовалось всего 12 дней. SSL сертификат был установлен 10 сентября, а 22 сентября яндекс признал главным зеркалом сайт с https протоколом.


На графике видны различия между Яндексом и Гуглом. Из гугла трафик по протоколу https пошел сразу, у яндекса спустя несколько недель, а до этого практически весь трафик шел на http

Если смотреть аналитику, то и Яндекс и Гугл 80% трафика льют на https версию сайта, а 20% (по непонятным причинам) идет на http версию. 301 редирект ещё не устанавливаю, жду пока всё устаканится.

Третья неделя после установки SSL сертификата


На этом графике можно понять сколько времени потребовалось поисковикам, что бы перенаправить трафик на https

26 сентября установил редирект и неридирект для роботс. Это завершающий этап перехода на https, дальше по идее должна быть обычная «жизнь» сайта.

Итог перехода на протокол https

Подведем итог и развеем все мифы по поводу перехода с http на https, а мифов и догадок на просторах Интернета можно найти огромное количество. Ранее я перечислил важные для меня и пользователей моего сайта вещи, которые после перехода должны были стать лучше, проверим так ли это.

Трафик из поисковых систем


Переходы из поисковых систем Яндекс и Гугл. Как можно видеть, трафик полностью сохранился, но существенного прироста нет

Было небольшое проседание по трафику, гугл чуть меньше, яндекс заметно. Критичного проседания поискового трафика замечено не было. Никаких особых бонусов по приросту трафика пока замечено не было. В итоге трафик вернулся на свои обычные величины.

Дубли страниц в поиске

Было непонятное увеличение страниц в индексе поисковых систем. В гугле длительное время оставались страницы с http. Чуть позже эти страницы ушли из индекса и общее количество страниц пришло в норму.

Пропали лайки на кнопках


После перехода на https протокол все лайки и шаринги на социальных кнопках пропадут

Про это я уже писал в прошлом посте (про плюсы и минусы перехода на https), все лайки с социальных кнопок пропали, теперь даже самая популярные статьи не имеют лайков на кнопках.

Подготовка к переходу на https

Выковыривание из сайта всевозможных http запросов, ведущих на сторонние сайты и на скрипты всевозможных калькуляторов валюты, погодных информеров и прочих вещей, которые на любом туристическом сайте имеются в избытке. Весь этот процесс невозможно автоматизировать (всё что можно было автоматизировать, уже автоматизировано). Так же встречаются скрипты, которые работают исключительно по протоколу http и отказываются работать по защищенному https, что с ними делать неясно.

Удобство для пользователей сайта

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

Ускорить работу сайта


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

С ускорением сайта за счет нового протокола HTTP/2 — это вопрос спорный и мне кажется, что есть более действенные меры для ускорения сайта (использование Memcached, Boost, Redis и т.д.). В моем случае видно незначительное улучшение производительности, сайт стал загружаться чуть быстрее, это видно из вебмастера гугл. Но чуть позже (это видно на графике), всё вернулось на прежние показатели. Объяснения этому явлению у меня нет.

Увеличить видимость сайта в Google


Примерная видимость сайта в гугле (из Вебмастера гугла) до и после перехода на https. Можно видеть, что видимость примерно одинаковая, никаких бонусов

Есть незначительное увеличение видимости в Гугле, но я бы не сказал что оно критичное и есть вероятность, что прирост вызван обычной сезонностью, а не установкой SSL сертификата. Следует вести наблюдения на более длительном промежутке времени (пол года или год).

Быть на волне технического прогресса

Это пожалуй одна из самых противоречивых причин, которая может побудить перевести сайт на https. Я бы сказал, что это даже в некой степени вредная, на этот счет есть много пословиц: «Не нужно ремонтировать, то что исправно работает», «Лучшее, враг хорошему» и т.д.

Удачного вам перехода на новый безопасный протокол https.

Как перевести сайт с http на https и не потерять трафик
Поддержи пост в социальных сетях
Информация на сайте была для вас полезной?

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

Ваши вопросы, отзывы и комментарии

При переходе на https не автоматически начинает работать http2. Это ещё нужно настроить на своём сервере, на вирт. хостинге возможно, заранее настроено. Но не автоматически.
Спасибо за подробною статью!

Павел, спасибо за дельное замечание, с этим полностью согласен, так как на сервере само по себе (автоматически) ничего не работает, всё нужно заранее настраивать.

На Бегете много предустановок, про которые обычные пользователи даже и не догадываются. Так недавно выяснилось (я про это тоже не знал), что на некоторые технические адреса (/admin, /wpadmin и т.д.) для ботов отдается страница пустышка. Если не спросить про это у тех. поддержки, то можно много времени потерять в поисках ошибки в коде.

В статье есть несколько неточностей, которые служат для лучшего понимания материала, так как статья в большей степени написана для новичков, а не для мега профи в администрировании серверов. :)

Отличная статья, много полезной инфы. Я как то тоже писал статью в свой блоге про переход с протокола http на https.

Спасибо за вашу оценку моей работы.

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

Задать вопрос, оставить отзыв или комментарий