» » » Дубли страниц replytocom. Решение проблемы
logotip

Дубли страниц replytocom. Решение проблемы

Всем привет! На связи Виталий Кириллов и сегодня на seo-mayak.com мы будем разбирать актуальнейшую тему — дубли страниц replytocom.

Действительно, интернет в последнее время просто взорвался обсуждением темы дублей replytocom.

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

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

Дубли страниц replytocom испортили жизнь тысячам веб-мастеров. Много кто вообще побросал свои сайты, устав писать в никуда и ждать посещаемости.

dubli replytocom

Ну да ладно, никто и не говорил, что будет просто! Главное не сдаваться, ведь дорогу осилит идущий! Тем более решение сложной задачи всегда приносит некое самоудовлетворение.

Сегодня я предложу Вам свое лекарство от replytocom, на изобретение которого я потратил не мало времени, хотя теперь мне кажется, что дело было плевое. Поехали!

Чем опасны дубли страниц replytocom

Наверное все знают, что у поисковой системы Google, кроме основного индекса (Main Index), существует еще дополнительный — Supplemental Index, в простонародье «сопли». Кто не знает, что это такое и как бороться с «соплями», советую почитать мою статью.

Так вот, с выходом WordPress версии 2.7.0, появилась функция древовидных комментариев, которая включается: админка -> Настройки -> Обсуждение:

dubli replytocom1

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

Но народ не знал, какая угроза поджидала их после активации данного функционала! Не все сразу поняли, что при нажатии на кнопку «Ответить» создается полный дубль, так как к основному URL страницы добавляется такое окончание:

seo-mayak.com/seo-prodvizhenie/poiskovye-sistemy/meta-teg-robots-indeksaciya-sajta.html?replytocom=3330#respond

Для поисковых роботов это совершенно другой URL адрес и соответственно они считает данную страницу полным дублем (про разные дубли страниц читайте здесь).

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

Disallow: /*?replytocom

Или:

Disallow: /*?*
Disallow: /*?

Яндекс соблюдал данные запреты, что нельзя сказать по Гугл, который все равно индексировал replytocom-страницы и заносил их в свой сопливый индекс. Кому не понятно почему Гугл индексирует заблокированные в robots.txt страницы, еще раз советую почитать статью о Supplemental Index, ссылку на которую я дал выше.

Люди недоумевали, количество «соплей» росло как снежный ком, чем больше было комментариев на сайте, тем соответственно больше страниц было в Supplemental Index.

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

У веб-мастеров глаза на лоб лезли при виде количества внешних ссылок на сайте:

dubli replytocom2

На данном примере ссылок с других интернет-ресурсов (доноров) в несколько раз меньше, чем исходящих ссылок с сайта. Согласитесь, такое положение дел не сулит ничего хорошего.

Теперь надеюсь понятно, чем опасны заблокированные в robots.txt дубли replytocom.

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

Известные способы борьбы с дублями replytocom

Самый простой способ борьбы с replytocom — это не включать на сайте функцию древовидных комментариев, а установить плагин WordPress Thread Comment, который возьмет  функцию «дерева» на себя.

На своем кулинарном блоге я использовал данный плагин и дублей replytocom на нем нет. Очевидный недостаток данного способа — это сам плагин, к которым я не испытываю доверия.

Еще раз объясню почему:

1. Множество плагинов со временем просто перестают работать.
2. Работу многих плагинов не поддерживают мобильные браузеры и не известно, что будет дальше.
3. Уже достаточно было сказано про нагрузку на сервер, которую создают плагины.

Есть еще один способ борьбы с replytocom — это 301 редирект. Для этого в файле .htaccess прописывается всего две строчки:

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

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

Третий известный мне способ заставить Гугл не индексировать страницы с replytocom заключается в настройке индексации сайта с помощью инструментов Google веб-мастер. Проходим Сканирование -> Параметры URL и в строчке с параметром replytocom вибераем «Изменить»:

dubli replytocom4

После чего настраиваем индексирование следующим образом:

dubli replytocom3

Данный способ работает, но только для Гугла. А как же быть с Яндексом?

Здесь надо понимать, что все вышеперечисленные варианты борьбы с replytocom будут работать только при снятии запрещающих директив в файле robots.txt. Но что будет если снять запрет в robots.txt и настроить индексацию в веб-мастере Google?

В этом случаи Яндекс получит доступ к страницам replytocom и наткнется на мета-тег robots с такими параметрами:

<meta name="robots" content="noindex, follow">

Параметр follow разрешает роботам индексировать ссылки, которые расположены на данных страницах и хорошего в этом ничего нет.

Кстати мета-тег robots выводиться на страницы replytocom функцией wp_no_robots(), которая была добавлена разработчиками WordPress с версии 3.3. Если взять во внимание тот факт, что функция древовидных комментариев была введена с версии 2.7, то становиться понятно, что программисты WordPress пытались исправить свой недочет, но получилось это у них опять как-то коряво.

Я немного поработал над исправлением данного недочета. Чтобы исправить параметры в мета-теге robots на страницах replytocom, в файл functions.php надо добавить следующий код:

remove_action( 'wp_head', 'wp_no_robots' );

function mayak_replytocom_robots() {
echo "<meta name='robots' content='noindex,nofollow' />\n";
}
if ( isset( $_GET['replytocom'] ) )
add_action( 'wp_head', 'mayak_replytocom_robots' );

После чего мета-тег примет следующий вид:

<meta name="robots" content="noindex, nofollow">

На этом можно было бы успокоится, ведь дубли replytocom больше не попадут в индекс и ссылки расположенные на них также не будут больше индексироваться, но здесь есть еще одна проблема — это ссылки в каждой кнопке «Ответить», которых может быть тысячи, ведущих на заблокированные мета-тегом robots страницы и по которым утекает вес со страниц с основным контентом.

Поэтому успокаиваться еще рано. Идем дальше.

Мой способ борьбы с дублями страниц replytocom

Первым делом мы воспользуемся скрытыми резервами WordPress. Не все знают, что разработчиками WordPress был написан скрипт, который при ответе на комментарий выводит форму комментирования непосредственно под кнопкой «Ответить».

При работе данного скрипта URL страницы остается неизменным и ссылка с replytocom теряет всякий смысл своего существования.

Скрипт находится по адресу: wp-includes/js/comment-reply.js.

Вот сам скрипт:

var addComment = {
moveForm : function(commId, parentId, respondId, postId) {
var t = this, div, comm = t.I(commId), respond = t.I(respondId), cancel = t.I('cancel-comment-reply-link'), parent = t.I('comment_parent'), post = t.I('comment_post_ID');

if ( ! comm || ! respond || ! cancel || ! parent )
return;

t.respondId = respondId;
postId = postId || false;

if ( ! t.I('wp-temp-form-div') ) {
div = document.createElement('div');
div.id = 'wp-temp-form-div';
div.style.display = 'none';
respond.parentNode.insertBefore(div, respond);
}

comm.parentNode.insertBefore(respond, comm.nextSibling);
if ( post && postId )
post.value = postId;
parent.value = parentId;
cancel.style.display = '';

cancel.onclick = function() {
var t = addComment, temp = t.I('wp-temp-form-div'), respond = t.I(t.respondId);

if ( ! temp || ! respond )
return;

t.I('comment_parent').value = '0';
temp.parentNode.insertBefore(respond, temp);
temp.parentNode.removeChild(temp);
this.style.display = 'none';
this.onclick = null;
return false;
};

try { t.I('comment').focus(); }
catch(e) {}

return false;
},

I : function(e) {
return document.getElementById(e);
}
};

Можно просто скопировать данный скрипт и вставить его в один из файлов с расширением .js, что находятся в папке с Вашей темой, который уже подключен к шаблону. Кстати я так и сделал, предварительно сжав сам скрипт с помощью сервиса http://info-pages.com.ua/service/3, функционал которого я подробно описал в статье «Как сократить CSS и ускорить загрузку сайта». Тем самым я позаботился о соблюдении рекомендаций PageSpeed.

Или можно подключить скрипт отдельно. Для этого в файл header.php между тегами <head></head> надо вставить следующий код:

<?php if (is_singular() AND comments_open() AND (get_option('thread_comments') == 1)) wp_enqueue_script('comment-reply'); ?>  

Работу скрипта вы можете наблюдать на моем блоге.

Но есть еще одна проблема, сама ссылка с replytocom все еще остается в кнопке «Ответить» и в исходном коде страницы она также присутствует:

dubli replytocom5

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

Страницы replytocom формируются функцией get_comment_reply_link(), которая находится по адресу: wp-includes/comment-template.php.

Открываем файл comment-template.php и ищем строчку №1326. Вот эта строчка:

$link = "<a class='comment-reply-link' href='" . esc_url( add_query_arg( 'replytocom', $comment->comment_ID ) ) . "#" . $respond_id . "' onclick='return addComment.moveForm(\"$add_below-$comment->comment_ID\", \"$comment->comment_ID\", \"$respond_id\", \"$post->ID\")'>$reply_text</a>";

Если убрать из данный строчки такой отрезок:

href='" . esc_url( add_query_arg( 'replytocom', $comment->comment_ID ) ) . "#" . $respond_id . "'

То в исходном коде страницы останется следующее:

dubli replytocom6

Как видите ссылки с replytocom как не бывало, при этом древовидные комментарии будут исправно работать. Мы только что выдрали replytocom с корнем, но и это еще не все.

Дело в том, что каждый раз, с выходом новой версии WordPress, придется лезть в файл comment-template.php и удалять ссылку. А что если по какой-либо причине вовремя не получиться это сделать?

В общем я пошел дальше и написал функцию, которая избавит нас от необходимости каждый раз вносить изменения в файл comment-template.php.

Открываем файл functions.php и в самое начало, после тега <?php вставляем следующее:

function mayak_replycom_remove( $mayak_remove ) {
$cut = "!<a(.*?)href='(.*?)'(.*?)>(.*?)</a>!si";
$insert = "<span class='comment-reply-link' \\3>\\4</span>";
return preg_replace($cut, $insert, $mayak_remove);
}
add_filter( 'comment_reply_link', 'mayak_replycom_remove' );

Вот оно волшебство PHP!

dubli replytocom11

Как видите теги <a  сменились на теги <span, а ссылка вообще исчезла и replytocom больше не представляет угрозы.

Но и это еще не все! Теперь сама кнопка «Ответить» стала выглядеть как простой текст:

dubli replytocom9

Поэтому открываем файл style.css и прописываем следующие стили для класса comment-reply-link:

.comment-reply-link {
color:#5151FF; /*добавляем цвет ссылки*/
text-decoration:none; /*Убираем подчеркивание*/
cursor:pointer; /*Добавляем курсор в виде руки*/
}

Ну вот, совсем друге дело:

dubli replytocom10

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

До встречи!

С уважением, Виталий Кириллов

Комментарии: 169

  1. Андрей:

    Отличный пост! А я то думал, чего ссылок немеренно. Обязательно избавлюсь от этого replytocom. 🙂
    Благодарю!

    Ответить
    • Игорь:

      Добрый день!

      У меня ссылка имеет вид:

      <a title="' . get_comment_ID() . '" href="' . get_permalink() . '?replytocom=' . get_comment_ID() . '#respond" rel="nofollow">' . __( 'Reply', 'strictthemes' ) . '</a>
      

      Ваш код у меня не преобразовывает кнопку «ответить», можно как-то это прикрутить к моему коду?

      Ответить
      • Виталий Кириллов:

        Здравствуйте! В каком файле расположен данный код?

        Ответить
      • Виталий Кириллов:

        Игорь, я не стал публиковать код вашего файла. Скажите, а теги «а» на «span» в коде поменялись?

        Ответить
        • Игорь:

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

          Ответить
          • Виталий Кириллов:

            Странно…

            Ответить
  2. Мария:

    Здравствуйте, Виталий!
    Это конечно да, тема нашумевшая, наболевшая, и всем нужны лекарства… Изначально для реплитукомов я тоже поставила редирект, по после того как увидела, что вордпресс сам добавляет к ним noindex, редирект убрала. Самое главное, чтобы они в роботсе не были закрыты. а ведь так и получается, у кого-то скопировали — к себе вставили, а потом разводя руками говорим «Хотели как лучше .. получилось как всегда». У меня у самой они в роботсе были закрыты с самого начала. Но все же лучше когда кнопка ответить не будет являться ссылкой — попробую ваш способ и напишу.
    но у меня вопрос другой: почему в инструментах Google веб-мастер для такого параметра как replytocom нужно выставлять те параметры, которые представлены на вашем скриншоте? как параметр replytocom изменяет содержание страницы?

    Ответить
    • Виталий Кириллов:

      Здравствуйте Мария! Я посчитал, что ссылки с replytocom присутствуют в исходном коде, то это изменяет содержание страницы.

      Ответить
      • Мария:

        Понятно. Возможно так даже и лучше, если страниц с replytocom уже много, а т.к. у меня их мало — то в инструментах Google веб-мастер для этого параметра я выбрала «Нет».

        Ответить
        • Виталий Кириллов:

          Мария, если Вы расправились с replytocom моим методом, то у веб-мастере Гугл можно все оставить на усмотрение робота.

          Ответить
    • Вадим:

      Виталий, спасибо за статью!
      Сделал все как по инструкции. Скрипт заработал только после того, как подключил его через header.php
      Все работает, но у меня почему-то в левом верхнем углу окна браузера появилась такая вот штука: // ������� replytocom
      Не знаете, что это такое может быть?

      Ответить
      • Виталий Кириллов:

        Вадим, где-то ошибка, ищите.

        Ответить
  3. Наталья:

    Здравствуйте, Виталий! Ломала я себе голову целый день после Вашей статьи) Но ответа так и не нашла (наверное, плохо искала). Помогите разобраться. Вы ведь собаку съели на этом деле, может, сразу и развеете мои недопонимания. В общем, я оказалась «зеленым» вебмастером, и обнаружила кучу ссылок replytocom. Но ни в соплях гугла, ни в яндексе их нет. Вот я и не пойму, почему. В вебмастере Яндекса проверяла, эти адреса разрешены, но их нет ни в страницах из поиска, и в исключенных. Я что-то упустила?
    Кстати, есть такая директива Clean-Param для Яндекса как раз для удаления дублей. Как я поняла, если написать в robots.txt всего одну строку: «Clean-param: replytocom» , то дублей не будет.

    Ответить
    • Виталий Кириллов:

      Наталья, ваши страницы replytocom не попали в сопли потому, что там есть мета-тег robots и в вашем файле robots.txt нет директив, блокирующих доступ роботам к данным страницам.
      Думаю, что лучше вообще избавиться от replytocom-ссылок в исходном коде, чем запрещать доступ к них каким-либо образом.

      Ответить
      • Наталья:

        Спасибо, Виталий! Первое, что хотела сделать, это посмотреть на мета-тег ссылки, но, видимо, в 2 часа ночи, голова не соображает)) Но этот тег проставлен автоматически, я ведь ничего не делала. Тогда почему на других сайтах эти ссылки были проиндексированы?

        Ответить
        • Виталий Кириллов:

          Наталья, потому, что replytocom-страницы были заблокированы в файле robots.txt и роботы поисковых систем не могли почесть мета-тег robots, но как я писал в статье о сопливом индексе тот же Гугл в этом случаи индексирует URL заблокированной страницы и все ссылки расположенные на ней.

          Ответить
  4. Мария:

    у меня что-то не получилось вставить скрипт и вставить его в один из файлов с расширением .js — результата не было, а вот подключила скрипт отдельно в файле header.php — все заработало. Спасибо! теперь при нажатии на ответить форма комментирования отображается под кнопкой ответить.
    В comment-template.php я убрала ненужный кусок с реплитуком и там же заменила a на span, добавила стили, проверила — работает. Я просто запуталась далее в функциях, поэтому пока оставила так.

    Ответить
    • Виталий Кириллов:

      Мария, я недавно сделал дополнение к статье, где объединил три функции в одну. Вам разве хочется при обновлении движка каждый раз лезть в файл comment-template.php и удалять ссылки, а еще и теги менять. Дело Ваше конечно…
      А вот с подключением скрипта, тут раз на раз не приходится, я не зря привел два варианта подключения. У меня все прекрасно подключилось через .is.

      Ответить
  5. янис:

    Немного не допонял, если вставлять скрипт между тегами head, то тот другой скрипт (длинный выше)уже ненадо вставлять в js?
    И еще, вот этот последний код (дополнение от 30 июля)-нужно его вставлять в functions и тот, который исправляет метатег на nofollow-итого 2 кода надо вставить в functions ?
    Если можете напишите еще раз кратко порядок действий!

    Ответить
    • Виталий Кириллов:

      Скрипт, которые выводит форму комментариев под кнопкой «Ответить» можно подключить через файл header.php.
      В дополнении от 30 июля я привело функцию, именно только ее надо вставить в файл function. Надеюсь понятно.

      Ответить
  6. Сергей:

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

    Ответить
  7. янис:

    Вот многие пытаются бороться с этими дублями и делать абракадабры с сайтом, спрашивается зачем?
    Я общался со многими профессионалами, и они этого делать вообще не советуют. Все дубли в соплях, а не в основном индексе, и они никак не влияют на ранжирование сайта, они просто не учитываются.
    А если кому надо, чтобы они и в соплях не были, то для этого есть правила Google-сканирование-параметры url! Вот и все.
    Многие начитаются «специалистов» вроде Борисова, а потом свои сайты зарывают в дебри…

    Ответить
    • Виталий Кириллов:

      Янис, у Вас просто протестный характер! Ведь никто же не заставляет Вас следовать советам тех или иных мастеров. Но тем не менее Вы задаете вопросы, какое-то противоречие.

      Ответить
  8. Наталья:

    Виталий, разбираясь с этой темой я опять зашла в тупик, хотя уже наизусть знаю эту статью) Но уже вижу свет в тоннеле)
    А пока что отключила древовидные комментарии, потому что обнаружила на страницах с replytocom два мета-тега:

    <meta name="robots" content="index, follow">
    <meta name="robots" content="noindex, nofollow">

    Первую строку добавляла моя функция (я это исправлю)

    А вторая строка добавляется, как Вы написали, функцией wp_no_robots. Кстати, ее код выглядит так:

    * @since 3.3.0
    */
    function wp_no_robots() {
    echo "<meta name='robots' content='noindex,nofollow' />\n";
    }

    Так что не пришлось ничего менять
    Так вот, меня опять мучает вопрос: почему эти страницы не проиндексировались?
    Вы же писали «из двух противоречащих друг другу параметров, робот сделает выбор в пользу разрешающей директивы.»
    Проясните, пожалуйста, ситуацию, а то я туго соображаю)

    Ответить
    • Виталий Кириллов:

      Наталья, функция wp_no_robots(), которая находится в файле /wp-includes/general-template.php -> line 2222 выглядит так:

      * @since 3.3.0
       */
      function wp_no_robots() {
      	echo "<meta name='robots' content='noindex,follow' />\n";
      }
      

      Заметьте, что второе значение follow, а не nofollow. Это исходный файл движка и я его не менял. В статья я привел функцию, которая отменяет действие wp_no_robots()

      remove_action( 'wp_head', 'wp_no_robots' );
      

      После данной отмены страницы replytocom остались вообще без мета-тега robots.
      Теперь добавляем свою функцию, например:

      function mayak_replytocom_robots() {
      echo "<meta name='robots' content='noindex,nofollow' />\n";
      }
      if ( isset( $_GET['replytocom'] ) )
      add_action( 'wp_head', 'mayak_replytocom_robots' );
      

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

      Почему не проиндексировались? Потому что в обоих случаях присутствовал аргумент noindex, который и запрещает индексацию текста, но он не запрещает роботу следовать по ссылкам, так как для этого как раз нужен nofollow.

      Ответить
  9. Наталья:

    Спасибо, Виталий, за подробный ответ! Но у меня на страницах присутствовали именно эти две строки:
    <meta name="robots" content="index, follow">
    <meta name="robots" content="noindex, nofollow">
    Т.е. в первом случае, index.

    А насчет функции, я, конечно, поняла, как и зачем она работает. Но я Вам клянусь, у меня она именно с nofollow, и я сама ничего не меняла. Я вообще о ней впервые узнала из этой статьи)

    Ответить
    • Виталий Кириллов:

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

      Ответить
      • Наталья:

        Виталий, разрешающий robots был добавлен давно, год назад, с тех пор, как я избавилась от плагина All in One seo, прописав функции для добавления описания и robots на все страницы (вот, благодаря Вам, нашла ошибку).
        Может быть, дело в rel=’canonical’?

        Ответить
        • Виталий Кириллов:

          rel=’canonical’ является рекомендательной директивой, т.е на усмотрение робота. Но вполне возможно, что именно она уберегла страницы от индексации.

          Ответить
          • Наталья:

            Спасибо за разъяснения, Виталий! Попробую теперь сделать все, как следует)

            Ответить
  10. Александр:

    Огромное спасибо. Только разрешил на сайте древовидные комментарии, и для меня эта статья оказалась очень актуальной.

    Ответить
  11. Евгений:

    Здравствуйте Виталий! У меня проблема с дублями fedd, как от них избавится? Если Вы поможете буду весьма благодарен!

    Ответить
    • Виталий Кириллов:

      Здравствуйте Евгений! Может feed, а не fedd?

      Ответить
      • Евгений:

        Ой! Да feed, я перекрыл их в роботс вроде стали убавляться, посмотрим что будет дальше!

        Ответить
  12. Василий:

    Я тоже занимался этой проблемой, даже написал об этом статью (раньше Борисова). В итоге, остановился на 301 редиректе в htacceess и вставке кода (другой код) в файл functions. Теперь replytocom у меня на сайте нет.

    У меня мета тег роботс закрывает страницы архивов, пагинации и т.п. Я не стал использовать код для этого, так как подобная функция есть в плагине All in One SEO Pack.

    Там сначала было noindex, nofollow. В данный момент, я переделал настройки в noindex, follow. Мотивы были такие: зачем запрещать роботам переходить по ссылкам со страниц навигации на статьи, если меня интересует повышение веса статей, а не подобных страниц. Роботы же остаются на моем сайте. Разве я, в данном случае, не прав?

    Ответить
  13. Александр:

    Вот оно человеческое решение проблемы. А я все еще с плагином живу закрывающим эти самые дубли. Срочно буду применять этот способ и сносить плагин

    Ответить
  14. Екатерина:

    Добрый день.
    В Functions.php код вставила — получилось.
    А от вставить код в style.css куда вставлять? Не получается, вставляю в конец этого файла , но ничего не меняется.
    Заранее спасибо.

    Ответить
    • Виталий Кириллов:

      Здравствуйте!
      Код в файл style.css можно вставлять в любое место, после фигурной скобки.

      Ответить
      • Екатерина:

        Вставляю — никаких изменений.
        Ну и ладно, от греха по дальше убрала совсем эти кнопочки «ответить».
        Так как яндекс уже наказал, только не говорит за что — убрал все мои страницы с индекса.

        Но от прошло где то 5 дней от момента этих всех манипуляций, о которых говорится в статье, то через гугл вебмастер показывает только увеличение этих «replytocom».
        Было 1000 , а сейчас уже 1300 индексирует.
        Почему так?

        Ответить
        • Виталий Кириллов:

          Екатерина почитайте статьи про Supplemental index и мета-тег robots.

          Ответить
          • Екатерина:

            Совсем запуталась.
            У меня robots.txt выглядит от так:
            «User-agent: Mediapartners-Google
            Disallow
            User-agent: *
            Disallow: /wp-includes
            Disallow: /wp-feed
            Disallow: /wp-content/plugins
            Disallow: /wp-content/cache
            Disallow: /wp-content/themes
            Host: babuwka.ru
            Sitemap: http://babuwka.ru/sitemap.xml

            User-agent: Googlebot-Image
            Allow: /wp-content/uploads/

            User-agent: YandexImages
            Allow: /wp-content/uploads/»

            а в functions.php прописано от что:
            «/*** ДОБАВЛЯЕМ meta robots noindex,nofollow ДЛЯ СТРАНИЦ ***/
            function my_meta_noindex () {
            if (
            is_paged() // Все и любые страницы пагинации
            ) {echo «».».»\n»;}
            }

            add_action(‘wp_head’, ‘my_meta_noindex’, 3); // добавляем свой noindex,nofollow в head
            define(‘THEME_NAME’,»healthy_eating_wp»);»

            Может глянете грамотным взглядом, что и где не так?
            Буду очень благодарна.

            Ответить
            • Виталий Кириллов:

              Екатерина, пример файла robots я привел в статье, функцию тоже, так в чем Вы запутались? Функцию, которую вы представили надо удалить и заменить ее на мою, файл robots тоже. Просто следуйте инструкциям, описанным в статье.

              Ответить
              • Екатерина:

                Та отож одни говорят одно, другие по другому. Я и запуталась. Боюсь, чтоб хуже не было.
                у меня этот robots сделал по примеру другой статьи, другого вебмастера, который рассказывал о вреде дублированных ссылок.

                Ответить
            • Игорь:

              Екатерина, вот этот код «/*** ДОБАВЛЯЕМ meta robots noindex,nofollow ДЛЯ СТРАНИЦ ***/
              function my_meta_noindex () {
              if (
              is_paged() // Все и любые страницы пагинации
              ) {echo «».».»\n»;}
              }

              add_action(‘wp_head’, ‘my_meta_noindex’, 3); // добавляем свой noindex,nofollow в head
              define(‘THEME_NAME’,»healthy_eating_wp»);»
              надо добавлять в файл functionic,а не robots

              Ответить
  15. Vladimir:

    А я в своем блоге стараюсь все изначально правильно сделать, и дубли не появятся, хотя меня чуть ли не пугали что сайт на wordpress страдает от проблем с дублированием, и Гугл и Яша не любят сервера на этой CMS. Ничего подобного. Главное удавить дубли до того как попадут в поисковики, хотя на другом своем сайте в инструменты веб мастеров висят дубли, но никак этот показатель не влияет.

    Ответить
  16. Гагик:

    Здравствуйте, Виталий.
    Мы с супругой собираемся создать женский сайт и на данный момент я тестирую его пробную версию на Денвере.
    Я не специалист в данной области и свои знания черпаю из инета, изучая материалы из разных сайтов, в том числе и Вашего. Ваш сайт мне очень понравился и я сразу внес его в закладки браузера, и сейчас последовательно изучаю все Ваши статьи.
    О дублях replytocom узнал совсем недавно и решил избавиться от этой проблемы до выхода сайта в свет. Изучил много материала на эту тему и, как мне кажется, предложенный Вами метод самый эффективный и я сделал все так как Вы советуете (кроме замены в мета теге роботс follow на nofollow, поскольку я исключил из формы комментария вывод адреса сайта комментатора) и у меня все получилось, как я думаю, за что Вам огромное спасибо. Но у меня появилось несколько вопросов, которые я хотел бы Вам задать, если Вы не против:
    1. WordPress перестал выводить в коде страницы команду meta name=»robots» content=»noindex,follow» — с чем это может быть связано?
    2. После всех манипуляций мы с Вами исключили образование дублей replytocom, но все оставляемые комментарии имеют свой уникальный адрес, например:
    сайт/рубрика/статья.html#comment-1, 2, 3 и т.д.- разве это не полные дубли конкретной статьи?
    3. Что дает владельцу сайта возможность комментатору указывать свой сайт в форме комментария и тем самым уносить определенный вес страницы, получив ссылку на свой сайт?
    Прошу прощения на длинный комментарий. Надеюсь найдете время и ответите на него.
    С уважением, Ваш новый подписчик.

    Ответить
    • Виталий Кириллов:

      Здравствуйте Гагик!
      1. Если Вы избавились от ссылок с replytocom по моему методу, тогда на вашем сайте просто не останется страниц с replytocom и некуда будет выводить мета-тег robots.
      2. Это не уникальный адрес, а простой якорь в конце URL. Статья про якоря.
      3. Владелец сайта получает комментарий, а в случаи отсутствия возможности оставить ссылку, посетитель может не захотеть высказаться.

      Ответить
      • Гагик:

        Большое спасибо!
        Ваш ответ меня полностью удовлетворил.
        С нетерпением жду новых статей.

        Ответить
  17. Александр:

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

    Ответить
  18. Владимир:

    Воспользовался способом вставки Вашего кода в function.php но стили добавил свои. Вроде бы все красиво, но вот при нажатии на ссылку ничего не происходит. Может я что то упустил? Вроде бы читал статью внимательно. Что это может быть Виталий? Подскажите пожалуйста.

    Ответить
    • Виталий Кириллов:

      Владимир, Вы скрипт подключили?

      Ответить
      • Владимир:

        Благодарю за оперативный ответ. Причина — все-таки не внимательно читал статью так как не вставил скрипт. Скопировал в хедер код вызова js и вуаля — все работает. Огромное СПАСИБО Виталий за помощь.

        Ответить
  19. Евгений:

    Виталий, после вставки кода в функцион, после тега <?php не поменялось у меня на span почему ?

    Ответить
  20. Евгений:

    Зачем все так закручивать и усложнять, достаточно просто пойти в файл comment-template.php. и удалить вывод ссылки и все, ничего больше и не надо, или я не прав ?

    Ответить
    • Виталий Кириллов:

      Евгений, все изменения, внесенные в файл comment-template.php или в любой другой файл движка, продержатся до обновления WordPress, потом придется делать все заново.

      Ответить
      • Евгений:

        А если просто файл comment-template.php сохранить на свой компьютер, а после обновления его заменить ?

        Ответить
  21. Евгений:

    Вообще тема классная и нужная. Я себе сделал, мне нравится. Спасибо автору за данную статью, а то я давно думал, как же избавиться от тих дублей.

    Ответить
    • Виталий Кириллов:

      Спасибо Евгений, рад видеть Вас на блоге»

      Ответить
  22. Олеся:

    У меня всё работает до вставки скрипта в function.php. Как только вставляю скрипт — белый экран и сообщение о фатальной ошибке. это из-за чего может быть?

    Ответить
    • Виталий Кириллов:

      Олеся, где-то ошибка. Возможно в шаблоне что-то напутано.

      Ответить
  23. Алексей:

    Здравствуйте! Если использовать последние три введения (скрипт, функцию, стили для кнопки) тогда нужно отменять древовидные комментарии? нужно устанавливать плагин WordPress Thread Comment?

    Ответить
    • Виталий Кириллов:

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

      Ответить
  24. AndreyShaD:

    я уж давненько вывел все републикомы, без удаления кнопки ответить:)

    Ответить
  25. Слава:

    Я вообще не стал реализовывать комментарии WordPress при создании темы. А вот запрос в google site:******.ru replytocom несколько расстраивает.
    Как вообще избавится от replytocom если даже комментов нет.?

    Ответить
    • Виталий Кириллов:

      Вообще странно, что без реализации комментариев, на сайте обнаружились ссылки с replytocom, ведь данные ссылки находятся в кнопке «Ответить».

      Ответить
      • Слава:

        Виталий, тему сменил недавно, может из за этого, google ещё как следует не пошарился на обновлённом сайте и ещё не в курсе того что я убрал комменты WP
        ps заполнил поле URL может сможете что-то посмотреть)))

        Ответить
        • Виталий Кириллов:

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

          Ответить
          • Слава:

            ok, буду ждать. Интересно что будет когда этих самых replytocom вообще не будет. Я просто в этом seo ещё тот чайник))))

            Ответить
  26. Роман llgr:

    Виталий, добрый день! Спасибо за статьи.
    Выполнил Ваши советы по настройке robots.txt, noindex,nofollow и replytocom.
    1. Если нажать «ответить» на каком-нибудь из комментариев, появляется ссылка «отменить ответ» #respond. Я правильно понимаю, что поисковики её не увидят?
    2. На моём сайте реализованы всплывающие контактные формы easy fancybox + contact form 7. Кнопки для их открытия имеют адрес #contact-form-pop-zvonok. Соответственно есть страницы, например http://dogshow.me/#contact-form-pop-zvonok — дубль главной страницы сайта. Они могут попасть в индекс?
    Благодарю за ответ.

    Ответить
    • Виталий Кириллов:

      Здравствуйте Роман!
      Все что идет после знака # считается якорем.

      Ответить
    • Алексей:

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

      Ответить
    • Алексей:

      Разобрался, все заработало, но не так как мне нужно. Имя пользователя пишет, но окно не открывается под нужным комментом, а перебрасывает вниз.

      Ответить
  27. Алксандр:

    Спасибо за консультацию, воспользовался вашими примерами, посмотрю на результаты.

    Ответить
  28. Александр Силиванов:

    Добрый день, Виталий!
    При подключении древовидных комментариев описанным Вами способом они должны быть включены в настройках движка (Админка — Настройки — Обсуждение)? Или нет?
    Пользовался плагином WordPress Thread Comment. Но он что-то начал глючить — вообще не позволял оставить комментарий.
    Кстати, попытка вставить код в functions.php (на тестовом) заканчивается белым экраном…

    Ответить
    • Виталий Кириллов:

      Здравствуйте Александр!
      Да древовидные комментарии должны быть включены в настройках. На счет белого экрана, скорее всего, вы не в то место вставили код.

      Ответить
      • Александр Силиванов:

        Виталий, приветствую!
        Кнопочку «Ответить» без реплитукомов я все же сделал по Вашему методу! Все работает, благодарю!
        Почему не вставлялся код — так и не понял. Перепутать место у меня все же трудновато — код в файле functuons нужно обязательно заключать в теги php — иначе просто ничего не работает. Но на тестовом много чего уже было напутано. Так что я его очистил капитально — выбросил и сделал новый. Так сказать, «генеральная уборка» — убрал все вместе с домом 🙂
        В общем, сначала все протестировал там, а потом сделал на блоге. Правда, надо будет еще попробовать поменять стили, чтобы ответ на коммент выделялся больше. Но уж это позже.

        Ответить
      • Виталий Охрименко:

        У меня та же проблема, причем вставлять пробовал в разных местах, но ничего из этого не получается. Так что будем дальше мучаться с плагином WordPress Thread Comment

        Ответить
        • Александр Силиванов:

          Виталий, я сделал все, как написано у автора — подключил древовидные комментарии в настройках, подключил код из файла comment-reply.is, добавил в файл functions.php функцию, предложенную Виталием. В самое начало, но у меня каждую функцию нужно заключать в теги PHP. И добавил стили для класса comment-reply-link
          И все прекрасненько работает! С плагином же мне пришлось расстаться.

          Ответить
          • Виталий Кириллов:

            Александр я раз за вас, понимаю, что пришлось помучится , но результат обязательно оправдает все ожидания!

            Ответить
            • Александр Силиванов:

              Да мучиться-то особо нечего 🙂 Просто повнимательнее надо быть, вот и все. Пусть Ваш тезка, Виталий Охрименко, которому я отвечал, попробует все внимательно переделать. Только обязательно сделать бекап сперва. И я еще вначале копирую на компьютер файл, чтобы он у меня оставался в запасе не измененным. А потом редактирую файл на хостинге с помощью Notepad++ Если что-то не так — просто файл с компа закачиваю обратно и заменяю им неудачно отредактированный.

              Ответить
  29. Роман llgr:

    Виталий, здравствуйте!
    Подскажите как убрать из выдачи гугла скрипты?
    Вот ссылка: http://goo.gl/VhD0HE гугл добавил в индекс 7 файлов js из папок с темой и из плагинов.
    Почему это могло произойти? Как устранить проблему?
    Благодарю за ответ!

    Ответить
    • Виталий Кириллов:

      Здравствуйте Роман! Некоторые плагины содержат скрытые ссылки, но так как сканирование файлов с плагинами запрещены в файле robots.txt, то такие страницы попадают в сопли.

      Ответить
  30. Евгений:

    Виталий, добрый день! Скажите пожалуйста, возникла проблема, что без сторонней помощи кажется уже не обойтись. Почему то, когда ввожу site:домен в поиске гугля, в результатах вижу одни и теже рубрики с разными url:
    1)мой домен/category/prodvizhenie-bloga/sotsialnyie-seti
    2)мой домен/prodvizhenie-bloga/sotsialnyie-seti
    Скажите, это нормально или все таки это дубли и их нужно как то убирать. Уже неделю ломаю голову над этим вопросом и никак не могу найти решение

    Ответить
    • Виталий Кириллов:

      Здравствуйте Евгений! Вы ЧПУ настраивали по моей статье?

      Ответить
      • Евгений:

        Да, настраивал все как у вас. Ситуация еще более запутанная стала. Захожу в Гугл вебмастер — Ошибки сканирования — Ошибки URL, откуда то взялись страницы с кодом 404 вида:
        category/sozdanie-bloga/wpstep.ru (конец ссылки, как видите, ведет на главную), как такое может быть не понимаю. Может не в чпу дело, а в чем то другом?

        Ответить
        • Виталий Кириллов:

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

          Ответить
          • Евгений:

            Спасибо Виталий, буду пробовать. Может я чтото в SEO By Yoast намудрил, у меня почему то только на него подозрения

            Ответить
  31. Александр:

    Благодарю за статью. Подскажите, а если на сайте установлена система комментирования, например Cackle, — дубли страниц создаются ? Там просто при наведении на кнопку ответить появляется адрес сайта(статьи)/# , а при наведении, курсора, к примеру с главной страницы на виджет комментариев в сайдбаре виднеется ссылка вида: адрес статьи/#cc-24555916

    Ответить
    • Виталий Кириллов:

      Александр, советую все же использовать форму комментариев интегрированную в движок или обратиться к специалисту и создать свою уникальную форму, которая будет «жить» в шаблоне. Сторонние сервисы — это всегда риск!

      Ответить
  32. Алексей:

    сделал всё как написано у вас в статье Ссылка выглядит как у вас на скриншоте но при клике на кнопку ответить нечего не происходит! Подскажите пожалуйста в чём может быть проблема

    Ответить
    • Виталий Кириллов:

      Алексей, а Вы библиотеку jQuery подключили?

      Ответить
      • Алексей:

        подключил

        Ответить
        • Виталий Кириллов:

          А скрипт обработчик в какой файл вставили?

          Ответить
  33. Алексей:

    других скриптов на сайте нет поэтому сделал так файл comment-reply.js в папку js

    Ответить
    • Алексей:

      Как можно проверить подключения скрипта comment-reply.js ? а то у меня и при ответе на комментарий не выводит форму комментирования под кнопкой «Ответить».

      Ответить
      • Виталий Кириллов:

        Значит где-то ошибка.Вы как скрипт подключали, через файл header.php?

        Ответить
  34. Алексей:

    через header, футе, через функцию

    Ответить
    • Виталий Кириллов:

      а что Вы подключили через «футе», как вы выразились?

      Ответить
      • Алексей:

        не дописал подключал в footer.php «футер» по разному пробовал

        Ответить
        • Алексей:

          подключал файл скрипта comment-reply.js

          Ответить
          • Виталий Кириллов:

            Т.е. Вы подключали файл скрипта напрямую, без создания отдельного файла в шаблоне?

            Ответить
            • Алексей:

              Подключал так <script type="text/javascript" src="/js/comment-reply.js»> конечно этот файл создавал в /js/comment-reply.js таким способом подключал в файл header.php и в footer.php по отдельности
              Подключал другим способом в файл header.php между тегами
              1 вариант —
              2 вариант —
              Подключал в файл функции вашим способом все подключения делал по отдельности

              Ответить
              • Виталий Кириллов:

                Алексей, js-файлы подключаются следующим образом:

                <script  type="text/javascript" src="<?php bloginfo('template_url'); ?>/js/Название файла.js"></script>

                Или:

                <script  type="text/javascript" src="http://Ваш домен/wp-content/themes/Название темы/js/Название файла.js"></script>

                Можно подключить скрипт напрямую, без создания отдельного файла. Для этого в header.php между тегами head вставляем следующее:

                <?php if (is_singular() AND comments_open() AND (get_option('thread_comments') == 1)) wp_enqueue_script('comment-reply'); ?>
                Ответить
                • Алексей:

                  спасибо большое! эта строчка сработала <script type="text/javascript" src="<?php bloginfo('template_url'); ?>/js/comments-reply.js"></script>

                  Ответить
                  • Алексей:

                    а ещё нашел функцию function my_scripts_method() {
                    wp_enqueue_script('custom-script',
                    get_template_directory_uri() . '/js/comments-reply.js',
                    array('jquery')
                    );
                    }
                    add_action('wp_enqueue_scripts', 'my_scripts_method');
                    которая позволяет загружать скрипт после подключения библиотеки гуеро С ним тоже сработало

                    Ответить
                    • Виталий Кириллов:

                      Но вот видите Алексей, всегда надо искать ошибки, а не отчаиваться.

  35. Алексей:

    Виталий здравствуйте!
    Хотел воспользоваться Вашим советом, что бы решить проблему с дублями, но не получается.Файл который нужно редактировать wp-includes/comment-template.php. ,отличается от того, который размещен у Вас в качестве примера ,в строке 1326 ничего похожего нет.Похожий текст я нашел в строке 1411 , вот он

    Ответить
    • Виталий Кириллов:

      Алексей прежде, чем вставлять код, воспользуйтесь преобразователем.

      Ответить
  36. Bujhm:

    В WordPress 4.2 файл wp-includes/comment-template.php несколько другой. Можете добавить в статье, что нужно удалить в этом файле, чтобы не выводился в ссылке replytocom. Заранее благодарен.

    Ответить
    • Виталий Кириллов:

      А вы пробовали вставить мою функцию? Мой метод исправно работает и при измененной функции get_comment_reply_link(), так как в исходный код страницы выводится то же, что и раньше.

      Ответить
      • Игорь:

        Пробовал, но к сожалению не работает…

        Ответить
        • Игорь:

          Намучился. И снёс древовидные…

          Ответить
        • Виталий Кириллов:

          Игорь, возможно в Вашем шаблоне есть еще функция, которая производит какие-то действия с replytocom, вот и получается конфликт.

          Ответить
          • Игорь:

            Спасибо за ответ. Вот именно поэтому и интересовался, что в файле comment-template.php последней версии WP нужно вырезать, своих познаний не хватает, а методом тыка не получилось. Понятно, что это все костыли, но всегда это у меня работало, еще с 3-их версий, а сейчас тупик.

            Ответить
            • Виталий Кириллов:

              Игорь, попробуйте удалить из строки №1425 такой участок кода:

              href='%s'
              Ответить
  37. Данил:

    Блин, вот это статьище, спасибо. ковыряюсь у себя на сайте)

    Ответить
  38. Серге:

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

    Ответить
  39. артем:

    если я правильно понимаю, то в последних версиях WP разрабы решили проблему реплитукомов. достаточно обновиться до актуальной версии. дело в том, что раньше у меня на блогах тоже была масса дублей и я также что-то выпиливал, допиливал, колдовал с кнопкой «ответить», чтобы они исчезли. по прошествии времени я менял темы, переустанавливал WP, соответственно, все настройки у меня сбивались в плане допиливания по устранению реплитукомов. после этого я ничего не изменял, дабы вырезать ссылку из кнопки «ответить» и т.д., но с тех пор ни одного дубля у меня не появилось…и еще такой момент — функция get_comment_reply_link() в последней версии wp в файле comment-template.php описана совсем по-другому, нежели указано в данной статье. может, это и есть решение проблемы replytocom?

    Ответить
  40. артем:

    и еще при выпиливании href=’%s’ (коллега выше интересовался тем же вопроом) сайт «ложится».:)

    Ответить
    • Виталий Кириллов:

      У меня установлена последняя версия WordPress и функция исправно работает и если функцию убрать, то ссылка с replytocom возвращается. Поэтому функция по-прежнему актуальна!

      Ответить
  41. Сергей:

    Виталий, здравствуйте! У меня опрос по дублям страниц, но не replytocom. Если у Вас установлен плагин Subscribe to Comments Reloaded, то он тоже создает дубли, и это уже не replytocom, а srp. Скажите, пожалуйста, будет ли работать Ваш код в этом случае, то есть будет ли он предотвращать появление srp?

    Ответить
    • Виталий Кириллов:

      Сергей, приведите пример URL пожалуйста.

      Ответить
      • Сергей:

        Виталий, добрый день! Это страницы вида text-center.ru/comment-subscriptions/?srp=4178&sra=s/

        Ответить
        • Виталий Кириллов:

          У себя я такие страницы не обнаружил, как вы на них попадаете, опишите? И я разработаю противоядие.

          Ответить
          • Сергей:

            Виталий, такие страницы появляются при использовании плагина Subscribe To Comments Reloaded. Посетитель может под окном комментирования выбрать опцию подписки на комментарии к статье без комментирования со своей стороны. Вот использование ссылки на подписку без комментирования и создает дубль.

            Ответить
          • Сергей:

            Виталий, а у Вас установлен плагин Subscribe To Comments или Subscribe To Comments Reloaded?

            Ответить
            • Виталий Кириллов:

              Я использую Subscribe To Comments.

              Ответить
            • Виталий Кириллов:

              Вот вставьте функцию в файл funtions.php, которая выведет мета тег robots, на подобные страницы.

              function mayak_nofollow_srp(){
              if ( isset( $_GET['srp'] ) ) 
              echo "<meta name='robots' content='noindex,nofollow' />\n";
              }
              add_action('wp_head','mayak_nofollow_srp');
              

              Только не закрывайте их в robots.txt

              Ответить
  42. NoService:

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

    Ответить
  43. Галина:

    Виталий,а у меня файл style.css-пустой.Я поставила код в том виде,что у вас,естественно не сработало. Попробовала поставить <?php -без изменений. Пока я на уровне,когда ответить -обычный текст без ссылки.Что делать,если файл пустой?

    Ответить
    • Виталий Кириллов:

      Галина, у Вас должна быть в теме папочка css вот там и поищите css файл. Вы скрипт подключили?

      Ответить
      • Галина:

        Я сделала:
        1.подключила скрипт в header.php
        2.поставила ваш скрипт в functios.php
        3. и сейчас поставила стили кнопки «Ответить» в папке css, в файл style.min.css (от темы видимо зависит).Сработало.
        Теперь могу убирать свои старые редиректы,а то они все равно не очень-то работают.
        Спасибо,Виталий,вы гений.

        Ответить
  44. Александр Силиванов:

    Добрый день, Виталий! Снова вылезли «реплитукомы» — Гугл довольно много из проиндексировал.
    Правда, закрыто в файле robots, поэтому они в «соплях».
    Стал искать. Это ссылка на страницу Comment Manager. Саму эту страницу давным-давно закрыл в robots (когда Яндекс сдуру однажды ее проиндексировал).
    Вот фрагмент кода:

    Вы автор этой записи. lesnoy-dar.ru/?wp-subscription-manager=1&ref=http%3A%2F%2Flesnoy-dar.ru%2Fderevya-i-kustarniki%2Fsosnovye-shishki-lechebnoe-primenenie.html%3Freplytocom%3D51269">Manage

    Может, как-то эту ссылку убрать или скрыть, иначе дубли получаются?

    Ответить
  45. Александр Силиванов:

    Не сработал что-то преобразователь… Все равно ссылка получилась. Я обычно их вручную «калечу» — просто убираешь, к примеру, слеш.

    Ответить
    • Виталий Кириллов:

      Здравствуйте Александр, вставьте в файл functions.php вот этот код:

      function mayak_comment_subscription_robots() {
      	echo "<meta name='robots' content='noindex,nofollow' />\n";
      }
      if ( isset( $_GET['wp-subscription-manager'] ) )
          add_action( 'wp_head', 'mayak_comment_subscription_robots' );
      Ответить
  46. Александр Силиванов:

    Спасибо, Виталий!

    Ответить
  47. Александр Силиванов:

    Добавил функцию. Страница управления подпиской закрыта noindex, nofollow
    Но вот проиндексированные Гуглом страницы с добавлением ?replytocom= мета-тег robots выводит лишь noindex, follow
    Не могу никак сообразить, где такая ссылка генерируется. Плагин Subscribe to Comments, отвечающий за управление подпиской, временно отключал. Ссылки с добавлением replytocom остались! Правда, вели они уже не на страницу управления подпиской, а в админку.

    Ответить
    • Виталий Кириллов:

      Александр, это все потому, что в файле robots.txt у Вас эти страницы закрыты директивами:
      Disallow:/*?*
      Disallow:/*?
      Робот просто не видит мета-тег robots.

      Ответить
  48. Александр Силиванов:

    Интересно. Выборочно проверил несколько страниц на блоге. Ведь адрес с replytocom, насколько я понимаю — страница ответа на комментарий? Но в таком случае логично предположить, что replytocom должен присутствовать в коде самой записи, к которой оставлен комментарий. Но его там нет.
    То ли был сбой, а робот Гугла в это время зафиксировал и проиндексировал ссылки… Больше ничего предположить не могу.
    Директивы Disallow из файла robots убрал (они были установлены ради того, чтобы заставить упрямого Яшу удалить из поиска несколько страниц с ?). Однако noindex, follow в метатеге остаются.
    Пока что вручную удаляю из поиска Гугла такие страницы.

    Ответить
  49. Дамир:

    Здравствуйте — у меня все получилось — делал все пошагово и даже сам себя удивил)). Только один вопрос — с кода страницы репликон исчез но если ввести прямой адрес репликона который я удалил то страница открывается, как это исправить?

    Ответить
    • Виталий Кириллов:

      Только, если ядро править.

      Ответить
      • Дамир:

        Виталий — я на одном своем сайте смог сделать на другом после удаление этой строки сайт не грузиться, подскажите что тут конкретно удалить нужно?

        $link = sprintf( «%s»,
        esc_url( add_query_arg( ‘replytocom’, $comment->comment_ID ) ) . «#» . $args[‘respond_id’] ,
        $onclick,
        esc_attr( sprintf( $args[‘reply_to_text’], $comment->comment_author ) ),
        $args[‘reply_text’]

        Ответить
  50. Дамир:

    вот более точный скрин когда — гляньте пожалуйста http://prnt.sc/afi63i

    Ответить
    • Виталий Кириллов:

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

      Ответить
  51. Олег:

    У меня в файле comment-template.php нет такого кода:
    $link = «comment_ID ) ) . «#» . $respond_id . «‘ onclick=’return addComment.moveForm(\»$add_below-$comment->comment_ID\», \»$comment->comment_ID\», \»$respond_id\», \»$post->ID\»)’>$reply_text»;
    А дубли replytocom есть. Что делать? Тупо древовидные комментарии отключить?

    Ответить
    • Виталий Кириллов:

      Олег, у Вас какая версия WordPress установлена?

      Ответить
      • Олег:

        последняя 4.4.2

        Ответить
        • Виталий Кириллов:

          Тогда моя функция должна работать.

          Ответить
  52. Андрей Д:

    Добрый день. У меня в файле comment-template.php вот такой код:

    $link = sprintf( «%s»,
    esc_url( add_query_arg( ‘replytocom’, $comment->comment_ID, get_permalink( $post->ID ) ) ) . «#» . $args[‘respond_id’],
    $onclick,
    esc_attr( sprintf( $args[‘reply_to_text’], $comment->comment_author ) ),
    $args[‘reply_text’]
    );

    Подскажите, пожалуйста, какой кусок удалить в данном случае? Спасибо

    Ответить
    • Андрей Д:

      вот так правильней будет:
      $link = sprintf( "<a rel='nofollow' class='comment-reply-link' data-link='%s' onclick='%s' aria-label='%s'>%s</a>",
      esc_url( add_query_arg( 'replytocom', $comment->comment_ID, get_permalink( $post->ID ) ) ) . "#" . $args['respond_id'],
      $onclick,
      esc_attr( sprintf( $args['reply_to_text'], $comment->comment_author ) ),
      $args['reply_text']
      );

      Ответить
    • Виталий Кириллов:

      Здесь вы ничего не сможете удалить. А функция, что не работает?

      Ответить
      • Андрей Д:

        Я вставил функцию в functions.php, но, честно говоря, не знаю, как проверить ее работоспособность. Сайт на Денвере еще. Нужно ждать индексации и только потом станет ясно, работает она или нет? Или можно как-то проверить уже сейчас? Заранее спасибо за ответ.

        Ответить
        • Виталий Кириллов:

          Если вставить функцию, то в исходном коде должно остаться следующее:

          <span class='comment-reply-link'  onclick='return addComment.moveForm( "div-comment-9777", "9777", "respond", "3565" )' aria-label='Комментарий к записи Алексей'>Ответить</span>
          Ответить
          • Андрей Д:

            Да, работает! Спасибо большое) С нетерпением жду новых интересных публикаций!

            Ответить
  53. Сергей:

    Огромное спасибо за эту статью! Я уже второй раз проделываю эти процедуры. Всё понятно и чётко.
    Спасибо огромное за то, что вы делаете!

    Ответить
  54. Василий Сенченко:

    К сожалению, ваша функция не работает, т.к. Вордпресс версии 4.6.1 по иному скопоновал вывод комментариев в строках 1641-1646 comment-template.php. Если возможно, подскажите, пожалуйста, как подправить вашу прекрасную функцию!

    Это выписка из файла
    1641 $link = sprintf( "<a rel='nofollow' class='comment-reply-link' data-link='%s' onclick='%s' aria-label='%s'>%s</a>",
    1642 esc_url( add_query_arg( 'replytocom', $comment->comment_ID, get_permalink( $post->ID ) ) ) . "#" . $args['respond_id'],
    1643 $onclick,
    1644 esc_attr( sprintf( $args['reply_to_text'], $comment->comment_author ) ),
    1645 $args['reply_text']
    1646 );

    Ответить
    • Виталий Кириллов:

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

      Ответить
      • Василий Сенченко:

        Вы правы, Виталий! На сайте установлен WordPress 4.6.1 и основная тема Twenty Twelve, а также создана дочерняя тема Twenty Twelve Child. При активации основной темы ваша функция прекрасно работает. Древовидные комментарии формируются, стили выполняются. При активации дочерней темы функция не срабатывает. Подскажите, пожалуйста, что мне нужно сделать?

        Ответить
        • Виталий Кириллов:

          У Вас, я так думаю, в дочерней теме прописан свой функционал вывода комментариев. Поищите функцию, в ней и надо делать правки.

          Ответить
  55. Денис:

    Добрый день! Подскажите, надо ли закрывать кнопку — Ответить, от индексации, если да, то как? К чему вопрос. Проверяю статью в rookee, комментов много, при проверке на частотность (слово) у нас больше всего показывает именно слово — Ответить, что есть наверное не правильно?

    Ответить
  56. Елена:

    Здравствуйте! Алекей, не могу понять, внесла код в header и в function, ссылка с кнопки «ответить» исчезла, но как сделать, чтобы можно было курсор навести на кнопку «ответить»и было бы видно, что она активна — рука появилась?
    У меня стоит: в файле style.css — .comment-reply-link { font-size: 10px; text-transform: uppercase; font-weight: 500; color: #C5C5C5; position: absolute; bottom: 5px; right: 10px; }.
    Мне эту запись убирать? и вместо нее ставить {color:#5151FF; text-decoration:none; cursor:pointer;} ?
    Я и вместо ставила и после, рука не появляется. Что я не так сделала? Как исправить?

    Ответить
    • Виталий Кириллов:

      Здравствуйте Елена! Я так понял, что вы самостоятельно решили проблему?

      Ответить
      • Елена:

        Виталий, я не знала, что проблему решила :). «Рука» появилась после перезагрузки компьютера. Спасибо большое. И простите, ради бога, за ошибку в имени, это у меня от усталости, видимо. Даже просто вставить готовый код, это для меня ооочень тяжело. Спасибо Вам большое за Ваш труд.

        Ответить
  57. Виктор:

    Здравствуйте! При нажатии на кнопку «ответить» получаю след ошибку Uncaught ReferenceError: addComment is not defined
    at HTMLSpanElement.onclick ((index):216) , если убираю ваш скрипт преобразования ссылки в span, то все работает

    Ответить
    • Виталий Кириллов:

      Здравствуйте Виктор!
      Какой у Вас html ссылки до преобразования в span?

      Ответить
  58. Александр Томм:

    Спасибо, заработало!

    Ответить
  59. Денис:

    В моем случае не сработало, но у меня пагинация на страницах таксономий. Не подскажите, есть ли решение?

    Ответить

Оставить комментарий

Внимание комментатор! Прежде чем вставить: HTML, JavaScript или PHP код в свой комментарий, преобразуй его в html сущность!

Subscribe without commenting

» Подписаться на комментарии по RSS