Если XML-карта сайта нужна только для роботов, то Html-карта в большей степени для покупателей и в меньшей для поисковых систем. Но, если роботам важнее параметры url и цифры, то пользователям нужна наглядность. В Opencart встроенная карта сайта находится по адресу ваш.сайт/index.php?route=information/sitemap, а после установки seo_url — ваш.сайт/sitemap
Html-карта на Opencart из «коробки»
Удаляем ненужные ссылки
На страницу Html-карты покупатель заходит, чтобы сориентироваться в структуре сайта, поэтому немного переделаем стандартную карту сайта. Открываем файл catalog\view\theme\default\template\information\sitemap.tpl и находим там строчки:
<div class="col-sm-6"> <ul> <li><a href="<?php echo $special; ?>"><?php echo $text_special; ?></a></li> <li><a href="<?php echo $account; ?>"><?php echo $text_account; ?></a></li> <ul> <li><a href="<?php echo $edit; ?>"><?php echo $text_edit; ?></a></li> <li><a href="<?php echo $password; ?>"><?php echo $text_password; ?></a></li> <li><a href="<?php echo $address; ?>"><?php echo $text_address; ?></a></li> <li><a href="<?php echo $history; ?>"><?php echo $text_history; ?></a></li> <li><a href="<?php echo $download; ?>"><?php echo $text_download; ?></a></li> </ul> <li> <li><a href="<?php echo $cart; ?>"><?php echo $text_cart; ?></a></li> <li><a href="<?php echo $checkout; ?>"><?php echo $text_checkout; ?></a></li> <li><a href="<?php echo $search; ?>"><?php echo $text_search; ?></a></li> <li><?php echo $text_information; ?> <ul> <?php foreach ($informations as $information) { ?> <li><a href="<?php echo $information['href']; ?>"><?php echo $information['title']; ?></a></li> } <li><a href="<?php echo $contact; ?>"><?php echo $text_contact; ?></a></li> </ul> </li> </ul> </div>
Удаляем лишние прямые ссылки на личный кабинет, корзину и страницу оформления и т.д. Из коробки все эти ссылки дублируются в футере и не нужны именно на этой странице. Плюс, большинство этих ссылок мы закрываем в robots.txt как мусорные страницы.
В итоге должно получится вот так:
<div class="col-sm-6"> <ul> <li><a href="<?php echo $special; ?>"><?php echo $text_special; ?></a></li> <li><?php echo $text_information; ?> <ul> <?php foreach ($informations as $information) { ?> <li><a href="<?php echo $information['href']; ?>"><?php echo $information['title']; ?></a></li> <?php } ?> <li><a href="<?php echo $contact; ?>"><?php echo $text_contact; ?></a></li> </ul> </li> </ul> </div>
На скриншоте шрифт 12px, его, конечно, нужно увеличить по всему сайту минимум до 16px.
Исправленная Html-карта
Добавляем поле description
В Яндекс.Вебмастере и Search Console будут появляться сообщения об отсутствии meta-тега description на странице html-карты сайта.
Исправляем — в файле catalog\controller\information\sitemap.php после строки
$this->document->setTitle($this->language->get('heading_title'));
добавляем
$this->document->setDescription('здесь пишем описание'); $this->document->setKeywords('здесь пишем ключевые слова если вы их используйте');
и обновляем кеш модификаторов.
Кстати подобная ошибка будет выскакивать и для страницы контактов Opencarta. Править надо файл contact.php, он лежит в той же папке.