Opencart, оно же ocstore, имеет недоработку тега canonical. Например:
Сейчас в категории выводится:
Понятно, что слово "canonical" можно заменить на "левое ухо чебурашки". Эффект тот же, зато смешно.
Нормальная работа тега для категории https://www.сайт.ру/категория/ должна вывести:
Нормальная работа тега на странице категории https://www.сайт.ру/категория/?page=2 выведет url родительской категории:
Раньше закрывал страницы от индексации, но сейчас это минус. Вопрос - Как это дело поправить?
Как я понял, этот код в catalog/controller/product/category.php как раз и отвечает за вывод canonical:
Сейчас в категории выводится:
Код |
---|
<link href="https://www.сайт.ру/категория/" rel="canonical" /> [CODE] На странице пагинации выводится: [CODE] <link href="https://www.сайт.ру/категория/?page=2" rel="canonical" /> |
Понятно, что слово "canonical" можно заменить на "левое ухо чебурашки". Эффект тот же, зато смешно.
Код |
---|
<link href="https://www.сайт.ру/категория/?page=2" rel="левое ухо чебурашки" /> |
Нормальная работа тега для категории https://www.сайт.ру/категория/ должна вывести:
Код |
---|
<link rel="canonical" href="https://www.сайт.ру/категория/" /> |
Нормальная работа тега на странице категории https://www.сайт.ру/категория/?page=2 выведет url родительской категории:
Код |
---|
<link rel="canonical" href="https://www.сайт.ру/категория/" /> |
Раньше закрывал страницы от индексации, но сейчас это минус. Вопрос - Как это дело поправить?
Как я понял, этот код в catalog/controller/product/category.php как раз и отвечает за вывод canonical:
Код |
---|
$pagination = new Pagination(); $pagination->total = $product_total; $pagination->page = $page; $pagination->limit = $limit; $pagination->url = $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&page={page}'); $data['pagination'] = $pagination->render(); $data['results'] = sprintf($this->language->get('text_pagination'), ($product_total) ? (($page - 1) * $limit) + 1 : 0, ((($page - 1) * $limit) > ($product_total - $limit)) ? $product_total : ((($page - 1) * $limit) + $limit), $product_total, ceil($product_total / $limit)); 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'); } if ($page > 1) { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . (($page - 2) ? '&page='. ($page - 1) : '')), 'prev'); } if ($limit && ceil($product_total / $limit) > $page) { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. ($page + 1)), 'next'); } |
Изменено:
Антип Замкадов - 7 Октября 2019 17:35