dmpress

Атрибут rel="canonical" для страниц пагинации

Recommended Posts

Здравствуйте!

Как настроить генерацию атрибута rel="canonical" для станиц пагинации? Канонической для них должна быть первая страница раздела, без "page="

Без данной настройки или будут дубли или, если закрыть страницы пагинации от индексации, - робот не будет нормально обходить объявления и не будут учитываться поведенческие факторы на этих страницах.

Нашел несколько тем на форуме с этим вопросом и ни в одной нет ответа.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Как?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Уважаемые разработчики!

Прошу не игнорировать и ответить на вопрос - тема серьезная.

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

Только большая просьба - прошу решение не через "дайте доступ в админку", а нормальное. Я так понимаю надо просто добавить код в файлы, которые выводят страницы пагинации. Теоретически для вас, как создателей cms, это не сложно, не понятно почему до сих пор не сделано))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Скорее всего это платная услуга.

Мне в свое время убирали дубли. И это была доработка. 

Я просил доработку и мне сделали.

И дубли пропали.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, dima сказал:

Скорее всего это платная услуга.

Мне в свое время убирали дубли. И это была доработка. 

Я просил доработку и мне сделали.

И дубли пропали.

Без каноникал движок "полуфабрикат", а заявляется же как готовый к работе. Уже даже Яндекс Вебмастер помечает урлы без каноникал.

Ну и написать тут могли бы - что это платно))

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1. Поисковый краулер с одинаковым успехом обходит страницы объявлений как по ссылкам сайта, так и по ссылкам из карты сайта. Так что если ссылка на карточки есть в карте сайта, то 2 и следующие страницы списков могут не индексироваться им напрямую.

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

3. Высокие позиции достигаются высокочастотными запросами. Карточки товара - это генераторы низкочастотных запросов. С учетом этого и того, что карточки ротируются - старые уходят (продаются, сделки по ним закрываются), а новые приходят (появляются новые лоты) - добиться карточками захвата топ-запросов и соотв. топ-позиций маловероятно. Кроме случаев, когда эти карточки реально заточены под запросы (тексты, ключевые слова и фразы). Текст владельца, особенно если он уже засветился еще на каких-то площадках - этому точно не будет способствовать.

4. Код для каноникал не добавляется в разметку пейджера. Он добавляется в мету сайта.

5. Для заворота адресов со слеша на без слеша и наоборот, не нужно использовать каноникал. Нужно использовать 301 редирект. Этого будет выше крыши.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, abushyk сказал:

1. Поисковый краулер с одинаковым успехом обходит страницы объявлений как по ссылкам сайта, так и по ссылкам из карты сайта. Так что если ссылка на карточки есть в карте сайта, то 2 и следующие страницы списков могут не индексироваться им напрямую.

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

3. Высокие позиции достигаются высокочастотными запросами. Карточки товара - это генераторы низкочастотных запросов. С учетом этого и того, что карточки ротируются - старые уходят (продаются, сделки по ним закрываются), а новые приходят (появляются новые лоты) - добиться карточками захвата топ-запросов и соотв. топ-позиций маловероятно. Кроме случаев, когда эти карточки реально заточены под запросы (тексты, ключевые слова и фразы). Текст владельца, особенно если он уже засветился еще на каких-то площадках - этому точно не будет способствовать.

4. Код для каноникал не добавляется в разметку пейджера. Он добавляется в мету сайта.

5. Для заворота адресов со слеша на без слеша и наоборот, не нужно использовать каноникал. Нужно использовать 301 редирект. Этого будет выше крыши.

1. Верно. Но частота обхода сайта выше, чем частота обхода sitemap - в яндекс вебмастере это видно. Т.е. при правильной настройке каноникал новые страницы быстрее попадают в индекс. Плюс смотрим ответ на вопрос 2.

2. Не верно. Метрика связана с Вебмастером. Тут не совсем прозрачный момент - нет чёткой информации о том, что статистика ПФ закрытых от индексации страниц используется для ранжирования. Ведь это могут быть и страницы личных кабинетов и прочее. "Сайт должен быть полезным пользователям" - соответственно по логике поисковика по поведенческим оценивается польза индексируемого контента. Если страницы нет в индексе, то и нет смысла учитывать её ПФ. При этом по страницам пагинации есть исключение - они строго не в поиске, но их контент учитывается при определении полноты ответа и по "желанию" поисковика страницы пагинации могут выводиться на поиске, если это необходимо. Соответствующая информация есть в блоге Яндекс вебмастера: https://webmaster.yandex.ru/blog/nekanonicheskie-stranitsy-v-poiske

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

3. Не верно. Высокие позиции достигаются полнотой ответа на семантическое ядро запросов в тематике. Под каждую группу желательно отдельную посадочную страницу. Учитывается не только текст объявления, но и весь контент страницы (это если объявы дают пользователи). Если сайт агентства - то понятно, что это желательно уникальные тексты по каждому объекту. И много чего ещё, у меня большой практический опыт в seo.

Но этот момент к canonical не относится.

4. Ребята, но если вы знаете как - почему не написать как добавить canonical?

Вместо этого большого поста не по теме вопроса))) время потратили - а пользы нет(((

5. Верно. Но вопрос не про это))

Вопрос звучит так:

В 02.08.2019 в 13:42, dmpress сказал:

Как настроить генерацию атрибута rel="canonical" для станиц пагинации? Канонической для них должна быть первая страница раздела, без "page="

Судя по изученной в интернете информации это решается несколькими строками кода. Также желательно чуть расширить вопрос - надо чтобы canonical выводился для всех страниц сайта.

Вы специализируетесь на разработке - для вас это легко. Для меня и многих других пользователей сайтбилл сложно.

Зачем вы объясняете про seo на котором не специализируетесь?

Очень прошу дать решение по добавлению canonical - этим вы поможете всем пользователям sitebill. Спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, abushyk сказал:

4. Код для каноникал не добавляется в разметку пейджера. Он добавляется в мету сайта.

Возможно не понял ваш вопрос. Естественно canonical добавляется в мета теги, конкретно в <head>,  тег <link>. Где я писал что в пейджер? Если для страниц пагинации - это не значит что в  пейджер, профдеформация))

при этом немного углубился в тему - пишут что это просто прописывается с условиями:
идет проверка - если просто страница - в каноникал идет её урл, если страница с параметрами "page=" и тп, то параметры удаляются из урл и в каноникал идет урл без этих параметров

т.е. для вас это должно быть очень легко - вы знаете в каком месте формируются мета теги, добавьте туда код с условиями для формирования тега link и его аттрибута canonical с канонической ссылкой типа <link href="https://site.ru/obecty/" rel="canonical" />

не забудьте про протокол (http/https) - это важно

таким образом правильный каноникал будет у всех страниц сайта, в том числе и у страниц пагинации

Изменено пользователем dmpress

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
20 минут назад, dmpress сказал:

идет проверка - если просто страница - в каноникал идет её урл, если страница с параметрами "page=" и тп, то параметры удаляются из урл и в каноникал идет урл без этих параметров

да, если "в лоб", то такой вариант допустим.

сейчас напишу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

даже вот такой код нашел на просторах интернет:

************************************

Ниже приведён код, который следует вставить между <head></head> либо сделать через функцию. 

<?

        if((!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') || $_SERVER['SERVER_PORT'] == 443){

               $protocol = 'https://';

        }else{

               $protocol = 'http://';

        }

       

        $url = $protocol.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];

       

        $urlend = strrpos($url, '?', -1); // Находим и удаляем все параметры (номер страницы, параметры фильтра и тд.)

        $url = substr($url, 0, $urlend);

       

       

        if(mb_substr($url, -1) == '/'){ // Тут оставляем, если ссылки на сайте не заканчиваются на /, либо удаляем, если заканчиваются на /.

               $url = substr($url, 0, -1);

        }

 

 

    echo '<link rel="canonical" href="'.$url.'"/>';

?>

Немного подробнее про код. 
Вначале определяем, открывается ли сайт по безопасному протоколу или нет.
Потом собираем наш URL из протокола ($protocol), домена ($_SERVER['SERVER_NAME']) и ссылки ($_SERVER['REQUEST_URI']).
Далее определяем, есть ли в URL параметры или нет ($_SERVER['QUERY_STRING']). Если есть, их удаляем, они не нужны для тега.

И в конце (не обязательно) удаляем слеш, если ссылки формируются без него. Так-же это полезно, чтобы не использовать 301 редирект, который конфликтует с обработкой 404 страницы на разных CMS.
************************************

Но непонятно куда его у нас вставлять... да и в целом правильный он или нет...

Изменено пользователем dmpress

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

main.php в папке шаблона

Находим две строки

$REQUESTURIPATH = Sitebill::getClearRequestURI();
$this->template->assert('REQUESTURIPATH', $REQUESTURIPATH);

Они могут идти вместе, могут порознь. Находим где последни из них и после нее будем вставлять.

Формируем каноникал

if($REQUESTURIPATH == ''){
	$canonical = $this->getServerFullUrl();
}else{
	$canonical = $this->getServerFullUrl().'/'.$REQUESTURIPATH.(strpos($REQUESTURIPATH, '.') === false ? self::$_trslashes : '');
}
$this->template->assert('canonicalurl', $canonical);

В папке шаблона файл header.tpl где содержится код блока head сайта. Вставляем:

{if isset($canonicalurl)}<link rel="canonical" href="{$canonicalurl}"/>{/if}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
25 минут назад, abushyk сказал:

Находим две строки


$REQUESTURIPATH = Sitebill::getClearRequestURI();
$this->template->assert('REQUESTURIPATH', $REQUESTURIPATH);

Второй строки нет в файле main.php в шаблоне Новосел...

Прикрепляю исходный файл

main.php

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
47 минут назад, abushyk сказал:

тогда после вот этой


$REQUESTURIPATH = Sitebill::getClearRequestURI();

Будет норм.

Супер! Спасибо, всё работает!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.