Страница 1 из 2

Внедрение тега rel="canonical"

Добавлено: 28.03.2016, 14:46
magic
Рекомендуется для всех страниц сайта внедрение тега rel="canonical".

Для чего нужен:
Для исключения появления дублей страниц вида site.ru/page/?lyboinaborbukv, если вы даёте контекстную рекламу или используете реф ссылки с метками.
Для передачи веса и статистики со страниц не являющимися каноническими (страницы фильтров, сортировок).
Для указания основного зеркала сайта. Бывают ситуации когда нужно переклеить зеркало домена, и для яндекса важно для более быстрой переиндексации/переклейки сайтов без потери позиций видеть оба варианта сайта (для яндекса приоритетна директива HOST), для гугла важен 301 редирект, что противоречит Яндексу, поэтому мы можем указать атрибуты rel="canonical" (актуально при переезде на https).


Спорным остаётся вопрос пагинации, у Яндекса и Гугла разные рекомендации на этот счёт.
Яндекс рекомендует указывать первую страницу в качестве канонической, Гугл страницы пагинации рекомендует связывать атрибутами rel="next" и rel="prev".

Добавлено: 08.08.2016, 08:58
OkayCMS
Хорошая рекомендация. Спасибо. Мы внедрим это в следующей версии.

Добавлено: 18.03.2017, 04:26
sergeevizh
OkayCMS писал(а):Хорошая рекомендация. Спасибо. Мы внедрим это в следующей версии.

Объясните пожалуйста. Почему робот Yandex в индексе сначала выдает:
/index.php?module=BrandsView&lang_label=
/index.php?module=ProductView&product_url=ironing-board-gimi-temper-drop&lang_label=
/index.php?module=ProductView&product_url=plate-zebra-s-originalnym-remnem&lang_label=
А уже только потом после 2 обходов нормальные ссылки. И это можно отследить в Вебмастере.
Это как можно исправить?

Добавлено: 18.03.2017, 09:02
OkayCMS
У вас ссылки правильно формируются?
Не должно такого быть и ни на каких проектах этого не замечали.

Добавлено: 18.03.2017, 09:32
sergeevizh
OkayCMS писал(а):У вас ссылки правильно формируются?
Не должно такого быть и ни на каких проектах этого не замечали.

На самом сайте все хорошо. А вот в Вебмастере замечаю картину, сначала грузятся ссылки без ЧПУ, а потом уходят в 404 и после следующего обновления идут 200 ответ и нормальные ссылки.

Добавлено: 05.01.2019, 11:39
softmobidev
Не работает canonical для страниц сортировок и пагинаций sort- и page- если выбран фильтр или бренд в категории. Кто знает как поправить?

Добавлено: 06.01.2019, 22:05
softmobidev
пример страниц
/catalog/name/filter1/sort-x
/catalog/name/filter1/filter2/sort-x
/catalog/name/filter1/page-x
/catalog/name/filter1/filter2/page-x
/catalog/name/brand1/sort-x
/catalog/name/brand1/page-x
/catalog/name/brand1/filter1/sort-x
/catalog/name/brand1/filter1/page-x

очевидно что на старницах с sort- и page- должны быть canonical на без sort- и page-

как исправить?

Добавлено: 07.01.2019, 06:27
korshunov
На демо сайте на стр
https://demookay.com/catalog/mebel-dlya-doma/brand-puff/sort-price
тег canonical есть.

Вы бы писали про ошибку не абы как, а с указанием точного URL на демосайте...

Добавлено: 07.01.2019, 13:53
softmobidev
причем тут демо сайт? если там нет пагинации в каталоге вообще

Добавлено спустя 5 минут 6 секунд:
вот конкретные примеры
https://getkeds.ru/catalog/krossovki/brand-adidas/pol-muzhskie/page-2
https://getkeds.ru/catalog/krossovki/brand-adidas/page-2
https://getkeds.ru/catalog/krossovki/pol-zhenskie/page-2

тут вообще canonical на page-2 идет без сортировки, а должен быть на без сортировки и без пагинации
https://getkeds.ru/catalog/krossovki/pol-zhenskie/sort-price_desc/page-2

вот единственные правильный canonical такой же как и вашем примере на демо-сайте
https://getkeds.ru/catalog/krossovki/pol-zhenskie/sort-price_desc
без пагинации проставляется все правильно, как только начинается пагинации на странице то ломается все

Добавлено: 07.01.2019, 15:27
korshunov
softmobidev писал(а):причем тут демо сайт? если там нет пагинации в каталоге вообще

Если на демо сайте поставить в насторойках вывод товара в каталоге по 3 шт, то появляется пагинация, и, в частности, на стр
https://demookay.com/catalog/mebel-dlya-doma/brand-puff/sort-price/page-2
есть тег canonical.


Если Вы хотите задавать вопросы именно по СВОЕМУ сайту, а не CMS в основном, то надо по своему сайту давать все сведения давать во всех деталях.

Скорее всего, Вы что-то меняли и отсутствие тега - следствие ошибок в доработках...

Добавлено: 07.01.2019, 15:50
softmobidev
https://demookay.com/catalog/mebel-dlya-doma/brand-puff/sort-price/page-2

в вашем примере тег canonical с косяком, вы хоть проверяйте примеры которые пихаете
<link rel="canonical" href="/catalog/mebel-dlya-doma/brand-puff/page-2">

page-2 это не главная страница на которую надо ссылаться, должна быть ссылка на /catalog/mebel-dlya-doma/brand-puff/ а она даже в вашем примере неправильная, причем тут мои доработки? доработок с канониклами не было никаких

здесь тоже косяк с canonical он есть но неправильный, вы смотрели куда ведет ссылка?
<link rel="canonical" href="https://demookay.com/catalog/mebel-dlya-doma">

а должен быть на эту страницу /catalog/mebel-dlya-doma/brand-puff/vysota-110sm/

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

я задал конкретный вопрос, вот такие страницы формируют неправильный canonical
/catalog/name/filter1/sort-x
/catalog/name/filter1/filter2/sort-x
/catalog/name/filter1/page-x
/catalog/name/filter1/filter2/page-x
/catalog/name/brand1/sort-x
/catalog/name/brand1/page-x
/catalog/name/brand1/filter1/sort-x
/catalog/name/brand1/filter1/page-x

очевидно что на страницах с sort- и page- должны быть canonical на без sort- и page-

Что непонятно в этом вопросе? знаете как это починить? если знаете то предлагайте варианты решения, если не знаете - то и нечего спамить

Добавлено: 07.01.2019, 17:04
korshunov
Пробуйте в view/ProductsView.php
заменить строку
$this->design->assign('sort_canonical', $this->filter_chpu_url(array('sort'=>null), $this->design));
на
$this->design->assign('sort_canonical', $this->filter_chpu_url(array('sort'=>null, 'page'=>null), $this->design));

Добавлено: 07.01.2019, 18:42
softmobidev
korshunov писал(а):Пробуйте в view/ProductsView.php
заменить строку
$this->design->assign('sort_canonical', $this->filter_chpu_url(array('sort'=>null), $this->design));
на
$this->design->assign('sort_canonical', $this->filter_chpu_url(array('sort'=>null, 'page'=>null), $this->design));

это не решает проблему отсутствия тега canonical на таких страницах https://demookay.com/catalog/mebel-dlya-doma/brand-puff/page-2
его тут просто нет.

я поставил ваш код вот тут https://getkeds.ru/catalog/krossovki/brand-adidas/page-2 canonical как не было, так и нет
это страница /категория/бренд/пагинация-2
аналогично canonical нет https://getkeds.ru/catalog/krossovki/brand-adidas/pol-zhenskie/page-2
это страница /категория/бренд/фильтр/пагинация2

однако, если применить сортировку для этих страниц даже без вашего кода https://getkeds.ru/catalog/krossovki/brand-adidas/pol-zhenskie/sort-price то все окей canonical ведет сюда https://getkeds.ru/catalog/krossovki/brand-adidas/pol-zhenskie что есть правильно, но как только появляется пагинацию у данного типа страниц вот так https://getkeds.ru/catalog/krossovki/brand-adidas/pol-zhenskie/sort-price/page-2 то canonical ведет сюда /catalog/krossovki/brand-adidas/pol-zhenskie/page-2 на страницу пагинации, что есть неправильно.

Эта ошибка и в Окае на Демо и на всем моих сайтах соответственно

Добавлено: 08.01.2019, 07:06
korshunov
2. в head.tpl заменить
{elseif $smarty.get.sort}
на
{elseif $smarty.get.sort || $smarty.get.page}

Добавлено: 08.01.2019, 17:25
softmobidev
Похоже что ваше решение помогло, на страницах рассматриваемых выше канониклы теперь выводятся как надо, еще пару дней потестирую, но кажется все как надо. Спасибо

Добавлено: 04.06.2019, 16:49
Webmas
softmobidev, что в итоге с какониклами? Решение korshunov работает на все страницах?

Добавлено: 14.07.2019, 14:27
softmobidev
да нормально!

Добавлено: 29.11.2020, 08:31
prihod
Приветствую!
Форумчане, а как поставить каноникал для страницы категории?
Страницы пагинации, соритировки это хорошо... от дублей исбавимся но было бы правильным указать каноникал для самой канонической страницы.

На примере демо магазина
https://www.demookay.com/catalog/mebel-dlya-doma -> <link rel="canonical" href="https://www.demookay.com/catalog/mebel-dlya-doma" />
В противном случае гугл в search console скажет, что каноническая страница не обьявлена пользователем и может установить ее по своему усмотрению.

Вот к чему приводит:
http://joxi.ru/LmGvbbDtlvRJPr
ну и выдача гугла
http://prntscr.com/vs5idf

Добавлено: 29.11.2020, 09:18
korshunov
Пробуйте в products.tpl изменить
{if $set_canonical || $current_page_num > 1 || $is_all_pages}
на
{if true}

Добавлено: 29.11.2020, 09:37
prihod
korshunov писал(а):Пробуйте в products.tpl изменить
{if $set_canonical || $current_page_num > 1 || $is_all_pages}
на
{if true}
С категориями порядок. Но страницы seo фильтров теперь показывают на родительскую категорию, а должны на себя