Офтоп VT Digital
7 011

Переезд на HTTPS за три шага

Инструкция от команды студии веб-разработки VT Digital.

В закладки

С июля 2018 года все HTTP-сайты в браузере Google Chrome будут помечаться как ненадёжные. Это произойдёт после выхода Chrome 68. Тема эта отнюдь не нова, однако до сих пор актуальна: владельцы сайтов по-прежнему совершают ошибки при переходе на HTTPS.

Готовимся к переезду

Ещё до смены протокола все внутренние абсолютные ссылки меняем на относительные. Например, для перехода на страницу на вашем же сайте лучше использовать <a href="/news/ "> вместо <a https://www.site.ru/news/">. Не забудьте исправить все ссылки на файлы, картинки, видео, виджеты и прочие внешние сервисы. Код «Яндекс.Метрики» и Google Analytics также должен подгружаться по относительному протоколу.

Чтобы настроить отслеживание реферального трафика, добавляем на HTTPS-страницах мета-тег <meta name="referrer" content="origin"> до закрывающего тега </head>.

Покупаем SSL-сертификат. Цена для ранжирования не имеет смысла, главное условие — валидность. О цене сертификатов и разнице между ними можно узнать на сайте предпочитаемого хостинг-провайдера. С недавних пор практически все они продают сертификаты.

Проверяем правильность настройки SSL-сертификата.

Переезжаем

Создаем версию сайта с HTTPS. Обе версии (HTTP и HTTPS) должны быть доступны и работать без ошибок. Файл robots.txt должен быть одинаков для обеих версий. Пока «Яндекс» не проведёт склейку зеркал, не настраивайте 301-редирект с HTTP.

В robots.txt указываем отдельно User-Agent: Yandex с Host: https:// и Sitemap: https://. Если приоритетная поисковая система для вас «Яндекс», то нужно закрыть сканирование всего сайта роботу Google, чтобы избежать дублей страниц в поиске Google.

Когда «Яндекс» полностью склеит страницы (в веб-мастере на неглавных зеркалах количество проиндексированных страниц будет равно нулю) и HTTPS будет выбрано главным зеркалом, открываем доступ Google в файле robots.txt. Если сервер на nginx, прописываем строки в .htaccess для доступности robots.txt по HTTP-протоколу:

<FilesMatch "robots.txt$">
RewriteEngine off
</FilesMatch>

Проверяем для HTTPS-версии протоколы в rel=”canonical”, rel=”alternate” и протокол ссылок в sitemap.xml. Для HTTPS-версии ссылки должны быть доступны по HTTPS. Для HTTP — в HTTP.

Тестируем

  1. Делаем 302-редирект с http:// на https:// на время теста.
  2. Добавляем обе версии сайта в «Яндекс.Вебмастер». Жмём «Настройка индексирования» — «Переезд сайта» и указываем предпочтительный протокол HTTPS. В «Структуре сайта» добавляем разделы сайта. В Google Search Console после склейки в «Яндексе» добавляем сайт с протоколом HTTPS и подтверждаем права. В разделе «Поисковый трафик» — «Таргетинг по странам и языкам» указываем, с какой страной связан домен, а в «Сканирование» — «Параметры URL» загружаем параметры из HTTP версии. Далее добавляем файл Disavow для HTTPS-версии по ссылке.
  3. Чтобы позиции по геозависимым запросам не просели, указываем в разделе «Региональность» регион для вкладки «Вебмастер».
  4. Меняем ссылки для региональных представительств, которые указаны в «Яндекс.Справочнике». Для этого пишем через форму в техподдержку «Яндекс.Справочника» о переезде на HTTPS.
  5. Ждём склейки в «Яндексе». Переклейка начинается примерно через две-три недели. Обратите внимание, что при переезде обнуляется тИЦ. Ничего страшного в этом нет, как сообщает «Яндекс» он вернётся после следующего обновления, которое происходит примерно раз в месяц.
  6. Когда «Яндекс.Вебмастер» покажет, что зеркала связаны, и основным уже выбрана HTTPS-версия, можно настраивать 301-постраничный редирект, кроме файла robots.txt и страницы 404 ошибки.
  7. Проверяем корректность присвоенного региона в «Яндексе» после переклейки. Если возникают проблемы с присвоением регионов, пишем в техподдержку.
  8. Проверяем смешанное содержимое — у всех страниц сайта протокол HTTPS. Это можно сделать через ScreamingFrog или подобную программу.

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

Во время склейки зеркал трафик может просесть. Это происходит из-за того, что поисковики воспринимают сайт с HTTPS как новый. Когда HTTPS-версия будет признана главным зеркалом, о чём вебмастер получит уведомление, все показатели HTTP-версии начнут учитываться для HTTPS.

Материал дополнен редакцией

Материал опубликован пользователем. Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "VT Digital", "author_type": "self", "tags": [], "comments": 69, "likes": 22, "favorites": 52, "is_advertisement": false, "subsite_label": "flood", "id": 33166, "is_wide": false, "is_ugc": true, "date": "Mon, 12 Feb 2018 12:23:53 +0300" }
{ "id": 33166, "author_id": 140743, "diff_limit": 1000, "urls": {"diff":"\/comments\/33166\/get","add":"\/comments\/33166\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/33166"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199791, "possessions": [] }

69 комментариев 69 комм.

Популярные

По порядку

Написать комментарий...
15

Если сервер на nginx, прописываем строки в .htaccess

facepalm.jpg

Ответить
–1

Спасибо, конечно же, apache)

Ответить
3

а сертификат обязательно покупать или можно let's encrypt заюзать?

Ответить

1

Покупать совершенно не обязательно.
У меня проекты на Let's encrypt и имеют ранг A+ по результатам ssllabs.
Надо только следить, чтобы сертификаты обновлялись каждые 3 месяца (можно обновлять только менее чем за 30 дней до окончания срока)

Ответить
–5

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

Ответить

1

Это хорошо, когда что-то не вызывает сомнений.

p.s. Поздравляю с переходом на https два дня назад.

Ответить
1

С LE не работают только древние версии XP. LE нужно обновлять каждые 3 месяца (но можно настроить автоматическое обновление). Других отличий НЕТ.

Ответить
0

вот и вся ваша экспертиза..

Ответить
13

Можно было назвать статью «Переезд на HTTPS за один шаг», а внутри уже все 47 действий из статьи.

Ответить
0

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

Ответить
4

Я бы рассказал, как я настраивал SSL на многодоменном проекте - asp.sale
+ настройка заголовков типа strict transport security
+ автоматическое исправление всех mixed-content проблем
+ авторизованные запросы только с CDN
+ cross-origin и еще какие то штуки о которых я забыл

Вот только количество знаний моих на статью не тянет.
Яндекс-вебмастер это по вашему - вся настройка SSL?

Ответить
0

Ну да, я тоже подумал что статья для небольших сайтов на ... на непонятно чём - т.е. настройка CMS под изменение протокола никак не раскрыта.
Ну и банальная адресация картинок (путь к картинкам), пути к js файлам, тоже не вдруг поменяется во всей базе, не сама по себе.

Ответить
0

Горе cms, если она хранит не относительные ссылки к картинкам и прочим файлам.

Ответить
0

Это отлично, но как добавить сертификат, в Drupal, например, хотелось бы услышать. Или в эти Wix сайты, которых много.
Мы отлично лезем в .htaccess и так далее, но как дать CMS понять, что теперь надо все ссылки переделать с http на https ?

Ответить
0

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

Ответить
3

"все показатели HTTP-версии начнут учитываться для HTTPS"
Нет. Может так произойти, что новый сайт так и не получит такое же количество трафика, как было по старому адресу. Так даже Яндекс предупреждает.

Ответить
0

У вас был такой опыт? Честно, у нас пока было лишь восстановление позиций. То есть, вот они просели, и вот они вернулись на свои места.

Ответить
1

Был. Переехал обратно через больше чем два месяца и трафик вернулся)

Ответить
0

Может, но редко. За декабрь-январь перенес на https 9 сайтов, трафик не просел ни на одном. Склейка в Вебмастере произошла за 1-1,5 недели. Трафик из Гугла подрос, но я связываю это с общими работами по сайту.

Ответить
1

У меня 3 крупных сайта, первый летом переклеился за 2-3 недели.

Второй в декабре клеился полтора месяца.

Третий сейчас клеится уже 2.5 месяца и судя по всему, процесс только-только пошёл.

Ещё и яндекс скрыл форму связи по таким вопросам. Теперь просто пишет «переезд может занять до нескольких месяцев»

Ответить
0

Я переносил мелочь по 150-400 страниц. Всё переклеилось быстро, сам удивился. На серче встречал посты о безуспешных попытках несколько (!) раз переклеить на https. Но я рассказал про свой опыт.

Ответить
0

Вот мне несколько раз заявку на переезд молча отклоняли, и пока сам не зайдёшь и не проверишь статус, никогда не узнаешь отклонили заявку или нет

Ответить
2

Домен для примера правильный выбрали

Ответить
1

Цитата: "Если сервер на nginx, прописываем строки в .htaccess для доступности robots.txt по HTTP-протоколу:

<FilesMatch "robots.txt$">
RewriteEngine off
</FilesMatch>"

Кто-нибудь еще кроме меня понимает степень шизофрении автора в этом предложении. nginx -> htaccess -> достпность txt файла по http протоколу.

А если не на nginx, то все, htaccess не работает? Автор, ты в курсе что такое htaccess и nginx и что они друг с другом не связаны и даже чаще мешают друг другу

Ответить
0

Да, мы уже выпили яду, посыпали голову пеплом и обгорели от стыда. Но это не помогает, так как редактирование статьи закрыто. Можете еще поискать ошибки, мы еще порасстраиваемся)

Ответить
–1

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

Ответить
0

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

Ответить
0

У меня другая проблема, у меня есть много .html со статичными ссылками img src=http://
И я так думаю, что писать еще один php, который будет автозаменой шерстить сайт, мне очень не хочется :(
Как-то они по-разному у меня работают, добавляешь, добавляешь, добавляешь проверки - но на большую базу страниц исключений очень много, и соотв. сложно обработать все возможные варианты.

Ответить
0

А что мешает сделать замену "http://"; на "https://"; без использования php, просто в редакторе?Воспользоваться поиском по проекту и найденное заменить))

А лучше переделать абсолютные на относительные ссылки =)

Ответить
0

Cергей, мешают пара сотен тысяч страниц :)
Хотя нет. Пожалуй, уже ближе к 250к страниц.

Ответить
0

Нехило))

Ответить
0

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

Ответить
0

Если это все в базе, то делается это одним запросом к таблице.

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

Ответить
0

Да не пишется он максимум час :) Я до этого написал преобразование внешних ссылок www.extsite.ru => http://www.mysite.ru/redirect.php?www.extsite.ru (ессно с кодировкой) - и разбор всех возможных исключений занял около 2-х недель, с перерывами. А потом еще понадобилось вносить исправления. И еще. Не с утра до вечера, а по факту отлова новых ошибок.
 
Я пока смысла не вижу на https именно переходить - т.к. переписываюсь с Eset Nod 32, уверенно показывающим время от времени Ай-яй-яй, левый сертификат на (site.ru), дальше не пущу.

В прошлом году он увлекся и от www.noname.ru перешел к сайтам средней популярности, а под занавес подозрения у него стали вызывать www.google.com / www.mail.ru ... переписка с support, танцы с бубном и т.д.

Через месяц после того - обратился человек с Kaspersky Anti-Virus - богато ругавшимся на несоответствие сертификатов разных сайтов. Переписка с support, танцы с бубном, чистая деинсталляция, установка заново - решили проблему.

Я это к чему - наличие https сертификата (особенно этого на 3 месяца, по принципу трусов Неделька), не гарантирует что сайт будет у всех нормально открываться. А отсутствие - ПОКА - гарантирует.

Ответить
0

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

Ответить
1

А зачем покупать сертификат, когда есть letsencrypt?

Ответить
–1

не везде будет работать.

Ответить
1

Где не будет работать? Они даже WinXP поддержали уже.

Ответить
0

В ВКонтакте

Ответить
0

В каком смысле? Всё там работает.

Ответить
0

Нет, приложениям нужен нормальный сертификат. Не самопис и не бесплатный. Иначе не будут работать.

Ответить
0

Попробуйте сделать приложение ВКонтакте, ОК, FaceBook. Вы увидите, что эти сайты режут и не дают запускать приложения (белый фон). Самопис и бесплатные сертификаты не прокатят.

Ответить
0

Да и в чём сложность оплатить 1500 рублей за год. Копейки.

Ответить
0

В чем смысл покупать сертификат тем, кто не делает приложение? Сами сайты НИКТО не ущемляет по факту сертификата. Пол мира ими пользуются. А потратить 1500 рублей можно и в другом месте.

Ответить
0

А если нужно сделать сертификат на поддомены?
letsencrypt уже не справится. нужно покупать нормальный сертификат. бесплатно - гавно.

Ответить
0

А если нужно сделать сертификат на поддомены?

letsencrypt-auto certonly -a standalone -d mydomain.com -d www.mydomain.com -d sub.mydomain.com --keep

--keep позволяет оставить активные сертификаты (без этого ключа команда работает как renew)

Если привязать letsencrypt к серверу (к примеру Apache)
letsencrypt --apache

то он будет сам обновлять список поддоменов, хотя letsencrypt не поддерживает wildcart (*.mydomain.com)

Ответить
0

Прекрасно справляется он с поддоменами.

Ответить
0

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

Ответить
0

С таким же успехом не работают и самописы. Нужно нормальный сертификат покупать.

Ответить
1

У вас опечатка:
Если сервер на nginx, прописываем строки в .htaccess для доступности robots.txt по HTTP-протоколу

htaccess работает только с Apache

Ответить
0

Так точно-съ, опечатка) Будем надеяться, получится исправить)

Ответить
1

"Пока «Яндекс» не проведёт склейку зеркал, не настраивайте 301-редирект с HTTP."

Бред. Редирект ставится сразу, с новым robots на https.

Ответить
0

Правда?

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

https://yandex.ru/blog/platon/2778

Ответить
0

Правда. Читайте новую методичку, ваша устарела: https://yandex.ru/blog/platon/delikatnyy-pereezd-na-https-ili-o-chem-esche-stoit-znat

Ответить
0

4. Стоит ли ждать, пока сайт HTTPS проиндексируется перед тем, как начинать переезд?

Нет, переезд можно начинать в любой момент.

Ответить
0

Переезд - не равно редирект.
Переезд - это Отправка заявки на переезд через веб-мастер

Ответить
1

Добавлю из своего опыта: Не нужно ждать 100% склейки, для некоторых сайтов хватит 80-85% (особенно если страниц много). Всё равно цифры 0 там скорее всего не будет (если конечно у вас сайт не из 100-1000 страниц).

Ответить
0

А почему robots.txt для https сайта должен быть открываться по http?

Ответить
0

Роботс с новым host: должен открываться только на https.

Ответить
1

А зачем разные роботсы на разных протоколах? В host прописывается главное зеркало. Это даже сам яндекс говорит. Если по https и http сайт будет показывать разные главные зеркала, то поведение поисковика предугадать сложно

Ответить
0

Только один роботс на https с главным зеркалом. Если не верите мне, то почитайте методичку от Яндекса, п.8. (линк кинул выше).

Ответить
0

Не должен.

Ответить
0

Судя по картинке pornhub, очень часто открыют на работе)

Ответить
0

Ну... Скорее, вообще не закрывают его

Ответить
0

А почему через IE?

Ответить
0

Жалко его стало

Ответить
0

Так дольше получается

Ответить
0

Советую отличную статью по покупке и настройке https на nginx
https://onlinebd.ru/blog/instrukciya-po-nastroike-https-dlya-php-fpm-s-ocenkoi-a
Полная инструкция по настройке HTTPS с оценкой А+

Ответить

0

У меня в гугле просел трафик на 50%. Больше половины страниц уже с https, но трафик съехал. Как думаете - посещалка вернётся ?

Ответить
0
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ]
Нейронная сеть научилась читать стихи
голосом Пастернака и смотреть в окно на осень
Подписаться на push-уведомления
{ "page_type": "default" }