Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Модуль прописывающий rel="canonical" для страниц пагинации


Recommended Posts

В интернет магазине на OcStore 2.3 имеется постраничная пагинация в каталогах. Естественно такие страницы Яндекс учитывает как дубли. Вычитал, что на второстепенные страницы (2,3,4 и тп.) каталога нужно  вставить код rel="canonical", направляющий на главную (1-ую) страницу категории. 

 

ОСОБЕННОСТЬ! На сайте категории созданы посредством фильтра OcFilter.

Подскажите модуль, который мне поможет в решении данного вопроса.

Надіслати
Поділитися на інших сайтах


Решил проблему путем создания такого модификатора:

<?xml version="1.0" encoding="utf-8"?>
<modification>
	<name>rel="canonical" для страниц пагинаций</name>
	<code>rel="canonical" для страниц пагинаций</code>
	<version>2.3.0.2</version>
	<date>12.12.2019</date>
	<author>Bobroed</author>
	<link>https://bobroed.ru</link>
	<file path="catalog/controller/common/header.php">
		<operation>
			<search><![CDATA[return $this->load->view('common/header', $data);]]></search>
			<add position="before"><![CDATA[
				$data['canonical'] = '';
				if(isset($_REQUEST['page']) && $_REQUEST['page'] > 1){
					$data['title'].= ' | Страница '.$_REQUEST['page']; // Добавляем в title браузера номер страницы пагинации, если это необходимо.
					
					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);
					}

					$data['canonical'] = $url;
				}
			]]></add>
		</operation>
	</file>
	<file path="catalog/view/theme/<ваша_тема>/template/common/header.tpl">
		<operation>
			<search><![CDATA[</head>]]></search>
			<add position="before"><![CDATA[
				<?if($canonical){?><link rel="canonical" href="<?=$canonical;?>"/><?}?>
			]]></add>
		</operation>
	</file>
</modification>

Источник: https://bobroed.ru/opencart/sozdanie-relcanonical-dlya-stranic-paginaciy-v-opencart/

Вроде работает. Кто разбирается, посмотрите пожалуйста, хорош ли код?

 

Теперь на последующих страницах в пагинации такой код:

    <link href="https://voystore.ru/catalog/smart-chasy/tip/detskie-s-gps/?page=4" rel="canonical" />
    <link rel="canonical" href="http://voystore.ru/catalog/smart-chasy/tip/detskie-s-gps/" />

 

Получается, что добавился рел каноникл на главную страницу каталога, но почему не убрался рел каноникл на саму себя?

Змінено користувачем dimagarifyanov
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.