Поисковые системы негативно реагируют на страницы сайта с одинаковой информацией. Зачастую это получается не по вине владельца сайта, а из-за особенностей системы управления. С этой проблемой сталкивается каждый пользователь uCoz, особенно, если не использует расширенную версию SEO-модуля. В этой статье мы рассмотрим варианты исключения дубликатов страниц средствами системного функционала и работой с условными операторами в совокупности с атрибутом rel="canonical"
.
Как убрать дубликаты страниц в uCoz без SEO-модуля или «эконом вариант»
Если вам не нужны красивые URL, различные полезные инструменты продвижения и прочие прелести платной версии это модуля или вы попросту не хотите платить за SEO-модуль, можно вполне справиться и без него.
Итак, приступим. Так выглядит базовый вариант тега link
с атрибутом rel="canonical"
:
Код
<link rel="canonical" href="нужная переменная или URL" />
Вместо нужная переменная или URL
можно использовать адрес страницы, если он заранее известен, либо конструкцию с системными переменными. Разберем на основных примерах.
Модуль «Редактор страниц»
В этом модуле нет системной переменной, которая выводила бы текущий адрес страницы в чистом виде. Поэтому можно использовать конструкции следующего вида:
Код
<?if($URI_ID$='page1')?> <link rel="canonical" href="$HOME_PAGE_LINK$/" /> <?endif?>
<?if($URI_ID$='page3')?> <link rel="canonical" href="$HOME_PAGE_LINK$/index/0-3" /> <?endif?>
Где $HOME_PAGE_LINK$
— URL адрес вашего сайта, который указывается в общих настройках. Рекомендую указывать его без слеша на конце, чтобы потом было легче использовать в конструкциях.
Здесь же page1
и page3
— это ID ваших страниц, который всегда можно посмотреть в админ-баре, если авторизоваться как админстратор:
Код канонических ссылок размещается между тегами <head></head>
в шаблоне «Страницы сайта», либо в шаблоне страницы с индивидуальным дизайном. В последнем случае можно не использовать проверку на ID страницы, так как заранее известно, что это за страница.
Сразу оговорюсь, что использовать для этих целей $REQUEST_URI$
не рекомендуется, так как это может только навредить вашему сайту. Дело в том, что эта переменная выводит полный адрес страницы относительно доменного имени, то есть вы можете получить не прямую ссылку на материал, а еще и дополнительные символы на конце адреса после авторизации, различную информацию от сортировки в модуле «Интернет-магазин» и прочее.
Контент-модули
Для контентных модулей (Новости сайта, Каталог файлов, Каталог статей, Блог и другие) потребуется немного больше манипуляций. Сперва установим каноническую ссылку на главную страницу модуля:
Код
<link rel="canonical" href="$HOME_PAGE_LINK$/" />
Этот вариант подойдет в том случае, если у вас в общих настройках главной страницей установлена главная страница модуля. Если главная страница у вас реализована через «Редактор страниц», а главная страница какого-либо модуля оформлена иначе и содержит отличную от главной страницы информацию, используйте эту конструкцию:
Код
<link rel="canonical" href="$HOME_PAGE_LINK$$MODULE_URL$" />
Где переменная $MODULE_URL$
выведет относительный адрес модуля (/load/, /news/, /blog/ и т.д.).
Этот метод не только установит верный канонический адрес на главной странице модуля, но и позволит указать роботу канонический адрес главной страницы для всех страниц пагинации. Пользователь должен попадать на главную страницу модуля, раздела, категории или же на конкретный материал, переход на 3, 5, 29 страницу со списком материалов каталога не даст желаемого результата.
Аналогичным образом устанавливаем канонические ссылки для раздела:
Код
<link rel="canonical" href="$HOME_PAGE_LINK$$SECTION_URL$" />
А затем и для категории:
Код
<link rel="canonical" href="$HOME_PAGE_LINK$$CAT_URL$" />
И последний штрих — установить канонический URL для страницы материала:
Код
<link rel="canonical" href="$HOME_PAGE_LINK$$ENTRY_URL$" />
Интернет-магазин
В этом модуле структура шаблонов несколько отличается от других, однако суть размещения канонических ссылок остается прежней. Сперва перейдем в шаблон главной страницы модуля и установим следующий код:
Код
<link rel="canonical" href="$HOME_PAGE_LINK$/" />
Если главная страница интернет-магазина не является главной страницей сайта, используйте этот код:
Код
<link rel="canonical" href="$HOME_PAGE_LINK$/shop" />
Теперь перейдем в шаблон «Каталог товаров» и разместим этот код:
Код
<link rel="canonical" href="$HOME_PAGE_LINK$<?if($PAGE_ID$ = 'home')?>/shop<?endif?><?if($PAGE_ID$ = 'allgoods')?>/shop/all<?endif?><?if($PAGE_ID$ = 'category')?>$CAT_URL$<?endif?>" />
В результате мы получим правильные канонические ссылки на главной странице каталога, на странице со всеми товарами и в категориях. Также отмечу, если у вас главной страницей выставлен модуль магазина, в первом условии необходимо удалить shop
, чтобы в итоге получить такую конструкцию:
Код
<link rel="canonical" href="$HOME_PAGE_LINK$<?if($PAGE_ID$ = 'home')?>/<?endif?><?if($PAGE_ID$ = 'allgoods')?>/shop/all<?endif?><?if($PAGE_ID$ = 'category')?>$CAT_URL$<?endif?>" />
Последний этап — установка канонических ссылок на страницах товара. Я не просто так упомянул страницу товара во множественном числе, так как по умолчанию их там 4, однако в каждом магазине они могли быть изменены или отключены. Для стандартного магазина код будет выглядеть следующим образом:
Код
<link rel="canonical" href="$HOME_PAGE_LINK$<?if($ENTRY_MODE$ == 'desc')?>$DESC_LINK$<?endif?><?if($ENTRY_MODE$ == 'spec')?>$SPEC_LINK$<?endif?><?if($ENTRY_MODE$ == 'imgs')?>$IMGS_LINK$<?endif?><?if($ENTRY_MODE$ == 'comm')?>$COMM_LINK$<?endif?>" />
Здесь $ENTRY_MODE$ — код подстраниц магазина, которые настраиваются в разделе «SEO-настройки» модуля «Интернет-магазин» на вкладке «Подстраницы товара»:
Если вы отключили некоторые подстраницы, то можно убрать из кода условия для них. Если же вы наоборот добавили новые подстраницы или изменили название подстраницы описания товара desc
, необходимо это учесть в коде.