Меню

Как убрать страницы вложений на WordPress

Страницы вложений attachment

Столкнулась с серьезной проблемой на клиентском сайте: страницы вложений имели URL такого вида: название категории/название медиафайла и таким образом редирект, прописанный в файле .htaccess, который я использую на своих сайтах, здесь не работает. Приведу код:

 RewriteRule (.+)/attachment /$1 [R=301,L]
 RewriteCond %{QUERY_STRING} ^attachment_id= [NC]
 RewriteRule (.*) $1? [R=301,L]

Кстати, именно по причине борьбы с такими дублями и выбрала в настройках постоянных ссылок вид "/%category%/%postname%"
который позволял работать редиректу, потому что в URL'е вложений располагалось нужное "attachment"...

Замечу, что другие сайты спокойно существуют, не обращая внимание на эту проблему. Дело в том, что если не убирать в настройках изображения ссылку на медиафайл, такие дубли не попадают в индекс. А вот если убрать, поисковики их индексируют. Во всяком случае, в дополнительном индексе гугла их становится полным-полно... Вот такая загадка.

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

Простой способ отключить это безобразие

Но вернемся к решению задачи. Оказалось, что в установленной теме вообще отсутствовал файл attachment.php. Его пришлось создать (совсем пустой), залить в папку с темой. А в functions.php прописать такой код:

add_action('template_redirect', 'template_redirect_attachment');
 function template_redirect_attachment() {
 global $post;
 // Перенаправление на основную запись:
 if (is_attachment()) {
 wp_redirect(get_permalink($post->post_parent));
 }
 }

Все, после этих простых действий страницы вложений не открываются! Желаю всем успешного продвижения )

Загрузка...
Оставить комментарий
  1. Здравствуй Надежда!
    Я рад, что ты наконец вернулась в блоггинг! Спасибо тебе за полезную рекомендацию (удаление дублей вложений медиафайлов) и за пожелание.

    • Здравствуй, Алексей! Да, нет ничего более постоянного чем временное. На время отложила работу над блогом... и затянулась пауза на несколько месяцев. Рада видеть тебя!

  2. Из-за редиректа проблем с индексаций изображений нет?

    • Проблем нет конечно: это же не адрес изображений редиректится, а страница отдельная для медиафайла...

  3. По идее движки должны облегчать жизнь. На практике блогер обречён вникать в принципы и нюансы работы CMS.

  4. Ура! С возвращением. А мы тут плюшкам баловались пока Вас не было. :)
    А если серьезно, то Надежда, Вы же знаете что я меньше всего обращаю внимания на эти дубли страницы и прочую лабуду.

    • Тут серьезный вопрос, сильно мешающий продвижению, Андрей! Обращать внимание на это следует обязательно, если хотите успеха своему ресурсу.

  5. Надежда, но не умею я серьезно, без юмора скучно жить, так что простите, но я не исправим :)
    А с успехами блога мы даст бог разберемся.

  6. Прошу прощения, а что было прописано в стандартном файле .htaccess? Стандартные настройки WordPress не справляются?
    Плюс, есть неплохой плагин - Download Monitor, который позволяет улучшить некоторый функционал для загружаемых файлов.

    Честно, я в сео, конечно, относительный ламер, но объясните мне, чем неудобна ссылка на аттач той же картинки вида: frozenpath.ru/wp-content/uploads/2015/10/age-of-wonders-1.jpg если к ней прописаны тайтл и альт?

    Несколько раз перечитал, так и не понял в чем проблема. При выборе того же "/%category%/%postname%" отлично работают стандартные правила .htaccess для WordPress default и в чем заключается проблема в аттачах и зачем еще нужно описываемое правило в записи. Объясните?

    • Здравствуйте, Дмитрий! Ссылка, которую Вы указали, это ссылка на файл (кстати, выдает ошибку 404), а не на страницу вложения. Если с этим не бороться (проблема страниц вложений), появляются дубли страниц. Имея в статье несколько картинок, вы получите столько же дублей. И стандартные настройки, повторюсь, спасают, если оставлять как есть (то есть ссылка: медиафайл). Но тогда вес страницы уходит на файлы картинок. Мне лично это не нравится (как и ненужная кликабельность картинки). Надеюсь, объяснила понятно... Вот поэтому и пришлось искать нестандартное решение.

  7. Ох, спасибо вам за эту статью, пойду скрывать свои страницы вложений, а то получается каждое изображение дополнительно открываются, что мне вовсе не нужно.

  8. Еще вопрос, в в functions.php вы где прописываете этот код. Я лишний раз в этой файл не лезу... уже направила там, что кое-что пришлось возвращать назад..

    • Можно в самом конце, перед закрывающим тегом "?>". Этот способ описан для тех случаев, когда редиректы не работают, прописанные в файле .htaccess

  9. К моему сожалению, я после установки шаблона и движка WP не создала файл .htaccess, а теперь его создавать не смысла, поэтому будем обходиться иными методами.

  10. Мне уже пояснили, что сайт будет работать некорректно...

    • Странно. Еще не слышала о таком. Ну может такие особенности Вашей темы, я не специалист в общем-то. Удачи в решении вопросов с дублями, Елена!

  11. Надежда, добрый вечер! Какую Вы серьезную тему подняли, причем уже давно. А я только сейчас вот задумался над этим.

    Надежда, скажите, пожалуйста, у меня на блоге отображается картинка по адресу: http://text-center.ru/otdyh-2016-minimalnye-tseny/putevka_250x250/.

    Я правильно понимаю, что это и есть страница вложения? Только URL этой страницы не содержит attachment. В этом случае у меня код, которые Вы советуете разместить в functions.php, не будет работать?

    Извиняюсь за вопрос, просто вся эта проблема для меня возникла только что)

    • Здравствуйте, Сергей! Как раз наоборот, если есть attachment в адресе, с этими дублями легко бороться с помощью редиректа. А код предложенный как раз помог мне убрать такие дубли на сайте, где организация URL как у Вас.

  12. То есть я тоже могу этот код в functions.php вставить? Я попробую)

    • Сергей, будьте внимательны! В статье написано, что в моей теме не было файла attachment.php, я его создала и совершенно пустой закачала в папку с темой. Если файла не будет, можете поломать свой сайт.

  13. Да, Надежда, я понял, что нужно создать этот файл и оставить его пустым, правильно? У меня тоже нет этого файла в теме.

  14. Благодарю Вас)

  15. Здравствуйте, Надежда. Подскажите, а редирект спасёт от попадания этих страниц вложений в индекс ПС. А то сейчас они у меня индексируются как и обычные страницы.

    • Здравствуйте, Дмитрий! Конечно, для этих целей он и придуман. Только нужно использовать 301 редирект.

  16. Спасибо за быстрый ответ! Буду делать 301 редирект.

  17. Здравствуйте. Я тоже избавлялся от страниц вложения таким способом. Но недавно обнаружил что в карте сайта (в гуглмастере) куча страниц вида http://сайт.ru/?attachment_id= (Причем если кликаешь на них пишетследующее: Сайт ........... выполнил переадресацию слишком много раз. Появилась мысль, чтоб закрыть это безобразие, прописать в файле роботс ....Disallow: /*/?attachment_id=* Как думаете есть смысл, или есть другой вариант решения проблемы?

    • Здравствуйте, Станислав! Запрет в роботсе ничего не даст, роботы все равно будут все скачивать, а гугл просто добавит в дополнительный индекс. Если у вас циклическая переадресация, значит что-то сделали не так. Описанный способ полностью "убивает" дубли вложений (использовать нужно только 301 редирект, указывающий поисковику, что "страница перемещена навсегда").

  18. Спасибо за ответ. Еще такой вопрос. Вчера обнаружил что в файле attachment у меня был вбит следующий код: post_parent), 301);
    ?> А в файле Function написанного вами кода не было. Видимо я что то перепутал) Мне получается из файла attachment удалить код и оставить его пустым, а в файл Function в самый низ добавить указанный вами код? Спасибо.

    • Да, Станислав, сделайте как у меня в статье написано, у меня этот метод сработал.

Здесь вы можете оставить комментарий

* Текст комментария
* Обязательные для заполнения поля

Внимание: все отзывы проходят модерацию.