О важности перехода на HTTPS уже даже перестали говорить — это и так всем известно. Более того, большинство активно развивающихся сайтов уже давно перешли на защищенный протокол.
Тем временем Google от рекомендаций перешел к более активной мотивации — начал блокировать сайты, которые используют HTTP. Казалось бы, у вас HTTPS, и нечего переживать по этому поводу. Но есть нюанс: если на сайте есть смешанный контент, вы рискуете попасть под горячую руку Google, несмотря на то, что большинство страниц подгружаются по HTTPS.
В статье рассказываем о том, что считается смешанным контентом, почему Google с ним борется, как найти его на своем сайте и устранить.
Что считается смешанным контентом и почему от него следует избавиться
Планы Google по отношению к смешанному контенту
Ищем смешанный контент на сайте
По наличию предупреждения в адресной строке браузера
С помощью консоли разработчика
Анализ страниц сайта с помощью Lighthouse
Проверка страниц с помощью Screaming Frog
Как устранить смешанный контент
Плагины для автоматического устранения смешанного контента
Что считается смешанным контентом и почему от него следует избавиться
Смешанный контент — наличие на HTTPS-сайте контента, который доступен только по старому протоколу HTTP.
Например, у вас сайт давно переведен на HTTPS, и все страницы по умолчанию доступны по защищенному соединению — https://site.ru. Но на главной странице есть картинка, которая до сих пор загружается по незащищенному протоколу — http://site.ru/image.
По спецификации W3C смешанный контент делится на две группы:
- блокируемый (к этому виду относится активный контент — скрипты, фреймы и т.д.). Такой контент представляет интерес для злоумышленников, так как его можно использовать для внедрения вредоносного кода. А это влечет за собой угрозу сайту, пользователям и пользовательским данным. Большинство такого контента по умолчанию блокируется браузерами.
- опционально блокируемый (пассивный контент — изображения, видео, аудио). Он не несет в себе прямой угрозы. Например, злоумышленники не могут с его помощью получить доступ к персональным данным пользователей или заблокировать работу сайта. И все же некоторая опасность сохраняется. К примеру, изображения можно заменить на другие. Это может привести к дезинформации пользователей или нанести ущерб репутации сайта (например, при размещении контента 18+).
Если изображения, аудио или видео доступны на сайте только по протоколу HTTP — браузер их заблокирует. Чтобы этого не произошло, такой контент нужно выявить и обеспечить его доступность по протоколу HTTPS.
Планы Google по отношению к смешанному контенту
С 2017 года в адресной строке Chrome начало отображаться уведомление «Not secure», если пользователь начинал заполнять формы ввода данных на сайте с HTTP.
Годом позже (после релиза Chrome 68) Google стал показывать «Not secure» по умолчанию для всех сайтов, которые не перешли на протокол HTTPS.
Самое интересное началось в 2019 году — Google объявил о планах постепенно избавляться от подгрузки ресурсов на сайтах по незащищенному протоколу HTTP.
- В Chrome 79 (декабрь 2019 года) была реализована возможность разблокировать активный контент, который браузер блокирует по умолчанию:
- В Chrome 80 браузер начал автоматически пытаться подгрузить аудио- и видеоконтент по https://. Если контент доступен только по http://, он блокируется браузером. При этом ресурсы все еще можно разблокировать вручную. В этой версии браузера изображения могут подгружаться по старому протоколу http://, однако в адресной строке отобразится сообщение о незащищенном соединении:
- И наконец, к релизу Chrome 81 (февраль 2020) Google планировал обновление в отношении изображений. Если на HTTPS-сайте путь к изображениям прописан с использованием старого протокола, Chrome автоматически попытается загрузить их по https://. Если в этом случае изображения не смогут подгрузиться, браузер их заблокирует.
Важно! 4 июня 2020 года Google сообщил о переносе релиза функции на версию Chrome 84.
Активное подталкивание к миграции на https дало свои плоды: с ноября 2018 по ноябрь 2019 года доля сайтов, использующих защищенный протокол, выросла с 43,5% до 56,5%:
По состоянию на сентябрь 2020 года протокол https:// по умолчанию используют 64,8% сайтов:
В России 85% страниц, которые пользователи загружают в браузере Google Chrome, по умолчанию доступны по https://. В 2015 году доля таких страниц была на уровне 28%.
Сам Chrome в России популярен среди 41% пользователей:
Это существенная доля, поэтому стоит по максимуму избавляться от смешанного контента, если такой есть на сайте. Иначе из-за блокировки можно потерять позиции в поиске.
Ищем смешанный контент на сайте
Есть несколько способов определить, что на сайте содержится смешанный контент.
По наличию предупреждения в адресной строке браузера
Самый простой и очевидный способ. Покажем, как это выглядит на примере страницы, на которой есть изображение, подгружаемое по незащищенному протоколу.
В исходном коде мы видим:
- сама страница доступна по протоколу https:// — тут все в порядке;
- изображение, которое находится на странице, расположено по адресу с незащищенным протоколом http://:
В адресной строке Chrome отображается иконка с восклицательным знаком. При клике на иконку мы видим уведомление о том, что подключение к сайту защищено не полностью:
Похожее уведомление показывает и Мозилла:
Правда, такой способ годится больше в качестве индикатора — поможет увидеть, что на некоторых страницах сайта присутствует смешанный контент.
Недостаток способа — придется просматривать каждую страницу, чтобы получить полное представление о положении дел на сайте. А также вручную проверять, какие именно картинки, видео и другие ресурсы подгружаются по незащищенному протоколу.
Поиск по исходному коду
Так можно проверить отдельные страницы сайта и оценить, насколько много смешанного контента на них.
Для этого:
- Переходим на страницу и открываем режим просмотра исходного кода (Ctrl + U).
- Жмем Ctrl+F и вводим «http:» для поиска по странице.
Поиск найдет все упоминания http в коде страницы и мы сможем определить, какие именно картинки, видео или другие типы ресурсов до сих пор используют незащищенный протокол.
С помощью консоли разработчика
Переходим на страницу, которую необходимо проверить, и жмем сочетание клавиш Ctrl + Shift + I для Windows или Cmd + Opt + J для Mac (откроется консоль разработчика). Если на странице обнаружен смешанный контент, в консоли отобразятся ошибки «Mixed Content».
Консоль удобна тем, что в ней отображаются сразу все ошибки, которые система нашла на странице. Так вы сможете понять, что именно подгружается по незащищенному протоколу и оценить объем работ по устранению. Единственный минус этого способа — нельзя автоматизировать проверку большого количества страниц.
SSL-чекер от JitBit
JitBit — бесплатный сервис, который поможет быстро определить, есть ли на сайте смешанный контент и на каких именно страницах.
Работать с сервисом предельно просто:
- Указываем домен.
- Жмем «Check for SSL errors».
- Дожидаемся проверки ресурса. Если на отдельных страницах сайта есть смешанный контент — сервис выдаст список URL таких страниц.
Два недостатка:
- Сервис дает только URL страниц, где обнаружен смешанный контент. К сожалению, нет отчета по самому контенту (то есть, чтобы выяснить, какой именно контент грузится по http, придется просматривать каждую страницу вручную).
- Лимит на проверку одного сайта — 400 страниц. Если у вас больше — полноценно проверить свой сайт с помощью JitBit вы не сможете.
Анализ страниц сайта с помощью Lighthouse
Смешанный контент можно выявить с помощью Lighthouse — это бесплатный инструмент от Google с открытым исходным кодом для улучшения качества веб-страниц.
С помощью этого инструмента можно проверить любое количество URL и получить полный список ресурсов, которые подгружаются по HTTP.
Придется проделать некоторые дополнительные манипуляции, так как в Lighthouse по умолчанию нет отчета по смешанному контенту. Сейчас покажем, как это сделать.
1. Установите Google Canary (специальный браузер от Google для разработчиков).
2. Установите Node.js.
3. Запустите командную строку Node.js.
4. Пропишите и выполните следующую команду:
npm install -g lighthouse
Начнется установка Lighthouse.
Если установка прошла успешно, в консоли отобразится такое сообщение:
5. Пропишите команду для анализа и формирования отчета:
lighthouse --preset="mixed-content" URL
Вместо URL укажите адрес нужной страницы в формате site.ru.
Система начнет анализ страницы:
После окончания анализа система сообщит об этом и покажет путь к сохраненному отчету.
Отчет сохраняется в HTML и содержит две части:
- Использование HTTPS.
- Безопасная загрузка ресурсов.
Если на странице найден смешанный контент, в отчете вы увидите список ресурсов, в URL которых используется протокол http.
Как проверить массив URL
Чтобы проверить сразу группу страниц или все страницы сайта, воспользуйтесь следующей инструкцией:
1. Создайте файл .txt (в Блокноте или любом другом текстовом редакторе). Разместите в файле список URL, которые необходимо проверить.
2. Затем создайте файл с расширением .bat и разместите в нем следующий код:
@For /F "UseBackQ Delims=" %%A In ("C:\Users\light\urls.txt") Do @LightHouse "%%A" --preset="mixed-content"
Вместо «C:\Users\light\urls.txt» укажите путь к своему текстовому файлу со списком страниц.
3. Откройте командную строку и запустите файл .bat.
Подождите, пока Lighthouse проверит все страницы и сформирует отчет (время формирования отчета зависит от количества страниц, которые вы проверяете).
Проверка страниц с помощью Screaming Frog
Это самый удобный и быстрый способ — не нужно проверять каждую страницу отдельно и разбираться в консоли.
В Screaming Frog SEO Spider много различных функций, но нам понадобится отчет «Insecure Content». После запуска инструмент проанализирует ваш сайт и подготовит список всех ресурсов, подгружаемых по http.
Единственный минус — инструмент платный, стоимость лицензии — £149 в год.
Кстати, с помощью Screaming Frog можно парсить любую открытую информацию с любого сайта. Об этом у нас есть подробная статья с инструкцией.
Как устранить смешанный контент
После проверки сайта и обнаружения смешанного контента необходимо исправить ситуацию.
И тут может быть два варианта — ссылки с HTTP могут вести на внутренние ресурсы или на внешние.
В первом случае все решается достаточно быстро и просто — после миграции на https необходимо лишь поменять ссылки с абсолютных на относительные, настроить необходимые редиректы и все внутренние ресурсы автоматически подгружаются правильно.
Если же на сайте есть внешние ресурсы — тут ситуация посложнее.
Базово алгоритм решения проблемы с внешними ресурсами выглядит так:
- ищем ресурс, у которого URL с http (например, картинку);
- проверяем, подгружается ли картинка, если использовать этот же URL, но с https;
- если контент подгружается без проблем — просто прописываем в URL правильный протокол (https).
Что делать, если внешние ресурсы доступны только по http, а по https не подгружаются?
Есть несколько вариантов решения этой проблемы:
- Связаться с владельцем ресурса, где хостятся изображения или видео, и убедить его перевести сайт на https (вариант хорош в теории, но на практике вряд ли осуществим).
- Найти альтернативные ресурсы с https в качестве источников контента.
- Оставить все как есть. Это не очень хороший вариант с точки зрения Google, но если заменить ресурс совсем не получается, а контент важен для ваших пользователей — лучше оставить.
Плагины для автоматического устранения смешанного контента
Если при анализе сайта вы нашли один — два URL с http, их проще заменить вручную — отредактировать исходный код и указать правильный протокол.
Если же ссылок с http много, они размещены в стилях, скриптах и т.д. — тут нужен программист или специальные плагины.
Вот два популярных плагина для WordPress:
- Really Simple SSL. Автоматически меняет ссылки с абсолютных на относительные и позволяет быстро решить проблему с наличием ресурсов, подгружаемых по http.
- SSL Insecure Content Fixer. Плагин позволяет быстро исправить ссылки, в которых используется устаревший протокол. В настройках плагина доступно несколько уровней исправления. Рекомендуется начать с простого, так как он незначительно влияет на производительность сайта.
Важно! Будьте аккуратны при работе с плагинами. Вносите изменения только тогда, когда точно понимаете, что именно сделает плагин. Перед каждым изменением делайте резервную копию сайта. Если что-то пойдет не так — вы сможете без проблем откатить изменения и вернуться к предыдущей версии.
Нет времени разбираться в тонкостях поиска и ликвидации смешанного контента? Специалисты PromoPult сделают все необходимые работы за вас в рамках модуля SEO. Все по чек-листу и в оговоренные сроки. Возможна оплата в рассрочку. Регистрируйтесь в PromoPult и забудьте о технических проблемах на сайте.