Yii2: канонические URL-адреса (canonical)
Довольно часто возникают ситуации, когда один и тот же контент страницы может быть доступен по разным адресам. Такая ситуация может возникнуть, например, в разделе каталога с пагинацией интернет-магазина, или с пагинацией комментариев какого-либо материала блога. Да и других случаев может быть много.И если для конечного пользователя (то есть посетителя сайта) такое не имеет значения, то для поисковых систем это очень важно. Ведь поисковые системы могут в поисковой выдаче показывать страницу, которая может оказаться менее релевантная, или же вообще может исключить подобные страницы из поиска за дубли.
Решить подобную проблему можно, пометив один из таких адресов при помощи тега:
<link rel="canonical" href="http://www.site.ru/catalog"/>
Теперь разберем на примере, как можно настроить (добавить) rel="canonical" в Yii2.
Допустим, у нас есть две канонические страницы:
И мы решили,что первый адрес будет каноническим. Потому для этой страницы добавим следующий код в контроллере:
\Yii::$app->view->registerLinkTag(['rel' => 'canonical', 'href' => Url::to(['catalog1'], true)]);
Чтобы это сделать в представлении, нужно добавить код ниже:
$this->registerLinkTag(['rel' => 'canonical', 'href' => Url::to(['catalog1'], true)]);
Или же вместо Url::to()
можно использовать и Url::canonical()
, например, используя в макете (layout):
$this->registerLinkTag(['rel' => 'canonical', 'href' => Url::canonical()]);
И тогда можно добиться исключения дублей страниц сайта на Yii2 из поисковых выдачей.