Переезд на HTTPS, сохраняем позиции в Яндексе и Google

Вопрос переезда сайтов с HTTP на HTTPS волнует все больше пользователей. Тех, чей сайт занимает лидирующие позиции в поисковиках, больше всего пугает подобное изменение – а вдруг позиции сайта значительно просядут? О том, как правильно организовать переход на HTTPS, и будет рассказано в этой статье.

Начнем с того, зачем это вообще нужно? Если кратко и в пределах поисковых систем, то использование на вашем сайте протокола HTTPS повышает рейтинг сайта в глазах Google и Яндекс. Это логично – сайты, обеспечивающие надежную передачу данных, вызывают большее доверие, чем остальные, и поэтому имеют право получать некое преимущество в поисковых системах.

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

Переход на HTTPS – это уже не возможность, а необходимость, если вы хотите развивать свой сайт и привлекать на него новых пользователей.

Следующим будет логичный вопрос: почему смена протокола так важна для поисковых систем? Дело в том, что хотя чисто внешне меняется немногое (название-то сайта остается прежним, как и его содержание!), но передающиеся по двум разным протоколам (HTTP и HTTPS) сайты поисковая система воспринимает как два разных ресурса. Поэтому происходит то же самое, что и при смене одного домена на другой – позиции сайта могут просесть, количество страниц в выдаче и их позиции также могут измениться.

Подготовка

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

Первым делом вам необходимо начать с главного – приобрести и установить SSL-сертификат. Рекомендуем Comodo Positive SSL.

  1. Создайте новую версию, копию вашего сайта, которая будет работать по протоколу HTTPS. На данном этапе у вас должно работать два сайта: один по HTTP, другой по HTTPS. Обязательно проверьте, что они оба работают корректно (особенно сайт, доступный по HTTPS!).
  2. Оба сайта должны содержать файл robots.txt (который помогает ботам индексировать сайт); в нем необходимо прописать сайт, который будет являться главным зеркалом вашего ресурса.

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

Обратите внимание, что в файле robots.txt должно быть указано только одно доменное имя в одной единственной директиве Host! Если вы укажете несколько директив Host, то к рассмотрению будет принята только первая. Если же вы захотите в одной директиве написать сразу несколько доменов, то такая директива будет проигнорирована.

В итоге ваша директива должна выглядеть примерно вот так:

User-Agent: *
Disallow:
Host: https://mysite.ru

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

3. В robots.txt закройте HTTPS-версию вашего сайта от индексации в Google. Это необходимо сделать для того, чтобы исключить появление копии вашего сайта в поисковой выдаче. При этом ваш сайт останется в выдаче – его HTTP-версия.

Для этого необходимо прописать следующее:

User-agent: Googlebot
Disallow: /

4. Также проверьте, что в атрибутах rel=”canonical” и rel=”alternate”, а также в файле sitemap.xml в HTTPS-версии сайта все ссылки были прописаны по соответствующему протоколу.

Яндекс

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

1. Новый сайт необходимо добавить в форму «Переобход страниц» (addurl): http://webmaster.yandex.ru/addurl.xml

Либо добавить сайт отдельно в список своих сайтов в Яндекс.Вебмастере: https://webmaster.yandex.ru/sites/add/

2. И рассказать о переезде своего сайта в Яндекс.Вебмастере в разделе «Настройка индексирования» -> «Переезд сайта»: https://webmaster.yandex.ru/site/index-setup/mirrors/

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

Google

1. Добавьте сайт, работающий по HTTPS-протоколу, в Google Search Console. Вам больше ничего не нужно делать, т.к. система Google воспринимает HTTP- и HTTPS-сайт как один и тот же сайт, доступный по двум протоколам, поэтому после переиндексации вы автоматически увидите в выдаче ссылки не на HTTP, а на HTTPS-версию сайта.

2. Если на HTTP-сайте вы использовали Disavow Tool (инструмент для отклонения обратных ссылок), то обязательно добавьте его и для HTTPS-версии сайта.

После склейки зеркал

После того, как в Яндексе ваши сайты были склеены, нужно настроить редирект с HTTP-сайта на HTTPS-сайт.

Установите серверный 301 редирект; при этом, если это возможно, желательно для каждой страницы старого сайта прописать редирект на соответствующую страницу нового сайта.

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

Обычно для перенаправления нужно добавить вот эти строки:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:X-HTTPS} !1
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

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

После всех правок проверьте, что все работает корректно!

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

Проблема смешанных протоколов

Когда ваш сайт начинает работать сразу на двух протоколах – и HTTP, и HTTPS – есть вероятность возникновения проблемы смешанных протоколов. Это происходит обычно тогда, когда на HTTPS-странице доступны ресурсы, запрос которых происходит по небезопасному HTTP-протоколу.

На деле это выглядит примерно так: у вас есть страница https://mysite.com/, на которой должен загружаться скрипт http://mysite.com/script.js или картинка http://mysite.com/image.png. Оба этих элемента относятся к смешанному контенту и, скорее всего, будут заблокированы вашим браузером (если речь идет о скриптах, то страница просто не будет отображаться).

Что же делать в таком случае?

Нужно заменить все полные ссылки на относительные.

Вместо http://mysite.com/script.js вам нужно прописать //mysite.com/script.js, то есть убрать протокол, либо даже /script.js, убрав также и домен. Ваш код будет выглядеть примерно так:

<h1>Пример, мир!</h1>
<script src="/script.js"></script> 
<link rel="stylesheet" href="//assets.mysite.com/style.css"/> 
<img src="1450829848287066165294"/> 
<p>Обязательно прочитайте <a href="/2016/12/20/">новую статью о кошках!</a></p>

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

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