5

Что делать, если поисковики индексируют страницы с параметром ?replytocom на WordPress-сайте

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


Варианты решений:

  1. Запрещаем индексацию страниц с параметром ?replytocom в файле robots.txt:
    User-agent: *
    Disallow: */?replytocom

    Для большинства поисковиков этого достаточно, но что удивительно, этого не достаточно для Google. С ним придется повозиться дополнительно.

  2. Вам понадобится доступ к Google Webmaster tools (Инструменты для веб-мастеров). Если по какой-то причине вы еще не добавили туда свой сайт — обязательно сделайте это. Выбираем сайт, переходим в раздел Конфигурация сайта -> Параметры URL. Здесь вы увидите таблицу найденных параметров. Находим в ней replytocom, и переходим по ссылке Изменить. На вопрос «Изменяет ли этот параметр содержание страницы, которое видит пользователь?» отвечаем «Нет, параметр не влияет на содержание страницы»:
    Параметры URL

    Параметры URL

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

  3. Чтобы окончательно отбить желание у Google, Yandex и прочих переходить по ссылкам с параметром ?replytocom, необходимо чуть-чуть подредактировать исходный код WordPress.
    Во-первых устраняем сам источник проблемы. Файл wp-includes/comment-template.php, строка 1062:

    $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>";

    Изменяем на

    $link = "<a rel='nofollow' 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>";

    В начало ссылки просто добавлен параметр rel=’nofollow’ — запрещаем переход по данной ссылке.

    И второе изменение. Файл wp-includes/general-template.php, строка 1704:

    if ( '0' == get_option('blog_public') )

    Изменяем на

    if ( isset($_GET['replytocom']) || '0' == get_option('blog_public') )

    Этим изменением мы добавляем на страницы с ?replytocom мета-тег:

    <meta name='robots' content='noindex,nofollow' />

    Это должно ускорить удаление из индекса уже попавших туда страниц.

К сожалению, внесенные в п.3 изменения просуществуют только до следующего обновления WordPress. Правда есть надежда, что они скоро станут частью движка. Разработчики в курсе проблемы, но почему-то уже как 4-й месяц тормозят с внедрением. Ждем…

Метки: WordPress, Google