Избавляемся от дублей PrestaShop, пагинация и сортировка

novoselov

Постоялец
Регистрация
17 Дек 2010
Сообщения
55
Реакции
8
Добрый вечер.

Давно мне не нравились дубли в пагинации и сортировки категорий PrestaShop, решил с этим что то сделать. Решение с использованием rel="canonical", все просто:

идем в
controllers\front\CategoryController.php

после "$this->assignProductList();" 118 строка
вставляем:
PHP:
if (Tools::getValue('p') || Tools::getValue('orderby'))
            $canonical = $this->context->link->getCategoryLink($this->category);

в "$this->context->smarty->assign" к примеру после "'category' => $this->category,"
вставляем:
PHP:
'canonical' => $canonical,

таким образом мы передали в шаблонизатор Smarty переменную $canonical с урлом категории.

далее идем в themes\default-bootstrap\header.tpl

ищем
HTML:
<meta name="robots" content="{if isset($nobots)}no{/if}index,{if isset($nofollow) && $nofollow}no{/if}follow" />

меняем на
HTML:
    {if isset($canonical) AND $canonical}
     <link rel="canonical" href="{$canonical|escape:'html':'UTF-8'}" />
     {else}
     <meta name="robots" content="{if isset($nobots)}no{/if}index,{if isset($nofollow) && $nofollow}no{/if}follow" />
     {/if}

тут мы делаем проверку на наличие переменной $canonical и выводим нужный нам rel="canonical"


Пока писал пост, подумал, что возможно rel="canonical" стоит выводить только для сортировки а для пагинации скрывать текст и все, как вы считаете?
 
Не всегда атрибут rel="canonical" подходит для исключения дублей в пагинации, для таких целей лучшим будет rel=«next|prev». Подробнее Для просмотра ссылки Войди или Зарегистрируйся
 
Не всегда атрибут rel="canonical" подходит для исключения дублей в пагинации, для таких целей лучшим будет rel=«next|prev». Подробнее Для просмотра ссылки Войди или Зарегистрируйся
как я понимаю rel=«next|prev» яндексом пока не поддерживается?

и если использовать rel=«next|prev» описание категории лучше скрыть или уже будет не важно?
 
как я понимаю rel=«next|prev» яндексом пока не поддерживается?

и если использовать rel=«next|prev» описание категории лучше скрыть или уже будет не важно?

О поддержки Яндексом тега, сказать точно не могу, работаю в основном под Гугл. А по поводу текста описания категорий, то оно должно присутствовать только на 1 странице, а на остальных страницах только списки товаров без описания их категорий.
 
Приветствую! Может кто сможет подсказать.... Есть товар, у него есть быстрый просмотр, яндекс индексирует этот самый, быстрый просмотр он со ссылкой content_only=1. Я в роботсе запретил эти ссылки. Но из индекса страницы медленно но стабильно выпадают. Ни чего не прибавляется....
 
Приветствую! Может кто сможет подсказать.... Есть товар, у него есть быстрый просмотр, яндекс индексирует этот самый, быстрый просмотр он со ссылкой content_only=1. Я в роботсе запретил эти ссылки. Но из индекса страницы медленно но стабильно выпадают. Ни чего не прибавляется....

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

<meta name="robots" content="{if isset($nobots) || isset($content_only)}no{/if}index,{if isset($nofollow) && $nofollow || isset($content_only)}no{/if}follow" />

возможно что переменную $content_only не правильно обозначил.

все это в шаблоне header править.
если не выйдет, отпишись. хотя, в любом случае отпишись)
 
Спасибо! С сео про не будет конфликтовать?
 
>С сео про не будет конфликтовать
без понятия.

Вообще решение не корректное. Нужно просто в тайтл дописывать номер страницы и убирать описание категории на всех страницах категории кроме 1ой.

А еще лучше использовать погрузку товаров (как лента в ВК).
 
Это правильно для гугла, но перед тем как сделать вы прочтите инструкцию, можно так сделать еще хуже, как делает вопрдпрсс
 
Назад
Сверху