Как правильно перевести сайт с HTTP на HTTPS без потерь: настройка Яндекс Вебмастер и Google Search Console

Как правильно перевести сайт с HTTP на HTTPSПривет, друзья! Нельзя сказать, что сегодняшняя тема является новой, скорее даже наоборот. Например, свой первый SSL-сертификат я купил и установил еще 5 лет назад, и уже тогда я не был первопроходцем. Основная цель — безопасность пользователей и их данных (сертификат мы устанавливали на наш сервис CheckTrust.ru). Тогда же я написал большой пост про SSL сертификат для сайта с комментариями представителя сертифицирующего центра, потому что не было все так просто, как сейчас.

Если вспомнить, то Google уже давно топит за переход всех сайтов на https: сначала только разговоры и много пресс релизов, где говорилось, что https будет сказываться на ранжировании, затем в браузере Chrome появилась заметка «Подключение к сайту не защищено». По свежим данным от самого Гугла, 50% всех сайтов уже перешли на https протокол, а присутствие сайтов на https в топ-10 составляет 83%.

Даже если посмотреть статистику Let's Encrypt, то за 2018 год, количество сертификатов увеличилось в 2,5 раза: с 62 до 152 млн:

Статистика выдачи сертификатов Let's Encrypt

Кажется, как будто наличие https уже просто необходимое требование, чтобы быть в топе. Но это не совсем так. Причины вовсе не в ранжировании или каких-то бонусах на серпе. Дело опять же в безопасности, например, вы не сможете интегрировать на сайт прием платежей (онлайн оплату), если вы на http. А это нужно очень многим, точнее вообще всем коммерческим сайтам, интернет-магазинам.

А что касается именно ранжирования в выдаче, то за последние годы мы работали со множеством клиентских сайтов, как на http, так и на https. Много сайтов переводили на https и не заметили совершенно никаких изменений в ранжировании! Вот вообще никаких, что в Яндексе, что в Гугле.

Однако, совсем недавно Яндекс в блоге для вебмастеров опубликовал сразу две записи об использовании HTTPS протоколов на сайтах.

25 января 2019 года вышел пост о том, что Яндекс проделал огромную работу, чтобы упростить вебмастерам переезд на HTTPS протокол, а также просит совета у пользователей, что ещё можно было бы улучшить.

Следом, 28 января 2019 года, вышел ещё один, о том, что Яндекс начал показывать ошибки связанные с некорректной настройкой SSL сертификатов на сайте.

Параллельно с этими новостям в панели Яндекс.Вебмастер стали приходить сообщения о недостаточно защищенном протоколе HTTP:

Уведомление в панели Яндекс.Вебмастер

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

Именно поэтому мы решили ознакомить вас с нашей внутренней инструкцией как перевести сайт с HTTP на HTTPS протокол, которая позволяет осуществить переезд с минимальными потерями трафика и позиций и в Яндексе, и в Гугле.

Так что, наверное, пора...

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

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

  • Простые (Domain Validation, DV) – в сертификате указан только домен,
  • С проверкой компании (Organization Validation, OV) – указан домен и название компании,
  • С расширенной проверкой (Extended Validation, EV) – зеленая адресная строка браузера, название компании в ней, в сертификате также домен и название компании.

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

Если для вас не имеет значения, на кого будет выдан сертификат — то есть вас не смущает, что он будет выдан на физическое лицо — подойдет DV, и скорее всего это будет бесплатный Let's Encrypt. Сертификаты EV физическим лицам в принципе не выдаются. Покупка сертификатов OV возможна для физлица, но процесс валидации намного сложнее, чем у юрлиц.

Вот так выглядит SSL с расширенной проверкой:

SSL с расширенной проверкой

Так выглядит и простой SSL, и с проверкой организации:

Простой SSL

Я думаю, что 99% читателей данного поста устроит самый простой тип сертификата DV.

Вот еще несколько нюансов, которые помогут вам определить, какой сертификат использовать:

  • Если у вас маленький сайт услуг, небольшой интернет-магазин, информационный ресурс, смело используйте бесплатный сертификат от Lets Encrypt.
  • Если у вас множество поддоменов, используйте Wildcard SSL. Он позволит защитить не только основной домен, но и все его поддомены. Wildcard-сертификат тоже бывает бесплатный от Lets Encrypt (такая возможность появилась в начале 2018 года).
  • Если у вас кириллический домен, подбирайте SSL с поддержкой IDN (Internationalized Domain Names).
  • Если у вас проект разветвлен не на поддомены, а на множество отдельных доменов-зеркал, то вам понадобится SAN-сертификат (Subject Alternative Names).

Где взять бесплатный SSL-сертификат от Let’s Encrypt?

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

В пример приведу очень частый среди клиентов вариант хостинга Beget:

Установка Let’s Encrypt на хостинге Beget

Подключить SSL сертификат можно в один клик прямо на странице управления доменом.

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

Я же арендую для своих проектов выделенные серверы и всегда с установленной панелью управления ISPmanager. Если и вы используете выделенный сервер с ISP панелью, можете воспользоваться простой видео инструкцией:

Либо официальной справкой: Интеграция ISPmanager с Let’s Encrypt.

Кроме того, что сертификат Let’s Encrypt бесплатный, он имеет ряд преимуществ перед платными сертами: не требует переконфигурации веб-сервера, использования электронной почты (обязательно на домене, для которого покупается сертификат), ручной обработки просроченных сертификатов и т.д. На виртуальных хостингах (и выделенных серверах с панелями управления), предлагающих установку сертификата Let’s Encrypt, установлен клиент, который используется для запроса сертификата, проведения валидации домена, инсталляции сертификата и настройки HTTPS-шифрования.

У сертификатов Let’s Encrypt есть ограничения, с которыми вы вряд ли столкнетесь, но все же:

  • Центр сертификации Let’s Encrypt выдаёт только простые сертификаты DV (с валидацией только домена). Выдача более надёжных сертификатов OV и EV не производится (и не планируется). То есть при выдаче сертификата не проверяется законность деятельности, осуществляемой на сайте. Впрочем, при выдаче платных OV сертификата законность и чистота бизнеса (то есть юрлица) тоже не проверяется. Только при выдаче EV сертификата проверяются документы о регистрации, налоговая документация, телефон, владение доменом и род деятельности компании.
  • Сертификат Let’s Encrypt выдаётся на 3 месяца (90 дней).
  • Можно заказать только 50 сертификатов в неделю на один домен первого уровня и его поддомены (например, сертификат на domain.ru+www,domain.ru, сертификат на host1.domain.ru+www.host1.domain.ru — это два сертификата из пятидесяти);
  • Если у вас много поддоменов, то можно все поддомены указать в одном сертификате, но не более 100 поддоменов в одном сертификате.
  • Не более 5 дублирующихся сертификатов в неделю. То есть нельзя запросить на один и те же данные, на один и тот же домен дубль уже выданного в течение недели сертификата более 5 раз.
  • Let’s Encrypt не предоставляет гарантий и не выплачивает компенсацию в случае утечки данных, так как является некоммерческой организацией. Как вы понимаете, это и есть плата за бесплатность.
  • Прочие ограничение, связанные с количество регистраций, производимых с одного IP (500 за 3 часа), ограничение на количество ошибок в процессе выпуска сертификата и т.д. я не стал упоминать. Вам это не пригодится.

Существенным из этого списка может показаться только второй пункт про 3 месяца. Это подразумевает, что вам необходимо будет продлевать или ставить сертификат заново. Но все хостинги и панели управления, которые предлагают установку бесплатного сертификата Let’s Encrypt, поддерживают автоматическое обновление и продление сертификата, так что вам заботиться ни о чем не придется.

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

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

Если работы по установке SSL сертификата завершены, нужно проверить его корректность. Сделать это можно с помощью множества бесплатных сервисов. Вот несколько, которые используем мы:

  • https://www.sslshopper.com/ssl-checker.html.
    Просто введите адрес своего сайта с указанием HTTPS протокола в соответствующее поле и дождитесь результата. Он должен быть следующим:

    Проверка корректности SSL-сертификата через www.sslshopper.com
  • https://www.ssllabs.com/ssltest/analyze.html.
    Тоже вводите адрес своего сайта и ждете результатов. Цель — получить оценку A+:

    Проверка корректности SSL-сертификата через www.ssllabs.com

    Кроме итоговой оценки, вы увидите перечень проблем, если они есть.

Настройка переезда на HTTPS для Яндекс.Вебмастер и Google Search Console

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

  1. Добавляем https зеркало в Яндекс.Вебмастер и в Google Search Console.
    Добавляем как отдельный новый сайт с подтверждением права владения.
    Подробная инструкция по добавлению сайтов в панели вебмастеров есть в справках поисковых систем: Яндекс, Google.
  2. Для Google добавляем файл Disavow для канонической версии сайта, если он составлялся ранее (если были отключены ссылки для Google на http версии сайта или на старом домене).

    Нужный вам файл доступен по адресу: https://www.google.com/webmasters/tools/disavow-links?hl=ru&siteUrl=http%3A%2F%2Fwww.site.ru  (www.site.ru надо заменить на адрес вашего сайта)

    Добавляем файл Disavow для https-версии сайта
  3. Генерируем карту сайта с https протоколом.
    Здесь ваши действия могут отличаться в зависимости от системы управления. Приведу небольшую инструкцию для одной из самых популярных коммерческих CMS – 1С-Битрикс.

    • Переходим в раздел Маркетинг – Настройка sitemap.xml – Выбираем существующую http карту и нажимаем на редактирование:
      Настройка sitemap.xml для Битрикс
    • Меняем протокол в выпадающем списке и нажимаем кнопку «Сохранить и запустить»:
      Меняем протокол на https для Битрикс
  4. Указываем в robots.txt карту сайта с версией на https.
    Пример синтаксиса: Sitemap: https://krasnodarflora.ru/sitemap.xml

    Указываем в robots.txt карту сайта с версией на https
  5. Настраиваем 301-редиректы со страниц http на страницы с https. Настраиваем также 301-редиректы со всех зеркал сайта. То есть с https://www, http://, http://www на основное зеркало с https://. Постарайтесь, чтобы все переадресации происходили через один 301-редирект (то есть в один шаг). Подробнее о настройке редиректов можно почитать у нас в блоге.
  6. Если сайт участвовал в программе «Товары и цены» от Яндекса, то обязательно нужно подключить данную программу и на https версии сайта.
  7. Проводим сканирование сайта на предмет оставшихся абсолютных url с http версией. Заменяем их на относительные, то есть убираем у всех ссылок протокол с указанием домена. В итоге ссылки вида https://alaev.info/blog/post/6848 превратятся в /blog/post/6848.
  8. Сообщаем о переезде в панели вебмастера Яндекса, отметив галочку «Добавить HTTPS» на вкладке «Переезд сайта». И не забываем нажать кнопку Сохранить.
    Сообщаем о переезде в панели вебмастера Яндекса
  9. В течение пары минут в случае успешного выполнения всех предыдущих действий вы увидите сообщение, что заявка принята и вместо http версии сайта в поиске появится https версия:
    Сообщение, что заявка принята
  10. Указываем для https версии сайта регион в Яндекс.Вебмастере и Яндекс.Справочнике:
    Указываем для https версии сайта регион
  11. Указываем для https версии сайта актуальную карту сайта с https протоколом в Яндекс.Вебмастере:
    Указываем для https версии сайта актуальную карту сайта с https
  12. Аналогично и в Google Search Console:
    Указываем sitemap.xml на https в Google Search Console
  13. Ждем склейку зеркал. Когда она произойдет, должно прийти уведомление об изменении основного зеркала, а также в Яндекс.Вебмастере сайты должны будут указываться как зеркала:
    Склейка зеркал в Яндекс.Вебмастере
  14. В Google ничего подобного вы не увидите. Обе версии сайта будут продолжать указываться как два разных сайта:

    В Google склейка сайтов никак не отображается

    Но в отчете «Покрытие» страницы будут исключены из поиска с типом ошибки «Страница с переадресацией»:

    Отчет Покрытие в Google
  15. Следите за процессом склейки. Проверяйте, что http страницы выпадают из поиска Яндекса и Google. Постепенно они исчезнут полностью.
Мы рекомендуем не удалять http версии проектов из панелей вебмастеров, так как это позволяет оперативно увидеть ошибки, которые могут возникнуть в дальнейшем, если, например, отпадут редиректы.

Во время переезда следите за тем, как ведет себя трафик и позиции. Возможны кратковременные провалы и в том, и в том.

Вот пример одного переезда.

Так себя вел трафик после настройки редиректов:

Так себя вел трафик после настройки редиректов

А так себя вели позиции:

А так себя вели позиции

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

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

И в самом конце хочется дополнить нашу инструкцию вспомогательными ссылками на инструкции от Яндекса и Гугла:
Google: Защитите свой сайт с помощью HTTPS
Google: Перенос сайта с изменением URL
Яндекс: Переезд сайта после отказа от директивы Host
Яндекс: 301 редирект заменит директиву Host при выборе главного зеркала

На этом точно все, друзья.

Спасибо за внимание и удачных вам переездов!

Если есть вопросы, задавайте в комментариях.

Ерунда и баянЪ!Зачет! Плюсую!
+5
Подписка на новые посты:

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

15 000 руб.

Комплексный подход к решению поставленных задач: достижение топ-10 и увеличение трафика на сайт. В стоимость уже включены полный технический аудит и оптимизация сайта.

25 000 руб.

У вас недостаточно знаний и нужны ответы на вопросы?
Интересует мнение эксперта или надо проверить подрядчика?
Вы задаете вопрос — я отвечаю!

5 000 руб./час

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

50 000 руб.

Комментарии: 27 Написать комментарий
  1. seoonly.ru (39 комм.)

    Что за сервис съема позиций?

    Ответить
  2. Стас (1 комм.)

    А почему alaev.info на http? Пора бы уже переехать ) Как говорится, сапожник без сапог)

    Ответить
    • АлаичЪ

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

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

      Ответить
      • Юрий (2 комм.)

        а разве на WP сложно переезжать? мне из всех cms показалось самым простым )

        плагин же есть, easy ssl называется вроде

        Ответить
        • АлаичЪ

          А практика показывает, что далеко не всегда это тривиальная задача.

          Ответить
  3. devarts (1 комм.)

    Переводя свой сайт работающий на DLE на HTTPS, решил не заморачиваться и закрыл HTTP версию принудительным 301-м редиректом.

    Все закончилось успешно. Тогда еще ТиЦ =10 сначала обнулился, но спустя 2 месяца все вернулось назад.

    Ответить
    • АлаичЪ

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

      Ответить
  4. Влад (1 комм.)

    Хорошая статья, спасибо! Скажите, пожалуйста, а если ранее была склейка доменов А и B и теперь сайт B переходит на https. Нужно менять редирект с домена А на https://siteB или можно так и оставить редирект с А на http://siteB ?

    Ответить
    • АлаичЪ

      Да, если такая возможность есть, то стоит заменить редирект с домена А на https:// сайта B

      Ответить
  5. Evgen (1 комм.)

    Зачем вообще этот риск потерять трафик из-за смены протокола? Главное преимущество HTTPS: зашифрованное соединение нельзя прехватить с помощью стороннего сервиса и использовать оставленные на сайте данные в мошеннических целях. При переходе на HTTPS незащищенное соединение заменится на зеленое безопасное .

    Ответить
    • АлаичЪ

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

      Ответить
  6. Rizonoff (7 комм.)

    Помогите плиз!

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

    Так понимаю что проблема в редиректе. Перерыл весь инет, перечитывал вашу статью несколько раз про 301 редирект — безрезультатно. Писал хостеру — молчат.

    Что делать? Движок ДЛИ 11.0

    А вот начало кода .htaccess

    DirectoryIndex index.php

    RewriteEngine On

    # Редиректы

    RewriteCond %{ENV:HTTPS} !on

    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

    RewriteRule ^page/([0-9]+)(/?)$ index.php?cstart=$1 [L]

    Ответить
    • АлаичЪ

      Что значит не работает пагинация? Она может работать, но неправильно, а как именно неправильно, что происходит при переходе по ссылке?

      PS Всегда рекомендую брать дефолтный htaccess файл и вносить в него правки пошагово. Например, для начала только настроить редирект с http на https и проверить весь сайт.

      Я потому говорю, что "начало кода .htaccess" не похоже на дефолтное, даже если убрать оттуда две строки про редиреrт на https.

      Ответить
      • Rizonoff (7 комм.)

        Это и есть дефолтный .htaccess

        А при клике на другие страницы (со 2-й и далее, первые работают) стало выдавать что "Не удаётся установить соединение с сайтом. Не удалось найти IP-адрес сервера"

        Ответить
        • Rizonoff (7 комм.)

          То есть я брал дефолтный .htaccess разницы с тем что на сайте не увидел но заменил и потом вносил изменения. Подошли только эти две строки со статьи про 301 редирект (но как видно не совсем)

          Ответить
          • АлаичЪ

            Вот еще момент, а в настройках в админке тоже везде, где надо, прописан https адрес сайта? Думаю, что 11 версия не такая уж свежая, может быть она не очень приспособлена к https и как-то там надо хитрить...

            Ответить
            • Rizonoff (7 комм.)

              Похоже. Хостеры тоже голову ломают уже 4 часа.

              Вместо ссылки https://мой_сайт.ру/krasnoyarsk/page/2/ система выдаёт https://krasnoyarsk/page/2/

              Ответить
              • Rizonoff (7 комм.)

                Спустя 4 часа глупых вопросов хостинг ответил — "По данному вопросу требуется уточнять информацию на официальных ресурсах CMS или у разработчика сайта"

                Ответить
                • Rizonoff (7 комм.)

                  Спасибо огромное за статью. Проблема оказалась в одном из модулей. Начал удалять по одному и нашел.

                  Ответить
                  • АлаичЪ

                    В каком модуле? Ну, просто ради интереса спрашиваю.

                    Ответить
                    • Rizojoff (7 комм.)

                      Модуль сортировки по доп.полям xSearct 1.0 Pro

  7. Гость (2 комм.)

    АлаичЪ, ты обещал статью про переезд на https сайтов на WordPress, напиши пожалуйста.

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

    Ответить
    • АлаичЪ

      Сегодня о ней вспоминал... Блин, ну значит придется писать. Не обещаю это сделать очень быстро, но займусь этим. Мне и самому надо переезжать!

      Ответить
  8. Петр (4 комм.)

    Последнее время на популярных форумах пишут что с переездом на Яндексе все ОК, и вот в Гугле бывает просадка на 10-50% которая иногда и не возвращается. Советуют не настраивать 301 редирект сразу, а оставлять сайт доступным по двум протоколам но прописывать каноникал на https. И, спустя время, когда страницы в индексе гугла заменятся на https, вот тогда уже ставить 301. Как вы относитесь к такой схеме? Использовали ее когда-нибудь? И что на счет разговоров о просадке и не возвращении трафика с Гугла?

    Ответить
    • АлаичЪ

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

      Ответить