А что за модуль? дайте пожалуйста ссылку.
Я в общем то нашел вариант решения проблемы с canonical.
Если MFP - создаем посадочные страницы для нужных нам фильтров.
Далее, идем в category.php - там ищем this->document->addLink($this->url->link('product/category', 'path=' . $this->request->get['path']), 'canonical');
оборачиваем эту строку в условие, в котором проверяем $this->request->get['path'] на наличие ?mfp=.
Как результат, canonical будет только у страниц фильтра, которые не имеют посадочных.
Так же, можно закрыть через robots.txt.
C OCfilter как я понял сложнее, так как он генерирует все автоматом.
Опять таки идем в category.php - там ищем this->document->addLink($this->url->link('product/category', 'path=' . $this->request->get['path']), 'canonical');
оборачиваем эту строку в условие, в котором проверяем $this->request->get['path'].
И в условии надо ловить двоеточия. Если их больше чем одно в урле, то ставим canonical.
Это если хотим открыть страницы по одному значению фильтра.
Пока это чисто размышления на бумаге, но, должно получиться.
Буду пробовать.
UPD: с OCfilter все оказалось проще. можно просто отключить canonical полностью, а потом в robots.txt закрывать от индексации урлы фильтров с более чем одним выбранным вариантом, при помощи Disallow: *:*:*.
noutbuki-planshety-po/noutbuki-planshety-kompjutery/noutbuki/proizvoditel:dell/ - индексируется
noutbuki-planshety-po/noutbuki-planshety-kompjutery/noutbuki/proizvoditel:dell/obem-ssd:32-gb/ - не индексируется