Как исправить ошибку 404 в WordPress

Если в WordPress открывается главная, а отдельные страницы, записи или рубрики внезапно дают 404, чаще всего проблема не в самом контенте, а в правилах постоянных ссылок, настройках сервера или конфликте с плагином/темой. После переноса сайта, смены структуры URL, обновления темы или чистки кэша это типичная ситуация: адрес есть, а WordPress не может правильно сопоставить его с записью.

Ниже — порядок проверки, который обычно помогает быстро найти причину и вернуть рабочие страницы без лишних экспериментов.

Сначала проверьте, что именно сломалось

404 в WordPress бывает двух основных типов. Первый — страница реально существует, но сервер или WordPress не может построить правильный маршрут. Второй — контент удалён, перемещён или недоступен по текущему адресу. От этого зависит, что исправлять.

Начните с простого:

  • откройте проблемный URL в режиме инкогнито;
  • проверьте, 404 ли это только у отдельных страниц или у всего сайта;
  • сравните поведение на главной, в архиве рубрик и на произвольной записи;
  • посмотрите, не менялся ли недавно slug, структура постоянных ссылок, тема или набор плагинов.

Если 404 появляется только на отдельных страницах после изменений, в большинстве случаев проблема решается без правки кода.

Самая частая причина — сбились постоянные ссылки

После переноса сайта, восстановления из бэкапа или обновления настроек WordPress иногда перестаёт корректно переписывать URL. Тогда записи существуют в базе, но маршрутизация ломается, и сайт отвечает 404.

Самый безопасный способ — просто пересохранить структуру постоянных ссылок:

  1. Откройте Настройки → Постоянные ссылки.
  2. Ничего не меняя, нажмите Сохранить изменения.

Это действие заставляет WordPress заново записать правила пермалинков. Во многих случаях этого достаточно, чтобы 404 исчезла.

Если после этого страницы всё ещё не открываются, проверьте, не используется ли у вас нестандартная структура ссылок, которая конфликтует с таксономиями, страницами или кастомными типами записей. Например, когда у рубрик, страниц и CPT одинаковые базы URL, WordPress может путаться в маршрутизации.

Проверьте файл .htaccess или правила веб-сервера

Если сайт работает на Apache или LiteSpeed, для красивых URL обычно нужен корректный .htaccess. При переносе сайта, ручном редактировании или восстановлении из резервной копии этот файл может оказаться пустым, повреждённым или без стандартных правил WordPress.

Для обычной установки WordPress в корне сайта в .htaccess должны быть правила, похожие на эти:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Если WordPress установлен в подкаталоге, RewriteBase и путь в последнем правиле будут другими. Копировать правила вслепую не стоит: учитывайте реальный путь установки.

На Nginx .htaccess не используется. Там нужно проверять конфигурацию сервера: если правила на уровне Nginx не передают запросы в index.php, WordPress не сможет обработать «красивые» ссылки. В этом случае правка делается на стороне хостинга или в конфиге виртуального хоста, а не в админке WordPress.

Исключите конфликт плагина или темы

Если 404 появилась после установки плагина, смены темы или обновления, причина может быть в конфликте маршрутизации. Это особенно заметно, когда перестают открываться не все страницы, а только записи одного типа, архивы или страницы с определённым шаблоном.

Проверяйте по порядку:

  1. Временно отключите недавно добавленные плагины, особенно те, что работают с SEO, кэшированием, редиректами, мультиязычностью и кастомными типами записей.
  2. Переключите тему на стандартную WordPress-тему, например, временно на одну из дефолтных, если это возможно без риска для внешнего вида.
  3. После каждого шага снова откройте проблемный URL.

Если после отключения конкретного плагина страницы начинают открываться, значит, он меняет правила URL или перехватывает запросы. В таком случае ищите его настройки, связанные с постоянными ссылками, базой рубрик, редиректами или кэшем.

Если проблема исчезает только после смены темы, значит, тема могла регистрировать собственные типы записей или таксономии с конфликтующими slug. Тогда нужно проверить, не совпадают ли адреса страниц с базой CPT, рубрик или архивов.

Когда 404 возникает только на части страниц

Если главная и большинство разделов работают, а отдельные URL дают 404, причина часто в самих адресах контента.

Проверьте slug страницы или записи

После редактирования заголовка WordPress может изменить ярлык страницы. Если старый адрес уже не существует, а редирект не настроен, пользователь увидит 404. Это обычная ситуация после переименования материала.

Откройте нужную страницу в админке и проверьте поле Ярлык. Если адрес менялся, настройте 301-редирект со старого URL на новый. Иначе поисковики и внешние ссылки будут вести на несуществующую страницу.

Проверьте родительскую страницу и иерархию

Для вложенных страниц URL зависит от родителя. Если родитель удалён, изменён или переведён в черновик, дочерняя страница может стать недоступной по старому адресу. Это особенно часто случается на сайтах с глубокой структурой разделов.

Откройте свойства страницы и убедитесь, что:

  • родительская страница существует и опубликована;
  • вложенность не изменилась случайно;
  • URL дочерней страницы соответствует текущей иерархии.

Проверьте рубрики и архивы

Если 404 появляется на страницах рубрик, тегов или архивов автора, проблема может быть в изменении базы таксономии. Например, после настройки SEO-плагина или ручной правки структуры ссылок старые архивы перестают совпадать с новыми правилами.

В этом случае нужно проверить настройки постоянных ссылок и параметры плагина, который управляет таксономиями. Иногда достаточно снова сохранить настройки, но если база рубрик была изменена, потребуется либо вернуть прежний формат, либо настроить редиректы.

Очистите кэш после исправлений

После правки постоянных ссылок, .htaccess или настроек плагина кэш может продолжать отдавать старую 404-страницу. Это касается как кэша самого WordPress-плагина, так и серверного кэша, CDN и браузера.

Что стоит очистить:

  • кэш плагина;
  • кэш хостинга, если он есть;
  • CDN, если сайт подключён к нему;
  • кэш браузера или проверить URL в инкогнито.

Если после очистки кэша страница открывается, значит, проблема была не в WordPress как таковом, а в устаревшей копии ответа.

Если сайт переносили или восстанавливали из бэкапа

После миграции 404 часто появляются из-за неполного переноса базы, неверного домена в настройках или несоответствия путей к файлам. Это уже не только вопрос пермалинков.

Проверьте:

  • адрес сайта в Настройки → Общие;
  • совпадает ли домен в базе и на хостинге;
  • не остались ли в контенте старые абсолютные ссылки;
  • правильно ли перенесены файлы WordPress, особенно .htaccess и корневые правила сервера.

Если домен менялся, а старые URL всё ещё используются в базе, может понадобиться поиск и замена адресов в контенте и настройках. Делать это нужно аккуратно и только после резервной копии.

Как проверить, что ошибка действительно исправлена

После каждого изменения открывайте не только проблемную страницу, но и несколько соседних URL того же типа: запись, страницу, рубрику, архив. Так вы быстрее поймёте, что именно сломалось и не вернулась ли проблема после очистки кэша.

Хороший порядок проверки такой:

  1. Откройте проблемный URL в инкогнито.
  2. Проверьте страницу после очистки кэша.
  3. Откройте несколько других внутренних ссылок.
  4. Если есть доступ к логам сервера, посмотрите, не остаются ли запросы с кодом 404.

Если 404 исчезла только в браузере, но в логах сервера она остаётся, значит, редирект или правило маршрутизации ещё не настроены до конца.

Что делать, если ничего не помогло

Когда пересохранение постоянных ссылок, проверка .htaccess, отключение плагинов и очистка кэша не дают результата, обычно остаются три сценария: проблема в конфигурации веб-сервера, конфликт в теме или ошибка в структуре кастомных типов записей. На этом этапе полезно включить отладку на тестовой копии сайта и проверить, какие именно URL WordPress пытается обработать.

Если сайт рабочий и вы не хотите рисковать, не правьте конфигурацию на боевом сервере вслепую. Сначала сделайте резервную копию, затем проверьте проблему на staging-версии или хотя бы сохраните текущие настройки сервера и плагинов. Для сложных случаев, особенно после миграции или при нестандартной структуре URL, это экономит больше времени, чем серия случайных правок.

В большинстве же типовых ситуаций порядок простой: пересохранить постоянные ссылки → проверить .htaccess или правила Nginx → отключить конфликтующий плагин/тему → очистить кэш → проверить slug и иерархию страниц. Именно в таком порядке обычно быстрее всего находится причина 404 в WordPress.

⭐⭐⭐⭐⭐