WordPress attachment. Настраиваем редирект вложенных изображений

Решаем проблему вложенных изображений к посту WordPress, которые в значительной мере могут ухудшить индексацию сайта и загнать в поиск массу ненужных страниц.

Любую платформу системы управления содержимым, какую бы вы ни выбрали, нужно оптимизировать и настраивать под свои нужды. Где-то требуется больше времени и работы, но в конечном итоги, каждую можно довести до идеала. И сегодня сделаем один такой шаг в сторону оптимизации WordPress, настроев редирект на все вложенные картинки поста.

Что такое attachment в WordPress?

Attachment – это прикрепленные /вложенные/загруженные медиафайлы к записи/статье через загрузочную форму в разделе редактирования постов. То есть файлы, добавленные через кнопку «Добавить медиафайл» автоматически привязываются к этой конкретной записи. И в следствии каждая картинка создает для себя отдельную страницу.

Почему это проблема?

Дело в том, что эти все вложенные изображения имеют такой же адрес URL, как и у поста, только после окончания адреса добавляется вложение. Пример — http://site.ru/post-title.html/attachment/img-title. И в некоторых случаях, в зависимости от содержания файла вложения, может дублироваться еще и какой-то контент, включая и название статьи.

Таким образом, в поиске образовывается большое количество дублей одной и той же записи. Что и является проблемой в ухудшении индексации сайта, появление мусорных ссылок и тому подобное.

Редирект attachment WordPress

Есть различные варианты и решения «отключения» вложенных в посты медиафайлов. Точнее, не отключение, а настройка редиректа 301, чтобы вложение направляло на основной адрес поста. И со временем произойдет склейка attachment с родительским постом. Все способы почти аналогичны друг другу, за исключением мелких деталей.

Редирект через файл вложения

За содержание прикрепленных изображений отвечает файл attachment.php или image.php. Они должны находиться внутри вашей текущей темы. Если таковых не обнаружите, то просто создайте новый файл с одним из названий выше, и поместите в этот файл код, который ниже. В случае если тема содержит один из названых файлов, тогда все содержимое поменяйте также на код, который ниже. И лучше всего этот файл загрузить в дочернюю тему.

<?php wp_redirect( get_permalink( $post->post_parent ), 301 ); exit; ?>

Через файл functions.php

Аналогичное решение, только нужно отредактировать файл функций. А в самом коде можно выбрать редирект как на основной URL, так и указать, чтоб вложенные картинки ввели на страницу ошибки 404.

add_action('template_redirect', 'template_redirect_attachment');
    function template_redirect_attachment() {
    global $post;
    if (is_attachment()) {
        wp_redirect(get_permalink($post->post_parent));//переадресация на родительский пост
                //или на сстраницу ошибки 404
                /*$wp_query->set_404();*/
         }
 }

Плагин Attachment Pages Redirect

Если не хочется возиться с редактированием и созданием файлов, проще тогда установить плагин. В нем отсутствуют какие-либо настройки, параметры или что-то подобное. Он только включает редирект и все. Установили и забыли про него.

Плагин Yoast SEO

Так как данный СЕО-плагин используют многие пользователи, то может быть вы являетесь одним из их. И вам в таком случае не придется ничего делать, а только включить в его параметрах один пункт. На вкладке «Yoast SEO — Настройки — Дополнительно — Страницы медиа», отключаем параметр «Включить медиафайлы страниц». Не забудьте сохранить изменения.

Плагин AIOSEO

В панеле All in One SEO откройте вкладку «Вид в поисковиках — SEO-изображения». И в пункте «URL переадресации вложений» выберете «Родитель вложения». Сохраните и проверьте результат.

4 комментария
  1. Если яндекс вебмастер говорит Страница неизвестна роботу, то можно не ставить редирект?

    1. Это может говорить о том, что яндекс еще не был на них. (извиняюсь за опоздалый ответ, был в отъезде)

  2. Yoast SEO, версия 12.5.

    Не могу найти настройки, указанные вами. Неужели их упразднили в обновлении? Или перенесли в премиум...?

Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *