Вопрос по Opencart (OcStore) 3
Страницы: 1
Вопрос по Opencart (OcStore) 3, Нужна помощь в настройке canonical на OcStore 3.0
Opencart, оно же ocstore, имеет недоработку тега canonical. Например:

Сейчас в категории выводится:
Код
<link href="https://www.сайт.ру/категория/" rel="canonical" />
[CODE]

На странице пагинации выводится:
[CODE]
<link href="https://www.сайт.ру/категория/?page=2" rel="canonical" />
 

Понятно, что слово "canonical" можно заменить на "левое ухо чебурашки". Эффект тот же, зато смешно.
Код
<link href="https://www.сайт.ру/категория/?page=2" rel="левое ухо чебурашки" />
 


Нормальная работа тега для категории https://www.сайт.ру/категория/ должна вывести:
Код
<link rel="canonical" href="https://www.сайт.ру/категория/" />
 


Нормальная работа тега на странице категории https://www.сайт.ру/категория/?page=2 выведет url родительской категории:
Код
<link rel="canonical" href="https://www.сайт.ру/категория/" />
 

Раньше закрывал страницы от индексации, но сейчас это минус. Вопрос - Как это дело поправить?

Как я понял, этот код в catalog/controller/product/category.php как раз и отвечает за вывод canonical:
Код
         $pagination = new Pagination();
         $pagination->total = $product_total;
         $pagination->page = $page;
         $pagination->limit = $limit;
         $pagination->url = $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&page={page}');

         $data['pagination'] = $pagination->render();

         $data['results'] = sprintf($this->language->get('text_pagination'), ($product_total) ? (($page - 1) * $limit) + 1 : 0, ((($page - 1) * $limit) > ($product_total - $limit)) ? $product_total : ((($page - 1) * $limit) + $limit), $product_total, ceil($product_total / $limit));

         if ($page == 1) {
             $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id']), 'canonical');
         } else {
            $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. $page), 'canonical');
         }
         
         if ($page > 1) {
             $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . (($page - 2) ? '&page='. ($page - 1) : '')), 'prev');
         }

         if ($limit && ceil($product_total / $limit) > $page) {
             $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. ($page + 1)), 'next');
         }
 
Изменено: Антип Замкадов - 7 Октября 2019 17:35

Прогон по твиттеру, постинг в 1500 аккунтов
Постинг в твиттер аккаунты, для ускорения индексации ваших сайтов, сателлитов, дорвеев.

Вы разберитесь, что такое canonical. Если у вас на странице canonical выводится полный список товаров, тогда да.
Если нет и сделать, как вы хотите (на первую страницу), остальные страницы пагинации не зайдут в индекс.
Поэтому там все правильно сделано.
Если так уж хочется, замените:
Код
if ($page == 1) {
             $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id']), 'canonical');
         } else {
            $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. $page), 'canonical');
         }

на:
Код
$this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id']), 'canonical');
Изменено: rushot - 7 Октября 2019 19:50
rushot, спасибо, но не работает.
На странице пагинации заголовок:
Код
<link href="https://www.сайт.ру/категория/?page=3" rel="canonical" />

Из него ясно, что каноническая стр. как раз /?page=3 - в этом и беда. По этому я и "предложил" заменить его на чебурашку.
Если без шуток и по-уму, тогда заголовок на page=3 должен быть таким:
Код
<link href="https://www.сайт.ру/категория/" rel="canonical" />


В этом случае страницы пагинации будут проиндексированы, но их не будет в выдаче. Но, если пс сочтёт более релевантной какую-нибудь page=3 или, к примеру, page=33, тогда в выдаче она как раз и будет вместо канонической. В этом и заключается плюс canonical.

Так что, вопрос открыт.)
Понятно.
Не сталкивался с этим движком, на joomla похож по использованию переменных. Поставлю, посмотрю.
По идее должно работать.
Поиск в файлах сайта используйте по слову "canonical". Может где-то идёт замена/подмена.
Цитата
rushot пишет:
замена/подмена
Кроме catalog/controller/product/category.php и его же в папке storage ни чего, относящегося к пагинации в категориях, не нашёл. На чистом движке, в принципе, то-же самое происходит.
Цитата
Не сталкивался с этим движком

И не приведи Господь)
Изменено: Антип Замкадов - 8 Октября 2019 13:10
Закомментировал по причине ненадобности вывод прев, некст

Код
         // if ($page > 1) {
             // $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . (($page - 2) ? '&page='. ($page - 1) : '')), 'prev');
         // }

         // if ($limit && ceil($product_total / $limit) > $page) {
             // $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. ($page + 1)), 'next');
         // }
 


Заменил

Код
$this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. $page), 'canonical');
 

на
Код
$this->document->addLink($this->url->link('product/category', 'path=' . $this->request->get['path'], true), 'canonical');
 

Вроде заработало на страницах категорий, страницах сортировки. 

Для производителей


после (второе вх., строка 67)

Код
$this->load->model('tool/image');
 
Вставил

Код
if (isset($this->request->get['manufacturer_id'])) {$this->document->addLink($this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id']), 'canonical');}
 
и закомментировал за ненадобностью:

Код
         // if ($page == 1) {
             // $this->document->addLink($this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'], true), 'canonical');
         // } else {
            // $this->document->addLink($this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . $url . '&page='. $page, true), 'canonical');
         // }
         
         // if ($page > 1) {
             // $this->document->addLink($this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . $url . '&page='. (($page - 2) ? '&page='. ($page - 1) : ''), true), 'prev');
         // }

         // if ($limit && ceil($product_total / $limit) > $page) {
             // $this->document->addLink($this->url->link('product/manufacturer/info', 'manufacturer_id=' . $this->request->get['manufacturer_id'] . $url . '&page='. ($page + 1), true), 'next');
         // }
 


Вот вроде как и всё.
Страницы: 1
Похожие темы:
Читают тему (гостей: 1, пользователей: 0, из них скрытых: 0)
Новые темыОбъявленияСвободное общение
06:02 Нужен совет, гугл не индексирует сайт 
05:49 Как продвигаетесь? | Апдейт 30 октября 2020 Яндекс выдача 
03:35 Быстрое продвижение сайта в ТОП Яндекса. Рост трафика и позиций. 
01:11 DreamCash.tl - заработок на онлайн-видео. До 95% отчислений, отличный конверт! 
19:35 ClickDealer- свои люди на рынке буржа! 
19:16 Биржи ссылок и статей 2020 
18:48 Продвижение сайтов в ТОП Яндекса за 2 недели. Рост позиций и трафика. Бесплатный тест. 
20:24 Whatsapp рассылки и реселлерская программа 
20:15 Эффективный копирайтинг + редактура и корректура в одну цену 
19:04 Качественная регистрация на трастовых сайтах и форумах. Множество cms. Цены от 250 рублей. 
19:02 Мощный микс прогон от 2000 ссылок + 2 крутых темы продвижения 
18:59 Комплексные услуги по продвижению, оптимизации и аудиту сайтов, качественно и недорого. 
18:37 Продажа аккаунтов Adsense 
15:06 Продам каруд-ссылки с форумов 
19:54 Ученые увидели в отказе носить маску признаки психического расстройства 
19:35 [b]Webvork [/b]- международная товарная СРА сеть с сертифицированными офферами на Европу. 
19:27 Ваш сайт блокируют гос органы? Есть решение! 
18:52 Муж просто жлоб!!! 
16:59 Leadgid — международная финансовая партнерская CPA сеть 
16:14 Эмиграция в Америку, это вообще стоит того? 
22:01 CBDPartners - лучшее решение для CBD трафика, запрыгивай в новую нишу!