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

Тема в разделе "PrestaShop", создана пользователем novoselov, 29 июн 2014.

Информация :
Приветствую гость, обрати внимание! Темы которые закреплены в разделах, в скором времени будут откреплены. Правила раздела PrestaShop

(Не актуальные темы) Каталоги:Модули PrestaShop 1.7Модули PrestaShop 1.5 - 1.6Шаблоны PrestaShop 1.7Шаблоны PrestaShop 1.5 - 1.6
(Не актуальные темы) Поиск / Запросы:Модули PrestaShop 1.7Модули PrestaShop 1.5 - 1.6Шаблоны PrestaShop 1.7Шаблоны PrestaShop 1.5 - 1.6
Полезная информация:Поддержка и помощь c PrestaShopУбираем ПрестаТраст, стучалки и прочую рекламуСовместные покупки модулей и шаблоновПеревод Prestashop и модулей
Модераторы: trace
  1. Barmunk

    Barmunk Постоялец

    Регистр.:
    23 сен 2009
    Сообщения:
    72
    Симпатии:
    16
    как вы решили вопрос со страницами товара по производителю? Совсем не понимаю ее смысл. На ней не работают фильтры, выводит одной портянкой все товары. Получается просто бесполезный дубль?
     
  2. Platton

    Platton Постоялец

    Регистр.:
    10 май 2014
    Сообщения:
    77
    Симпатии:
    18
    Если эти страницы бесполезны и являются дублями, то создайте правило в файле robots.txt и запретите их.
     
  3. Riva

    Riva Папочка

    Регистр.:
    2 мар 2013
    Сообщения:
    490
    Симпатии:
    539
    Notice: Undefined variable: canonical in /var/www/.../controllers/front/CategoryController.php on line 153

    По выше указанному способу на 1.6.1.14 уже не работает. На 1.6.1.13 работает

    Помог этот способ https://gist.github.com/michaelhjulskov/10a45a77090989ca18b5
     
    Последнее редактирование: 27 июн 2017
    cepera_007 и _sashok нравится это.
  4. tonyevithcs

    tonyevithcs Создатель

    Регистр.:
    4 мар 2017
    Сообщения:
    15
    Симпатии:
    20
    _sashok нравится это.
  5. Vadimuch

    Vadimuch Постоялец

    Регистр.:
    4 мар 2013
    Сообщения:
    78
    Симпатии:
    50
    <meta charset="utf-8" />
    <title>{if $p != 1 and $page_name == 'category'}({$p})- {l s='Страница'} {/if}{if $p != 1 and $page_name == 'new-products'}({$p})- {l s='Страница'} {/if}{if $p != 1 and $page_name == 'prices-drop'}({$p})- {l s='Страница'} {/if}{if $page_name == 'product'}{l s='Купить'} {$product->name|escape:'html':'UTF-8'} - Название магазина ✓ {$product->reference|escape:'html':'UTF-8'}{else}{$meta_title|escape:'html':'UTF-8'}{/if}</title>
    <meta name="description" content="{if $p != 1 and $page_name == 'category'}({$p})- {l s='Страница'} {/if}{if $page_name == 'product'}{l s='Купить'} {$product->name|escape:'html':'UTF-8'}{l s=' ➨ в магазине Название магазина ✓'} {else} {$meta_description|escape:'html':'UTF-8'}{/if}" />

    Попробуйте это решение - мне помогло избавиться от дублей и +упростило жизнь СЕО-шникам.
     
    evgenij.sobolev и _sashok нравится это.
  6. _sashok

    _sashok PrestaShop Expert

    Регистр.:
    15 июл 2011
    Сообщения:
    2.021
    Симпатии:
    3.340
    если времени нет на ручную правку, то на PS 1.7 можно так избавиться от дублей титлов и мета-описаний:

    в файле:
    /themes/warehouse/templates/_partials/head.tpl

    правим блок на:
    Код:
    <title>{block name='head_seo_title'}{$page.meta.title} | ShortNameOfYourShop{if $smarty.get.p and $smarty.get.p!=1} - {$smarty.get.p}{elseif $smarty.get.page and $smarty.get.page!=1} - {$smarty.get.page}{/if}{/block}</title>
    <meta name="description" content="{block name='head_seo_description'}{$page.meta.description}{if $smarty.get.p and $smarty.get.p!=1} - {$smarty.get.p}{elseif $smarty.get.page and $smarty.get.page!=1} - {$smarty.get.page}{/if}{/block}">
     
    DaoKakao и Vadimuch нравится это.
  7. MockoB

    MockoB Создатель

    Регистр.:
    24 дек 2016
    Сообщения:
    22
    Симпатии:
    49
    @novoselov your solution is working perfectly on my PS 1.5.6.1 shop! Thank you very much!
    Is there any chance to solve the same issue with blockbestsellers, because there are page duplicates with it also on WMT?

    EDIT: Maybe too early for celebrating :(
    When I enable debug mode it shows "undefined variable: canonical in CategoryController.php"
    I tried the above suggestion to add:

    'canonical' => ($page_name === 'category' ? $this->context->link->getCategoryLink($this->category) : null),

    after: 'cart' => $cart, in FrontController.php

    But it still shows the error on the first page of categories and no error on the other pages.

    Any help will be highly appreciated!
     
    Последнее редактирование: 11 сен 2018
  8. MockoB

    MockoB Создатель

    Регистр.:
    24 дек 2016
    Сообщения:
    22
    Симпатии:
    49
    I just tried another code:
    Код:
    {if $page_name == index}
            <link rel="canonical" href="{$base_dir}" />
            {elseif $page_name == product}
            <link rel="canonical" href="{$request_uri}" />
            {elseif $page_name == module-prestablog-blog}
            <link rel="canonical" href="{$request_uri}" />
            {elseif $page_name == category}
            <link rel="canonical" href="{$request_uri}" />
            {else}
            <link rel="canonical" href="/{$request_uri|substr:1|regex_replace:'/\/(.*)/':''|regex_replace:'/\?(.*)/':''}/" />
            {/if}
    But I noticed that the index page of my site is pointed to the non HTTPS version, like: rel="canonical" href="http://mydotsitedotcom"
    Do you think it could be an issue, that it is not pointing to the HTTPS version?
     
  9. MockoB

    MockoB Создатель

    Регистр.:
    24 дек 2016
    Сообщения:
    22
    Симпатии:
    49
    Or I should use $base_dir_ssl instead of $base_dir? Is there any disadvantage of using it?

    You may answer in Russian I will understand it. It's just that my Russian is worse than my English :)
     
  10. cepera_007

    cepera_007

    Регистр.:
    28 янв 2007
    Сообщения:
    203
    Симпатии:
    176
    $base_dir_ssl - the best choice for you.

    Код:
    {elseif $page_name == 'product'}
    ...
    {elseif $page_name == 'module-prestablog-blog'}
    ...
    {elseif $page_name == 'category'}
    ...
    'product', 'module-prestablog-blog', category' - it should be quoted "..." or '...'
     
    MockoB и _sashok нравится это.