Как сделать канонические линки на всех страницах ocfilter в opencart

Проверялось на ocStore 2.3.0.2.3

Результат правок: убираются со страниц пагинации линки prev и next и везде появляются канонические ссылки страницы на саму себя, чтобы улучшить индексацию страниц в поиске

<link href="<yoururl>" rel="canonical" />

В файле catalog\controller\product\category.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');

Print Friendly, PDF & Email

Добавить комментарий