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

Вариант страницы с тегом canonical


Recommended Posts

Доброго дня. Гугл в serch console добавим декілька десятків сторінок з таким статусом "Вариант страницы с тегом canonical", а саме: 

домен/категорія/?page=21

домен/категорія2/?page=6

і т.д.

На цих сторінках присутній тег <link href="домен/категорія/" rel="canonical" />

При чому деякі сторінки відкриваються з товарами, а на інших сторінках - Товари відсутні, бо гугл вказав сторінку 26, а їх в категорії може тільки 25.

На скільки це критично для сео? Як правильно виправити це? Дякую.

 

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


та ні як не віправити
можна спробувати через консоль видалити такі url

можна, спробувати  через апі видаляти
https://opencartforum.com/ru/files/file/8960-google-indexing-api/?utm_source=opencartforum&utm_medium=categorypage&utm_campaign=category

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

В 11.04.2024 в 20:08, dolyalexey сказав:

гугл вказав сторінку 26, а їх в категорії може тільки 25

Можна у контролері категорії робити редирект зі сторінок, на яких немає товарів. Наприклад, якщо гугл піде на сторінку 26, як у вашому випадку, то буде переадресований на першу сторінку категорії.

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

    <file path="catalog/controller/product/category.php">
        <operation>
            <search><![CDATA[
                $results = $this->model_catalog_product->getProducts($filter_data);
            ]]></search>
            <add position="after"><![CDATA[
            //# is_empty_to_redirect.ocmod.xml
			if ($page > 1 && !$results) {
			   $this->response->addHeader($this->request->server['SERVER_PROTOCOL'] . ' 404 Not Found');
		    }
            //# is_empty_to_redirect.ocmod.xml
            ]]></add>
        </operation>
    </file>

 

  • +1 2
Надіслати
Поділитися на інших сайтах

або в контролері категорії, в пагінацію:

			if (($product_total > 0 ) && $limit && ceil($product_total / $limit) < $page) {			
				$this->response->redirect($this->url->link('product/category', 'path=' . $category_info['category_id'], true));
			}

 

буде редирект на першу сторінку категорії, тип редиректу у відповідній функції у бібліотеці response

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

11.04.2024 в 22:41, PaulKravchenko сказал:

або в контролері категорії, в пагінацію:

			if (($product_total > 0 ) && $limit && ceil($product_total / $limit) < $page) {			
				$this->response->redirect($this->url->link('product/category', 'path=' . $category_info['category_id'], true));
			}

 

буде редирект на першу сторінку категорії, тип редиректу у відповідній функції у бібліотеці response

Так то ваше право куда редирект + можно поставить 301, а не как по старью стоит 302. Задача удалить страницу из индекса.

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

11.04.2024 в 22:32, ibond сказал:
    <file path="catalog/controller/product/category.php">
        <operation>
            <search><![CDATA[
                $results = $this->model_catalog_product->getProducts($filter_data);
            ]]></search>
            <add position="after"><![CDATA[
            //# is_empty_to_redirect.ocmod.xml
			if ($page > 1 && !$results) {
			   $this->response->addHeader($this->request->server['SERVER_PROTOCOL'] . ' 404 Not Found');
		    }
            //# is_empty_to_redirect.ocmod.xml
            ]]></add>
        </operation>
    </file>

 

добавлю уже сюда в тему к производителям

 

    <file path="catalog/controller/product/manufacturer.php">
        <operation>
            <search><![CDATA[
                $results = $this->model_catalog_product->getProducts($filter_data);
            ]]></search>
            <add position="after"><![CDATA[
            //# is_empty_to_redirect.ocmod.xml
            if ($page == 1 && !$results) {
                $this->response->redirect($this->url->link('product/manufacturer', '', true), 301);
            } else
            if ($page > 1 && !$results) {
               $this->response->addHeader($this->request->server['SERVER_PROTOCOL'] . ' 404 Not Found');
            }
            //# is_empty_to_redirect.ocmod.xml
            ]]></add>
        </operation>
    </file>

 

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

11.04.2024 в 20:08, dolyalexey сказал:

Доброго дня. Гугл в serch console добавим декілька десятків сторінок з таким статусом "Вариант страницы с тегом canonical", а саме: 

домен/категорія/?page=21

домен/категорія2/?page=6

і т.д.

На цих сторінках присутній тег <link href="домен/категорія/" rel="canonical" />

При чому деякі сторінки відкриваються з товарами, а на інших сторінках - Товари відсутні, бо гугл вказав сторінку 26, а їх в категорії може тільки 25.

На скільки це критично для сео? Як правильно виправити це? Дякую.

 

вообще не критично, можно не исправлять. Как раз хорошо что Гугл пагинацию не индексит и правильно обрабатывает канон. А насчет 26 - так она будет в 404 уходить, что тоже не является проблемой

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


11.04.2024 в 23:40, kulinenko сказал:

вообще не критично, можно не исправлять. Как раз хорошо что Гугл пагинацию не индексит и правильно обрабатывает канон. А насчет 26 - так она будет в 404 уходить, что тоже не является проблемой

Вы уверены?

https://www.ukraine.com.ua/uk/info/tools/redirect/?url=https%3A%2F%2Fdemo23.ocstore.com%2Fdesktops%2Fmac%2F%3Fpage%3D26

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

В 11.04.2024 в 22:32, ibond сказав:
    <file path="catalog/controller/product/category.php">
        <operation>
            <search><![CDATA[
                $results = $this->model_catalog_product->getProducts($filter_data);
            ]]></search>
            <add position="after"><![CDATA[
            //# is_empty_to_redirect.ocmod.xml
			if ($page > 1 && !$results) {
			   $this->response->addHeader($this->request->server['SERVER_PROTOCOL'] . ' 404 Not Found');
		    }
            //# is_empty_to_redirect.ocmod.xml
            ]]></add>
        </operation>
    </file>

 

Добавив код, нажаль не спрацював. Модифікатори звісно оновив, кеш почистив. 

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


11.04.2024 в 23:47, dolyalexey сказал:

Добавив код, нажаль не спрацював. Модифікатори звісно оновив, кеш почистив. 

Это не полный модификатор, это кусок модификатора. Думаю дальше надо подумать 8-)

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

11.04.2024 в 22:41, ibond сказал:

 в чем именно ? если страницы нету - отдает 404, если есть - то канон обрабатывает. Если проблемы с каноном - метатег ноиндекс.

 

в вашем указанном случае канон:

<link href="https://demo23.ocstore.com/desktops/mac/" rel="canonical" /> 

или речь шла про что-то другое?

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


11.04.2024 в 23:41, kulinenko сказал:

если страницы нету - отдает 404

Сторінки пагінації категорій, виробників, результатів пошуку тощо формуються незалежно від того є там товари чи ні, тому і page=100500 теж буде сформована при заході і ніякої 404 не буде

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

12.04.2024 в 05:52, PaulKravchenko сказал:

Сторінки пагінації категорій, виробників, результатів пошуку тощо формуються незалежно від того є там товари чи ні, тому і page=100500 теж буде сформована при заході і ніякої 404 не буде

ну значит надо проследить что бы нигде в коде не было ссылок на такие страницы и гуглбот их никогда не найдет. Либо подпилить что бы отдавало 404. Как это сделать - вопрос не для этого раздела.

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


Ось кому потрібно варіант в додачу з переадресацією на першу сторінку (перевірено лише на другій гілці опенкарта)

 

<?xml version="1.0" encoding="utf-8"?>
<modification>
  <name>Redirect page</name>
  <code>13223</code>
  <version>1.0</version>
  <author>#</author>
  <link>#</link>

  <file path="catalog/controller/product/category.php">
    <operation error="skip">
      <search><![CDATA[$results = $this->model_catalog_product->getProducts($filter_data);]]></search>
      <add position="after"><![CDATA[
        	if($results === array() && $page != 1) {
                $this->response->redirect($this->url->link('product/category', 'path=' . $this->request->get['path']));
            } 
     ]]></add>
    </operation>
  </file>
  <file path="catalog/controller/product/manufacturer.php">
    <operation error="skip">
      <search><![CDATA[$results = $this->model_catalog_product->getProducts($filter_data);]]></search>
      <add position="after"><![CDATA[
        	if($results === array() && $page != 1) {
                $this->response->redirect($this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id']));
            } 
     ]]></add>
    </operation>
  </file>
  <file path="catalog/controller/product/search.php">
    <operation error="skip">
      <search><![CDATA[foreach ($results as $result) ]]></search>
      <add position="before"><![CDATA[
        	if($results === array() && $page != 1) {
                $this->response->redirect($this->url->link('product/search'));
            } 
     ]]></add>
    </operation>
  </file>
  <file path="catalog/controller/product/special.php">
    <operation error="skip">
      <search><![CDATA[$results = $this->model_catalog_product->getProductSpecials($filter_data);]]></search>
      <add position="after"><![CDATA[
        	if($results === array() && $page != 1) {
                $this->response->redirect($this->url->link('product/special'));
            } 
     ]]></add>
    </operation>
  </file>
</modification>

 

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


  • 5 months later...

Для опенкарт 3 если нужен редирект на последнюю страницу

<?xml version="1.0" encoding="utf-8"?>
<modification>
  <name>Redirect category last page</name>
  <code>redirect_category_last_page</code>
  <version>1.0</version>
  <author>#</author>
  <link>#</link>

  <file path="catalog/controller/product/category.php">
    <operation error="skip">
      <search><![CDATA[$product_total = $this->model_catalog_product->getTotalProducts($filter_data);]]></search>
      <add position="after"><![CDATA[
			$limit = $this->config->get('theme_' . $this->config->get('config_theme') . '_product_limit');
			$max_page = ceil($product_total / $limit);

			if ($page > $max_page && $max_page > 0) {
				$this->response->redirect($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page=' . $max_page));
			} 
     ]]></add>
    </operation>
  </file>
</modification>

 

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

07.10.2024 в 18:03, IHOR1989 сказал:

Для опенкарт 3 если нужен редирект на последнюю страницу

<?xml version="1.0" encoding="utf-8"?>
<modification>
  <name>Redirect category last page</name>
  <code>redirect_category_last_page</code>
  <version>1.0</version>
  <author>#</author>
  <link>#</link>

  <file path="catalog/controller/product/category.php">
    <operation error="skip">
      <search><![CDATA[$product_total = $this->model_catalog_product->getTotalProducts($filter_data);]]></search>
      <add position="after"><![CDATA[
			$limit = $this->config->get('theme_' . $this->config->get('config_theme') . '_product_limit');
			$max_page = ceil($product_total / $limit);

			if ($page > $max_page && $max_page > 0) {
				$this->response->redirect($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page=' . $max_page));
			} 
     ]]></add>
    </operation>
  </file>
</modification>

 

 

не работает:

			$filter_data = array(
				'filter_category_id' => $category_id,
				'filter_filter'      => $filter,
				'sort'               => $sort,
				'order'              => $order,
				'start'              => ($page - 1) * $limit,
				'limit'              => $limit
			);

			//$product_total = $this->model_catalog_product->getTotalProducts($filter_data);

			/*$results = $this->model_catalog_product->getProducts($filter_data);*//*start FilterVier*/foreach($this->model_extension_module_filter_vier->getProductsByFilterVier($filter_data) as $k=>$v){${$k}=$v;}/*end FilterVier*/

 

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

	<file path="system/library/pagination.php">
    <operation>
		<search><![CDATA[$num_pages = ceil($total / $limit);]]></search>
		<add position="after"><![CDATA[
		if ($num_pages) {
			if ($page > $num_pages) {
				$link = str_replace(['&amp;page={page}', '?page={page}', '&page={page}'], '', $this->url);
				header('Location: ' . str_replace(['&amp;', "\n", "\r"], ['&', '', ''], $link), true, 302);
				exit();
			}
		} else {
			if ($this->page>1){;
				$link = str_replace(['&amp;page={page}', '?page={page}', '&page={page}'], '', $this->url);
				header('Location: ' . str_replace(['&amp;', "\n", "\r"], ['&', '', ''], $link), true, 302);
				exit();
			}
		}]]></add>
		</operation>
	</file>

тут редирект на першу сторінку (на розетці зроблен 301)
Це працює там де є pagination

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

07.10.2024 в 20:36, chukcha сказал:
if ($this->page>1){;

 

07.10.2024 в 20:36, chukcha сказал:

тут редирект на першу сторінку (на розетці зроблен 301)
Це працює там де є pagination

много вопросов, но я пока чуть не в теме, другие темы в приоритете

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

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

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

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

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

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

Вхід

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

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

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

Important Information

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