Как склеить http и https в яндексе

Добавил пользователь Евгений Кузнецов
Обновлено: 19.09.2024

1. Подготовительная работа

то protocol-relative ссылка будет иметь вид:

Аналогично надо поступить, если на сайте есть медиа-контент — изображения, видеоролики, аудиофайлы. Например, если ссылка на изображение имела вид:

то protocol-relative ссылка будет такой:

Также надо использовать относительные ссылки во внешних скриптах. Например, для библиотеки jQuery надо использовать такой код:

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

Указанные действия надо проводить только на собственном сайте — обратные ссылки из внешних источников оставляем без изменений.

2. Покупка и установка SSL-сертификата

По уровню защиты SSL бывают трех типов:

  • Domain Validated. Такие сертификаты стоят от $10-12 в год. Они выдаются физическим и юридическим лицам только для одного домена. Проверяется лишь принадлежность домена тому, кто заказал сертификат.
  • Organization Validated. Сертификаты выдаются только юрлицам. Стоимость уже составит от $40-50 в год. Проверке подлежат документы о государственной регистрации и принадлежность домена.
  • Extended Validation. Использование этого сертификата позволяет получить зеленую строчку с названием компании в браузере. Стоимость — от $130 в год. В этом случае проводится наиболее тщательная проверка компании, поэтому такой сертификат вызывает наибольшее доверие.

Основные поставщики SSL-сертификатов — GlobalSign, Comodo, Thawte, GeoTrust, Symantec, Trustwave. Купить их предлагает большинство хостинг-провайдеров. Они выдаются на срок от 1 до 3-х лет. Каждый провайдер прилагает подробную инструкцию по установке SSL.

После установки проверить корректную настройку SSL можно с помощью сервиса SSL Server Test. Добавляете адрес сайта, и если все в порядке, то результат проверки будет иметь вид:

How to: Как правильно перейти с http на https?

Рекомендуем проверить вручную сайт в разных браузерах и на разных устройствах (ПК, планшетах, мобильных и т. д.), чтобы исключить некорректное отображение.

3. Склеиваем зеркала

Для склейки зеркал в Яндексе, прежде всего, надо внести изменения в robots.txt. Откройте этот файл и исправьте директиву:

Аналогично исправьте директиву:

How to: Как правильно перейти с http на https?

4. Настраиваем 301 редирект

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

Для настройки редиректа надо открыть файл .htaccess — он располагается в корневой папке сайта. Сделать это можно с помощью FTP-клиента типа FileZilla или любого другого. Если файла .htaccess нет, то его надо создать.

Добавьте в файл такие строки:

Если этот редирект не сработает, попробуйте такой вариант:

Если и теперь ничего не вышло, и имеет место циклическая переадресация, то есть третий вариант:

Редирект с помощью .htaccess работает только для хостинга на Linux (для веб-серверов Apache). Если у вас хостинг на Windows, то надо настраивать файл web.config. Для редиректа основного домена и всех поддоменов добавляем такие строки:

Переезд на https

Зачем переезжать на защищенный протокол?

Чтобы ответить на этот вопрос, сначала необходимо дать определение этому протоколу.

Но все изменилось в 2017 году, когда корпорация Google начала массово продвигать данный протокол для сайтов. Популяризация технологии состояла из следующих этапов:

Динамика перехода сайтов на https

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

Рекомендации вебмастера о переезде на https

Виды сертификатов

SSL-сертификаты классифицируют по подлинности и делятся на 3 типа:

На что еще обратить внимание

При покупке сертификата обязательно стоит обратить внимание используются ли поддомены на сайте. Если они есть, обычный SSL установится только на основной домен, а поддомены останутся незащищенными. Чтобы под каждый поддомен не получать индивидуальный сертификат, существует специальный SSL - Wildcard. Wildcard позволяет защитить несколько доменов (поддоменов) одновременно. Поэтому, если у вас крупный проект использующий поддомены или даже дополнительный домены, то выбирать следует именно Wildcard.

Получение бесплатного сертификата для сайта (Let’s Encrypt)

Поле, куда надо ввести доменное имя для получения https

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

Способы верификации домена в сервисе

Самый простой способ - “Manual Verification” - когда в корень сайта необходимо закинуть файл подтверждения. Выбираем данный способ, скачиваем файл. В корне сайта создается папка .well-known (обязательно с точкой), внутри еще одна папка acme-challenge и в нее размещает скачанный файл подтверждения (их может быть 1 или 2). После чего нажимаем “Download SSL Certificate”.

Получение SSL сертификата в сервисе

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

Установка SSL-сертификата на хостинг

Получение SSL на sweb.ru

Заходим в него, нажимаем кнопку “Установить” и на появившейся странице выбираем один из двух способов добавления сертификата к домену - загрузка готового файла, когда надо прикрепить полученные выше данные сертификата. Сертификат для домена (.crt), приватный ключ (.key), промежуточный сертификат (.ca-bundle) - после того, как указали пути для них, нажимаем “Установить”.

Загрузка сертификата на домен в sweb.ru

Так же Sweb.ru с недавних пор позволяет получить сертификат без дополнительных манипуляций, необходимо только в разделе "SSL" нажать кнопку “Установить” и выбрать пункт "Let's Encrypt" и домен, на который его установить.

Получение сертификата Let

Установка SSL в панели управления Timeweb

Заходим в раздел SSL-сертификаты.

Установка SSL на Таймвебе

Форма для установки https на Таймвебе

Для хостинга на Beget даже не требуется телодвижений с получением файлов для установки SSL, чтобы поставить сертификат, достаточно перейти в “Сайты”.

Добавление сертификата в Beget

Процесс установки https в Beget

И в всплывающем окошке кликнуть на “Установить SSL сертификат”.

установка SSL в Beget

Далее, в течении суток, домену будет установлен шифрованный протокол.

Проверка корректности установки SSL-сертификата

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

Проверка корректности SSL сертификата

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

Резервная копия файлов и базы данных

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

Изменение абсолютных ссылок на относительные в исходном коде

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

Относительная ссылка: /page/.

Ссылки на внешние скрипты и картинки

Там же, в шаблонах сайта, все УРЛы на подключаемые JS-скрипты, картинки, библиотеки, шрифты и другие дополнения сразу стоит поменять на относительные. В основном они находятся в шапке и футере.

Настройка карты сайта в Битриксе для https

Редактирование URL на https в Вордпрессе

OpenCart - перевод на защищенный протокол

На FTP находим 2 файла config.php - с одинаковым названием, но разным расположением. Один в корне сайта, второй - в папке /admin/.

В обоих файлах находим строчки:

Дальше переходим в панель администрирования сайта и в настройках, во вкладке “Сервер”, указываем “Включить SSL”.

Включение SSL на ОпенКарте

ModX - тонкости настройки SSL

Смена протокола в ModX

Как и для большинства сайтов выше, в панели управления Джумлы в настройках сервера надо указать безопасный протокол для всего сайта. Путь - “Система” - “Общие настройки” - “Сервер” - поле “Включить SSL”, выбрать “для всего сайта”.

Включение SSL на Джумле

Корректировка robots.txt

Корректировка карты сайта в роботсе

Проверка и настройка sitemap.xml

Вид xml карты сайта после переезда с http на https

Проверка настройки rel="canonical"

rel=canonical на https

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

отображение https-версии в Яндекс Вебмастере

Настройка переезда на https в Яндекс Вебмастере

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

Приводим список 301-редиректов (не последовательных), практически гарантированно работающих на любом веб-сервере Apache:

Случается, что какой-нибудь стандартный вариант перенаправления прописанный в .htaccess не срабатывает, поэтому ниже приведены альтернативные варианты 301 редиректа на защищенную версию сайта.

HTTPS протокол

1. Получение SSL сертификата

Первое, что необходимо сделать – приобрести SSL сертификат (платный или бесплатный) и подключить его к домену. Это можно сделать самостоятельно в панели управления хостингом (ISPmanager, CPanel, VestaCP) или обратиться за помощью в техподдержку. Некоторые хостеры предлагают подключить бесплатный SSL с автоматическим продлением в один клик.

Let’s Encrypt

Но сегодня я не стану затрагивать вопросы, связанные с выбором и установкой SSL сертификата – это отдельная тема. Сейчас у меня подключены сертификаты Let’s Encrypt. До этого использовал StartSSL, но после шумихи с бесплатными SSL-сертификатами StartCom и WoSign последовала закономерная блокировка этих удостоверяющих центров в популярных браузерах.

2. Внесение изменений в robots.txt

Давайте перейдём к файлу robots.txt и изменим директиву Host, указывающую на главное зеркало:

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

С 20 марта 2018 года Яндекс официально прекратил поддержку директивы Host. Её можно удалить из robots.txt, а если оставить, то робот её просто игнорирует.

3. Переезд сайта в сервисе Яндекс Вебмастер

Переезд сайта

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

4. Добавление нового сайта в Google Search Console

Да, в консоли есть инструмент Изменение адреса, но знайте, что в данном случае он не поможет, т.к. в справочной системе есть примечание:

5. Работа с картой сайта sitemap.xml

Sitemap

Для решения описанной проблемы вы можете временно установить более раннюю версию плагина или воспользоваться следующим решением. Для этого достаточно в файл functions.php добавить код, опубликованный ниже:

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

Теперь вернёмся к нашему файлу robots.txt и внесём изменения в пути до карты сайта или добавим нужную строку, если ранее её не использовали:

А в Яндекс Вебмастере и Google Search Console нужно добавить обновлённую карту сайта с новым протоколом.

При сохранении записи в таблицу wp_posts в поле guid записывается глобальный уникальный идентификатор (Globally Unique Identifier). Давайте изменим это поле для смены протокола, выполнив следующий запрос к БД через phpMyAdmin:

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

В комментариях, отвечая на вопросы пользователей, я зачастую ссылаюсь на свои прочие записи, поэтому необходимо провести замену протокола ссылок и в комментариях. Для этого внесём изменения в поле comment_content таблицы wp_comments следующим образом:

На что следует обратить внимание при выполнении этих SQL-запросов:

  • обязательно замените адрес сайта на свой,
  • измените префикс таблиц, если он отличается от стандартного wp_ .

7. Решение проблемы политики CORS

Если на сайте подключены шрифты Font Awesome, тогда они могут не загружаться — это связано с появлением в консоли браузера ошибки примерно такого содержания:

Чтобы избежать появления ошибки достаточно добавить в файл .htaccess строку:

8. Ожидание склейки зеркал в Яндексе

Внимание! В данный момент Яндекс рекомендует сразу ставить 301 редирект для склейки зеркал! Этот 8 пункт инструкции можно пропустить.

Главное зеркало сайта

Но есть исключение из этого правила. Допустимо использовать редирект только в том случае, если исключить из общего правила файл robots.txt. Этого можно добиться, используя в .htaccess:

Все свои сайты я переводил на безопасный протокол только дождавшись склейки через Host, кроме одного. Это был последний сайт на WordPress c установленным в отдельном каталоге форумом на phpBB.

С сайтом явно происходило что-то не ладное, т.к. предыдущие сайты меняли основной домен в течение 2-3 недель, не больше.

Неверный протокол

Ответ техподдержки внушал доверие, но в голове всё равно вертелись мысли, мол наверняка всем так отвечают:

На следующий день был апдейт поисковой выдачи, а также тИЦ. Не знаю, совпадение или нет, но уже на следующий день я наконец-то получил долгожданное уведомление о смене главного зеркала! Думаю, что моё обращение сыграло свою роль 🙂

Редирект на HTTPS

Открываем phpMyAdmin и выполняем следующий SQL-запрос к базе данных, с помощью которого делаем замену полей с опциями home и siteurl в таблице wp_options:

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

Подведение итогов

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

Стоит отметить, что в последнее время Яндекс стал чаще выкатывать апдейты поисковой выдачи (практически через день), поэтому переезд не растянется на продолжительный период. А Google активно начинает индексировать сайт по новому протоколу после настройки редиректа, с ним проблем быть не должно.

Переход на HTTPS

Графики посещаемости я не стал публиковать, но могу гарантировать — снижения трафика не наблюдалось, даже более того, по некоторым проектам зафиксирован незначительный рост 😎 Желаю всем удачи!

Первое, что необходимо сделать, это добавить в сервис Яндекс.Вебмастер сайт с новым доменом, как показано на картинке.

Добавить сайт с https в Яндекс вебмастер

Далее нам нужно в панели управления пройти в раздел Индексирование → Переезд сайта.

Переезд сайта с http на https в Яндекс.Вебмастер

Добавление карты Sitemap в Яндекс.Вебмастер

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

Добавление карты sitemap в Яндекс.Вебмастер - переезд сайт на https

Заходим в раздел Индексирование → Файлы Sitemap. И в появившуюся строку пишем новый адрес карты. У меня он выглядит так:

Для удобства можете просто скопировать эту ссылку и вставить свой адрес блога вместо моего.

Нажимаем кнопку Добавить. Готово.

Переезд сайта и зеркала

Что такое зеркала сайта? Если ещё не знаете, скажу в двух словах. Это сайты с разными адресами, но одинаковым контентом. Таким путём образуется группа зеркал.

Главное зеркало участвует в индексации поисковиками, а неглавное - нет. И делается это для того, чтобы не создавать дубли контента.

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

Зеркала сайта при переезде я Яндекс вебмастере

Напомню, что все действия сегодняшнего урока осуществлялись в панели управления сайтом сервиса Яндекс.Вебмастер.

Читайте также: