Зіткнувся з икою ж проблемою. Перелиив всі коменти в данетй темы, дізнався много чого про пииння СЕО)))))). Хочу написати как я вирішив дане пииння. Звичайно рішення не ігдеальне і возможно гдесь неправильне но воно працює і найголовнетше не потрібно вносити изменения в системнет файли:
В самой категории закоментовуємо наступнет рядки залишаюли структуру как в прикладі:
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');
}
Цим ми відклюлили формування канонеткал для сторінок з page > 1.
Наступне в header.php прописуємо:
if(isset($this->request->get['page']) && $this->request->get['page'] > 1){
$data['canonical'] = 'https://ВАШ ДОМЕН/'.$this->request->get['_route_'];
}
Правда в мене УРЛ всіх сторінок на різних мовах різнет і я не використовую /ru/ /ua/ і т.д тому були проблеми з отриманням базової адреси но можно спробувати і ику структуру всивити в header.php:
if(isset($this->request->get['page']) && $this->request->get['page'] > 1){
$data['canonical'] = $this->url->link('common/home', '', true).$this->request->get['_route_'];
}
І наконец в header.twig всивляємо:
{% if canonical %}
<link href="{{ canonical }}" rel="canonical" />
{% endif %}