|
В СЕО сфере существует правильное мнение, что ПС Яндекс на сайтах не жалует сквозные ссылки. А что делать, если сайт построен на CMS и навигация организована с помощью блоков меню присутствующих на всех страницах? Как раз в этом случае владелец имеет большое количество "сквозняков" от которых лучше избавиться.
Что делать - не секрет. На первой странице остается все как есть, а вот блоки меню на остальных страницах надо закрыть от индексации.
Яндекс предлагает использовать для этой цели служебный тег-контейнер:
<noindex>закрываемый от индексации блок</noindex>
Однако, этот тег не валидный и для сохранения валидации страницы Яндекс рекомендует использовать конструкцию:
<!--noindex-->закрываемый от индексации блок<!--/noindex-->
Но этого мало, в код самой ссылки необходимо добавить атрибут rel="nofollow", чтобы ссылки в меню выглядели примерно так:
<a href="//poisk-po-sajtu.html" rel="nofollow">Поиск по сайту</a>
Вот теперь рассмотрим второй по порядку, но не по важности вопрос. Так как я в основном работаю с CMS Joomla 1.5, то вопрос будет такой:
Как на практике избавиться от сквозных ссылок в меню в CMS Joomla?
На самом деле ответ на этот вопрос не сложен, надо внести некоторые изменения в шаблон и в двух файлах модуля меню.
Начнем с шаблона (темплейта).
Открываем индексный файл вашего шаблона /templates/[имя шаблона]/index.php и смотрим его код. Как правило на сайте бывает от одного до четырех модулей меню. Каждую позицию, в которой выводится меню, нужно обернуть таким кодом. Предложим, что было так:
<jdoc:include type="modules" name="top" style="raw" />
а должно стать так:
<?php if (strlen ($_SERVER['REQUEST_URI']) > 1 ) { echo "<!--noindex-->";} ?> <jdoc:include type="modules" name="top" style="raw" /> <?php if (strlen ($_SERVER['REQUEST_URI']) > 1 ) { echo "<!--/noindex-->";} ?>
Вставки на PHP проверяют URI и если он длиннее одного символа, то вставляется тег <!--noindex--> ... <!--/noindex-->. То есть, если это не первая страница, то вставить тег, если нет - не вставлять. Почему проверяется длина больше одного, а не больше нуля? Потому что URI первой страницы сайта обозначается наклонной чертой (один символ).
Изменяем модуль меню
Файлы модуля меню лежат по адресу: /modules/mod_mainmenu/. Открываем в этой папке файл helper.php (в том случае, если используется стиль меню "список") и находим код:
switch ($tmp->browserNav) { default: case 0: // _top
Чуть ниже находим код:
$data = '<a href="'.$tmp->url.'">'.$image.$tmp->name.'</a>';
и заменяем ее на:
$data = '<a href="'.$tmp->url.'"'; if (strlen ($_SERVER['REQUEST_URI']) > 1) { $data .= ' rel="nofollow" '; } $data .= '>'.$image.$tmp->name.'</a>';
еще чуть ниже:
$data = '<a href="'.$tmp->url.'" target="_blank">'.$image.$tmp->name.'</a>';
и меняем на:
$data = '<a href="'.$tmp->url.'" target="_blank"'; if (strlen ($_SERVER['REQUEST_URI']) > 1) { $data .= ' rel="nofollow" '; } $data .= '>'.$image.$tmp->name.'</a>';
Сохраняем и закрываем файл. Переходим в подпапку tmpl и открываем файл default.php в котором надо закомментировать строку:
$node->removeAttribute('rel');
Сохраняем и закрываем файл. Это все. |
Комментарии
пробовал вставлять кусок кода
if (strlen ($_SERVER['REQUEST_URI']) > 1)
{ $data .= ' rel="nofollow" '; }
В файл legasy.php
в этот участок:
case 1 :
// open in a new window
$txt = 'url . '" target="_blank" class="' . $menuclass . '" ' . $id . '>' . $mitem->name . '';
break;
Но таким образом добавил атрибут на все страницы, даже на главную. Куда смотреть, даже не знаю теперь..
if (strlen ($_SERVER['REQUEST_URI']) > 1 )
с тегом в самом шаблоне это же работает! Подскажите пожалуйста, в чем может быть причина?
http://moskalukov.org/ - главная страница;
http://moskalukov.org/index.php - НЕ главная страница. У нас отслеживается главная страница именно в таком понимании
И тег "noindex" по такой схеме: if (strlen ($_SERVER['REQUEST_URI']) > 1 )
прописанной в самом шаблоне работает на ура! Т.е. выводится везде, кроме главной. А вот атрибут "nofollow" добавляется к ссылкам меню и на главной в том числе! На сайте ЧПУ. Подскажите, очень надо. Заранее спасибо!
RSS лента комментариев этой записи