Как сделать канонические линки на всех страницах ocfilter в opencart
Заказать решение данной задачи можно через мой кворк или обратившись ко мне напрямую. Ниже инструкция для самостоятельного выполнения.
Проверялось на ocStore 2.3.0.2.3
Результат правок: убираются со страниц пагинации линки prev и next и везде появляются канонические ссылки страницы на саму себя, чтобы улучшить индексацию страниц в поиске
<link href="<yoururl>" rel="canonical" />
В файле catalogcontrollerproductcategory.php заменить код
if ($page == 1) { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'], true), 'canonical'); } elseif ($page == 2) { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'], true), 'prev'); } else { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. ($page - 1), true), 'prev'); }
на
$this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] .$url, true), 'canonical');
Так же в модификаторе ocfilter закомментировать строчку
$this->document->deleteLink('canonical');
Если не работает так, как вам требуется, то возможно пригодится один из советов отсюда
Добавление
https://opencartforum.com/topic/101349-ocfilter-seo-stranicy-i-relcanonical/
Ещё каноникал линки можно поставить на страницы пагинации производителей, поиска, списка акций в файлах
controller/product/search.php controller/product/special.php controller/product/manufacturer.php
Тяжелый случай
Если в url каноникла не выводится чпу фильтров и появляются параметры сортировки, то поможет вот такая запись
$this->document->addLink(explode('?',$this->url->link('product/category', 'path=' . $this->request->get['path'] . $url))[0], 'canonical');