Как быстро устранить проблему для защиты SEO…
Здравствуйте, уважаемые читатели блога WebMacter.ru. Поделюсь с вами, как я решил проблему с дублями архивов форматов записей (Post Formats). Написал письмо Алексею Гудвину, кто не знает, он создаёт шаблоны для движка WordPress.
Алексей, здравствуйте! Как можно убрать дубли с разделами /type/ в теме gp-agency, если они там имеются от этой темы? Запретил в robots.txt, но всё равно эти страницы дубли индексируются.
См. примеры страниц:
{https://www.aauhadullin.ru/type/image/}
{https://www.aauhadullin.ru/type/video/page/2/}
{https://www.aauhadullin.ru/type/video/}
{https://www.aauhadullin.ru/type/aside/}
Ответ от Гудвина
Здравствуйте, Альберт.
Ваш type это формат записи. Он появился на сайте, когда Вы стали ставить отметки в поле Тип записи — видео, галерея, заметка и тому подобное см. по ссылке: https://misha.agency/wordpress/post-formats.html
Видимо, Вы либо добавили форматы на сайт вручную, и ставили в них отметки, в результате чего наплодили кучу дублей и бесполезных архивов.
Чтобы отключить форматы на сайте, можно добавить в functions.php активной темы такой код:
function gp_remove_post_formats() {
remove_theme_support(‘post-formats’);
}
add_action( ‘after_setup_theme’, ‘gp_remove_post_formats’, 11 );
Также можно попробовать поставить какой-нибудь плагин для 301 редиректа этих форматов либо погуглите — как удалить post-formats wordpress.
Погуглил и нашел ответ…
Устранение проблемы дублей, архивов форматов записей
Далее разберёмся, как устранить проблему дублей архивов форматов записей.
Вот пошаговое решение:
- Определяем суть проблемы. Такие страницы URL вида /type/video/ — это архивы форматов записей (Post Formats), а не кастомные типы записей. Это стандартная функция WordPress, которую активировал плагин, или тема.
- Отключаем архивы форматов. Предварительно (обязательно подстрахуйтесь) сохраните резервную копию данных сайта, быкап базы данных и добавьте в functions.php вашей темы этот код:
// Отключаем архивы для всех форматов записей
add_action('pre_get_posts', 'disable_post_format_archives');
function disable_post_format_archives($query) {
if ($query->is_tax('post_format') && $query->is_main_query() && !is_admin()) {
$query->set_404();
status_header(404);
nocache_headers();
}
}
Что это делает? Все запросы к архивам форматов /type/video/, /type/image/ и т. д. будут возвращать 404 ошибку.
- Удаляем упоминания форматов из системы движка.
Чтобы полностью убрать форматы записей из WordPress, добавляем в файл функции этот код:
// Удаляем все форматы записей
add_action(‘after_setup_theme’, ‘remove_post_formats’);
function remove_post_formats() {
remove_theme_support(‘post-formats’);
}
Затем настраиваем редиректы для существующих URL…
Чтобы перенаправить старые ссылки на главную страницу или в архив постов, добавьте в .htaccess редирект для /type/*, но с одной оговоркой, если у вас подключён Apache:
RedirectMatch 301 ^/type/.*$ /
Или через PHP в functions.php:
add_action(‘template_redirect’, ‘redirect_post_format_archives’);
function redirect_post_format_archives() {
if (is_tax(‘post_format’)) {
wp_redirect(home_url(), 301);
exit;
}
}
Далее чистим поисковые системы…
Добавьте в файл robots.txt:
User-agent: *
Disallow: /type/*
И добавьте метатег noindex для всех страниц форматов:
add_action('wp_head', 'add_noindex_for_post_formats');
function add_noindex_for_post_formats() {
if (is_tax('post_format')) {
echo '<meta name="robots" content="noindex, follow">';
}
}
После внедрения кода проверьте результат…
Все страницы URL вида /type/* будут возвращать 404 или редиректить на главную страницу, и форматы записей исчезнут из интерфейса WordPress. В результате поисковики перестанут индексировать эти страницы.
Дополнительные меры
Нужно проверить плагины. Найдите плагин, который создал эти форматы, и отключите его, скорее всего, это плагин для SEO или кастомных типов записей.
- Настройте постоянные ссылки. Зайдите в админку Вордпресс: Настройки → Постоянные ссылки и нажмите «Сохранить» для сброса правил.
- Если нет, создайте кастомный 404-шаблон. Добавьте файл 404.php в тему, чтобы красиво отображать страницы-дубли, как «Не найдено».
Пример кодов, которые я внедрил на своих сайтах для устранения проблемы в файл functions.php:
// Удаляем поддержку форматов
add_action('after_setup_theme', 'remove_post_formats');
function remove_post_formats() {
remove_theme_support('post-formats');
}
// Редирект + 404 для архивов форматов
add_action('template_redirect', 'handle_post_format_archives');
function handle_post_format_archives() {
if (is_tax('post_format')) {
wp_redirect(home_url(), 301);
exit;
}
}
// Добавляем noindex
add_action('wp_head', 'post_format_noindex');
function post_format_noindex() {
if (is_tax('post_format')) {
echo '<meta name="robots" content="noindex, follow">';
}
}
После внедрения этих решений дубли архивов исчезнут из системы, а поисковики перестанут их индексировать. Но также улучшится скорость загрузки страниц. 😊
См. фактическая производительность на компьютерах:

См. фактическая производительность на мобильных телефонах:

Если есть вопросы, пишите в комментарии. Удачи вам и всего хорошего! До скорых встреч на страницах блога WebMacter.ru.