Боремся с дублями Joomla – 7 эффективных методов

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

Так как каждый случай индивидуален, рассмотрим самые популярные способы, которые в 99% случаев отлично работают. Можно для себя выбрать что-то одно или использовать в комплексе.

Хотя все эти способы применимы и к любой другой CMS системе, но я подробно остановлюсь именно на особенностях Джумлы.

Все эти примеры справедливы если вы включили стандартный SEF и Перенаправление URL в глобальных настройках J.

  • 1. Плагин для Joomla

Первое, что можно сделать, если у вас путаница в урлах, (когда ссылки формируются и от алиаса категории, и от пункта меню) – поставить плагин Shnodoubles от sherza.

Отличный плагин, справляется со своей задачей на все 100%. После его установки неправильно сформированная ссылка (от алиаса категории) редиректится на правильную (от пункта меню). Скачать этот замечательный плагин, избавляющий от дублей, для Joomla 2.5 можно здесь (ссылка прямая!)

После активации плагина некоторые дубли просто склеятся.

  • 2. Robots.txt для Joomla

Этот файл идет в стандартном дистрибутиве Joomla, располагается в корне и доступен по ссылке site.ru/robots.txt. Основная цель – он дает инструкции поисковым роботам по индексации сайта. С его помощью можно закрыть некоторые (нужные вам) разделы сайта, также поддерживаются регулярные выражения – можно закрыть отдельные страницы по маске.

Чаще всего я использую такую инструкцию (в дополнение к тому, что идет в файле по умолчанию):

Disallow: /*? #все ссылки, которые содержат этот знак – не индексируются

Всего одна строчка избавляет от большого кол-ва мусора. Это могут быть:

  • страницы печати материалов, содержать в урлах также print= или tmpl=component
  • ссылки на rss ленту
  • страницы результатов поиска по сайту
  • также закроет страницы пагинации
  • могут быть и другие варианты, в зависимости от используемых расширений

Использовать эту строчку или запрещать каждый тип страниц в отдельности – на ваше усмотрение, но имейте в виду, что слишком большой роботс считается полностью разрешающим. Так же стоит проследить, чтобы эта строчка не закрыла что-то важное, например, карту сайта – в таком случае можно прописать: Allow: /путь_до_карты

Подробнее об использовании robots.txt можно прочитать в помощи Яндекса — help.yandex.ru/webmaster/?id=996567

  • 3. Атрибут rel=«canonical» тега <link>

Использование этого атрибута поможет роботу определить – какие страницы нужно включать в индекс, а какие нет. Если на сайте существуют очень похожие страницы (нечеткие дубли), отличающиеся лишь, к примеру, вариантами сортировки – с начала новые или сортировать по возрастанию, или показывать по 20-30 и т.д., то вы можете использовать этот атрибут. В таком случае нужно будет выбрать одну каноническую страницу, которая и будет ранжироваться, на остальные добавить rel=«canonical» с указанием выбранной страницы – такие документы не попадут в выдачу, робот будет знать, что включать в индекс их не нужно.

Подробнее, как внедрить rel=«canonical» в Joomla 1.7/2.5 смотрите здесь

  • 4. 301 редирект

Уместно использовать если вы сменили адреса страниц, но документы по-прежнему существуют, т.е вы их не удалили. В таком случае, для правильной склейки рекомендуется использовать 301 редирект в .htaccess – поисковики буду знать, что документ переехал на новый адрес. Такой метод позволяет сохранить и показатели сайта – Тиц и PR.

301 редирект можно использовать так же и для склейки дублей. Например, всем известные дубли главной страницы сайта на Joomla – это /index.php и алиас пункта меню Главная, допустим, /home или /homepage

Склеить их довольно просто, открываем .htaccess и вписываем

Redirect 301 /index.php http://site.ru/

Или можно сделать 301 редирект на php в индексном файле вашего шаблона

<?php
if($_SERVER['REQUEST_URI'] == '/index.php') {
header("Location: /",TRUE,301);
exit();
}
?>

И приведу уже классический редирект с www на без www

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.example.ru$ [NC]
RewriteRule ^(.*)$ http://example.ru/$1 [R=301,L]

* example.ru замените на свое доменное имя.

  • 5. Мета тег robots

Еще один способ предотвратить индексацию дублей в Joomla – использование мета тега:

<meta name="robots" content="noindex"/>

На данный момент этот способ эффективнее для Гугла, чем запрещающие инструкции файла robots.txt. К примеру чтобы закрыть от индексации страницы печати и дубль по адресу ?tmpl=component, можно открыть файл component.php в корне вашего шаблона и вписать этот тег в <head></head>.

Чтобы закрыть страницы результатов поиска на сайте с использованием стандартного com_search, можно в index.php шаблона добавить условие

<?php if ($option == 'com_search')  : ?>
<meta name="robots" content="noindex"/>
<?php endif; ?>

Но вначале необходимо определить переменную

$option = JRequest::getVar('option', null);

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

  • 6. Удаление url из панели

Еще один быстрый способ – ручное удаление из панели вебмастера.

Для Яндекса нужно пройти по адресу – webmaster.yandex.ru/delurl.xml

Для Google — www.google.com/webmasters/tools/home?hl=ru

Остался еще 1 не очень популярный метод по устранению дублей Joomla из выдачи, но мы его тоже рассмотрим.

  • 7. Заголовки X-Robots-Tag

Довольно редкий заголовок, используется чаще зарубежными оптимизаторами, работает он для Гугла. К сожалению, Яндекс пока не комментирует поддержку этого http-заголовка.

Google рекомендует использовать X-Robots-Tag как альтернативу 5 способу в нашей статье для нетекстового содержания, когда нет возможности использовать мета-тег.

HTTP/1.1 200 OK
Date: Tue, 25 May 2010 21:42:43 GMT
...
X-Robots-Tag: noindex
...

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

26 комментариев
Спасибо! Я вообще благодаря Вам и статье о rel=«canonical» удачно избавился от дублей без сторонних расширений! А вот плагин Shnodoubles Я еще не встречал… За него отдельное спасибо!
Вообще статья еще раз подтверждает нецелесообразность установки различных SEF-компонентов.
Единственное этот плагин помог несколько раз по устранению дублей после работы нерадивых администраторов сайтов.
Но плагин — это не целый компонент, и не всегда и его нужно ставить.
«Спасибо» за плагин можно сказать здесь - http://joomlaforum.ru/index.php/topic,156030.msg1130256.html#msg1130256
Да Я вообще стараюсь как можно меньше использовать сторонних расширений… Но был момент, когда уже купил SH404sef (так и лежит девственно-не тронутый :D), а потом изучил много полезного, включая Ваши статьи и не стал носиловать ни хостинг, ни сами сайты.
Всем добрый день. Не могу никак понять зачем бороться с дуюбями. Поисковые системы не такие идиоты чтобы не понимать что в системе с динамическим содержимым возможны ссылки на одну и ту-же страницу с разными параметрами. И не наказывают они за это. Поймите, дубли своего содержимого это не то, что дубли чужого, за это вам ничего не будет. Ничего — в прямом смысле, как хорошего, так и плохого.
Единственное место в котором вам может стать плохо от дублей — это биржа ссылок. Там за этим следят. 
Приветствую, Аркадий, скажите никогда из поиска вам не случалось попадать, ну скажем, на страницу печати?
Представляю ощущения пользователей, которые попадают туда=) — Нет  ни модулей, ни основных граф. элементов (я про дизайн), отсутствует меню и т.д...
Думаю отказы от такой страницы страницы будут стремиться к нулю. 100% отказ означает, что вы не получите никакого конверта с пользователя, который пришел.
Это такой самый простой пример, почему надо закрывать. А что и как это делать решает каждый для себя сам.
> Про биржи сказать, увы, ничего не могу.
Но страница печати не является дублем своей страницы-родителя в прямом смысле, и достаточно ее закрыть от индексирования и переходов на нее не будет.
Я когда-то, лет шесть назад серьезно занимался СЕО, касательно своего сайта (не того, на котором мои расширения лежат), вывел его на первую страницу яндекса по всем нужным ключевикам, и мне небыло дела до дублей, к тому-же ненужные страницы попасть в выдачу почти не могут т.к. на них нет внешних ссылок, ну разве-что совсем НЧ.
Когда-то 6 лет назад… Даже год назад было несколько проще, чем сейчас — ПСы постоянно работают над ранжированием и подкручивают свои алгоритмы.
Вот здесь -   http://support.google.com/webmasters/bin/answer.py?hl=ru&answer=66359 
можно прочитать об отношении Google к дублирующему контенту внутри сайта.
Если Гугл посчитает, что вы намеренно размножаете контент внутри своего сайта, то цитирую: " В результате этого рейтинг сайта может понизиться или сайт может быть вообще удален из индекса Google. Тогда он больше не будет отображаться в результатах поиска. "
У Яндекса отношение аналогичное.
Ну  я в общем это и пытался выяснить, спасибо за разъяснения.
Могу добавить только что еще нужен контроль за тем какие ссылки на материалы и категории выдают всевозможные карты сайта и модули.
Особенное за выводом на материалы стронних компонентов типа К2, ZOO и т.д. Нередко их вывод так же приводит к появлению дублей.
Про сторонние компоненты отдельный разговор, при их использовании нагрузка по отлову дублей увеличивается.
Могу сказать, что некоторые разработчики понимая проблемы своего компонента в плане SEO (в частности при мультикатегорийности, -дублей возникает столько, во сколько категорий вы публикуете материал/товар) и разрабатывают плагины в дополнение к своему компоненту. Как пример, могу привести Joomshopping и их плагин каноникал. Все эти доп. расширения вроде плагинов идут  как «в нагрузку» и я думаю, что лучше бы вообще поправить роутер, а не навешивать лишнее.
Думаю не найдется ни одного такого компонента для Joomla, который бы не создавал дубли своих материалов по разным урл-адресам.
Вот пятый пункт в статье меня порадовал)) ни когда особо не думал над такой возможностью убивания дублей… надо подумать над применением такой технологии в одном из компонентов :-)
комментарий был удален

 Тут иной вопрос есть. Если в рунете 90% публики не пользуется поисковиками вообще (посыл в гугл — синоним оскорбления), то какой смысл затрачивать столько сил, средств и времени на поисковую оптимизацию?

 потому что платить за контекстную рекламу еще дороже.

 Зато результат стабильный и вообще он есть.

 ну я думаю Юля тебе более развернуто ответит… скажем так допустим я вышел по запросу газонокосилка гш-99 купить… и мне 2-3 человека приходить в день… если я размещую по этому запросу рекламу… то мне будет так же приходить 2-3 человека в день… стоить они будут скажем 50 рублей в день… Чтоб выйти в топ по этому запросу мне надо затратить 50 рублей в месяц… Итого в 30 раз выгоднее выйти в топ поисковика чем платить за контекст. Хочу отметить что даже в рунете по коммерческим запросам стоимость перехода по рекламе может доходить до нескольких сот рублей. А то что он закажет еще не факт.

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

В том то вся и фишка интересующихся этой газонокосилкой не так много. К слову сказать партнерские сайты гугла это даже едвали 20% от всего объема рекламы… основной доход гуглу приносит контекст на нем же самом… в общем могу сказать так… цена целевого перехода с поиска куда как ниже чем целевой с рекламы. Для коммерческого проекта важно комбинирование этих способов продвижения… и стоимость сео куда как ниже чем стоимость чистой рекламы.

А если попробовать продать трансформаторную подстанцию за 300т. (я даже не говорю оптом, хотя бы одну) или квартиру за 10млн. где-нибудь в контактиках...- не даешь бесплатно — «иди, давай, до свидания». Реальный конверт приносит только поиск, а затрачивать деньги и время на пустые разговоры с «холодными» потенциальными клиентами — расточительство.

И, al-teen, на счет того, что 90% публики не пользуется поисковиками — загнул. Рекомендую ознакомиться с результами исследований по этому вопросу -  http://www.tns-global.ru/rus/data/ratings/index/index.wbp
У меня была немного другая проблема, нужно было удалить дубли с .html и без, решил по этой статье http://joyit.ru/internet-marketing/37-html-joomla.html
Это ошибки проектирования сайта, а не дубли)

Ой, а можно чуть по подробней чайнику про 5 способ.

Применяя его в роботс ничего не надо прописывать?

Надо только метатег прописать в указанных тегах в указанном файле?

Добрый день, подскажите пожалуйста по поводу 5-го способа и именно про то как закрыть страницы именно с окончанием ......?tmpl=component  как правильно реализовать? тоже нужно прописывать $option = JRequest::getVar('option', null);. можно поподробнее если вам не трудно как правильно (какой именно) воткнуть кусок кода в файл configuration.php, что именно должно быть написанно?

И возможно таким же способом закрыть страницы с окончанием ?tmpl=component&print=1

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

Добрый день! Очень полезная статья.Подскажите только, как сделать редирект на все страницы такого типа: c  http://site.ru/tovar.html    на ->   http://site.ru/shop/tovar.html 
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.