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

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

В этой статье я расскажу о предназначении атрибута rel=canonical и о борьбе с дублирующим контентом на сайтах uCoz.

 

Если одна страница доступна по нескольким 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» – это полный адрес страницы, которую вы считаете основной для индексации.

 

 

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

Как правило, вебмастера ставят атрибут 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.

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

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 исключаться. Об этих страницах вы можете узнать в панели Яндекс.Вебмастера в пункте «Исключенные страницы» с пометкой «Документ является неканоническим». Если такие страницы появятся – значит вы все сделали правильно.
Поделитесь записью в социальных сервисах!

16 комментариев

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

    Не подскажете что в таком случае лучше сделать, убрать канонические ссылки или оставить?

      Я уже писал об этой ситуации в статье. Это не только в каталоге статей, но и в других модулях. Сейчас uCoz запустил SEO-модуль, только он на платной основе – там можно установить канонические ссылки и вовсе без гемороя, но я предпочитаю использовать свой метод, так как это уже проверено. Если у вас слишком много материалов и вы не можете их все отредактировать в течение 1-2 недель, то лучше обратиться к платным услугам uCoz.

    Я бы тоже с радостью использовал бы ваш метод, но это теперь не возможно так как происходит перенаправление на первую категорию, соответственно указывать каноническую страницу бесполезно, или я чего то не понимаю?..

      Вы указываете каноническую страницу вручную при редактировании материала? Или у вас URL формируется автоматически с помощью какой-то переменной?

    Указываю в ручную при редактировании материала, в общем способом который вы подсказали.

      И почему тогда не работает? Вы зайдите в материал через “неканоническую” категорию и посмотрите исходный код – там в rel=canonical должна стоять ссылка на нужную страницу.

    Да нет же! вы меня не поняли наверно. Каноническая ссылка то стоит, куда ей деваться. Дело не в этом, а вот в чем: из любой категории заходим на страницу материала, из канонической или нет, но перенаправляет-то на страницу категории которая идет по списку первая из добавленных, раньше такого не было, просто создавались дубли по количеству выбранных категорий, а теперь еще к тому же перенаправление сделано. Соответственно все канонические ссылки проставленные в материалах “конфликтуют” с этим перенаправлением и поисковик будет в недоумении, ссылка каноническая стоит одна, но редирект на другую…
    Вот и не знаю что теперь делать..

      Точно… напакостили… Нужно будет поднять этот вопрос на форуме. Спасибо.

    Приветствую.
    Очень полезная статья, а главное доступно даже для такого чайника, как я. Для меня полезна была, та часть, где нужно создать доп поле и в ручном режиме редактировать новость с указанием основной категории. Очень здорово все получается.
    Ну у меня вопрос. На dle такой метод так же подходит?

    спасибо за статью, а дубли на сайте юкоз с категориями файлов надоели… Позиции упали ужас с этим дублями.

    Пока использую SEO модуль, rel=”canonical” проставляет на автомате. И в гугле дублей не наблюдается, что очень хорошо) Но с яндексом совсем другая история. Дублей типа http://site.ru/load/?page2, http://site.ru/load/?page3, http://site.ru/load/?page4 там очень много. Иногда они стоят выше в поиске за главную страницу модуля/категории. Не подскажите как там бороться с дублями? Возможно еще какие то способы…

    в SEO модуле галочка “Отключить 301 редирект для страниц пагинации” отключена, может стоит ее включить?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *