Ошибка 406 Not Acceptable на сайте выглядит пугающе, но причина у неё почти всегда одна и простая: сайт защищает сам себя от того, что принял за атаку, и по ошибке блокирует обычный текст. Разберём по порядку, как это отличить от других поломок и что делать, чтобы ошибка не вернулась.
Инструкция актуальна для любой версии WordPress и для сайтов, которые стоят как за классической защитой хостинга, так и за облачными сервисами вроде Cloudflare — сейчас это вторая по частоте причина после защитного модуля хостинга.
В этой статье
- Что означает ошибка 406
- Причина в девяти случаях из десяти
- Вторая частая причина: облачная защита сайта
- Таблица: как отличить причину по симптомам
- Как убедиться, что дело именно в этом
- Что делать по порядку
- Что написать в поддержку хостинга
- Причины, которые встречаются реже
- Как проверить, что ошибка не вернётся
- Частые вопросы
Коротко
- В девяти случаях из десяти 406 — это не поломка, а защитный модуль хостинга (ModSecurity), который принял обычный текст за атаку.
- Второй по частоте виновник в 2026 году — облачная защита сайта вроде Cloudflare: она блокирует запрос ещё до того, как он доходит до хостинга.
- Точный признак настоящей причины — ошибка появляется не всегда, а на конкретном действии с конкретным содержимым.
- Правильный адресат жалобы — поддержка хостинга или панель облачной защиты, а не переустановка WordPress.
- Отключать защиту целиком нельзя даже временно — это оголяет весь сайт ради одной статьи.
Что означает ошибка 406
Дословно 406 значит «неприемлемо». Формально сервер отвечает: я получил запрос, понял его, но отдавать ответ отказываюсь.
По спецификации HTTP код 406 означает, что браузер запросил формат ответа, которого у сервера нет. На реальных сайтах на WordPress это почти никогда не так — браузеры и админка WordPress запрашивают вполне стандартные форматы. Причина в другом месте: на сервере стоит защитный барьер, и именно он решил, что запрос выглядит подозрительно.
Причина в девяти случаях из десяти
Её выдаёт защитный модуль на сервере хостинга — чаще всего это ModSecurity, программа-фильтр, которую подключает почти любой хостинг на Apache или LiteSpeed для защиты от атак. Она читает каждый запрос и сверяет его с базой шаблонов вредоносного поведения.
Беда в том, что шаблоны широкие, а не точные. Они ищут признаки SQL-инъекций, вставки чужого кода и попыток взлома форм — и под эти признаки нередко попадает совершенно безобидный текст.
Типичные ситуации, в которых это происходит:
- в тексте статьи или комментарии есть фрагмент кода, SQL-запрос или строка вроде
SELECT * FROM; - в поле формы человек написал слово «select», «union» или использовал кавычки и угловые скобки подряд;
- вы сохраняете страницу с большим объёмом HTML-разметки или длинным JSON внутри блока Gutenberg;
- плагин или тема отправляет запрос с необычно длинным набором параметров в адресной строке.
Ключевой признак, по которому отличают именно эту причину: ошибка появляется не на всём сайте и не всегда, а на конкретном действии с конкретным содержимым. Один и тот же текст ломается стабильно, а весь остальной сайт в это время работает как обычно.
Осторожно. Совет «попросите хостинг выключить ModSecurity» встречается в интернете часто, и это плохой совет. Отключение снимает защиту не с одной статьи, а со всего сайта — с форм, с админки, со всех плагинов сразу.
Вторая частая причина: облачная защита сайта
Если сайт подключён к Cloudflare или похожему сервису (это бесплатная и очень распространённая практика — CDN и защита от одного и того же провайдера), запрос сначала проходит через него и только потом попадает на хостинг. Заблокировать его может уже эта облачная защита, ещё до сервера.
Отличить её от ModSecurity хостинга просто по одному признаку: если временно отключить прокси Cloudflare для домена (в настройках DNS перевести запись из «облачной» в «только DNS») и ошибка исчезла — дело было в облачной защите, а не на сервере.
У Cloudflare для этого есть отдельная панель: раздел «Security → Events» показывает точный заблокированный запрос и правило, которое сработало. Через тот же раздел можно снять блокировку для конкретного адреса страницы, не трогая защиту всего сайта.
Совет. Если у сайта включён «Bot Fight Mode» в Cloudflare, проверьте его в первую очередь — он агрессивно блокирует нетипичные запросы, включая обращения WordPress к собственному REST API, из-за которых редактор не сохраняет страницу.
Таблица: как отличить причину по симптомам
Прежде чем писать в поддержку, стоит понять, где именно застрял запрос — это экономит один круг переписки.
| Симптом | Вероятная причина | Что делать |
|---|---|---|
| Ломается только при сохранении конкретного текста или фрагмента кода | ModSecurity на сервере хостинга | Написать в поддержку хостинга с точным описанием действия |
| Ломается сразу на входе в сайт или при любой отправке формы | Облачная защита (Cloudflare и подобные) | Проверить раздел Security → Events в панели облачной защиты |
| Появилась сразу после установки или обновления плагина | Конфликт плагина безопасности с темой или другим плагином | Отключить плагины по одному, начиная с плагинов безопасности и форм |
| Есть у всех посетителей и на всех действиях без исключения | Ручное правило в конфигурации сервера | Спросить хостинг, не добавляли ли правило на 406 вручную |
| Возникает только у одного человека из команды | Расширение браузера или локальный антивирус вмешивается в запрос | Проверить в режиме инкогнито или в другом браузере |
Как убедиться, что дело именно в этом
Уберите из текста подозрительный фрагмент — код, SQL-запрос, необычные символы — и попробуйте сохранить снова. Получилось — причина найдена, и дальше речь только о том, как сохранить этот фрагмент безопасно.
Второй признак: ошибка приходит мгновенно, без задержки. Сайт до полноценной обработки запроса даже не доходит — блокировка срабатывает раньше, чем WordPress успевает что-то сделать.
Третий способ проверки — открыть страницу с тем же действием в режиме инкогнито или на телефоне через мобильный интернет, а не через Wi-Fi офиса. Если ошибка пропала, вероятная причина — правило, привязанное к сети или IP-адресу, а не к содержимому.
Что делать по порядку
- Определите по таблице выше, где вероятнее всего застрял запрос. Это экономит время: не нужно одновременно писать хостингу и разбираться с Cloudflare.
- Обратитесь в поддержку хостинга или откройте панель облачной защиты. Опишите точное действие, которое вызывает ошибку, и попросите посмотреть журнал защитного модуля — им видно, какое именно правило сработало.
- Попросите добавить точечное исключение, а не выключить защиту. Хорошая поддержка добавляет исключение для конкретной формы, поля или адреса страницы — весь остальной сайт остаётся под защитой.
- Если фрагмент кода нужен в самой статье, вставляйте его через специальный блок для кода в редакторе, а не обычным текстом — тогда он передаётся в кодированном виде и не совпадает с шаблонами атак.
- Проверьте плагины, если первые три шага не помогли. Отключите их по одному, начиная с тех, что работают с формами и безопасностью, и повторите проблемное действие после каждого отключения.
Что написать в поддержку хостинга
Расплывчатое «у меня ошибка 406, помогите» увеличивает переписку на два-три письма. Поддержка отвечает быстрее и точнее, если сразу получает три вещи.
Готовый текст для тикета. «На сайте [адрес] при попытке [сохранить статью / отправить форму на странице / загрузить файл] возникает ошибка 406 Not Acceptable. Ошибка воспроизводится стабильно на этом действии, остальной сайт работает. Проверьте, пожалуйста, журнал ModSecurity (или вашего защитного модуля) за это время и добавьте точечное исключение для этого запроса, не отключая защиту полностью. Дата и время последней попытки: [указать]».
Если сайт стоит за Cloudflare, добавьте отдельную строку: «Проверил(а) также раздел Security → Events в Cloudflare — блокировки [нашёл(ла) / не нашёл(ла)]». Это сразу показывает поддержке хостинга, что причину уже сузили, и экономит цикл вопросов «а вы проверяли CDN».
Причины, которые встречаются реже
Конфликт плагинов. Плагины безопасности вроде файрвола на уровне WordPress иногда дублируют защиту хостинга и добавляют свои блокировки поверх. Проверяется отключением по одному, начиная с тех, что работают с формами и безопасностью.
Ручное правило в конфигурации сервера. Иногда администратор прописывает код 406 вручную для блокировки нежелательных запросов — например, старых версий ботов — а затем забывает про это правило. Спросить об этом напрямую в поддержке — законный вопрос.
Ошибка в теме или расширении. Редко, но бывает: код темы или плагина сам отдаёт статус 406 там, где должен был отдать другой — например, при неверной проверке заголовка запроса. Проверяется откатом на стандартную тему WordPress.
Как проверить, что ошибка не вернётся
Повторите ровно то действие, которое ломалось, с тем же содержимым. Ошибка, которая «больше не появляется» после одной удачной попытки, часто просто ждёт следующего похожего текста или следующей похожей формы.
Сохраните пример проблемного текста или скриншот формы. Если ошибка вернётся после обновления хостингом защитных правил, вы за минуту подтвердите поддержке, что причина та же, и не будете объяснять всё заново.
Если сайт для вас ведёт кто-то другой — фрилансер или подрядчик, который давно не отвечает — прежде чем разбираться с 406 самостоятельно, стоит проверить, в каком состоянии сайт вообще: как устроена защита сети и сайта простыми словами — разбор для тех, кто не хочет становиться администратором сервера, но должен понимать, что вообще происходит.
Частые вопросы
Ошибка 406 опасна для сайта сама по себе?
Нет, это не взлом и не поломка базы данных. Это защитный модуль отказался пропустить один конкретный запрос. Опасность в другом: если её причину не найти, человек, который столкнулся с ошибкой при отправке заявки, просто уйдёт без обращения.
Поможет ли переустановка WordPress или смена темы?
Почти никогда. Причина в девяти случаях из десяти находится не в коде WordPress, а на уровне защитного модуля хостинга или облачного сервиса — переустановка ядра до него не достаёт.
Почему ошибка появляется только у одного сотрудника, а у остальных всё работает?
Чаще всего дело в конкретном действии этого человека — он вставляет код, длинные ссылки или необычные символы, которых нет в действиях коллег. Реже причина в его сети, антивирусе или расширении браузера, которое подменяет заголовки запроса.
Может ли ошибку вызвать сторонний скрипт вроде счётчика аналитики?
Такое бывает редко, но возможно, если скрипт отправляет на сервер собственные запросы с нестандартными параметрами. Проверяется тем же способом: временно убрать скрипт и повторить действие.
Что делать, если хостинг отвечает «у нас так у всех, ничего не меняли»?
Попросите точную дату и время последней попытки и журнал защитного модуля именно за этот момент — общий ответ без журнала ничего не доказывает. Если сайт за Cloudflare, отдельно проверьте раздел Security → Events там же.
Как отличить, что виновата облачная защита, а не хостинг?
Временно переключите DNS-запись домена в Cloudflare из «облачного» режима в режим «только DNS» и повторите действие. Если ошибка пропала — дело в облачной защите; если осталась — ищите в журнале хостинга.

