РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗sePmInHS 103 of 123 menu

HTTPS и безопасность в SEO

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

Сейчас мы разберем, как правильно перейти на HTTPS, чтобы не потерять трафик.

Почему HTTPS важен для SEO

Причин несколько. Первая - Google и Яндекс официально подтвердили, что HTTPS учитывается в ранжировании. Вторая - без HTTPS браузер пишет "Не защищено" рядом с адресом сайта. Это снижает доверие и клики. Третья - без HTTPS нельзя использовать многие современные технологии: геолокацию, push-уведомления, service workers.

Проверить текущий протокол можно командой:

curl -I http://example.com/

В ответе будет строка вида "HTTP/1.1 200 OK" или "HTTP/1.1 301 Moved Permanently", если сайт уже перенаправляет на HTTPS.

Как перейти на HTTPS

Переход состоит из нескольких шагов. Сначала нужно получить SSL-сертификат. Сейчас есть бесплатные сертификаты от Let's Encrypt. Установить его можно через панель хостинга или командой:

certbot --nginx -d example.com -d www.example.com

После установки сертификата нужно настроить редирект с HTTP на HTTPS. Для этого в файле .htaccess прописываем правило:

RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Важно использовать именно 301 редирект, а не 302. Постоянный редирект передает вес страницы на новый адрес. Временный - нет.

Затем нужно заменить все внутренние ссылки на HTTPS. Если в коде остались ссылки на HTTP, поисковик может подумать, что на сайте две версии. Проверить можно так:

grep -r "http://example.com" /var/www/

Все найденные ссылки нужно заменить на "https://example.com".

Mixed content

Mixed content - это когда страница загружается по HTTPS, но внутри есть ресурсы по HTTP: картинки, скрипты, стили. Браузер блокирует такие ресурсы и пишет ошибку в консоль. Это ломает верстку и вредит SEO.

Пример плохого кода:

<img src="http://example.com/image.jpg" alt="image"> <script src="http://example.com/script.js"></script>

Пример правильного кода:

<img src="https://example.com/image.jpg" alt="image"> <script src="https://example.com/script.js"></script>

Проверить страницу на mixed content можно в консоли браузера. Откройте DevTools и посмотрите вкладку "Console". Все ошибки будут с пометкой "Mixed Content".

HSTS

HSTS (HTTP Strict Transport Security) - это заголовок, который заставляет браузер всегда использовать HTTPS для вашего домена. Даже если пользователь введет "http://example.com", браузер сам заменит протокол на HTTPS.

Включается через заголовок в ответе сервера:

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

Здесь max-age - время в секундах, на которое браузер запоминает правило. 31536000 - это один год. includeSubDomains распространяет правило на все поддомены. preload позволяет добавить домен в список HSTS в браузерах.

Для настройки HSTS в .htaccess добавляем:

Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

Включать HSTS нужно только после того, как вы убедились, что весь сайт работает по HTTPS. Иначе пользователи не смогут зайти на HTTP-версию.

Практические задачи

Расскажите, почему HTTPS важен для SEO.

Дан фрагмент верстки:

<img src="http://example.com/photo.jpg" alt="photo"> <link rel="stylesheet" href="http://example.com/style.css"> <script src="http://example.com/app.js"></script>

Найдите ошибку и исправьте ее.

Дан файл .htaccess:

RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=302]

Что не так с этим правилом? Как это исправить?

Расскажите, что такое mixed content и как его найти на странице.

Дан заголовок ответа сервера:

Strict-Transport-Security: max-age=31536000; includeSubDomains

Что делает этот заголовок? Что произойдет, если пользователь введет "http://example.com"?

Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить