
Зачастую при разработке сайта одна страница может быть доступна по разным URL адресам. Например, в Yii страница может быть доступна по id, а вам захотелось в маршрутах настроить для неё более красивого вида URL. И вот теперь эта страница открывается по 2 разным урлам. Для поисковиков это плохо, так не должно быть.
Что же делать?
Пометить один из урлов первичным, основным, или каноническим. Это делается прописыванием в <head> страницы специального тега <link rel="canonical"
Например, у нас есть две одинаковые страницы, или очень похожие по содержанию
Наша цель - пометить первую как каноническую. Вторая всё равно будет открываться пускай по своему URL.
Технически добавление этого тега похоже на то, как добавляли SEO-метатеги - http://yiico.ru/blog/518-dobavlyaem-metatagi-dlya-...
Если мы делаем это в действии контроллера, то так
\Yii::$app->view->registerLinkTag(['rel' => 'canonical', 'href' => Url::to(['item1'], true)]);
Если в виде, то так
$this->registerLinkTag(['rel' => 'canonical', 'href' => Url::to(['item1'], true)]);
Вместо Url::to()
вы можете использовать Url::canonical()
:
<span class="pl-s1"><span class="pl-smi">$this</span><span class="pl-k">-></span>registerLinkTag([<span class="pl-s"><span class="pl-pds">'</span>rel<span class="pl-pds">'</span></span> <span class="pl-k">=></span> <span class="pl-s"><span class="pl-pds">'</span>canonical<span class="pl-pds">'</span></span>, <span class="pl-s"><span class="pl-pds">'</span>href<span class="pl-pds">'</span></span> <span class="pl-k">=></span> <span class="pl-c1">Url</span><span class="pl-k">::</span>canonical()]);</span>
Эту строку можно уже в макет добавить, потому что Url::canonical()
генерирует тег, основываясь на текущем маршруте к контроллеру и параметрах для действия (тех, что прописаны у метода).
18 июня 2016, SEO-оптимизация / Метки: SEO
По мотивам – https://github.com/samdark/yii2-cookbook/blob/master/book/canonical-urls.md

