Перенос сайта WordPress на защищенный протокол HTTPS

Перевод сайта на httpsДо 2017 года особо не задумывался о переводе сайтов на протокол HTTPS, но в начале года собрался создавать новый информационный проект строительной тематики и решил, как обычно, собрать информацию о лидерах нищи. Выделил для себя шесть топовых сайтов и обнаружил, что три из них работают по протоколу HTTPS — это была веская причина чтобы призадуматься…

Переезжать или нет?

Свой первый сайт я создал в 2005 году на бесплатном хостинге narod.ru. За прошедшее время была возможность наблюдать за теми изменениями которые происходят в поисковой выдаче. Уже в 2005 году,  для лучшего ранжирования, поисковики рекомендовали наполнять информационные сайты качественным контентом. Однако веб-мастера только посмеивались над этими рекомендациями и клепали откровенные ГС которые весьма неплохо чувствовали себя в выдаче. Часть этих сайтов была заполнена бредо-текстами сгенерированными автоматически. Но время шло и предсказания Яндекса и Google начали претворяться в жизнь — благодаря поведенческим и другим факторам, в ТОП-е выдаче обосновались сайты с текстами интересными для людей.

Рано или поздно, но приходиться начинать играть по правилам поисковых машин.

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

Необходимо обратить внимания на тот факт, что Google не делает исключения для информационных сайтов. Дело в том, что «настоящая безопасность» касается не только платежей, но и конфиденциальности о действиях пользователей в Сети.

Что касается Яндекса, то в ближайшее время он никаким образом не планирует дискредитировать сайты работающие по протоколу HTTP (см. статью «Деликатный переезд на https или о чем еще стоит знать» от 20 марта 2017 года).

Нужно ли переходить на HTTPS? Поможет ли это улучшить позиции?

В поисковой системе Яндекс сайты по протоколу HTTP/HTTPS индексируются и участвуют в поиске на равных условиях. Принимая решение о подключении SSL-сертификата, ориентироваться стоит на безопасность пользователей. Например, в случаях, если на сайте можно совершать покупки или другие операции с финансами.

Планируете ли вы помечать все сайты по протоколу HTTP как небезопасные?

Таких планов в настоящий момент нет.

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

Негативные факторы

В статье под авторством Платона Щукина  «Деликатный переезд (или рекомендации Яндекса по переезду на HTTPS)» от 23 октября 2015 года, сказано:

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

В статье ничего не сказано о тИЦ (тематический индекс цитирования). Около месяца назад, я менял главное зеркало у «народного» сайта размещенного на uCoz. После склейки зеркал, основным стал домен второго уровня (протокол https), при этом тИЦ 140 обнулился. Вчера тИЦ вернулся с приростом 10 пунктов. О восстановлении тИЦ в течение месяца говорят и другие веб-мастера.

Теперь обратимся к справке Google:

Смена протокола сайта с HTTP на HTTPS считается переносом сайта с изменением URL. Это действие может временно повлиять на учет трафика.

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

Подготовка к переезду на HTTPS

Исходим из того, что сайт уже ранее добавлен в Яндекс.Вебмастер по протоколу http.

Установка бесплатного сертификата SSL

Первоначально установим только сертификат SSL и посмотрим, что после этого произойдет. Поскольку мой блог размещен на хостинге Beget, то задача значительно упрощается. Заходим в раздел Домены и щелкаем по иконке Управление SSL сертификатами.

Щелкаем по иконке Управление SSL сертификатами
Щелкаем по иконке Управление SSL сертификатами

На данный момент, уже многие хостеры предлагают своим клиентам бесплатные сертификаты, Beget не исключение. На вкладке Бесплатный SSL сертификат необходимо указать поддомены (если они есть) и щелкнуть Установить.

Поскольку у домена mukhutdinov.com нет поддоменов, то просто щелкаю по кнопке "Установить"
Поскольку у домена mukhutdinov.com нет поддоменов, то просто щелкаю по кнопке «Установить»

Ровно через 20 минут на e-mail пришло сообщение о том, что сертификат был установлен на домен mukhutdinov.com, т.е. на выпуск и установку сертификат потребовалось всего 20 минут.

Напротив домена появился зелёный значок указывающий на то, что SSL-сертификат установлен
Напротив домена появился зелёный значок указывающий на то, что SSL-сертификат установлен

Если вы заказываете SSL-сертификат на только что купленный домен, то на выпуск и установку сертификата может уйти несколько суток.

Посмотрим, что изменилось после установки сертификата.

  • Изменился IP адрес сайта;
  • Сайт стал доступен по двум адресам — httр://mukhutdinov.com и httрs://mukhutdinov.com;
  • Практически все документы сайта стили доступны по протоколу https, за исключением страниц с произвольными ссылками (ссылки были указаны с http).

Ссылки внутренней перелинковки из контента записей проставлялись «вручную», т.е. они остались с протоколом http.

При помощи сервиса www.ssllabs.com можно проверить качество установленного SSL-сертификата.

У SSL-сертификата рейтинг класса "А", выше только "А+"
У SSL-сертификата рейтинг класса «А», выше только «А+» (кликабельно)

В полном отчете есть информация и о сроке действия сертификата (valid until).

Теперь необходимо перевести на защищенный протокол внутреннею перелинковку.

Изменение внутренних ссылок

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

В различных интернет-источниках предлагают разные варианты внутренней перелинковки:

  1. //mukhutdinov.com/kak-dobavit-sajt-v-yandex-webmaster.html (относительная ссылка)
  2. /kak-dobavit-sajt-v-yandex-webmaster.html (относительная ссылка)
  3. httрs://mukhutdinov.com/kak-dobavit-sajt-v-yandex-webmaster.html (абсолютная ссылка)

В качестве эксперимента я опробовал первые два варианта, но оба они привели к тому, что после внесения изменений в базу данных я не смог зайти в консоль WordPress. Яндекс.Браузер не выдавал никаких сообщений, а Google Chrome и Opera жаловались на «куки».

WordPress: ОШИБКА: Cookies либо заблокированы, либо не поддерживаются вашим браузером. Источник: http://jkeks.ru/jkeks.ru/archives/8175
Сообщение об ошибке при попытке войти в админку WordPress

Честно говоря я так и не сообразил в чем причина проблемы и решил воспользоваться третьим вариантом, т.е. внутренние ссылки оставить абсолютными указав протокол https.

Берём из бекапа базу данных (файл с расширением .sql), создаем копию и открываем её при помощи текстового редактора NotePad ++. При помощи поиска находим внутренние ссылки и вносим необходимые изменения.

Находим внутренние ссылки с протоколом http и меняем их на ссылки с протоколом https. В конкретном случае было изменено 13 303 ссылки

Сохраняем изменения и архивируем файл (zip-архив) для более быстрой загрузки. Теперь нам потребуется phpMyAdmin — в разделе Управление базами данных MySQL щелкаем по соответствующему значку.

Переходим в phpMyAdmin
Переходим в phpMyAdmin

При помощи phpMyAdmin импортируем подготовленный нами файл в базу данных сайта.

Указываем местоположение файла базы данных на локальном компьютере и нажимаем кнопку «Вперед»

Если импорт прошел успешно, то должно появиться сообщение на зелёном фоне.

Данные успешно импортированы

В консоли WordPress открываем Настройки — Общие и убеждаемся, что сайт настроен на защищенный протокол.

WordPress настроен на защищенный протокол
WordPress настроен на защищенный протокол

Переезд сайта в Яндексе и Google

Яндексу можно подать следующие сигналы о переезде сайта на https:

  1. Прописать директиву Host;
  2. Сообщить о переезде в Яндекс.Вебмастере указав основное зеркало с https;
  3. Настроить 301-редирект.

Что касается Google, то для него подойдет только третий  вариант (301-редирект).

Директива Host актуальна только для Яндекса, Google её игнорирует.

Наша задача заключается в том, чтобы переезд прошел менее безболезненно, т.е. не хочется, чтобы излишне просела посещаемость. Мнений по этому поводу как минимум два. Сергей Кокшаров (devaka.ru) считает, что нужно сразу настраивать 301-редирект. В статье Как перенести сайт на HTTPs. Пошаговая инструкция от 22/06/2015 он пишет:

Раньше (еще в начале года) требовалось ждать, пока Яндекс переклеит зеркала, и уже потом перенаправлять пользователей. Это могло плохо повлиять на трафик из Google. Сейчас не обязательно ждать работу зеркальщика Яндекса, а можно сразу настраивать 301 редирект с HTTP версии на HTTPS.

Для меня в приоритете информация от Яндекса и Google, поэтому первоначально узнаем мнение Платона Щукина.

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

Поскольку статья датирована 23 октября 2015 года, решил посмотреть свежие комментарии.

Вопрос от biperch 29 января 2017:

301 редирект. Нужно ли ждать склейки, а потом ставить 301 или можно сразу ставить? На некоторых ресурсах читал, что уже можно не ждать.

Ответ Платона 03 февраля 2017:

Лучше ставить после склейки.

Интересно было узнать и точку зрения Google. На официальном форуме нашел следующую информацию:

Вопрос Федора Соколовского от 02 января 2017 года:

Суть в том, что рекомендации по переходу на защищенный протокол у Гугла и Яндекса несколько отличаются. Яндекс советует ставить 301 редирект только после переклейки зеркал, для Гугла, если не ошибаюсь, редирект рекомендуется ставить сразу.
Вопрос: Как выйти из ситуации? У меня основной траффик с Яндекс, поэтому больше ориентируюсь на него, но и с Гуглом хочется остаться друзьями, так сказать. На данный момент жду, пока яндекс сделает основным зеркалом версию с https, но как быть с Гуглом? Яша довольно тормозной, он неделями клеить может. Что, если Гугл подхватит в это время https версию и из-за отсутствия редиректов посчитает ее копией, наложит фильтр какой-нибудь.

Ответ эксперта Google от 02 января 2017 года:

Привет, Фёдор!
Мне кажется Вы выбрали правильную стратегию. Сейчас Вам достаточно добавить все четыре версии сайта в GSC и выбрать предпочтительную. После того как в Яндекс.Вебмастер произойдёт смена зеркала — расставить 301.
Если все четыре версии сайта будут идентичны друг другу (обычно это так и есть), то переезд в Google пройдёт штатно.

Итак, если следовать рекомендациям Яндекса и Google, то сперва следует дождаться склейки зеркал в Яндексе, а затем настроить 301-редиректы.

Переезд в Яндексе

В файле robots.txt меняем директиву Host и указываем новый адрес Sitemap:

Host: https://mukhutdinov.com

Sitemap: https://mukhutdinov.com/sitemap_index.xml

У меня на блоге xml-карта генерируется плагином Yoast SEO, по этой причине концовка URL заканчивается sitemap_index.xml, а не sitemap.xml. Замечу, что даже если я укажу адрес https://mukhutdinov.com/sitemap.xml, то робот все равно доберется до карты сайта так как сработает редирект.

Добавляем зеркало с https в Яндекс.Вебмастер.

При добавлении обязательно указываем протокол https

Заходим в раздел Индексирование — Файлы Sitemap и добавляем ссылку на xml-карту сайта.

Добавление в Яндекс.Вебмастер sitemap.xml по протокулу https
Не забываем указать протокол https

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

Ставим галочку Добавить HTTPS и жмем Сохранить
Ставим галочку «Добавить HTTPS» и жмем «Сохранить»

Появится сообщение о том, что заявка обрабатывается.

Заявка на переезд https обрабатывается
Заявка на переезд обрабатывается

В конкретном случае, на обработку заявки ушло двое суток.

В ближайшее время в результатах поиска вместо домена mukhutdinov.com появится https://mukhutdinov.com
Заявка на переезд принята 19 февраля 2017 — через двое суток после подачи

Ранее добавлял энное количество зеркал в зоне .RU — заявки принимались в течение нескольких секунд. В данном случае, ожидание затянулось — либо технический сбой, либо причина в зоне .COM.

Через три дня после принятия заявки на переезд сайта (22 февраля 2017), в Яндекс.Вебмастере около домена с https все ещё была надпись «Данные скоро появятся», т.е. можно было предположить, что процесс еще не начался.  Посмотреть выдачу Яндекса и обнаружил, что по основным (наиболее частотным) запросам появились страницы с https. Обратил внимание на то, что в браузерах Google Crome и Opera, URL главной страницы отображается с жирной зелёной точкой перед дотком.

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

Решил приступить к переезду в Google не дожидаясь сообщения Яндекс.Вебмастер об изменении главного зеркала.

Переезд в Google

Как уже было сказано выше, для Google существует лишь один надежный способ перенаправить трафик с одного документа на другой — использовать 301-редирект (переадресацию).

Открываем файл .htaccess и дописываем следующие строки:

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

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

Для переиндексации сайта, Google вполне достаточно 301-редиректа, однако можно выполнять и дополнительные рекомендации:

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

Согласно справки Google, в Search Console необходимо добавлять все версии сайта:

  • http://mukhutdinov.com
  • http://www.mukhutdinov.com
  • https://mukhutdinov.com
  • https://www.mukhutdinov.com

Добавляем версии сайта в Search Console с указанием протокола.

Добавляем сайт в Search Console
Добавляем сайт в Search Console

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

  1. На главной странице Search Console выберите сайт.
  2. Нажмите на значок шестеренки  и выберите Настройки сайта.
  3. Укажите нужный вариант в разделе Основной домен.

Результаты

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

Количество кликов на сайте работающем по протоколу http практически упало до нуля
Количество кликов на сайте работающем по протоколу http практически упало до нуля
Увеличение кликов на сайте работающем по протоколу https

Что касается Яндекса, то не обошлось без причуд. 26 февраля 2017 года с удивлением обнаружил, что после того, как был настроен 301-редирект, Яндекс надумал вернуть в поиск документы с протоколом http.

Яндекс "выкинул" из поиска часть документов с протоколом https, при этом добавив в поиск документы с протоколом http
Яндекс «выкинул» из поиска часть документов с протоколом https, при этом добавив в поиск документы с протоколом http — переиндексация в обратном порядке

Заглянул в поиск и убедился в том, что те документы, которые четыре дня назад были уже доступны по протоколу https, выдаются снова по протоколу http. Как бы то ни было, 21 марта 2017 года, склейка зеркал отобразилась в Яндекс.Вебмастер.

 

Главный зеркалом признан домен https://mukhutdinov.com

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

Что касается посещаемости, то никаких существенных колебаний не произошло.

Во время переезда блога на протокол https новых материалов практически не добавлялось. Посещаемость не просела

Выводы

Несколько выводов, которые я сделал для себя:

  • Новые сайты сразу запускать с протоколом HTTPS;
  • При переезде на HTTPS, сперва следует осуществить переезд в Яндексе за счет указания директивы Host, дождаться сообщения об изменении главного зеркала в Яндекс.Вебмастер, а затем уже настраивать 301-редирект;
  • Если повезёт, то во время переезда обойдется без проседания трафика.

1 Comment

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*