Вариант решения можно попробовать такой:
Открываем файл: /system/library/document.php
Находим следующий код:
public function addLink($href, $rel) {
$this->links[$href] = array(
'href' => $href,
'rel' => $rel
);
}
В нем заменяем $this->links[$href] на $this->links[(md5($href.$rel))] в итоге получается следующее:
public function addLink($href, $rel) {
$this->links[(md5($href.$rel))] = array(
'href' => $href,
'rel' => $rel
);
}
Далее в файле /catalog/controller/product/category.php (либо ищем такой же в модификациях) находим следующий код:
if ($page == 1) {
$this->document->addLink($this->url->link('product/category', $path), 'canonical');
} else {
$this->document->addLink($this->url->link('product/category', $path . '&page='. $page), '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']), 'canonical');
}
После этого canonical должен работать правильно, сразу говорю мне помогло, в вашем случае не гарантирую, но решил поделиться.