Дубли в wordpress. Как навсегда удалить Replytocom в WordPress? Избавляемся от дублей страниц

От автора: дубли страниц – одна из самых распространенных технических проблем, которая может ухудшить позиции сайта в поиске. Как с ней разобраться? Невозможно в одной статье рассказать о всех видах дублей на всех движках, давайте сосредоточимся на чем-то одном. Например, на cms WordPress, так как это самый популярный движок. Как убрать дубли страниц в wordpress? Давайте рассмотрим самые основные.

Самое большое зло WordPress

В этом движке есть один вид дублей, который особенно опасен и от него в свое время страдали очень многие сайты. Это так называемый replytocom. Появится он только в том случае, если включить в настройках обсуждения древовидные комментарии. Таким образом, появится возможность ответить на комментарий какого-то человека. Это очень удобно, если только не одно но.

Если присмотреться к url-адресу на кнопке “Ответить”, то можно найти там тот самый злосчастный отросток – replytocom. Ну и что? А то, что чем больше комментариев теперь у вас будет на странице, тем больше дублей. Причем 1 новый комментарий породит не 1 дубль, а много.

Все это происходит потому, что к странице теперь можно будет обратиться не только так: http://site.ru/название-записи

Но и так: http://site.ru/название-записи?replytocom=…

Таким образом, если к статье оставили 100 комментариев, то появится как минимум 100 дублей, но на самом деле гораздо больше. Я часто анализирую различные сайты с помощью специальных сервисов вроде pr-cy. Так вот, там можно наблюдать историю количества проиндексированных страниц.

Так вот, в 2012-13 годах, когда решение проблемы знали немногие, у многих сайтов было 100 тысяч – 10 миллионов страниц в индексе! Сейчас их в тысячи раз меньше, хотя с тех пор на сайтах появилось намного больше контента.

Как раз все эти тысячи и даже миллионы дублей в основном были из-за дублей replytocom. Когда же владельцы сайтов узнали о проблеме и о ее решении, они избавились от дублей и со временем из поисковой выдаче исчезли сотни миллионов мусорных страниц!

Лечение или как избавиться от replytocom

Вариантов тут есть несколько. Во-первых, можно установить плагин Yoast SEO, который используют тысячи веб-мастеров для поисковой оптммизации своих записей. Если хорошенько покопаться в его настройках, то можно найти там пункт “Убрать replytocom”. Ставим галочку и спим спокойно.

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

В-третьих, поставить какой-то другой плагин. В частности, не так давно нашел плагин Ark hidecommentslinks, который делает сразу 2 полезных дела: заменяет ссылки в комментариях на кликабельный текст, а заодно и убирает replytocom. Но плагин приведен только в пример, потому что я уверен, что это не единственное расширение, которое справляется с этой проблемой.

Четвертый способ более сложен – замена кнопки ответить. Эта кнопка должна выводиться не стандартными средствами wordpress, а с помощью скрипта. Обычно эту работу делает программист, либо вы можете найти готовое решение в каком-нибудь шаблоне, где стоит самописная система комментариев.

Думаю, этих способов вам хватит, тут еще нужно сказать о том, что чем раньше вы сделаете что-либо для устранения дублей, тем лучше. Самое главное, чтобы ваши статьи не были доступны по такому адресу: http://site.ru/название-записи?replytocom=какое-то число

Потому что если они недоступны (вылазит 404 ошибка) то со временем все дубли, если они уже попали в выдачу, пропадут. Если они еще не успели попасть в выдачу, то еще лучше.

Простой способ проверить дубли

Самый простой способ – воспользоваться сервисом, который покажет вам, сколько страниц вашего сайта проиндексировано поисковиком. Для этой цели я использую pr-cy.ru/analysis, так как уже очень привык к нему.

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

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

Дубли на страницах рубрик

На странице рубрики обычно содержится анонс статьи и кнопка на нее полное прочтения. Так вот, хотя это и не полный дубль, но все же какая-то часть текста может совпадать на обеих страницах (300-600 символов). Таким образом, вы сами у себя понижаете уникальность. Чтобы этого не допустить, желательно закрывать текст в анонсах в теги noindex.

Хорошо, но из-за этого страницы рубрик вообще могут не проиндексироваться? Если вы хотите все-таки их индексировать, рекомендую добавить для каждой рубрики ее уникальное описание в 150-250 символов и выводить его в шаблоне рубрик – category.php.

Дубли в архивах

По умолчанию в wordpress есть архивы по дате и архивы по автору. На этих страницах также выводится описание статей, а еще одинаковые title. Если вы в них не нуждаетесь, можно просто отключить. Это можно сделать с помощью seo-плагина. Например, Yoast SEO.

Дубль на уровне домена

По умолчанию при создании сайта он доступен по двум адресам: site.ru и www.site.ru. По сути, для поисковой системе это 2 разных сайта. Чтобы контент не дублировался, нужно явно указать главное зеркало. Это можно сделать с помощью файла robots.txt, прописав в нем следующее.

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

Начну с предистории. Тема дублей страниц как-то поднималась Борисовым. Тогда он написал на своем блоге, что плагин All in One SEOPack неправильно обрабатывает канонические ссылки, и т.п. Дубли могут образовываться самые разные. Например, если у меня есть страница со ссылкой www..html, то если просто дописать к ней любой мусор, то окажется, что можно попасть и на такую «левую» страницу, например, по ссылке www..html/222

Хотя страница и одна и та же, но ссылки совершенно разные, и ведут как бы на разные страницы — дубликаты. Если будете переходить по ссылкам на этой странице-дубле, то будете попадать на такие же «неправильные» страницы. Бесконечное количество таких ссылок-дубликатов есть даже у главной страницы. А что будет, если на них зайдет поисковый робот и пойдет по ссылкам индексировать все подряд? Проблема будет.

Особо углубляться в это не буду, просто попробуйте дописать так ссылку на своем блоге, и если она сработает, то это знак, что проблема есть. А если нажмете в браузере Ctrl+U, то сможете увидеть код страницы и если в значении canonical тоже окажется прописана эта неправильная ссылка, и надо с этим что-то делать.

В общем, Борисов тогда подробно расписал все детали этой проблемы, наверняка многие читали, а желающие могут почитать. Он предложил радикальный вариант решения проблемы – якобы перейти на плагин Platinum SEO Pack, потому что он правильнее и т.п. Я тоже тогда перешел на этот плагин, думал, и в самом деле будет лучше… Да, такой проблемы со ссылками в нем нет, но зато имеются другие, но об этом я упомяну в конце.

Сегодня же хочу рассказать, как убрать дубли страниц в WordPress, пользуясь при этом плагином All in One. На самом деле все проблемы идут не от самого плагина, а от неправильной его настройки и настройки блога.

Проблема решается в 2 этапа. Начнем по порядку.

Переходим в настройки плагина и ставим галочку вот здесь:

No pagination for Canonical URLs означает, что для страниц цифровые приписки к ссылкам добавляться не будут. Это уже часть решения проблемы, но не все.

В некоторых шаблонах есть на страницах постов ссылки «Предыдущая статья» и «Следующая статья». Они тоже могут вести на дубликаты страниц, если родительская страница сама дубликат. Иногда в настройках премиум-шаблонов эти пункты можно просто отключить. Люди, которые ориентируются в коде, могут найти и удалить вывод этих ссылок. А можно просто перейти в «Редактор», и в файле functions.php своей темы добавить такие строки:

add_filter(‘aioseop_prev_link’, ‘__return_empty_string’);

add_filter(‘aioseop_next_link’, ‘__return_empty_string’);

Добавлять их надо в самом начале этого файла, сразу после

Настройка сервера

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

Итак, заходим на хостинг, в менеджер файлов, или подключаемся к хостингу через FTP, находим этот файл. Можно его скачать себе на компьютер и открыть блокнотом – лучше использовать блокнот Notepad++, потому что он правильно работает с разными кодировками, и ничего не портит, в отличие от стандартного блокнота.

В файле htaccess надо добавить 2 строчки. Но они зависят от того, как у Вас настроены ссылки страниц.

RewriteRule (.*)\.html\/(+)$ $1.html

RewriteRule ^index\.php$ — [L]

RewriteCond %{REQUEST_URI} !(/page*)

RewriteRule (.*)\/(+) $1

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

На этом все, больше никакие ссылки с цифровыми приписками работать не будут – посетители автоматически будут попадать только на правильные страницы. Также и поисковый робот не сможет перейти по ссылкам-дубликатам. Конечно, если поисковик уже проиндексировал гору мусора, то постепенно он его выбросит из индекса, но в итоге останутся только реально существующие страницы, что и требуется.

О плагинах Platinum и All in One

Перейти на плагин Platinum труда не составляет – он просто импортирует себе все настройки из All in One. и прописанные у страниц Title, Description и Keyword остаются на месте. Но у этого плагина есть два очень существенных недостатка:

Title правильно отображается в редакторе, а вот на сайте или блоге на многих страницах он куда-то исчезает. Попросту говоря – не отображается. Релевантность резко падает, а с ней и позиции, и посещаемость…

Platinum уже несколько лет не обновлялся. Он писался для WordPress версии, кажется, 2.7. Сейчас есть версия WordPress 4.4, пока плагин на ней работает, но что будет дальше, никто не знает. Перестанет работать после обновления движка, и что делать с титлами и описаниями сотен, а у некоторых и тысяч страниц? Ставить другой плагин и снова все вписывать — адский труд…

В общем, я тоже обнаружил, что на многих страницах Title не выводится, хотя я его вписывал, и это мне надоело. А тут, как назло, Борисов же сказал, что назад с Platinum на All in One настройки не переносятся… Переписывать каждую страницу не хотелось…

Но, оказывается, есть решение простое и красивое. Если у Вас стоит плагин Platinum, а Вы хотите перенести все в All in One, то сначала включите оба.

Потом ставите плагин SEO Data Transporter, как обычно, из админки – он есть в библиотеке. После активации в админке, в меню «Инструменты» появится пункт SEO Data Transport. Идете туда, и видите такую простую панельку:

Здесь все элементарно. В левом списке выбираете плагин, из которого надо переносить данные, а в правом списке – куда переносить. Ставите, как на скриншоте, и нажимаете кнопку Analyze. Плагин смотрит, что там можно перенести и если все хорошо, можно нажать кнопку Convert, хотя я сразу ее нажал.

Чудесным образом все титлы и описания переносятся из Platinum в All in One, а потом Platinum можно просто отключить. Так же можно отключить и плагин SEO Data Transporter – он свою работу сделал.

Вот и все. Хотя здесь у меня много букв и все кажется сложным, на самом деле убрать дубли в WordPress – дело пары минут. Еще проще происходит и переезд назад на плагин All in One. Я на этом блоге сделал все минут за 5, потому что смотрел в инструкцию. На другом блоге все заняло еще меньше.

А общая мораль сей басни — меньше надо слушать всяких гуру, чтобы потом не пришлось откатывать все назад, а это время, нервы, а иногда и деньги. Больше я никого не слушаю)

» я рассказывал, что такое дубли и как их можно найти. В этой статье я хотел бы осветить тему того, как можно убрать дубли с Вашего сайта, воспользовавшись рядом плагинов или обычным кодом. Сразу хотелось бы сказать, что индексацией дублей в основном страдает поисковая система (ПС) Google, даже не смотря на то, что они запрещены в файле robots.txt . ПС Яндекс работает по своему алгоритму и меньше воспринимает подобный контент. Итак, приступим.

Дубли ответов на комментарии — replytocom

Самые распространенные дубли в WordPress — это так называемый replytocom , который появляется, когда на сайте включены древовидные комментарии. Если приглядеться на ссылку «Ответить на комментарий», то можно проследить наличие данного вида дублей. С одной стороны это удобно, ведь пользователь может ответить на чей либо комментарий и видеть структуру ответов. С другой стороны это очень пакостная вещь, поскольку replytocom порождает ни один, а как правило несколько дублей. К примеру, на Вашем сайте есть 500 комментариев, значит имеется как минимум 500 дублей.

Для того, чтобы убедиться в наличие дублей replytocom , можно перейти по следующему URL адресу: http://sitename.ru/название_поста?replytocom=какое_то_число. Теперь в адресной строке можно наблюдать что то подобное этому: http://sitename.ru/название_поста/#comment=какое_то_число.

Кроме того, в WordPress существуют еще ряд дублей, к которым относятся:

  • feed;
  • page;
  • comment-page;
  • attachment;
  • attachment_id;
  • category;
  • trackback.

Каждый вид дублей соответствует техническим возможностям движка. Проверить их можно при помощи оператора site , о котором написано в .

Убираем дубли при помощи плагинов

На моей практике, мне приходилось пользоваться 3-я видами плагинов, которые помогают избавиться от дублей в WordPress.:

  • All in One Seo Pack . После установки в разделе Общие настройки нужно поставить галочку Канонические Url .
  • Yoast Seo . В настройках плагина ставим галочку Убрать replytocom ;
  • Ark hidecommentslinks . Данный плагин позволяет закрыть ссылки на сайты комментаторов, а также убрать replytocom из ссылки ответа на комментарий. Не имеет настроек.

Убираем дубли при помощи кода

Чтобы убрать дубли при помощи кода нужно отредактировать 3 файла — robots.txt , .htaccess и functions.php . Для тех кто не знает, первые два файла находятся в корне сайта, а третий файл лежит в папке с активной темой.

В статье « » я писал о том, как его правильно настроить. Некоторые же оптимизаторы советуют изменить содержимое robots.txt на следующее:

User-agent: * Host: sitename.ru Disallow: /wp-feed Disallow: /wp-includes Disallow: /wp-content/cache Disallow: /wp-content/plugins Disallow: /wp-content/themes Sitemap: http://sitename.ru/sitemap.xml User-agent: YandexImages Allow: /wp-content/uploads/ User-agent: Googlebot-Image Allow: /wp-content/uploads/

Вместо sitename.ru должен быть прописан домен Вашего сайта.

На следующем шаге открываем файл.htaccess и после строки RewriteRule ^index\.php$ - [L] добавляем следующий код:

RewriteCond %{QUERY_STRING} ^replytocom= RewriteRule (.*) $1? RewriteRule (.+)/feed /$1 RewriteRule (.+)/attachment /$1 RewriteRule (.+)/comment-page /$1 RewriteRule (.+)/comments /$1 RewriteRule (.+)/trackback /$1 RewriteCond %{QUERY_STRING} ^attachment_id= RewriteRule (.*) $1?

Теперь, что еще осталось сделать, это добавить следующий код в файл functions.php:

Function add_meta_noindex_nofollow () { if (is_paged()) { echo "".""."\n"; } } add_action("wp_head", "add_meta_noindex_nofollow", 3);

Код вешаем на хук wp_head , и теперь на страницах с пагинацией будет выводиться meta-тег, запрещающий их индексацию.

И чем они опасны. Сегодня мы узнаем как избавиться от дублей страниц раз и навсегда.

В WordPress есть отдельная категория дублей страниц, которые образуются из-за технических особенностей системы и присутствуют только в Google. Такие повторения сложно заметить на сайте и еще сложнее самостоятельно удалить. Радуйтесь, что вы читаете эту статью, потому что сейчас я вас всему научу!

Простой способ убрать дубли страниц

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

Хорошо, если у вас сделаны эти три простейших пункта, но это еще не значит, что вы знаете, как удалить дубли страниц. Все самое интересное впереди.

Что такое дубли страниц WordPress replytocom и другие?

Если ваш блог сделан на WordPress, у вас наверняка присутствуют следующие типы дублей страниц:

  • replytocom
  • comment-page
  • attachment
  • attachment_id
  • category
  • trackback

Каждый из этих типов связан с определенной технической возможностью WordPress. Определить, какие из них есть у вас можно с помощью оператора site, об этом очень подробно написано в прошлой статье - .

Например, если добавить в конце урла любой статьи /feed, откроется xml версия статьи для - ее текст тот же самый, но адрес отличается. Replytocom используется в древовидных комментариях при нажатии кнопки «Ответить». Выходит, что каждый комментарий создает дополнительный url одной и той же страницы. А если у статьи тысяча комментариев, то и дублей у нее будет 1000.

С такими дублями страниц срочно нужно бороться, потому что сайт с подобной проблемой мгновенно попадает под .

Почему именно Гугл, я уже объясняла. Все дело в файле robots.txt. Когда в нем закрыт доступ к чему-то, Google все равно забирает это в выдачу. Просто не показывает содержимое:

Чтобы этого избежать, нужно наоборот открыть Гуглу доступ ко всему в файле robots.txt, при этом в head каждого файла добавить :

User-agent: * Host: my-site.ru Disallow: /wp-feed Disallow: /wp-includes Disallow: /wp-content/cache Disallow: /wp-content/plugins Disallow: /wp-content/themes Sitemap: https://my-site.ru/sitemap.xml User-agent: YandexImages Allow: /wp-content/uploads/ User-agent: Googlebot-Image Allow: /wp-content/uploads/

Поменяйте my-site.ru на свой адрес. Теперь роботу разрешено заходить на любые страницы сайта.

  • Найдите файл .htaccess в корне сайта. Добавьте в него следующий код после строки RewriteRule ^index\.php$ — [L] :
    1 2 3 4 5 6 7 8 9 RewriteCond %{QUERY_STRING} ^replytocom= RewriteRule (.*) $1? RewriteRule (.+)/feed /$1 RewriteRule (.+)/attachment /$1 RewriteRule (.+)/comment-page /$1 RewriteRule (.+)/comments /$1 RewriteRule (.+)/trackback /$1 RewriteCond %{QUERY_STRING} ^attachment_id= RewriteRule (.*) $1?

    RewriteCond %{QUERY_STRING} ^replytocom= RewriteRule (.*) $1? RewriteRule (.+)/feed /$1 RewriteRule (.+)/attachment /$1 RewriteRule (.+)/comment-page /$1 RewriteRule (.+)/comments /$1 RewriteRule (.+)/trackback /$1 RewriteCond %{QUERY_STRING} ^attachment_id= RewriteRule (.*) $1?

    Это набор 301-редиректов. Теперь при попытке робота зайти на страницы типа site.ru/post-name/feed/ его перебросит на оригинальную страницу типа site.ru/post-name/ .

  • В активной теме блога найдите файл function.php и добавьте в него код после

    /* Вставляет мета-тег роботс noindex,nofollow постраничного разбиения */ function my_meta_noindex () { if (is_paged() // Все и любые страницы пагинации) {echo "".""."\n";} } add_action("wp_head", "my_meta_noindex", 3); // добавляем свой noindex,nofollow в head

    Теперь на страницах c постраничным разбиением записей (например, https://сайт/page/2 ) поисковик наткнется на запрещающий индексацию мета-тег и не будет показывать страницу в выдаче. Этот пункт я ставлю под сомнение, т.к. многие оптимизаторы считают, что нельзя закрывать от индексации страницы с анонсами статей блога. Выполнять данный пункт или нет, решайте сами.

  • Перейдите в параметры плагина All in One Seo Pack и выставите следующие настройки индексации (см. скриншот)
    Этими настройками плагин All in One Seo Pack автоматически добавил мета-тег «robots» на страницы с тегами и рубриками. Не пришлось делать это вручную, как для страниц с пагинацией записей.
  • В админ-панели WordPress переходим в «Настройки -> Обсуждение » и снимаем галку с «Разбивать комментарии верхнего уровня на страницы» :

    Это нужно для того, чтобы комментарии не делились постранично. Тогда и не появятся новые адреса для тех же страниц.
  • Готово! Вы узнали, как удалить дубли страниц WordPress. Осталось дождаться переиндексации и проверить, уменьшилось ли количество страниц вашего сайта в индексе Google. Если вы сделали все согласно инструкции, то успех гарантирован!

    Жду ваших вопросов в комментариях. Всем успехов в улучшении своего ресурса.

    Всем привет! На днях обнаружил баг в WordPress, который создает бесчисленное множество дублей страниц. Проблема касается всех, у кого есть сайты на этой CMS. Да-да, многими любимый движок может создать большое количество идентичных документов.

    Напугал? Не переживайте =) . Баг, действительно, серьезный, но исправить его можно достаточно просто. Ниже я расскажу, что это за зверь и как от него избавиться.

    И вот, зайдя в статистику для блога, был неприятно шокирован - сотни дублей несуществующих документов.

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

    На таких страницах нет мета-тега robots и есть canonical, который в качестве канонического документа указывает именно дубль.

    Проверьте, у вас также?

    Усугубляет ситуацию связь с плагином All in one SEO pack, который дополнительно дает ссылку на предыдущую запись: поисковый робот не только заходит, по сути, на несуществующую страницу, но и начинает ходить по другим таким же. Добавлялось и удалялось сотни подобных "постов".

    Я начал копать глубже и создал топик на wordpress.org. Оказалось, что еще в 2014 был баг при создании многостраничных постов с помощью тега . Тогда также создавались несуществующие документы, но canonical для 2-й, 3-й или последующих страниц, наоборот, указывали всегда на первую, то есть не индексировались.

    Начиная с WordPress 4.4 баг с canonical убрали (у каждой "пагинированной" страницы поста появился свой каноникал), а вот ошибку с созданием несуществующих документов не убрали. Поэтому сейчас индексируется больше, чем нужно .

    Что делать и как убрать дубли?

    Сперва, хочу сказать, что в одной из ближайших версий вордпресса этот баг постараются исправить.

    Пока же нам придется убирать его, так называемыми, "костылями" . Существует 2 варианта.

    1) Плагин After Last Page Fix от Белотицкого Юрия. Скачать можно . Установка в один клик, настроек нет. Скрипт вместо создания множества дублированных документов отдает 404-ошибку. На мой взгляд, самый удачный вариант. Недостатки:

    • плагин добавляет дубль rel="canonical";
    • и shortlink.

    2) Дополнительная настройка All in One SEO Pack. Разработчики этого плагина, скорее всего, оказались в курсе данного бага и в новых версиях появились дополнительные чекбоксы.

    Несуществующие записи будут создаваться, но в них будет указан мета-тег robots, запрещающий их индексирование.

    В других SEO-плагинах для wordpress не смотрел. Вероятно, в Yoast SEO или подобных будут такие же настройки. UPD . Да, действительно, в плагине от Yoast прописывается каноникал на основную запись.

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

    Получается, что, обновляясь на новую версию wordpress, не только устраняешь старые ошибки CMS, но можешь и получить новые. Интересно, какая у вас версия движка и создаются ли такие несуществующие посты? Поделитесь статистикой в комментариях .