Если после смены структуры ссылок, переезда на новый домен или правки настроек SEO у вас начали отдавать 404 страницы авторов, рубрик или архивов по датам, проблема обычно не в одном месте. Чаще всего ломается связка из rewrite rules, кэша, плагина SEO и старых ссылок в индексе. Исправлять это нужно по шагам: сначала понять, что именно отдает 404, потом восстановить маршрутизацию, а уже после — закрыть дубли и проверить индексацию.
Как понять, где именно ломается архив
Начните не с кода, а с диагностики. Одна и та же ошибка 404 может означать разные вещи: URL больше не существует, правило перезаписи не обновилось, архив отключен плагином, либо сервер отдает не тот ответ из-за кэша.
Что проверить в первую очередь
- открывается ли сама запись по новому URL;
- работают ли рубрики и теги;
- ломаются ли только архивы авторов или все архивные страницы;
- менялся ли
permalinkвНастройки → Постоянные ссылки; - есть ли SEO-плагин, который мог отключить архивы авторов;
- не висит ли старый 404 в кэше страницы или CDN.
Если 404 появляется только на страницах авторов, а записи и рубрики открываются нормально, чаще всего причина в настройках SEO-плагина или в том, что архивы авторов были отключены ранее и потом структура сайта поменялась. Если же не работают вообще все архивы, сначала обновляйте правила перезаписи.
Пошаговое решение без лишних изменений
Ниже рабочая последовательность, которая обычно позволяет вернуть архивы в норму без переустановки сайта и без ручного редактирования ядра.
1. Сбросьте правила перезаписи
Самый безопасный способ — просто сохранить настройки постоянных ссылок заново. Это заставляет WordPress пересобрать rewrite rules.
- Откройте
Настройки → Постоянные ссылки. - Ничего не меняя, нажмите «Сохранить изменения».
- Проверьте проблемный архив еще раз.
Если после этого 404 исчезла, значит проблема была именно в правилах маршрутизации. Это частый сценарий после миграции, восстановления бэкапа или ручной правки .htaccess.
2. Проверьте, не отключены ли архивы авторов
Во многих SEO-плагинах есть настройка, которая отключает архивы авторов ради борьбы с дублями. Это нормально для блога с одним автором, но после изменения структуры сайта такая настройка может неожиданно дать 404.
Если у вас включен плагин для SEO-оптимизации, проверьте, не скрывает ли он архивы авторов, даты или таксономии. Если архив нужен, его надо включить обратно. Если архив не нужен, лучше не оставлять 404, а отдать 410 или сделать редирект на более релевантную страницу.
3. Очистите кэш на всех уровнях
После правок в WordPress не забывайте про кэш плагина, серверный кэш и CDN. Иначе вы можете исправить проблему, но видеть старый ответ еще несколько часов.
- очистите кэш плагина;
- сбросьте объектный кэш, если он есть;
- обновите кэш на уровне nginx/Apache, если он настроен;
- очистите CDN, если сайт через него проходит.
Если архивы должны работать, но URL изменился
Когда вы меняете структуру URL, старые ссылки из поиска и внешних сайтов никуда не исчезают. В этом случае правильнее не просто «починить 404», а настроить понятный переход со старых адресов на новые.
Для архивов авторов и других страниц, которые переехали, обычно используют 301-редирект. Это лучше, чем оставлять 404, если у страницы есть явный новый адрес.
Пример редиректа старого архива автора на новый URL
<?php
add_action( 'template_redirect', function () {
if ( is_author() ) {
$author = get_queried_object();
if ( $author && ! empty( $author->user_nicename ) ) {
$new_url = home_url( '/authors/' . $author->user_nicename . '/' );
wp_redirect( $new_url, 301 );
exit;
}
}
} );Этот вариант подходит только если у вас действительно есть новая структура, например отдельный раздел /authors/. Если нового адреса нет, не надо редиректить архив на главную страницу без смысла — это ухудшает поведение пользователей и может выглядеть как soft 404.
Пример: отдать 410 для ненужного архива
Если архив больше не нужен и вы сознательно убираете его из сайта, лучше вернуть 410 Gone, а не маскировать проблему.
<?php
add_action( 'template_redirect', function () {
if ( is_author() ) {
status_header( 410 );
nocache_headers();
include get_query_template( '404' );
exit;
}
} );Такой подход честнее для поисковиков: страница удалена намеренно, а не сломалась случайно.
Когда проблема в дублировании и индексации
Иногда 404 — это только верхушка. На сайте могут одновременно существовать старые и новые URL, а поисковик продолжает ходить по обоим. Тогда нужно не только чинить ответ сервера, но и убрать дубли.
| Подход | Когда использовать | Минус |
|---|---|---|
| Редирект 301 | Есть новый канонический URL | Нужна аккуратная карта перенаправлений |
| 410 Gone | Страница удалена окончательно | Нельзя вернуть трафик на новый адрес |
| Оставить 404 | Случайный или ошибочный URL | Не решает проблему старых ссылок |
Если у вас много дублей архивов, полезно проверить, не создаются ли они из-за параметров в URL, пагинации или неправильных canonical. В таких случаях 404 может быть лишь следствием того, что поисковик попал на устаревший адрес.
Проверка результата после внедрения
После правок не ограничивайтесь ручным открытием одной страницы. Проверьте ответ сервера и поведение сайта в нескольких сценариях.
- откройте старый URL в браузере и убедитесь, что он дает 301, 410 или рабочую страницу, как задумано;
- проверьте новый URL через режим инкогнито;
- посмотрите заголовки ответа через
curl -I; - убедитесь, что в Search Console больше не растет число ошибок по этим адресам;
- проверьте, не остался ли старый адрес в sitemap.
Пример проверки через консоль:
curl -I https://example.com/author/old-name/Если вы ожидаете редирект, в ответе должен быть 301 и заголовок Location с новым адресом. Если вы ожидаете удаление, должен быть 410. Если видите 200 на старом URL, значит редирект не сработал. Если видите 404 на новом URL, проблема все еще в маршрутизации или шаблоне.
Частые ошибки и как их исправить
Редирект сделан в шаблоне, но не работает
Причина обычно в том, что код вставили слишком поздно или в файл, который не загружается на нужном запросе. Для редиректов используйте template_redirect, а не вывод в шаблоне архива.
404 осталась после правки .htaccess
Если сайт на Apache, проверьте, не перезаписывает ли сервер правила WordPress. Если на Nginx, .htaccess вообще не влияет. В этом случае надо смотреть конфигурацию сервера и правила location.
Архив автора отключен SEO-плагином
Это частая причина, когда после обновления плагина или смены настроек страница автора внезапно стала 404. Если архив нужен, включите его обратно. Если не нужен, не оставляйте его в полумертвом состоянии — настройте 410 или редирект.
Редирект ведет на главную
Такой вариант часто выглядит как быстрый фикс, но на практике он создает плохой пользовательский сценарий и может запутать поисковики. Лучше направлять на максимально близкую по смыслу страницу или честно отдавать 410.
Что сделать для безопасности и производительности
Если вы правите архивы кодом, не вносите изменения прямо в ядро темы. Используйте дочернюю тему или небольшой mu-plugin. Так обновление темы не затрет правки.
Минимальный безопасный набор действий:
- сделать бэкап перед изменениями;
- проверять редиректы на тестовом URL, а не сразу на боевом;
- не плодить цепочки из нескольких 301 подряд;
- не закрывать 404 через JavaScript — это не решает серверную проблему;
- не отключать архивы только ради «чистоты», если они реально нужны пользователям.
Если у вас много технических дублей, полезно отдельно пересмотреть sitemap, canonical и правила индексации. Для этого иногда удобнее использовать инструменты вроде Clearfy Pro, но только как средство настройки, а не как замену нормальной диагностики. Сначала выясните причину 404, потом уже чистите дубли и лишние архивы.
Когда проблема решена, зафиксируйте, какие URL должны жить, какие должны редиректиться, а какие — отдавать 410. Это экономит время при следующих обновлениях и миграциях.