Нагрузка от поисковых ботов на Wordpress + WooCommerce

Нагрузка от поисковых ботов на Wordpress + WooCommerce

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

Это связанно с генерацией кнопки «Купить» в списке товаров. Стандартно это выглядит так:

HTML код кнопки такой:

Данная кнопка добавляет товары через Ajax, но разработчики решили продублировать функцию помещения товара и с помощью обычной ссылки. Проставленный тег rel=”nofollow” никак не мешает нашим роботам ходить и помещать товары в свои корзины. Очень важный момент при этом, что данные страницы не кэшируются, что вызывает огромную нагрузку на сервер.

Что же делать?

Самое простое решение, это добавить в robots.txt строчку:

Disallow: *?add-to-cart

Если же уже боты напали на сайт, то можно убрать эту ссылку вовсе. Код её должен находится по адресу:

\wp-content\themes\ВАША_ТЕМА_WP\woocommerce\loop\add-to-cart.php

Если файла нет, тогда его нужно скопировать из папки плагина:

\wp-content\plugins\woocommerce\templates\loop\add-to-cart.php

Стандартное содержимое файла:


if ( ! defined( 'ABSPATH' ) ) {

                exit;

}

global $product;

echo apply_filters(

                'woocommerce_loop_add_to_cart_link', // WPCS: XSS ok.

                sprintf(

                               '<a href="%s" data-quantity="%s" class="%s" %s>%s</a>',

                               esc_url( $product->add_to_cart_url() ),

                               esc_attr( isset( $args['quantity'] ) ? $args['quantity'] : 1 ),

                               esc_attr( isset( $args['class'] ) ? $args['class'] : 'button' ),

                               isset( $args['attributes'] ) ? wc_implode_html_attributes( $args['attributes'] ) : '',

                               esc_html( $product->add_to_cart_text() )

                ),

                $product,

                $args

);

Его надо заменить на:

if ( ! defined( 'ABSPATH' ) ) {

                exit;

}

global $product;

echo apply_filters(

                'woocommerce_loop_add_to_cart_link', // WPCS: XSS ok.

                sprintf(

                               '<a href="%s" data-quantity="%s" class="%s" %s>%s</a>',

                               esc_url( '#' ),

                               esc_attr( isset( $args['quantity'] ) ? $args['quantity'] : 1 ),

                               esc_attr( isset( $args['class'] ) ? $args['class'] : 'button' ),

                               isset( $args['attributes'] ) ? wc_implode_html_attributes( $args['attributes'] ) : '',

                               esc_html( $product->add_to_cart_text() )

                ),

                $product,

                $args

);

Как вы могли заметить, мы вместо ссылки на добавление товара, просто ставим знак решётки "#". Теперь ботам переходить некуда, а пользователи могут спокойно добавлять товары по технологии Ajax.

 
Оформление заказа
Не отправляйте пароли от Вашего сайта. Дополнительные данные будут запрошены отдельно по необходимости.
Мы получили Вашу заявку!
Скоро с Вами свяжутся и мы обсудим все детали.


Обязательно проверяйте папку "Спам". Мы постараемся отвечать быстро!