Атрибут rel=canonical. Что такое каноническая ссылка?

Если одна страница доступна по нескольким URL адресам, поисковые системы рекомендуют использовать канонические ссылки, указывающие адрес основной страницы – предпочтительный для индексации.

Задаются они с помощью тега LINK с атрибутом rel="canonical" в HEAD страницы и поддерживается всеми известными поисковыми машинами, в том числе Яндексом и Google. Атрибут rel="canonical" помогает не только исключить из выдачи все дубликаты страницы, но и правильно сконцентрировать ценный ссылочный вес.


Что такое каноническая страница?

Иногда одна и та же страница сайта доступна по нескольким URL адресам. Например:

 http://ваш-сайт.ru/1-1-2
 http://ваш-сайт.ru/publ/zametki/statiya1
 http://ваш-сайт.ru/publ/obzory/statiya1
 http://ваш-сайт.ru/publ/rekomendacii/statiya1
 http://ваш-сайт.ru/statiya1/1-1-2


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

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



Как указать каноническую страницу?

Это делается одинаково для всех сайтов и всех CMS. Вам необходимо поместить в код страницы в блок HEAD следующую запись:



<link rel="canonical" href="канонический URL" />

Где «канонический URL» - это полный адрес страницы, которую вы считаете основной для индексации.

Внимание! Указывать обязательно полный адрес с http:// и доменом!



<link rel="canonical" href="http://домен.ru/publ/zametki/statiya1"/>




Установка атрибута для главной страницы, страниц разделов и категорий.

Как правило, вебмастера ставят атрибут rel=canonical только на страницы материалов (динамические страницы), так как считают, что у статических страниц дублей не бывает (одна категория не может входить в несколько разделов). Однако у разных CMS (в том числе и uCoz) есть свои недостатки касающиеся этого вопроса. И даже если у категории фактически не может быть дублей, то на практике они появляются, например, когда вы листаете (переключаете) страницы в пределах раздела или категории:

 1 страница - http://ваш-сайт.ru/load
 2 страница - http://ваш-сайт.ru/load/0-2
 3 страница - http://ваш-сайт.ru/load/0-3
 и т.д.

Несмотря на закрытие переключателей от индексации, страницы /load/0-2 и /load/0-3 также будут индексироваться поисковиками, а главное – забирать ценный вес с основной страницы раздела /load.

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




Также для поисковой системы ссылки со слешом на конце и без него также являются дублями:

 http://ваш-сайт.ru/load
 http://ваш-сайт.ru/load/

Чтобы этого не допустить – зайдите через панель управления uCoz в управление дизайном и разместите на нужных страницах разделов и категорий в блоке HEAD атрибут rel="canonical" с соответствующим адресом URL, например:

Страница раздела:



<link rel="canonical" href="http://ваш-сайт.ru/load" />

Страницы категорий:



<link rel="canonical" href="http://ваш-сайт.ru/load/kategoriya1" />


<link rel="canonical" href="http://ваш-сайт.ru/load/kategoriya2" />


<link rel="canonical" href="http://ваш-сайт.ru/load/kategoriya3" />


Как вывести уникальные мета-теги на страницах категорий с помощью идентификаторов страниц и условных операторов я написал в этой статье.


Для главной страницы сайта rel=canonical можно не указывать, так как в файле роботс.тхт мы уже указали основной домен в директиве HOST. Но даже если вы его пропишите – хуже точно не будет.



Установка атрибута rel=canonical для страниц материалов.

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

В интернете я видел статью, где давали рекомендацию: для установки атрибута rel=canonical на страницах материалов достаточно указать в качестве ссылки переменную $ENTRY_URL$ или $REQUEST_URI$.

Типа так:


<link rel="canonical" href="http://ваш-сайт.ru/load/$REQUEST_URI$" />
 Или

<link rel="canonical" href="http://ваш-сайт.ru/load/$ENTRY_URL$" />

Это не правильно! При использовании атрибута наша задача САМОСТОЯТЕЛЬНО указать поисковому роботу ОСНОВНУЮ страницу, а не ту которую посчитает «нужной» система управления контентом. Поясню:

Переменная $REQUEST_URI$ - отображает полный адрес ТЕКУЩЕЙ страницы сайта относительно доменного имени. То есть, если материал входит в две категории, например в catA и catB, то значение данной переменной (ссылка) будет меняться в зависимости от того в какой категории мы находимся:

 Если в категории A, то $REQUEST_URI$ = /catA/material
 Если в категории B, то $REQUEST_URI$ = /catB/material

В этом случае поисковый робот просто войдет в заблуждение, типа «вчера посетил страницу канонической была страница категории A, а сегодня стала B…» и так каждый раз при переходе на материал по ссылкам из категорий. Это не решает проблему с дублями. Использовать $REQUEST_URI$ категорически нельзя!

Переменная $ENTRY_URL$ - отображает URL страницы материала, признанной движком uCoz по умолчанию. Проще говоря, все категории сортируются по порядку (от 1 до …) и uCoz определяет значение переменной $ENTRY_URL$ именно по первой категории списка. Поясню:

При добавлении материала вы выбираете несколько категорий, допустим catA, catB и catC. Вы предполагаете, что ваш материал больше подходит к категории catC (отмечаете ее первой, потом все остальные), однако система автоматически сформирует из переменной $ENTRY_URL$ ссылку /catA/material, потому что она первая в списке.

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

Использование переменной $ENTRY_URL$ решает проблему с дублями и ее можно использовать для атрибута rel=canonical, но последствия его работы могут сыграть против успешного продвижения тех категорий, которые находятся последними в списке. Снова постараюсь пояснить.

Как видит поисковая система ваш сайт:
 1.У вас есть 3 категории: catA, catB и catC
 2.Вы добавили на сайт 3 материала: material-1, material-2 и material-3. При этом каждый материал входит в каждую категорию.
 3.В итоге вы считаете, что у вас есть 3 категории по 3 материала в каждом.
 4.Поисковый робот соберет информацию и получит следующие ссылки для индексации:

http://ваш-сайт.ru/catA/material-1
 http://ваш-сайт.ru/catA/material-2
 http://ваш-сайт.ru/catA/material-3


То есть по мнению поисковой системы вы имеете только 1 заполненную категорию catA – все остальные (catB и catC) пустые и не содержат материалов… Как вы понимаете, вряд ли Яндекс или Google будут высоко ранжировать пустые категории…



Как правильно избавиться от дублей страниц материалов?

Если мы решили делать сайт для людей и хотим добиться справедливого ранжирования, то к своему детещу нужно также относиться по-людски и, конечно же, учитывать требования поисковых систем. Решение проблемы с дублями страниц достаточно простое – вам придется при каждом добавлении материала ВРУЧНУЮ указывать значение атрибута rel=canonical и это единственное правильное решение!

Но перед тем как его указать, нужно немножко настроить для этого сайт. Чтобы вам было более понятно, попробую описать пошагово:

1. В нужном модуле (к примеру, «Каталог файлов») активируем дополнительное поле. Если все доп. поля заняты – используйте стандартные и свободные переменные, типа «$DOCPAGE_URL$» отвечающей за вывод ссылки на документацию к материалу (ее редко кто использует по прямому назначению). Поле обязательным для заполнения НЕ ДЕЛАЕМ!

2. В замене стандартных надписей сразу же переименовываем поле на свое усмотрение (например, так и назовем: rel="canonical").

3. На странице материала и комментариев к нему в блоке HEAD установим тег LINK с атрибутом, который будет выводить нужную ссылку:


<link rel="canonical" href="http://ваш-сайт.ru/load/$DOCPAGE_URL$" />

4. Теперь при добавлении материала вы увидите поле с именем rel="canonical", которое «попросит» вас ввести значение, однако вам его нужно проигнорировать! Заполните сначала все другие поля и выберите ту категорию, которую хотите считать основной. Другие категории пока отмечать НЕ НУЖНО! Только 1 основную!

5. Добавьте материал на сайт (на страницу материала можно не переходить – вместо урла с ссылкой на категорию там будет очередной дубль типа http://ваш-сайт.ru/load/1-2-33).

6. Перейдите в материал через категорию, в которую он был добавлен, чтобы ссылка в адресной строке браузера приобрела следующий вид: http://site.ru/load/kategoriya/material-1

7. Теперь скопируйте ту часть ссылки, которая должна подставиться в атрибут canonical (в нашем случае это kategoriya/material-1)

8. Теперь откройте режим редактирования материала и в поле rel="canonical" вставьте эту самую скопированную часть ссылки. Выберите дополнительные категории и снова сохраните материал.

9. Готово! Перейдите на страницу материала, откройте исходный код и вы увидите следующую картину:


<link rel="canonical" href="http://site.ru/load/kategoriya/material-1" />
Независимо от того в какой категории вы находитесь – значение атрибута rel="canonical" всегда останется неизменным, а поисковым системам вы сможете доказать что все категории сайта равномерно наполняются контентом!

Эта процедура (сохранить-редактировать-сохранить) забирает не более 30 секунд, однако результат вас очень порадует. Вы навсегда забудете, что такое дубли страниц и сможете без риска использовать функцию uCoz «Вхождение материала в несколько категорий».


Канонические ссылки помогают избавиться от дублей страниц и сконцентрировать статический вес в нужном направлении. Благодаря атрибуту rel=canonical, поисковые системы начнут индексировать только реально существующие страницы и при анализе сайта вы будете видеть только реальное количество уникальных страниц вашего сайта (а не так как раньше – добавили 100 материалов, а в индексе Google попали уже 500 страниц, из которых ни одна не занимает должной позиции в выдаче).


Одно небольшое замечание. Когда вы добавляете материал в несколько категорий, движок uCoz формирует в файле sitemap.xml все ссылки материала со всеми входящими категориями. То есть, если вы добавили 1 материал в 3 категории – в сайтмапе сформируется 3 ссылки, которые поисковая система получит в очередь на индексацию, но по итогу индексироваться будет только 1 ссылка и 2 исключаться. Об этих страницах вы можете узнать в панели Яндекс.Вебмастера в пункте «Исключенные страницы» с пометкой «Документ является неканоническим». Если такие страницы появятся – значит вы все сделали правильно.