Mixed Content: страница HTTPS загружает ресурсы по HTTP

  • Обновлено
  • Чтение ≈ 3 минуты

Краткий ответ

Браузер блокирует HTTP-ресурсы на HTTPS-страницах. Замените адреса на https:// или относительные пути, исправьте настройки CMS.

В этой статье
  1. Что означает ошибка
  2. Причины и решения
  3. Пошаговое решение
  4. Поиск
  5. Исправление
  6. CMS и CDN
  7. Как проверить результат

#Что означает ошибка

Сообщение
Mixed Content

Mixed Content — страница по HTTPS загружает ресурсы (картинки, скрипты, стили) по HTTP, и браузер блокирует их или убирает значок замка. После перехода сайта на HTTPS это самая частая проблема.

Консоль браузера (F12) перечисляет все небезопасные ресурсы.

Исправление — заменить адреса на HTTPS.

Браузер блокирует HTTP-ресурсы на HTTPS-страницах. Замените адреса на https:// или относительные пути, исправьте настройки CMS.

#Причины и решения

Возможная причинаКак узнатьЧто делать
Ссылки http://Контент.Блок.Замените.
Настройки CMSURL сайта.Смешанный.Исправьте.
Внешние скриптыБез HTTPS.Блок.Замените.
ПроксиЗаголовок.Ошибка.Передайте.

#Пошаговое решение

  1. Откройте консольАдминистратору сайта: откройте проблемную HTTPS-страницу в Chrome или Edge, нажмите F12 → вкладка «Console/Консоль» и перезагрузите страницу. Найдите сообщение Mixed Content с точным адресом HTTP-ресурса; скопируйте его в рабочие заметки. Во вкладке «Network/Сеть» можно включить сохранение журнала и повторить запрос. Если сообщение относится к внешнему виджету, сначала установите, есть ли у поставщика HTTPS-версия.
  2. Найдите ссылки http:// в коде и базеТолько владельцу сайта: сохраните резервную копию файлов и базы. Откройте исходный код шаблона/страницы и найдите URL из ошибки Mixed Content либо выполните поиск строк http:// только в собственных шаблонах. Для CMS проверьте адреса в настройках и полях контента через штатный инструмент с поддержкой сериализованных данных, а не массовой заменой SQL. Сопоставьте каждую найденную ссылку с реальным ресурсом: не все внешние сервисы поддерживают HTTPS.
  3. Замените на https://После проверки, что внешний ресурс действительно доступен по HTTPS и отдаёт правильный файл, исправьте конкретный URL в шаблоне, параметрах CMS или записи контента. Сохраните резервную копию, опубликуйте изменение и обновите страницу с открытой консолью браузера. Если браузер больше не выводит Mixed Content, эта зависимость исправлена; если ресурс не поддерживает HTTPS, удалите/замените интеграцию, а не выполняйте безусловную замену всех http://.
  4. Включите upgrade-insecure-requestsДиректива CSP upgrade-insecure-requests может быть дополнительной страховкой, но не заменяет исправления HTTP-ссылок и не помогает ресурсу без HTTPS. Администратор сначала исправляет конкретные адреса, затем, если политика сайта позволяет, добавляет директиву в заголовок Content-Security-Policy по документации веб-сервера. Проверьте синтаксис конфигурации и ещё раз откройте консоль браузера; при сбоях внешних интеграций отмените изменение.
  5. Очистите кэшЭтот шаг выполняйте после исправления конкретных HTTP-ссылок владельцем сайта, а не вместо него. В Chrome или Edge откройте страницу с HTTPS, нажмите F12 → «Консоль» и перезагрузите страницу сочетанием Ctrl+Shift+R. Если сообщения Mixed Content исчезли, проблема устранена; дополнительные удаления данных не нужны. Если браузер продолжает показывать устаревший CSS или JavaScript, нажмите Ctrl+Shift+Delete, отметьте только кешированные изображения и файлы и очистите их, не удаляя пароли и cookie. Если в консоли по-прежнему указан URL, начинающийся с http://, исправление не опубликовано или осталась ещё одна небезопасная ссылка: вернитесь к коду страницы/настройкам CMS.

#Поиск

Откройте F12 → Console: сообщения «Mixed Content: The page ... was loaded over HTTPS, but requested an insecure ...». Для поиска в коде: grep -rn "http://" --include=*.php --include=*.html --include=*.css .. В WordPress выполните wp search-replace "http://example.com" "https://example.com" --all-tables.

#Исправление

Замените http:// на https:// или на протокол-независимые пути (// не рекомендуется, лучше https://), относительные пути /img/a.png. Проверьте, что внешний ресурс доступен по HTTPS. Добавьте заголовок CSP upgrade-insecure-requests: add_header Content-Security-Policy "upgrade-insecure-requests"; в nginx.

#CMS и CDN

В WordPress обновите «Адрес WordPress» и «Адрес сайта» на https, очистите кэш плагинов, пересохраните постоянные ссылки. Проверьте шаблон и настройки темы, встроенные шрифты и iframe. Для Cloudflare включите «Automatic HTTPS Rewrites».

Linux · Терминал (Bash)Команда
Поиск небезопасных ссылок и пробная замена в WordPress (сначала с --dry-run).
grep -rn "http://" --include=*.php --include=*.html --include=*.css .
wp search-replace "http://example.com" "https://example.com" --all-tables --dry-run

#Как проверить результат

Обновите страницу с очисткой кэша (Ctrl+Shift+R) и откройте F12 → Console: предупреждений Mixed Content быть не должно, а в адресной строке должен остаться замок без восклицательного знака. Для всего сайта используйте краулер: Why No Padlock показывает оставшиеся http-ресурсы, а команда curl -s https://example.com/ | grep -o "http://[^\"]*" быстро находит их в HTML главной страницы. Проверьте также CSS: адреса в url(http://...) и подключённые шрифты часто остаются незамеченными, а ссылки в сохранённых виджетах и меню лежат в базе данных, а не в файлах шаблона.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.