Ошибки

ERR_CONTENT_DECODING_FAILED: что значит и как исправить

ERR_CONTENT_DECODING_FAILED — сайт сообщил браузеру, что страница сжата, а распаковать её не получилось. Вместо страницы Chrome показывает пустой экран, а код ошибки виден в консоли разработчика.

Обновлено 08.10.2026≈ 6 мин чтения
Содержание 10

Что сделать прямо сейчас

Если вы просто открываете сайт:

  1. Обновите страницу: F5, на Mac — Cmd+R.
  2. Если страница так и остаётся пустой, исправить это может только владелец сайта. Сообщите ему адрес страницы и код ошибки ERR_CONTENT_DECODING_FAILED.

Если сайт ваш, переходите к разделам «Как проверить» и «Как исправить» ниже: там все команды по шагам.

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

Чтобы страницы загружались быстрее, сервер может сжимать их — примерно как архиватор сжимает файлы. Способ сжатия, например gzip, сервер указывает в заголовке ответа Content-Encoding, а браузер по нему распаковывает страницу перед показом.

Если в заголовке написано, что ответ сжат, а внутри лежат несжатые данные или данные, сжатые другим способом, браузер не может их распаковать. Тогда Chrome сообщает об ошибке ERR_CONTENT_DECODING_FAILED. В исходном коде Chrome это ошибка -330.

Как выглядит в Chrome

В нашей проверке Chrome показал пустую белую страницу — без текста и без кнопок. Код ошибки виден только в инструментах разработчика: откройте их клавишей F12 или Ctrl+Shift+I, на Mac Cmd+Option+I, и перейдите на вкладку Console («Консоль»). Там будет строка Failed to load resource: net::ERR_CONTENT_DECODING_FAILED.

Ту же строку консоль покажет, если не распаковалась картинка, скрипт или стиль на странице.

Если Chrome всё же показывает для этого кода страницу ошибки, она общая: заголовок «Не удается получить доступ к сайту» и код ERR_CONTENT_DECODING_FAILED. Отдельного текста для этой ошибки в Chrome нет.

Причины

Ответ объявлен сжатым, но его никто не сжимал. Сам по себе заголовок Content-Encoding ответ не сжимает — он только сообщает браузеру, что ответ сжат. Такой заголовок мог попасть в ответ из трёх мест:

  • Настройки nginx. Строка add_header Content-Encoding добавляет заголовок к ответу, но сжимать его не умеет.
  • Файл .htaccess на хостинге с Apache. Строка Header set Content-Encoding работает так же.
  • Код сайта. Программа ставит заголовок сама, например в PHP вызовом header('Content-Encoding: gzip'), а отдаёт несжатые данные.

Как проверить

Шаг 1 выполните на своём компьютере: на Mac — в программе Терминал, в Windows — в командной строке. Если вы ни разу не открывали терминал, начните с инструкции Как открыть терминал: там всё по шагам. Скопируйте команду целиком, замените example.com на адрес своего сайта и нажмите Enter.

Шаг 1. Попросите сжатую страницу командой curl

На Mac:

curl -sS --compressed -D - -o /dev/null https://example.com/

В Windows:

curl -sS --compressed -D - -o NUL https://example.com/

Ключ --compressed просит у сайта сжатый ответ и распаковывает его, как это делает браузер. -D - выводит на экран заголовки ответа, а -o /dev/null (в Windows — -o NUL) не сохраняет саму страницу.

В заголовках найдите строку content-encoding: в ней указан способ сжатия, например gzip. Если после заголовков curl пишет такую строку:

curl: (61) Error while processing content unencoding: incorrect header check

— сайт объявил сжатие, но отдал данные, которые так не распаковываются. Это та же поломка, из-за которой Chrome показывает ERR_CONTENT_DECODING_FAILED. Текст после номера может быть другим — важен сам номер 61: это ошибка распаковки ответа.

Без ключа --compressed curl страницу не распаковывает и этой ошибки не покажет. Если ошибки нет и с ключом, повторите проверку с полным адресом той страницы, на которой Chrome показывает пустой экран.

Шаг 2. Поищите заголовок в настройках nginx

Эту команду выполните на сервере. Если вы ещё не подключались к нему, начните с инструкции Как подключиться к VPS по SSH.

sudo nginx -T 2>/dev/null | grep -iE 'configuration file|content-encoding'

Команда просмотрит все настройки nginx и покажет пути к файлам настроек — строки configuration file — и строки, где упоминается Content-Encoding. Если в ответе есть строка add_header Content-Encoding, это и есть причина. Она записана в файле из ближайшей строки configuration file над ней. Если такой строки нет, вручную в nginx этот заголовок не задан — переходите к шагу 3.

Шаг 3. Поищите заголовок в файлах сайта

sudo grep -rni 'content-encoding' /var/www/example.com

Замените /var/www/example.com на папку своего сайта. Команда покажет файлы и номера строк, где упоминается Content-Encoding. Если строк много, начните с файлов .htaccess и с кода, который писали вы или ваш разработчик. Строки из файлов самого WordPress — в папках wp-admin и wp-includes — пропустите.

Как исправить

Уберите заголовок из настроек nginx

Откройте файл, который вы нашли на шаге 2, — например, командой sudo nano /etc/nginx/sites-available/example.com. Найдите строку add_header Content-Encoding и удалите её.

Если вы хотели, чтобы nginx сжимал ответы, вместо неё нужна такая строка в блоке server:

gzip on;

С ней nginx сам сжимает ответы — страницы HTML всегда, другие типы файлов по списку в настройке gzip_types — и сам ставит заголовок Content-Encoding.

Сохраните файл — Ctrl+O, Enter, затем Ctrl+X — и проверьте настройки:

sudo nginx -t

В ответе должны быть слова syntax is ok и test is successful. Если вместо них сообщение об ошибке, в нём указаны файл и номер строки: исправьте строку и проверьте снова. Когда проверка прошла, примените настройки:

sudo systemctl reload nginx

Если команда ничего не ответила, настройки применены. Затем повторите шаг 1: ошибки 61 быть не должно.

Уберите заголовок из кода сайта

Если заголовок ставит программа сайта, удалите строку, которая его задаёт, и оставьте сжатие nginx. Если программа должна сжимать ответ сама, проверьте, что заголовок ставится только вместе со сжатием. В файле .htaccess удалите строку Header set Content-Encoding.

Включённое в nginx сжатие такую ошибку не исправит: ответ, в котором уже есть заголовок Content-Encoding, nginx повторно не сжимает.

На обычном хостинге

Если вы сами добавляли заголовок Content-Encoding — в файле .htaccess или в коде сайта, — уберите его. Если не добавляли, напишите в поддержку хостинга адрес страницы и код ошибки ERR_CONTENT_DECODING_FAILED.

Соседние ошибки

ОшибкаЧем отличается
ERR_CONTENT_LENGTH_MISMATCHСтраница пришла не целиком: сервер обещал больше данных, чем прислал
ERR_INCOMPLETE_CHUNKED_ENCODINGОборвалась страница, которую сервер отправлял частями
ERR_EMPTY_RESPONSEСервер закрыл соединение, ничего не ответив

Источники

Проверено в Chrome 155 на локальном тестовом сервере 8 октября 2026 года.

Сверено 8 октября 2026 года.

Что почитать дальше

Проверено и обновлено: 08.10.2026