-
6
Июл -
Делаем стандартный календарь WordPress с атрибутом rel=nofollow
- Нет комментариев
Наверняка многие уже в курсе о том, что Яндекс с недавнего времени начал учитывать атрибут rel=nofollow для ссылок. Если раньше, для того, чтобы робот поисковой системы Yandex не учитывал ссылки на сайте, их достаточно было поместить в тег noindex, то теперь ситуация изменилась. Тег noindex остался в силе, но им можно запретить лишь индексацию нежелательного текста.
На одном из своих проектов я столкнулся со следующей проблемой. Размещая ссылки и заметки через систему GoGetLinks, порой приходится сталкиваться с заданиями, где указано слишком строгое ограничение на число внутренних ссылок. Например, на странице их должно быть не более 50 штук. А у меня в сайдбаре стоит стандартный календарь WordPress, который, если кто не знает, вызывается функцией <?php get_calendar(true); ?>
Как вы понимаете, каждая дата в календаре, если в этот день на сайте были размещены публикации, является внутренней ссылкой. Если публиковать новости ежедневно, то к концу месяца календарь будет представлять из себя около трех десятков внутренних ссылок. Вместе со всей остальной навигацией, уложиться в отведенные 50 штук уже не получается. Что делать ?
Если календарь убрать нельзя, например, как в моем случае, то ссылки из него необходимо запретить к индексации с помощью атрибута rel=nofollow. Кстати, это будет полезно сделать ВСЕМ, кто использует в своем шаблоне календарь, поскольку ссылки из него генерируют дублированный контент. А это риск оказаться под фильтром АГС.
И, если закрыть от индексации теги, архивы и категории можно с помощью соответствующих правил в robots.txt, прописав туда:
Disallow: /tag
Disallow: /archives
Disallow: /category
Либо выставить соответствующие настройки в популярном планиге All in One SEO Pack, то с календарем такой фокус едва ли возможен.
Немного порывшись в интернетах, я отыскал информацию о том, что все стандартные функции WordPress расположены в файлике general-template.php, который проживает в папке wp-includes.
Открыв этот файл в любимом PHP-редакторе, необходимо вбить в поиск get_calendar, после чего приступить к поиску строчек кода, где вызываются ссылки.
Например, в моей версии WordPress, это строчки 1050, 1060 и 1133. Там, как вы уже догадались, и требуется прописать rel=nofollow (см. пример кода ниже), после чего сохранить изменеия и перезалить файл на сервер, чтобы изменения вступили в силу.
1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 | if ( $previous ) { echo "\n\t\t".'<td abbr="' . $wp_locale->get_month($previous->month) . '" colspan="3" id="prev"><a rel="nofollow" href="' . get_month_link($previous->year, $previous->month) . '" title="' . sprintf(__('View posts for %1$s %2$s'), $wp_locale->get_month($previous->month), date('Y', mktime(0, 0 , 0, $previous->month, 1, $previous->year))) . '">« ' . $wp_locale->get_month_abbrev($wp_locale->get_month($previous->month)) . '</a></td>'; } else { echo "\n\t\t".'<td colspan="3" id="prev" class="pad"> </td>'; } echo "\n\t\t".'<td class="pad"> </td>'; if ( $next ) { echo "\n\t\t".'<td abbr="' . $wp_locale->get_month($next->month) . '" colspan="3" id="next"><a rel="nofollow" href="' . get_month_link($next->year, $next->month) . '" title="' . sprintf(__('View posts for %1$s %2$s'), $wp_locale->get_month($next->month), date('Y', mktime(0, 0 , 0, $next->month, 1, $next->year))) . '">' . $wp_locale->get_month_abbrev($wp_locale->get_month($next->month)) . ' »</a></td>'; } else { echo "\n\t\t".'<td colspan="3" id="next" class="pad"> </td>'; } |
1132 1133 1134 | if ( in_array($day, $daywithpost) ) // any posts today? echo '<a rel="nofollow" href="' . get_day_link($thisyear, $thismonth, $day) . "\" title=\"$ak_titles_for_day[$day]\">$day</a>"; else |
Вот таким нехитрым способом, при том достаточно быстро, мы запретили индексировать ссылки из стандартного календаря WordPress, что позволит избежать генерации дублированного контента на сайте.
Наткнулся на блог Волгоградского Бомжа. Автор пишет интересные заметки на тему СЕО и просто о жизни.