В этой статье я расскажу о том, как перевести сайт на протокол HTTPS, с учетом своего собственного опыта. Поисковая система Google начала подталкивать сайты для перехода с протокола HTTP на протокол HTTPS.
HTTP — незащищенный протокол, который используется для получения информации с сайтов в интернете. Протокол HTTPS (HyperText Transfer Protocol Secure) является защищенным расширением протокола HTTP, в целях безопасности поддерживающим шифрование между браузером и сайтом.
Сайты, перешедшие на защищенный протокол HTTPS, используют SSL сертификат для проверки безопасности соединения. SSL сертификаты выдаются специальными центрами сертификации, которые гарантируют, что данные передаются по защищенному соединению. Сертификаты безопасности бывают различного типа.
Поисковые системы перешли на HTTPS. Например, вслед за Google, Yandex перешел на HTTPS.
Зачем переходить на HTTPS? В целях большей безопасности, повышения доверия, получения лучших позиций в поисковых системах (в перспективе).
Нужно ли переходить на HTTPS всем сайтам? В данный момент, в этом нет необходимости. Перевод на защищенный протокол HTTPS необходим сайтам, имеющим авторизацию, принимающим платежи и т. п.
Стоит ли переходить на HTTPS? Я думаю, что стоит. Возможно, что Google принудит к этому, а Яндекс часто повторяет его действия с некоторой задержкой. Яндекс перешел на защищенный протокол, перевел на него все свои сервисы.
Гугл может воздействовать на сайты, не только ранжируя их в поисковой выдаче, а непосредственно в самом популярном браузере Google Chrome. Возможное развитие ситуации: в адресной строке браузера, при вызове сайта с протоколом HTTP, появится заметный красный значок, сигнализирующий об опасности. Из-за этого, данный сайт серьезно потеряет в посещаемости, со всеми вытекающими последствиями. Если действия Google поддержат другие популярные браузеры, то многие владельцы сайтов сами переведут свои сайты на HTTPS.
Далее я расскажу, как я перевел свой сайт, работающий на WordPress, на защищенный протокол HTTPS. Вам придется решить самостоятельно переходить ли на https, или нет.
Последовательность перехода сайта на HTTPS
Переезд сайта с HTTP на HTTPS состоит из трех основных последовательных шагов:
- Предварительная подготовка сайта к переносу на протокол https.
- Технический перевод сайта на https.
- Настройка сайта для поисковых систем после перехода на https.
Переход моего сайта на протокол HTTPS прошел без потери позиций в поисковых системах, падения посещаемости не было.
История перевода моего сайта на HTTPS
После изучения этого вопроса, сначала я решил, что буду оттягивать переезд своего сайта на протокол https как можно дольше, из-за финансовых соображений, чтобы не платить лишние деньги за SSL сертификат. У меня обычный сайт, на котором не происходит передача каких-либо личных данных.
Хостинг Спринтхост предложил установить бесплатный SSL сертификат от Let’s Encrypt. Let’s Encrypt — бесплатный SSL сертификат, созданный под эгидой таких известных IT-компаний: Mozilla, Cisco, Akamai, Facebook и т. д.
Настали новогодние выходные, у меня появилось свободное время. Поэтому я решил попробовать перевести свой сайт на защищенный протокол.
Первая попытка завершилась неудачей. После подключения SSL сертификата и изменения адреса сайта, у меня начались проблемы с входом в админ-панель сайта. В тот момент, у меня не было времени на разбирательство, я просто отключил SSL сертификат на хостинге, а затем решил проблему входа в админку.
Вторая попытка оказалась намного серьезнее. Я обсуждал возможные проблемы входа в административную панель сайта с техподдержкой хостинга, и они мне предложили самостоятельно настроить мой сайт на протокол HTTPS. Я согласился, пусть сами все сделают.
В итоге, через пять часов мне пришло письмо о том, что протокол на сайте работает. Правда была одна проблема: на самом сайте, кроме изображения в шапке сайта и названия последней опубликованной статьи, ничего не было. Вообще ничего (пустое место) на всех страницах сайта. Зато в адресной строке гордо красовался зеленый значок. Они мне написали, что с темой, установленной на сайте, что-то не так, обратитесь к разработчику темы, или установите стандартную тему, и все хорошо заработает.
Возможно, эта ситуация возникла из-за того, что дело происходило 2 января. Сайт восстановили из резервной копии.
После этого, я решил самостоятельно перевести свой сайт на защищенный протокол (третья попытка), да и SSL сертификат был подключен.
Восстановленный сайт имел проблемы с входом в админ-панель, которые я решил следующим образом: удалил 301 редирект на https из файла htaccess, и убрал «s» из двух URL сайта в таблице базы данных. Все дальнейшие мои действия по переводу сайта, заняли совсем немного времени.
Как правильно перейти на https? Посмотрим мои действия последовательно по шагам.
Подготовка к переходу на HTTPS
Перед тем, как перенести сайт на HTTPS, необходимо выполнить подготовительные действия. Потребуется заменить абсолютные ссылки в статьях на сайте, на относительные ссылки.
В статьях на сайте есть ссылки на изображения, ссылки на другие статьи сайта. Из внутренних ссылок на сайте нужно убрать протокол (http), для того, чтобы ссылки работали при любом протоколе: незащищенном (http) или защищенном (https), без разницы.
Поисковые системы рекомендуют делать внутренние ссылки без указания протокола, и если возможно, то и внешние ссылки. В относительных ссылках отсутствует протокол, поэтому такие ссылки работают на сайте при любом варианте протокола (http, https).
Пример абсолютной ссылки с протоколом:
http://vellisa.ru
Пример относительные ссылки, в которой нет протокола:
//vellisa.ru
Для замены ссылок я использовал плагин Search Regex. Включите плагин Search Regex, а затем выполните следующие действия:
- В поле «Search pattern» введите часть ссылки (на этом примере, часть ссылки на изображение), в которой указан протокол (http:).
- Нажмите на кнопку «Search», после этого, на странице отобразятся все найденные подобные ссылки и их количество.
- В поле «Replace pattern» введите такую же часть ссылки, только без указания протокола (смотрите пример на изображении).
- Нажмите на кнопку «Replace & Save».
- После этого, все подобные ссылки в статьях на сайте изменятся.
Теперь все ссылки на изображения на сайте будут без указания протокола:
было: src="http://vellisa.ru/wp-content/uploads/2017/01/0-2.png стало: src="//vellisa.ru/wp-content/uploads/2017/01/0-2.png
Подобным образом измените внутренние ссылки (уберите оттуда протокол) на другие статьи своего сайта (внутренняя перелинковка).
Я не рекомендую использовать для поиска конструкцию «http://» (без кавычек), а для замены «//» (без кавычек), так как в этом случае заменятся все ссылки в статьях, а не только внутренние ссылки вашего сайта. Если в статьях вашего сайта есть ссылки на партнерские продукты, то после замены, ссылки могут стать битыми или вести не туда куда нужно.
При подготовке к переносу сайта на защищенный протокол, мы решаем сразу три задачи: убираем протокол из ссылок, удаляем лишний код с сайта, выполняем рекомендации поисковых систем.
Переводим сайт на HTTPS
Перед началом изменений, обязательно, создайте резервную копию сайта и базы данных. В случае возникновения серьезных проблем, вы сможете вернуть свой сайт в прежнее состояние из резервной копии. Если вы используете на своем сайте плагин безопасности, отключите его на время перехода на https для того, чтобы он не мешал вашим действиям по переводу сайта на защищенный протокол.
Как перевести сайт на HTTPS, и что нужно сделать? Порядок действий следующий:
- Подключение SSL сертификата.
- Добавление директивы в файл wp-config.php.
- Изменение URL сайта в админ-панели.
- Изменение URL ссылок на сайте при помощи плагина Velvet Blues Update URLs.
- Внесение изменений в файл robots.txt.
- Установка 301 редиректа на https в файле htaccess.
- Исправление ошибок после перевода сайта на HTTPS.
- Настройка сайта в Google Search Console.
- Настройка сайта в Яндекс Вебмастер.
Вначале необходимо подключить к сайту SSL сертификат. Я не буду на этом останавливаться, так как на сайтах используется разные способы получения и подключения сертификата.
Подключение бесплатного SSL сертификата от Let’s Encrypt на хостинге Спринтхост занимает всего несколько минут.
После подключения SSL сертификата, сайт станет открываться сразу по двум протоколам «http» и «https». Убедитесь в доступности сайта по HTTP и HTTPS в разных браузерах.
При открытии сайта по протоколу HTTPS, отображение некоторых элементов сайта, возможно, будет некорректным из-за того, что они подгружаются по старому протоколу HTTP.
Добавление директивы в файл wp-config.php
Войдите по FTP на хостинг, откройте файл wp-config.php, который расположен в корне сайта (папка «public_html») на Вордпресс.
В файл wp-config.php необходимо добавить следующий код:
define('FORCE_SSL_ADMIN', true);
Вставьте код в верхней части файла, сразу после комментариев (после текста, отмеченного звездочками). Эта директива требуется в том случае, если при работе с панелью администрирования по защищенному протоколу возникает циклическая переадресация.
В моем случае, при попытках входа в админ-панель сайта, происходила переадресация на 404 страницу (страница не найдена).
Войдите в админ-панель по протоколу HTTPS. При необходимости, очистите кэш и удалите куки (cookie) в браузере.
Изменение URL сайта в настройках админ-панели
В админ-панели WordPress войдите в «Настройки». В разделе «Общие настройки» измените «Адрес WordPress (URL)» и «Адрес сайта (URL)» с протокола http на протокол https. Добавьте букву «s» в протокол, а затем нажмите на кнопку «Сохранить изменения».
Изменение URL на сайте плагином Velvet Blues Update URLs
Далее необходимо удалить указание протокола со всех ссылок, имеющих в своем адресе название вашего сайта.
Для этого установите, а затем активируйте плагин Velvet Blues Update URLs.
- Войдите в «Инструменты» => «Update URLs».
- В поле «Old URL» введите старый адрес сайта (обязательно поставьте прямой слеш в конце адреса). В поле «New URL» введите новый адрес сайта (с HTTPS), в котором обязателен прямой слеш на конце адреса.
- Выберите указанные на изображении настройки для изменения ссылок в содержании страниц, в выдержках, в ссылках, во вложениях (изображения, документы, медиа), в полях мета данных.
- Нажмите на кнопку «Update URLs NOW».
Отключите плагин Velvet Blues Update URLs, он больше не нужен, его можно удалить.
Внесение изменений в файл robots.txt
Для поисковой системы Яндекс необходимо явно указать протокол в директиве Hosts в файле robots.txt. По умолчанию, директива Hosts в файле robots.txt указана без протокола. В директиву Hosts нужно добавить протокол HTTPS.
Если в файле robots.txt есть ссылки на карту сайта, добавьте в ссылки протокол HTTPS.
После обновления, директивы в файле robots.txt моего сайта выглядят следующим образом:
Host: https://vellisa.ru Sitemap: https://vellisa.ru/sitemap.xml.gz Sitemap: https://vellisa.ru/sitemap.xml
Установка 301 редиректа на HTTPS
Установите 301 редирект (перенаправление) с HTTP на HTTPS для того, чтобы сайт открывался только по одному адресу. Это необходимо сделать для поисковой системы Google.
Перенаправление добавляется в файл .htaccess. Уточните в техподдержке своего хостинга, какой именно вариант 301 редиректа на протокол https, следует использовать на данном хостинге. В интернете можно найти разные варианты подобных перенаправлений.
На хостинге Спринтхост используется следующий вариант 301 редиректа:
RewriteEngine On RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
Совет: поместите код 301 редиректа в самую верхнюю часть файла htaccess.
Проверьте работу 301 редиректа: вставьте ссылку на сайт с протоколом HTTP, убедитесь, что по этой ссылке страница сайта открывается с протоколом HTTPS.
Яндекс рекомендует дождаться склейки зеркал сайта, а потом использовать редирект, для того, чтобы не произошло исключение страниц сайта из индекса. Я сразу становил 301 редирект, не стал ждать склейку зеркал. Возможно, этого уже не требуется.
В настоящее время, при переходе сайта на защищенный протокол по правилам Яндекса, на сайте нужно сразу установить 301 постраничный редирект.
Исправление ошибок после перехода на HTTPS
Если, после перехода на защищенный HTTPS протокол, в адресной строке браузера не отображается зеленый значок, то значит, что на данной странице есть, так называемые, ошибки смешанного содержимого. На странице HTTPS имеется HTTP содержимое, которое не защищено, поэтому содержимое таких страниц, называют смешанным.
Исправить ошибки придется самостоятельно. Выявить ошибки смешанного содержимого можно с помощью режима (инструментов) разработчика в браузере. Откройте сайт в браузере, нажмите на клавишу «F12».
В инструментах разработчика, во вкладке Console (Google Chrome) или во вкладке «Консоль» (Mozilla Firefox) обратите внимание на ошибки «Mixed content» («Смешанного содержимого»). Найдите эти файлы, измените ссылки.
На моем сайте были две ошибки смешанного содержимого: ссылка на изображение в шапке сайта и ссылка на фавикон. В настройках темы я добавил в URL адреса букву «s». После этого, на всех страницах сайта отобразился зеленый значок.
Проверьте сайт в разных браузерах, убедитесь, что на разных страницах (статьи, рубрики, страницы и т. д.) отображается зеленый значок. Рекомендую проверить доступность сайта в браузере Mozilla Firefox, иначе можно потерять посетителей с этого браузера, так как я наблюдал недоступность некоторых сайтов, которые были доступны в это время из браузера Google Chrome.
Проверьте корректность работы сайта по SSL на сервисе https://www.sslshopper.com/ssl-checker.html. После проверки на сервисе, везде должны стоять зеленые значки. Если где-то их нет, необходимо решить эти проблемы.
Настройка сайта в Google Search Console
Войдите в Search Console Google, нажмите на кнопку «Добавить ресурс», добавьте свой сайт с протоколом HTTPS. Подтвердите права собственности на свой сайт.
Откройте свой сайт в Search Console по новому протоколу. В разделе «Сканирование» => «Файлы Sitemap», добавьте ссылку на карту сайта в XML (sitemap.xml). Больше ничего делать не нужно, Google поймет, что сайт переехал на HTTPS, постепенно проиндексирует страницы сайта по новому протоколу.
На почту придет письмо от Google с рекомендациями, проигнорируйте это письмо.
Настройка сайта в Яндекс Вебмастер
Войдите в Вебмастер Яндекс, в разделе «Индексирование» => «Переезд сайта», поставьте галку напротив «Добавить HTTPS», а затем нажмите на кнопку «Сохранить». Переезд сайта займет некоторое время.
Добавьте сайт с протоколом HTTPS в Яндекс Вебмастер https://webmaster.yandex.ru/sites/add/ и подтвердите права на его управление.
Войдите в раздел «Индексирование» => «Файлы Sitemap». Добавьте ссылку на карту сайта в XML (https://домен_сайта /sitemap.xml).
Я допустил ошибку: не добавил сайт по протоколу HTTPS в Яндекс Вебмастер, работающий по протоколу HTTP. Возникла такая ситуация: сайт работал в обычном режиме, переезд сайта на HTTPS состоялся, все страницы сайта выпали из индекса, ТИЦ обнулился. Прошло больше трех недель, в индексе страниц нет, посещаемость у сайта обычная, ссылки в поиске работают по протоколу HTTPS, при попытке добавить новые статьи в «Оригинальные тексты», Вебмастер не разрешает мне добавлять ссылки по защищенному протоколу.
Я написал в техподдержку Яндекса, и через несколько часов получил ответ от Платона Щукина. Он объяснил мне ситуацию: мой сайт добавлен в Яндекс Вебмастер по протоколу HTTP, сайт выполняет перенаправление на новый адрес с HTTPS, мне нужно добавить сайт в Вебмастер и подтвердить на него права.
Я добавил сайт с HTTPS в Вебмастер, добавил ссылку на карту сайта в XML. Через сутки все страницы сайта по новому протоколу попали в индекс Яндекса.
После перевода моего сайта на протокол HTTPS, повысилась посещаемость с поисковой системы Яндекс. После очередного апдейта, вернулись показатели ТИЦ сайта.
Дополнительные настройки
Внесите изменения в свой профиль в Google Analitics (Universal Analitics), настройте URL по умолчанию с HTTPS. Добавьте новые ссылки на сайт на других ресурсах, поменяйте URL сайта в своих профилях социальных сетей, YouTube и т. п.
Выводы статьи
Для переезда сайта на HTTPS, необходимо выполнить определенные действия для того, чтобы правильно перейти на протокол HTTPS, без падения посещаемости и потери позиций в поисковых системах.