Ух, сколько вы тут всего понаписали!
Ну что же, попробую по порядку.
ironwayru писал(а):
прописать в robots.txt Disallow: /shop/cart/
А как быть с Google Sitemap? Я сейчас посмотрел его содержимое и там как раз есть
Т.е. можно запретить в robots.txt, а потом вручную скормить Гуглу и Яндексу этот Sitemap и получить как раз-таки индексацию /shop/cart/. Или я не прав?
Тут нужно знать две вещи.
Во1х, robots.txt приоритетнее чем sitemap, то есть если в роботсе для страницы указано disallow то она не попадет в индекс или удалится из него если она уже туда попала. Поэтому в данном случае вы не правы.
Во2х, сам по себе sitemap штука совершенно вспомогательная. Есть он - хорошо, возможно индексация вашего сайта немного ускорится. Нет его - тоже ничего страшного. Потому что для поискового робота _основным_ путем индексации были и есть ссылки на вашем сайте. То есть если даже нету у вас sitemap.xml то все равно на каждой странице в каталоге у вас есть ссылка на /shop/cart?action=add&item=... или что-нибудь в этом роде, и таким образом корзину робот все равно найдет Но если она запрещена в robots то в индекс он ее не возьмет.
Кстати в эту же тему, ссылки на корзину целесообразно окружать тегами <noindex> ... </noindex> для Яндекса, а для Гугла прописывать
<a href="..." rel="nofollow">
ironwayru писал(а):
И еще такой момент, а если я задам для shop/cart/ в админке «Никогда» для частоты обновления, индексация этих страниц производится не будет?
Будет, но редко. К тому же не стоит забывать о том, что кроме робота-индексатора есть еще разновидности роботов, например "простукивалка", который периодически "стучится" по всем страницам из индекса и проверят живы ли они до сих пор. У него свой "график посещений" и на то что написано sitemap он, предположительно, не смотрит.
ironwayru писал(а):
А вот compare_id_10 и пр. видимо указать нельзя никак… Не буду же я для всех товаров это прописывать…
Совершенно верно.
ironwayru писал(а):
Еще мне пришла в голову мысль, а не запретить ли также индексировать /tag/
Я бы не стал - теги это частный случай внутренней перелинковки, что считается весьма полезным.
А зачем две строки clean-param, если они обе ведут на корень сайта? Можно и в одну объединить.
kvasiliy писал(а):
Яндекс и в рекомендациях пишет его с назначением для робота яндекса…
когда поисковик парсит содержание robots.txt то все непонятные ему строки он просто игнорирует. Во всяком случае так ему положено делать Поэтому Гугл вполне толерантно относится к строкам clean-param в роботсе.
kvasiliy писал(а):
Но в поиске у яши они остались и почему-то системы выдаёт на них ответ что страница существует: «Страница altay-magazin.ru/?action=add&item_id=4379 индексируется и участвует в
результатах поиска, так как доступна и отдает нашему роботу код http 200…» — ответ службы яндекса.
Все правильно. Вы просто не различаете адрес страницы и передаваемые ей параметры. Все ссылки вида altay-magazin.ru/?action=add&item_id=xxxx ведут на самом деле на одну и ту же страницу altay-magazin.ru/ но передают ей разные параметры (точнее один одинаковый параметр action и один различающийся параметр item_id) Но страница altay-magazin.ru/ не знает что делать с этими параметрами, и более того, она вообще не проверят даже их существование а просто отображается и все, естественно возвращая при этом код 200.
Вот так. Что тут можно сделать? Ну я бы в макете, в самом начале, написал небольшой обработчик на php, который проверял бы текущий урл, и если бы он был равен "/" то проверял бы наличие get-параметров action и item_id, и в случае их наличия тупо отдавал 404й заголовок. Тогда эти страницы будут считаться ненайденными и постепенно выпадут из индекса. Есть конечно некоторый риск что из индекса выпадет и морда сайта, но вернуть ее потом в индекс вполне реально.
Можно впрочем вместо 404го заголовка отдавать 301й и делать редирект на нужную страницу /shop/cart/, которую в свою очередь закрыть в robots, но тогда люди пришедшие по этим ссылкам будут попадать в пустую корзину, да и из индекса при этом ссылки вероятнее всего не пропадут
Что тут можно сделать? Ну я бы в макете, в самом начале, написал небольшой обработчик на php,
Поговорил на эту тему со своим знакомым СЕОшником, а тот подсказал еще более простой способ из своего личного опыта. Когда Яндекс разбирает robots.txt, то он, как и вы, kvasiliy, тоже не отделяет адрес страницы от передаваемых ей параметров. Поэтому если написать в роботсе
Disallow: /?action=add&item_id=1234
то эта страница из индекса выпадет, а все остальные (с другими item_id) - останутся.
Поэтому вам надо выкачать из Яндекса полный список таких "корявых" ссылок и все их добавить в robots.
В качестве примера он мне дал ссылку на подобный robots.txt, скриншот которого я здесь и приведу:
ЗЫ: а вот робот-индексатор и сервис Яндекс Вебмастер при этом адрес от параметров отделяют, в связи с чем и не могут сами по себе убрать эти ссылки из индекса.
Дождусь индексации и посмотрю как яндекс поймёт данное правило. Ато ссылок порядка 150... Kotoff писал(а):
теги это частный случай внутренней перелинковки
правильно! у меня кстати в поиске порядка 425 стр от тегов... Вообще думаю надо занятся тегами...Kotoff писал(а):
Во2х, сам по себе sitemap штука совершенно вспомогательная.
Совершенно верно. Любой паук сначала читает роботс и потом уже в соответствии с его правилами индексирует ссылки на сайте... У меня если корзина исключена в роботсе то и из поиска яша её тоже убрал.
kvasiliy, у вас в моей цитате "Disallow: /action" знак вопроса перед action пропущен. Может быть это только в цитате, но на всякий случай уточню, что в роботсе этот знак вопроса обязателен!
Кстати в эту же тему, ссылки на корзину целесообразно окружать тегами <noindex> … </noindex> для Яндекса, а для Гугла прописывать
Да-да! Вчера как раз этим занимался. Kotoff писал(а):
А зачем две строки clean-param, если они обе ведут на корень сайта? Можно и в одну объединить.
Это исключительно для визуального удобства (особенно при проверке файла в Яндексе). А это как-то плохо сказывается на работе? Kotoff писал(а):
когда поисковик парсит содержание robots.txt то все непонятные ему строки он просто игнорирует. Во всяком случае так ему положено делать Поэтому Гугл вполне толерантно относится к строкам clean-param в роботсе.
Да? Это хорошо! Т.к. он выдает ошибку на этих строках и меня волнует, а поймет ли он весь остальной файл, мало ли что
Кстати, у меня URL на корзину не удалялся только потому, что mysite.ru и - разные вещи...)
ну можете для гарантии создать несколько секций для разных роботов.
А тут проблема в том, что если Яндекс видит секцию со своим именем, то секцию * он игнорирует. Можно конечно продублировать, но не хочется лишний раз раздувать размер файла)
Посмотрю, понаблюдаю за Гуглом.