Сегодня рассмотрим интересную задачу: как Запретить индексацию add-to-cart, то есть URL со строкой запроса, параметрами ?add-to-cart= в WooCommerce, и решим ее двумя способами.
Описание задачи
Плагин WooCommerce может генерировать огромное количество ссылок вида https://site.com/?add-to-cart=111, причем после site.com/ может быть название категории или тега. Такие ссылки находят боты поисковых систем, индексируют их, после чего вы получаете ошибку, например, в Search Console о дублях страниц, неканонических страницах и т. д.
Почему так происходит?
Ссылки /?add-to-cart=111 размещаются в виде кнопок «Добавить в корзину» или «Купить» на страницах архивов, а также в виджетах:
- категории товаров
- метки товаров
- виджет «Похожие товары»
- блок «Вас также может заинтересовать»
- виджет «Ранее просмотренные товары»
- любые другие виджеты или блоки Вукомерса, где отображается миниатюра товара и кнопка для добавления его в Корзину.
При нажатии на такую кнопку осуществляется перевод по ссылке, товар добавляется в корзину, но открывается та же самая страница. То есть реальной страницы по ссылке с /?add-to-cart=111 не существует. Таким образом, поисковый бот индексирует дубль страницы.
Решение задачи
Запрет индексации ссылок формата /?add-to-cart можно осуществить двумя путями: в файле robots.txt и в файле .htaccess. Мы рекомендуем комбинировать эти способы, чтобы добиться 100% гарантии результата.
Запрещаем индексацию в robots.txt
Файл robots.txt находится в корневой папке вашего сайта и доступен по ссылке вида https://site.com/robots.txt. При отсутствии в папке физического файла ВордПресс формирует виртуальный файл robots.txt.
Если у вас такой файл есть, то проверьте наличие в нем такой строки, запрещающей поисковикам сканировать ссылки с параметром add-to-cart:
Disallow: *?add-to-cart*
В случае отсутствия такой строки, добавьте ее вручную (воспользуйтесь FTP-клиентом).
А когда в корневой папке вообще нет файла robots.txt, рекомендуем воспользоваться плагином SpeedPlus OptiMini, который автоматически создает правильный файл robots.txt.
Между тем, добавление такого правила не является полной гарантией того, что поисковик послушается. Боты нередко своевольничают и после этого в СерчКонсоли появляются сообщения «Просканировано, несмотря на запрет…». И вот тогда мы используем дополнительный способ.
Запретить индексацию add-to-cart в файле .htaccess
Файл .htaccess находится тоже в корневой папке сайта. Это самый главный файл на всем сайте, так как он загружается первым и указывает браузеру, в частности, как открывать ссылки. Файл можно редактировать исключительно в прямом доступе, например, с помощью FTP-клиента. И не забудьте сделать резервную копию файла.
Для запрета индексации ссылок со строкой запроса ?add-to-cart= вам следует добавить в .htaccess такой код:
# Disable indexing of "?add-to-cart=" pages by Speedplus.com.ua
<IfModule mod_rewrite.c>RewriteCond %{QUERY_STRING} add-to-cart= [NC]
RewriteRule .* - [E=NOINDEXME:1]
Header set X-Robots-Tag "noindex, nofollow" env=NOINDEXME
</IfModule>
После добавления этого кода страницам с параметром ?add-to-cart= будет присвоен HTTP-заголовок X-Robots-Tag, который, хоть и не отображается в исходном коде страницы, находится в файле конфигурации сервера. Такая настройка сообщает ботам поисковых систем о запрете индексации страницы даже без загрузки содержимого страницы. Фантастика, да?
Проверить, добавляется ли HTTP-заголовок на страницах вашего сайта, вы можете с помощью бесплатного сервиса. Для пущей уверенности в корректности работы кода, введите в текстовый блок запроса сразу два адреса страницы вашего сайта: со строкой запроса и без нее.
https://site.com/
https://site.com/?add-to-cart=111
Успешные результаты анализа второго адреса (с параметрами) должны содержать строку:
X-Robots-Tag: noindex, nofollow
Таким образом, теперь вы вдвойне запретили индексацию страниц-дублей с ?add-to-cart= в адресной строке.
Если у вас есть вопросы, задавайте их в комментариях к этой статье. Если вам необходима доработка этого кода или кастомная разработка, обращайтесь к нам напрямую (контакты).