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

Правила раздела: faq.php?mode=okay
Модератор: Модераторы

magic
magic
Репутация: 1
Сообщения: 7
Зарегистрирован: 28.03.2016
С нами: 7 лет 11 месяцев

Сообщение #1 magic » 28.03.2016, 14:46

Рекомендуется для всех страниц сайта внедрение тега rel="canonical".

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


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

OkayCMS M
Администратор
Аватара
OkayCMS M
Администратор
Репутация: 216
Сообщения: 1627
Зарегистрирован: 12.11.2015
С нами: 8 лет 4 месяца
Сайт Skype

Сообщение #2 OkayCMS » 08.08.2016, 08:58

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

sergeevizh
sergeevizh
Репутация: 17
Сообщения: 151
Зарегистрирован: 16.10.2016
С нами: 7 лет 5 месяцев

Сообщение #3 sergeevizh » 18.03.2017, 04:26

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 обходов нормальные ссылки. И это можно отследить в Вебмастере.
Это как можно исправить?

OkayCMS M
Администратор
Аватара
OkayCMS M
Администратор
Репутация: 216
Сообщения: 1627
Зарегистрирован: 12.11.2015
С нами: 8 лет 4 месяца
Сайт Skype

Сообщение #4 OkayCMS » 18.03.2017, 09:02

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

sergeevizh
sergeevizh
Репутация: 17
Сообщения: 151
Зарегистрирован: 16.10.2016
С нами: 7 лет 5 месяцев

Сообщение #5 sergeevizh » 18.03.2017, 09:32

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

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

softmobidev
softmobidev
Репутация: 8
Сообщения: 111
Зарегистрирован: 16.02.2018
С нами: 6 лет 1 месяц

Сообщение #6 softmobidev » 05.01.2019, 11:39

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

softmobidev
softmobidev
Репутация: 8
Сообщения: 111
Зарегистрирован: 16.02.2018
С нами: 6 лет 1 месяц

Сообщение #7 softmobidev » 06.01.2019, 22:05

пример страниц
/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-

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

korshunov
korshunov
Репутация: 146
Сообщения: 1854
Зарегистрирован: 03.12.2015
С нами: 8 лет 3 месяца
Skype

Сообщение #8 korshunov » 07.01.2019, 06:27

На демо сайте на стр
https://demookay.com/catalog/mebel-dlya-doma/brand-puff/sort-price
тег canonical есть.

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

softmobidev
softmobidev
Репутация: 8
Сообщения: 111
Зарегистрирован: 16.02.2018
С нами: 6 лет 1 месяц

Сообщение #9 softmobidev » 07.01.2019, 13:53

причем тут демо сайт? если там нет пагинации в каталоге вообще

Добавлено спустя 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
без пагинации проставляется все правильно, как только начинается пагинации на странице то ломается все

korshunov
korshunov
Репутация: 146
Сообщения: 1854
Зарегистрирован: 03.12.2015
С нами: 8 лет 3 месяца
Skype

Сообщение #10 korshunov » 07.01.2019, 15:27

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

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


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

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

softmobidev
softmobidev
Репутация: 8
Сообщения: 111
Зарегистрирован: 16.02.2018
С нами: 6 лет 1 месяц

Сообщение #11 softmobidev » 07.01.2019, 15:50

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-

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

korshunov
korshunov
Репутация: 146
Сообщения: 1854
Зарегистрирован: 03.12.2015
С нами: 8 лет 3 месяца
Skype

Сообщение #12 korshunov » 07.01.2019, 17:04

Пробуйте в 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));

softmobidev
softmobidev
Репутация: 8
Сообщения: 111
Зарегистрирован: 16.02.2018
С нами: 6 лет 1 месяц

Сообщение #13 softmobidev » 07.01.2019, 18:42

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 на страницу пагинации, что есть неправильно.

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

korshunov
korshunov
Репутация: 146
Сообщения: 1854
Зарегистрирован: 03.12.2015
С нами: 8 лет 3 месяца
Skype

Сообщение #14 korshunov » 08.01.2019, 07:06

2. в head.tpl заменить
{elseif $smarty.get.sort}
на
{elseif $smarty.get.sort || $smarty.get.page}

softmobidev
softmobidev
Репутация: 8
Сообщения: 111
Зарегистрирован: 16.02.2018
С нами: 6 лет 1 месяц

Сообщение #15 softmobidev » 08.01.2019, 17:25

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

Webmas
Webmas
Репутация: 0
Сообщения: 7
Зарегистрирован: 04.06.2019
С нами: 4 года 9 месяцев

Сообщение #16 Webmas » 04.06.2019, 16:49

softmobidev, что в итоге с какониклами? Решение korshunov работает на все страницах?

softmobidev
softmobidev
Репутация: 8
Сообщения: 111
Зарегистрирован: 16.02.2018
С нами: 6 лет 1 месяц

Сообщение #17 softmobidev » 14.07.2019, 14:27

да нормально!

prihod
prihod
Репутация: 4
Сообщения: 41
Зарегистрирован: 05.08.2020
С нами: 3 года 7 месяцев
Откуда: Киев

Сообщение #18 prihod » 29.11.2020, 08:31

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

На примере демо магазина
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

korshunov
korshunov
Репутация: 146
Сообщения: 1854
Зарегистрирован: 03.12.2015
С нами: 8 лет 3 месяца
Skype

Сообщение #19 korshunov » 29.11.2020, 09:18

Пробуйте в products.tpl изменить
{if $set_canonical || $current_page_num > 1 || $is_all_pages}
на
{if true}

prihod
prihod
Репутация: 4
Сообщения: 41
Зарегистрирован: 05.08.2020
С нами: 3 года 7 месяцев
Откуда: Киев

Сообщение #20 prihod » 29.11.2020, 09:37

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


Название раздела: Техническая оптимизация OkayCMS для поисковых систем
Правила раздела: faq.php?mode=okay

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения

   

Вернуться в «Техническая оптимизация OkayCMS для поисковых систем»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 10 гостей