OpenCart — улучшение индексации

Добрый день, уважаемые читатели.

Сегодня я хочу рассказать вам о небольшой недоработки OpenCart в плане индексации страниц, уникального контента и поведенческого фактора.

Наш дорогой Яша, как вы наверно знаете, изменил алгоритм выдачи сайтов — он перестал учитывать ссылочную массу сайта и перешел на поведенческий анализ. Т.е. чем дольше посетитель находится на сайте — тем лучше.

У OpenCart есть несколько проблем:

  • Если отключить в админке товар, то страница этого товара отдает 200 хедер (ОК), но при этом выводится сообщение «Товар не найден». Соответственно, в индексе Яндекса данная страница сохраняется.
  • В категории при переходе по страницам вывода (пагинации), если в адресной строке указать в параметр _GET ?page={несуществующая страница}, то OpenCart покажет страницу категории с пустым содержимым и отдаст также 200 хедер

Это не есть хорошо, ибо засоряется индекс и если клиент попадет на эту страницу из поиска, то скорее всего сразу закроет сайт.

Чтобы исключить эти страницы из индекса, нужно передавать поисковикам 404 ошибку. Как это сделать:

В файле /catalog/controllers/product/category.php в конце файла перед


$this->response->setOutput($this->render());

добавляем строки:


$page_nums = ceil($pagination->total / $pagination->limit);

if($this->request->get['page'] > $page_nums)
{
$this->response->addHeader($this->request->server['SERVER_PROTOCOL'] . '/1.1 404 Not Found');
}

И в /catalog/controllers/product/product.php в конце функции index(), где идет условие, что данных по данному товару нет, перед


$this->response->setOutput($this->render());

добавляем


$this->response->addHeader($this->request->server['SERVER_PROTOCOL'] . '/1.1 404 Not Found');

 

Так мы исключим ненужные страницы из поиска.

Вот и все =) жду ваших комментариев по этому поводу

9 комментариев

    1. в google chrome в инструментах разработчика (shift + ctrl + j) есть вкладка network. Запустите инструмент разработчика, перейдите на вкладку network, перейдите на нужную страницу в браузере и посмотрите на первую строчку в списке Network.
      Name = URL путь страницы
      METHOD = GET
      STATUS = либо 200 либо 404
      если 404 ответ, то правильно, если 200 — нет

  1. Огромное спасибо за этот рецепт! Я, как дилетант, долго вчитывался в споры о том надо ли оформлять страницу 404 и какой результат возвращать пользователю и поисковику. Ваш совет, как мне видится, снимает все вопросы.

    1. а зачем закрывать категории в robots.txt? там нужно закрывать системные папки и некоторые страницы, которые поисковик не должен видеть, например, /account, /profile, /cart и т.д.

Leave a Reply