На сайтах с одним редактором архив автора часто превращается в дубль главной или страницы блога. В индексе появляется еще один URL с тем же списком записей, а пользы от него почти нет. При этом просто закрыть архивы авторов в robots.txt — плохая идея: URL останется доступным, а поисковик может продолжать видеть его как отдельную страницу.
Ниже — рабочая схема: сначала проверяем, действительно ли архивы авторов лишние, затем отключаем их аккуратно, без поломки ссылок на автора в шаблонах и без лишних дублей в sitemap.
Когда архивы авторов действительно мешают
Отключать их имеет смысл не всегда. Если на сайте несколько авторов, у каждого есть своя рубрика, биография и заметный вклад в контент, архив может быть полезен. Но на блоге с одним автором или на корпоративном сайте ситуация другая: архив автора обычно дублирует список записей, а в сниппетах и внутренних ссылках не дает новой информации.
Типичный сценарий проблемы:
- в индексе есть страницы вида
/author/username/; - их title и description почти совпадают с архивом блога;
- в sitemap попадают URL, которые не нужны для поиска;
- в шаблоне темы имя автора ведет на пустой или бесполезный архив;
- в логах или Search Console видны дубли и страницы с низкой ценностью.
Диагностика: что проверить перед изменениями
Сначала убедитесь, что архивы авторов действительно не нужны. Это можно сделать без кода.
- Откройте несколько URL вида
/author/...и сравните их с главной страницей блога. - Проверьте, есть ли у автора отдельная страница профиля с полезным контентом.
- Посмотрите, не используются ли архивы авторов в хлебных крошках, блоках «об авторе» или в теме.
- Проверьте XML sitemap: если архивы авторов там есть, их нужно убрать отдельно.
Если сайт использует SEO-плагин, сначала посмотрите его настройки. Иногда архивы авторов можно отключить без кода, но не все плагины делают это одинаково аккуратно. Если нужен контроль над поведением темы, надежнее закрыть архивы на уровне WordPress.
Пошаговое решение без лишних дублей
1. Отключить архивы авторов через редирект или 404
Если на сайте один автор и архивы не нужны, самый понятный вариант — отдавать 404 или перенаправлять на страницу блога. Для SEO чаще безопаснее 404, если архив не должен существовать как отдельная сущность. Если же у вас уже есть трафик на этот URL и вы хотите сохранить поведение для пользователей, можно сделать 301 на страницу записей.
Пример: отключаем архивы авторов и отправляем на главную страницу записей. Код можно положить в functions.php дочерней темы или в свой мини-плагин.
add_action('template_redirect', function () {
if (is_author()) {
wp_safe_redirect(get_permalink(get_option('page_for_posts')), 301);
exit;
}
});Если страница записей не задана, лучше не полагаться на этот код без проверки. В таком случае используйте более явный адрес, например home_url('/blog/'), если у вас фиксированный URL блога.
2. Убрать архивы авторов из sitemap
Если архивы закрыты, но остались в карте сайта, поисковик все равно будет тратить на них обход. В идеале sitemap должен отражать только те URL, которые вы хотите индексировать.
Для сайтов на WordPress с собственным sitemap можно исключить архивы авторов через фильтр wp_sitemaps_post_types не получится, потому что архивы авторов — это не тип записи. Проще либо отключить их в SEO-плагине, либо убрать через фильтр, если карта генерируется вашей темой/кодом. Для стандартного ядра WordPress архивы авторов в sitemap не добавляются, но многие SEO-плагины делают это сами, поэтому проверка нужна обязательно.
3. Скрыть ссылки на автора в шаблоне, если они ведут в пустоту
Если тема выводит имя автора ссылкой на архив, а архив вы отключили, ссылка становится лишней. В этом случае лучше заменить ее на обычный текст или вести на страницу профиля автора, если она у вас есть.
Пример для шаблона записи:
<?php
$author_id = get_the_author_meta('ID');
$author_name = get_the_author();
$author_url = get_author_posts_url($author_id);
if (author_can($author_id, 'read')) {
echo '<a href="' . esc_url($author_url) . '" rel="author">' . esc_html($author_name) . '</a>';
} else {
echo '<span class="post-author">' . esc_html($author_name) . '</span>';
}
?>Здесь важно не использовать условие author_can() как универсальную проверку существования архива: этот пример показывает только идею. На практике проще завести отдельную функцию или флаг в настройках темы, чтобы явно управлять выводом ссылки.
Сравнение подходов
| Подход | Что делает | Плюсы | Минусы |
|---|---|---|---|
| Редирект 301 | Перенаправляет архив автора на блог | Сохраняет пользователя, быстро внедряется | Не всегда уместен, если URL должен исчезнуть полностью |
| 404/410 | Сообщает, что страницы нет | Чистый сигнал для поисковика | Нужно проверить внутренние ссылки и шаблон |
| Отключение в SEO-плагине | Скрывает архивы на уровне настроек | Просто и без кода | Не всегда убирает ссылки из темы и sitemap |
Проверка результата после внедрения
После изменений не ограничивайтесь открытием страницы в браузере. Проверьте поведение на уровне HTTP и индексации.
- Откройте
/author/username/в режиме инкогнито и убедитесь, что срабатывает 301 или 404. - Проверьте заголовки ответа через
curl -I https://site.ru/author/username/. - Посмотрите исходный код страницы блога: ссылки на автора не должны вести на несуществующий архив.
- Проверьте sitemap и убедитесь, что URL автора там больше нет.
- В Search Console отправьте страницу на повторную проверку, если она уже была в индексе.
Пример проверки через консоль:
curl -I https://example.com/author/admin/Если вы видите 301 Moved Permanently, значит редирект работает. Если 404 Not Found или 410 Gone — архив отключен корректно. Если страница продолжает отдавать 200 OK, значит код не сработал или его перебивает тема/плагин.
Частые ошибки и как их исправить
Редирект зацикливается
Это бывает, если вы отправляете архив автора на URL, который сам тоже обрабатывается как архив автора или попадает под другой редирект. Проверьте конечный адрес и исключите его из условий.
Архив закрыт, но ссылка на автора осталась
Тема может выводить имя автора в нескольких местах: в карточке записи, в мета-блоке, в хлебных крошках. Ищите все шаблоны, где используется get_author_posts_url() или прямой вывод the_author_posts_link().
В sitemap остались старые URL
После изменения карты сайта не всегда обновляются мгновенно. Сначала очистите кеш SEO-плагина и кеш страницы, затем пересоздайте sitemap и повторно отправьте его в Search Console.
Закрыли архивы через robots.txt
Это не решает проблему дублей. Поисковик может продолжать учитывать URL, если он уже известен, а сам контент останется доступным. Для удаления из индекса нужен редирект, 404/410 или корректный noindex на странице.
Безопасность и производительность
Сам по себе архив автора не нагружает сайт критично, но лишние URL усложняют обход и поддержку. Если вы вносите изменения кодом, делайте это в дочерней теме или через отдельный мини-плагин, а не в родительской теме. Так обновление темы не откатит правку.
Если на сайте уже есть SEO-плагин, не дублируйте логику в нескольких местах. Два редиректа на один и тот же URL часто создают путаницу: один в теме, второй в плагине, третий на уровне сервера. Сначала проверьте, где именно сейчас живет правило, и оставьте один источник истины.
Для сайтов, где нужно одновременно чистить дубли, управлять архивами и не лезть в код, можно посмотреть на Clearfy Pro: у него есть инструменты для отключения лишних элементов WordPress и чистки дублей. Но если у вас нестандартная тема или сложная логика шаблонов, ручная проверка все равно нужна.
Короткий чек-лист перед публикацией
- Проверен тип сайта: один автор или несколько.
- Решено, нужен ли 301, 404 или отключение через настройки.
- Убраны ссылки на архив автора из шаблонов.
- Проверен sitemap и кеш.
- Проверен ответ сервера через
curl -I. - Сделана повторная проверка в Search Console.
Если после внедрения архивы авторов перестали открываться, а в индексе остались старые URL, это нормальная ситуация на переходный период. Важно, чтобы новые обходы получали уже правильный ответ сервера и не создавали новые дубли.