0 Пользователей и 1 Гость просматривают эту тему.
  • 2 Ответов
  • 1386 Просмотров
*

Strikerus

  • Захожу иногда
  • 103
  • 7 / 0
  • Aka Smyke
Доброго времени суток, господа!
Хотел бы поделиться с вами еще одним способом решения проблемы с дублями страниц в поиске. Данный метод является альтернативой закрытию дублей через robots.txt и его можно применить в том случае, если дублирующие страницы уже попали в поиск и никак не желают из поиска уходить.

Сайт, на котором проводились действия, старичок на Joomla 2.5 и Virtuemart 2 с включенным ЧПУ

Примеры URL страниц-дублей:
https://tx22.ru/компрессорное-оборудование/компрессорные-головки/by,product_name/dirDesc
https://tx22.ru/компрессорное-оборудование/results,33-32
https://tx22.ru/вибраторы/by,product_price/results,16-15
https://tx22.ru/бетоносмесители/dirDesc
https://tx22.ru/manufacturer/huter/results,46-45

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

Т.к. закрытие дублей запретом на индексирование в файле robots.txt помогло только для Яндекса, отдельно для Google было решено объявить на таких страницах rel="canonical"

Для этого в файл index.php перед закрывающим тегом </head> вставляем следующий код:

Код: php
<?php
$urlstr = ($_SERVER['REQUEST_URI']);
$strings = strpos($urlstr, 'manufacturer');
if ($strings > 0) {
  $urlstr = substr($urlstr, 0, $strings);
  $reltrue = 1;
}
$strings = strpos($urlstr, 'results');
if ($strings > 0) {
  $urlstr = substr($urlstr, 0, $strings);
  $reltrue = 1;
}
$strings = strpos($urlstr, 'by,product');
if ($strings > 0) {
  $urlstr = substr($urlstr, 0, $strings);
  $reltrue = 1;
}
$strings = strpos($urlstr, 'dirDesc');
if ($strings > 0) {
  $urlstr = substr($urlstr, 0, $strings);
  $reltrue = 1;
}
if ($reltrue == 1) { ?>
  <link rel="canonical" href="<?php echo "$urlstr" ?>" />
<?php } ?>

Внимание! Если на вашем сайте используется разбивка товаров по производителям и вам НЕ нужно удалять из индексирования связанные с производителем страницы - то воспользуйтесь кодом ниже:

Код: php
<?php
$urlstr = ($_SERVER['REQUEST_URI']);
$strings = strpos($urlstr, 'results');
if ($strings > 0) {
  $urlstr = substr($urlstr, 0, $strings);
  $reltrue = 1;
}
$strings = strpos($urlstr, 'by,product');
if ($strings > 0) {
  $urlstr = substr($urlstr, 0, $strings);
  $reltrue = 1;
}
$strings = strpos($urlstr, 'dirDesc');
if ($strings > 0) {
  $urlstr = substr($urlstr, 0, $strings);
  $reltrue = 1;
}
if ($reltrue == 1) { ?>
  <link rel="canonical" href="<?php echo "$urlstr" ?>" />
<?php } ?>

В результате, после вставки кода в head, на перечисленных в начале поста страницах появляется тег rel="canonical", указывающий на основную страницу раздела.

Например на странице
https://tx22.ru/компрессорное-оборудование/results,33-32 будет тег
<link rel="canonical" href="/компрессорное-оборудование/" />

а на странице
https://tx22.ru/компрессорное-оборудование/компрессорные-головки/by,product_name/dirDesc будет тег
<link rel="canonical" href="/компрессорное-оборудование/компрессорные-головки/" />

Надеюсь мой скромный кусок кода поможет в оптимизации вашего сайта  ^-^
*

Strikerus

  • Захожу иногда
  • 103
  • 7 / 0
  • Aka Smyke
Ошибся разделом. Прошу модераторов перенести тему в раздел "Обсуждение вопросов оптимизации сайтов на CMS Joomla! для продвижения в поисковых системах.(SEO)"
*

fsv

  • Moderator
  • 2765
  • 402 / 2
А если бы у вас 30 полей сортировки было? "Этажерка" из if?
Ловите virtuemart_category_id и стройте SEF-ссылку, или на категорию, или на Главную, или куда-вам-надо.

Цитировать
Прошу модераторов перенести тему в раздел "Обсуждение вопросов оптимизации сайтов на CMS Joomla! для продвижения в поисковых системах.(SEO)"
В Joomla это решение куда вставить? К тому же вы описали ваш частный случай.
Спасибо, что поделились, но на всякий случай уточню для "новичков": это не рецепт для бездумного копипаста, а направление мысли.

И в тройке есть canonical, в двойке уже не помню, к тому же вы версию не указали.
Веб-разработка: заказ. Только новая объемная разработка. Качественно, дорого.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

VirtueMart 3 Отображать только товары в наличии!

Автор GaziroFFka

Ответов: 4
Просмотров: 2108
Последний ответ 06.06.2023, 13:55:13
от Akeksandr
SP VirtueMart Category Search

Автор ve1006

Ответов: 10
Просмотров: 6041
Последний ответ 18.01.2023, 10:39:10
от AzMandius
Как вывести модуль в страницу VirtueMart?

Автор harddrop

Ответов: 11
Просмотров: 2887
Последний ответ 13.11.2022, 13:11:37
от Evgen Kulibin
Как правильно настроить покупку в VirtueMart?

Автор varella

Ответов: 1
Просмотров: 1257
Последний ответ 12.10.2022, 16:14:04
от varella
Не могу сохранить порядок категорий в VirtueMart 3.9.8 и 4

Автор Egoritch

Ответов: 0
Просмотров: 1290
Последний ответ 26.05.2022, 12:30:59
от Egoritch