Как перевести сайт на https протокол

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

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

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

Зачем нужен https

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

Ранее мы говорили о целесообразности заводить блог о туризме и путешествиях. Продолжаю серию постов про сайтостроение, сегодня рассмотрим тему ssl сертификатов на примере туристического сайта in-trips.ru.

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

На безопасный протокол https сайт я перевёл, а какой профит получил (и получил ли), так же про всю хронологию событий, читайте по ссылке

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

Зачем нужен переход на https для читателей

Проблемы сайта без https.

Для обычного читателя туристического сайта, нет никакой разницы по какому протоколу (http или https) он получает информацию с сайта к себе на монитор. Большинство пользователей просто не обращают на это никакого внимания. Читать мои травел отчеты вполне безопасно как на http, так и на https (в скором будущем).

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

Единственное, чем рискует читатель инфо сайта на незащищенном сайте — это перехват той информации, что он вводит в формы обратной связи и формы комментирования постов. Однако следует понимать, что воровство таких данных с травел сайтов и форумов весьма редкое явление. Злоумышленникам попросту не нужна подобная информация, ведь её ценность намного меньше чем ценность информации о банковской карте, так что пользователи блога in-trips.ru могут не переживать.

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

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

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

Зачем нужен переход на https для владельцев сайтов

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

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

О том как я переводил блог с http на https и что из этого вышло, читайте далее.

Плюсы от перехода сайта на https

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

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

Протокол https как фактор ранжирования. Поисковая система Google — заявляет что наличия подписанного SSL-сертификата у сайта является одним из факторов ранжирования. Яндекс чуть скромнее, но есть информация, что наличие у сайта SSL-сертификата уже учитывается в ранжировании (с 2011 года), но пока только на коммерческих сайтах.

Повышение конверсии в некоторых браузерах. На сегодняшний день, Google Chrome является лидером среди браузеров, и именно Google Chrome помечает страницы, которые собирают персональную информацию (пароли, данные оплаты, формы обратной связи, комментарии и т.д.) и не имеют защищенного соединения как небезопасные — конверсия таких страниц падает.

Повышение уровня доверия у пользователей. Когда на пользователя не сыплются всякие пугающие оповещения «Небезопасно» и прочие страшилки, то пользователь чувствует себя спокойно.

Повышение безопасности при обмене данными в Интернете. Использование протокола https позволяет защитить данные от перехвата при передаче через Интернет, и практически сводит к нулю атаку по принципу «Человек посередине» (англ. Man in the middle (MITM)).

Минусы от перехода сайта на https

Проблемы с SSL–сертификатом у сайта Google.com.

Сертификат может временно отвалиться или его могут отозвать. Иногда можно видеть ошибки, даже на очень крутых сайтах (google.com, mail.ru и т.д), которые появляются из-за проблем с сертификатом (смотрите скрин экрана, на котором проблемы с сертификатом у гугла). В следствии подобных ошибок, браузер не пускает пользователя на небезопасный сайт.

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

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

Высокая цена на сертификат. Если вы решили купить сертификат, а не юзать бесплатный от Let’s Encrypt, то приготовьте от 100 долларов за год использования.

Настройка сайта для перехода на https. Так как для поисковой системы ваш сайт с http и ваш сайт на https — это два разных сайта, то следует правильно настроить сайт ещё до перехода на безопасный протокол. Это достаточно муторный и кропотливый труд.

Могут ухудшиться позиции в поиске. Иногда позиции сайта в поиске могут немного просесть (поисковые системы это не отрицают), в основном это происходит из-за неправильного перехода на новый протокол, так что следует внимательно подготовить сайт перед переездом.

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

Бесплатный ssl сертификат letsencrypt для сайта

Существует множество разновидностей сертификатов, от самоподписанных, до сертификатов с расширенной проверкой (Thawte SSLWebServerEV, Symantec Secure Site EV). Точные цены на SSL–сертификаты Thawte, Comodo, GlobalSign и Symantec, можно посмотреть по ссылке.

Для использования на обычном информационном сайте подойдет и самый простой ssl сертификат от letsencrypt, он выпускается бесплатно (продляется тоже бесплатно), в установке прост и достаточно надежен.

Уже проверено на многих туристических сайтах, что бесплатные сертификаты от letsencrypt отлично работают и никаких проблем с ними нет. Если ваш сайт не принимает онлайн платежи, а является информационным ресурсом, то это лучший выбор.

Не стоит сомневаться в его надежности бесплатных сертификатов, а стоит посмотреть кто стоит на стороне letsencrypt. Проект под названием Let's Encrypt поддерживают такие именитые бренды как Linux Foundation, Mozilla, Facebook, Akamai, Cisco и т.д. Я планирую при переходе блога на hhtps использовать именно этот сертификат.

Если ваш сайт размещен на хорошем хостинге (по ссылке хостин, которым я пользуюсь), то бесплатный сертификат Let's Encrypt можно установить в пару кликов прямо из панели управления вашего хостинг аккаунта. В следующем посте напишу про переход сайта с http на https.

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

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

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

На этом графике можно понять сколько времени потребовалось поисковикам, что бы перенаправить трафик на 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

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

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

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

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

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

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

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

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

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

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

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

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

Как перевести сайт на https протокол

Смотреть комментарии