Как отключить страницы вложений в Вордпресс

Покажу три способа отключения страниц вложений в Вордпресс: с помощью плагина Yoast SEO, плагина Attachment Pages Redirect и сниппета.

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

Генерируются у вас эти страницы или нет проверить легко: их видно в Google Search Console и Яндекс Вебмастере. А можно просто в админке сайта открыть любое загруженное изображение и кликнуть по ссылке «Просмотреть страницу вложения».

WordPress: Информация о вложении
WordPress: Информация о вложении

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

Yoast SEO

Популярный SEO-плагин решает задачу «из коробки».

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

Идем сюда: SEO ⟶ Отображение в поисковой выдаче ⟶ Медиа

Yoast SEO: Медиа
Yoast SEO: Медиа

Устанавливаем «Перенаправлять URL вложений на файл вложений». То есть при открытии страницы вложения будет осуществлен редирект на само вложение.

Attachment Pages Redirect

Маленький, но полезный плагин с говорящим названием Attachment Pages Redirect выполняет всего одну функцию: делает редирект со страницы вложения.

У плагина три сценария работы:

  1. Если вложение прикреплено к записи — осуществляется 301-й редирект на саму запись;
  2. Если запись безвозвратно удалена — осуществляется 302-й редирект на главную страницу сайта;
  3. Если запись удалена, но находится еще в корзине — пользователю возвращается 404-я ошибка.

Сниппет

Самый любимый вордпрессерами ручной способ решения задачи.

Потребуется только создать файл image.php в корне активной темы. Если файл в каталоге уже присутствует, значит редактируем его, предварительно все из него удалив.

<?php
 global $post;
 if ( $post && $post->post_parent ) {
     wp_redirect( get_permalink( $post->post_parent ), 301 );
 } else {
     wp_redirect( home_url( '/' ), 301 );    
 }
 exit;

Данный код, как и предыдущий плагин, при наличии привязанной к вложению записи осуществляет на нее 301-й редирект, при ее отсутствии — перенаправляет на главную страницу.

Иван Данилин
Автор Иван Данилин

Делаю сайты на Вордпресс с 2008 года, в том числе уникальные инструменты для решения сложных бизнес‑задач.

Подробнее
Добавить комментарий