На днях я проводил небольшую SEO-оптимизацию блога и заметил, что несколько «страниц с изображениями» попали в индекс Google. Как я позже выяснил — всякий раз, когда вы загружаете медиафайл (например, изображение или видео), WordPress автоматически создает постоянную ссылку на его страницу (не путать с прямой ссылкой на файл). На такой странице отображается только ваше вложение и его заголовок (если вы его добавили).
Проблема в том, что такие страницы практически бесполезны, так как не содержат ценной информации, а все что не имеет ценности для пользователей, по правилам SEO должно быть закрыто от поисковых систем, иначе это может негативно повлиять на рейтинг сайта.
К сожалению, возможность отключения генерации таких ссылок в WordPress не предусмотрена. Технически каждое вложение это отдельный пост содержащий всю информацию о файле, которую вы указываете (или не указываете) в Библиотеке. Поэтому, на вопрос: «Как удалить страницы вложений в WordPress?«, ответом будет — НИКАК.
Но есть решение, которое предотвратит попадание таких страниц в индекс поисковых систем. И называется оно — Редирект 301. В данной ситуации это лучшее решение как для удобства пользователей, так и для SEO-оптимизации.
В этой статье будут описаны несколько способов установки переадресации со страниц вложений — на прямые ссылки медиафайлов или их родительские записи.
Переадресация со страниц вложений плагином Yoast SEO
Самый простой способ переадресации страниц вложений — это воспользоваться возможностями бесплатного плагина следуя двум простым шагам:
- Установите и активируйте плагин Yoast SEO
- После активации проследуйте в настройки плагина: SEO → Отображение в поисковой выдаче → Медиа и убедитесь, что опция «Перенаправить URL вложений на файл вложения?» была включена.
Вот и все. Но так как у меня некоторые страницы вложений уже были в индексе и по ним даже были переходы с поиска, то я решил перенаправлять не на саму картинку (какая польза от этого пользователю?), а на родительскую запись в которой загружалась эта картинка. Поэтому я использую второй способ. Вообще-то я совмещаю оба, только с другими настройками, так как использую генерацию карты сайта данным плагином. Но сейчас не об этом.
Перенаправление с помощью пользовательской функции
Вы так же можете использовать пользовательскую функцию (сниппет) для перенаправления страниц вложений на домашнюю страницу или на родительскую запись. Эту функцию нужно добавить в файл functions.php вашей темы (желательно в дочернюю тему). Но я использую для этого плагин Code Snippets, который позволяет добавлять и управлять сниппетами прямо из админ-панели. Выбирайте сами, как вам удобней.
function myprefix_redirect_attachment_page() {
if ( is_attachment() ) {
global $post;
if ( $post && $post->post_parent ) {
wp_redirect( esc_url( get_permalink( $post->post_parent ) ), 301 );
exit;
} else {
wp_redirect( esc_url( home_url( '/' ) ), 301 );
exit;
}
}
}
add_action( 'template_redirect', 'myprefix_redirect_attachment_page' );
Обратите внимание, что этот код будет перенаправлять только когда is_attachment ()
вернет true
, а также перенаправление будет работать для файлов любого типа, а не только изображений. Однако вы можете настроить редирект только для изображений, добавив несколько дополнительных проверок.
Собственно на этом все. Теперь обновив страницу вложения, она должна перенаправить вас на родительскую запись, в которой вложение было загружено, а если оно было загружено непосредственно через медиа-библиотеку, редирект будет вести на домашнюю страницу сайта.