В очередном обновлении woocommerce 3.2.0 добавлено автоматическое закрытие страниц от индексирования в noindex,follow – в общем, это замечательно! Странички – корзина и оформление заказа – целесообразнее закрыть от индексирования.
Теперь страницы закрыты (без всяких кастомных фильтров) от индекса noindex,follow
: noindex, это запрет индексирования контента и ссылок в документе, и follow – разрешает обход странички и ссылок роботом, но НЕ индексирование!..
…всё здорово, однако, у кого-то до обновы могли быть закрыты какие-то страницы напрочь: т.е в noindex,nofollow. И теперь, после обновления плагина, если проверить, к примеру, “RDS баром” получится две пары тегов разных значений: особо не страшно… Но давайте с этим разберёмся точнее и сделаем так, как нам нужно:
Как известно: если на страничке (в документе) наблюдается две пары тегов – так частенько бывает у веб мастеров – робот предпочтёт тот тег, который разрешает проход по документу…
…пример на скрине:
Чтобы избежать путаницы и достичь порядка, и если нам нужно полное закрытие отдельных страниц от индекса, этот пост и посвящается:
А в ЭТОМ посте помещена большая подборка полезного кода для работы с магазином на Woocommerce.
как убрать в обновлении woocommerce теги noindex,follow
После обновления woocommerce 3.2.0 – в исходном коде будет примерно так:
И если кому-то нужно лично (без разработчиков) управлять индексацией своего магазина, то в этой статье как раз и научимся!
Также в тексте статьи, может кому-то пригодится, предложу вариант уборки через фильтр – init – строку стилистики css галереи (строка также показана выше на скрине):
<noscript><style>.woocommerce-product-gallery{ opacity: 1 !important; }</style></noscript>.
Формирования обработки обоих описанных выше метастрок находится в:
/woocommerce/includes/wc-template-functions.php
В спойлере дан пример одной из функций обновлённого плагина: эта функция отвечает за вывод <meta name=’robots’ content=’noindex,follow’ />.
/**
* Disable search engines indexing core, dynamic, cart/checkout pages.
*
* @since 3.2.0
*/
function wc_page_noindex() {
if ( is_page( wc_get_page_id( 'cart' ) ) || is_page( wc_get_page_id( 'checkout' ) ) || is_page( wc_get_page_id( 'myaccount' ) ) ) {
wp_no_robots();
}
}
add_action( 'wp_head', 'wc_page_noindex' );
Итак: если вы закрывали странички “корзина” и “оформление заказа” и пр. WOOC от индексирования каким-то иным способом (пример дам в финале статьи), то у вас получится, как и говорилось выше, две пары закрывающих тегов, однако – разных значений!
…Цель сегодняшней работы – нужно оставить только какую-то одну пару: так правильнее.
Но тут закавыка вот в чём: если мы отключим наши кастомные фильтры, то – пара, выводимая кодом noindex,nofollow
удалится, – но останется другая из обновления wooc noindex,follow
…
Это ничего! документ в любом случае закрыт от индексирования. Однако напоминаю: разрешён follow
для прохода роботом!
Вот и подошли к важнейшему в теме: коли нам нужно полностью закрыть какую-то отдельную страничку в noindex,nofollow
, читаем далее…
Один владелец магазина нынче у меня спросил: “как убрать теги, которые внедрены в финальное 3.2.0 обновление wooc, но оставить свои, которые были – т.е noindex,nofollow
??”.
Да, иногда целесообразнее оставить код сайта таким, каким он был до обновления, чтобы исключить так называемое “мигание кода”: не надо путать поисковики!
…например, такой вариант – для того, чтобы убрать метатеги robots в обновлении wooc, нужно прописать в файл функций functions.php
активной темы следующий код:
/*Новое в WOOC - УБИРАЕМ мета ROBOTS noindex,follow в wp_head*/
add_action( 'init', 'wc_pageats_noindex' ); // отключаем функцию добавленную в 3.2 meta_robots - noindex,follow
function wc_pageats_noindex(){
remove_action( 'wp_head', 'wc_page_noindex' );
}
/*УБИРАЕМ ИЗ ШАПКИ noindex,follow*/
С robots закончили!
Далее…
…как упоминал выше, уберём из wp_head
такую строку (если кому-то нужно):
<noscript><style>.woocommerce-product-gallery{ opacity: 1 !important; }</style></noscript>
Решение (в файл функций):
/*УБИРЁМ ИЗ ШАПКИ МЕТА wooc (из исходного кода) строку стилей*/
add_action( 'init', 'remove_custom_action' );
function remove_custom_action(){
remove_action( 'wp_head', 'wc_gallery_noscript' );
}
/*УБИРЁМ ИЗ ШАПКИ МЕТА wooc*/
Ну и как эпилог:
как закрыть странички магазина на woocommerce в noindex,nofollow
Вот код, которым можно произвольно закрывать любую страничку в магазине на woocommerce в noindex,nofollow
.
/*ЗАКРЫВАЕМ СТРАНИЦЫ МАГАЗИНА ОТ ПОИСКОВИКОВ*/
add_action( 'wp_head', 'echo_meta_tooo_wp_head' );
function echo_meta_tooo_wp_head() {
$echo = false;
$uri = $_SERVER['REQUEST_URI'];
//if (mb_strstr($uri, 'cart')) $echo = true;
if (mb_strstr($uri, 'checkout')) $echo = true;// слаг checkout (хвостик ссылки) в адресе документа...
if (mb_strstr($uri, 'my-account')) $echo = true;
if ($echo) echo "".'<meta name="robots" content="noindex,nofollow" />'."\n";
}
/*ФИН ЗАКРЫВАЕМ СТРАНИЦЫ МАГАЗИНА ОТ ПОИСКОВИКОВ*/
Коли остались какие-то вопросы, задавайте…
…или может быть у вас есть свои варианты по сегодняшней теме – пожалуйста, делитесь…
...А мне остаётся только раскланяться... и пожелать полезной работы в сети
[sssy]
в кино рассмотрим нюансы в работе с условными тегами на примере скрытия страниц пагинации в noindex,follow
mihalica.ru !
Спасибо тебе добрый человек!
Из за такой подставы вукомерца, контент сайта перестал индексироваться… уроды
Пожалуйста, Рома!..
Да – обновы нужны – но, порою, их мощь несказанно удивляет ))
Ну, ничего…
Подскажите, пожалуйста, а как на страницы фильтров товаров (например,
//mysite.ru/oborydovanie/?orderby=popularity
) добавить мета-тэг ?Чтобы закрыть от индексации дублирующие страницы с параметрами типа
?orderby=price
Сайт на вордпрессе, используеться woocomerce. Запрет на индексацию в robots.txt не всегда помогает. Вот и возникла такая задача.
Этот ваш код подойдет? (не силен в php):
Спасибо.
Вот этот мета-тег:
meta name="robots" content="noindex,nofollow"
Да, этот метатег использовать правильнее и надёжнее, нежели применять для “закрывания” документов средства
robots.txt
.Если поставите
oborydovanie
то все ссылки с этим “типом” будут прикрытыnoindex,nofollow
или, что на мой взгляд, ловчееnoindex,follow
!Только смотрите, чтоб не закрыть саму страницу товара!
я ж не вижу вашей примерной и реальной конструкции ссылки на товар… чтоб конкретно помочь.
вот как пример, покатит?
Ну, в принципе должно покатить… хотя проще все архивы закрыть. Нет?
токо имя функции поизящнее какое-нить, что ли.
и
add_action( 'wp_head', 'noindex' );
выше функции поставить… для субординации))Попозже на практике тестону…
Спасибо, за пример…
Большое спасибо за статью. Уже второй день Гуглю. Подскажите если в hook в функцию что вы указали поставить в checkout ?orderby . Закроет в индексе станицы сортировки ?
Здравствуйте Юрий!
Если вы имели в виду самый финальный код, то в его недрах указываются только СЛАГИ страниц!
Последите “у себя” внимательно URL сформированных “отсортированных” страниц!..
Можете почитать о шорткодах WOOC – там найдёте ответы на Ваш вопрос.
Если я Вас правильно понял.
Поставил
if (mb_strstr($uri, '?orderby')) $echo = true;//
Выводит.
Нет, Юрий, так выдаст ошибку!
…Ваш подход ошибочен: Вы отфильтруйте какой-то товар по “данным”, и посмотрите сформированную ссылку на страницу… И в этой ссылке отыщете ответ.
Переменная
$uri
– обусловит адрес страницы сайте (и только), – GET запросы к этой странице.Хотя закрыть от индекса возможно и не только этим способом.
А как правильно ? Чтобы выводит noindex для страниц фильтра бренда или сортировки товара
По сути WOOC работает по своему классическому “плагинному” стандарту – для всех владельцев!
А вот шаблоны могут иметь отличия меж собой… Поэтому – правильно, иметь под рукой рабочий сайт (и чёткие требования владельца), чтобы делать выводы и рекомендации.
Попробуйте решить задачу по принципу предыдущего комма.
Повторюсь: это, если я Вас правильно понял.
Ну в принципе , там так и есть . Url и Get запрпос
//e-centre.com.ua/cat/kley/?filter_brend=ceresit
Ну, в этом конкретном случае всё правильно работает: Ваша примерная страница закрыта в
noindex,nofollow
!Спасибо! Вчера даже не мог понять как это сделать. А Google начал показывать эти дубли. Стоит Yoast SEO но не нашел варианта, как эти дубли убрать.
СПАСИБО!
Такое случается с Yoast SEO – ну и замечательно, что разобрались!!
Тестируйте теперь: дубли уйдут не сразу!
Подскажите этот hook который в комментариях. что делает выводит. Показывает пустую страницу, ведь нет noindex?
Этот код, как я понимаю, комментатор дал для примера (он не полный).
Лично я его не тестировал, чтобы что-то о нём конструктивно говорить… (нужно вечерком попробовать: сейчас нет под рукой сайта для примера)
Оператор
echo "";
снабдите по своим требованиям: типа так –echo "".'<meta name="robots" content="noindex,nofollow" />'."\n"
Я код изменил мальца!!!!!
Понял. Спасибо! Заполнить Оператор
echo "";
Доброго времени суток, такой вопрос. У меня сдвоение тегов
Robots: index, follow || noindex,follow
Мне нужно оставить noindex, follow. При добавлении ниже описанного кода убирается noindex,follow. Т.е. вторая пара, которую я и хочу оставить. Выручайте пожалуйста как это сделать.
Здравствуйте Эдгар!
Всё правильно! в комментарии к коду ясно сказано, что код убирает
noindex_follow
На какой именно странице магазина так, как вы описали, выводятся теги?
По сути – просто! точно также уберите ненужный тег
index, follow
, аnoindex,follow
оставьте!..Как вы прикрепляли в мета
index, follow
помните? подобным способом (до наоборот) и уберите…Хотя, предполагаю… у вас на страницах возникнет каша в этих тегах… Вы, вероятно, используете плагин для вызова
index, follow
?Для того, чтобы помочь и подсказать что-то более определённое, неплохо бы взглянуть на код сайта…
Или, если у вас мета организовано без плагина, взгляните видео под статьей, там всё ну очень подробно рассказано… или прочтите ЭТУ статью по работе с условными тегами т.е. можно самостоятельно организовать вывод мета Robots
Михаил спасибо за ответ, честно сайт достался от разработчика с которым потеряна связь, если вам нужна ссылка то вот chief116.ru. Данные теги вызываются на странице заказов, причина почему вообще решил убрать их так как они индексируются. Как до этого делали не знаю, на сайте установлен Yoast Seo
Понятно!
Посмотрите в настройках Yoast Seo – там, возможно, установлены правила Роботс…
Либо откройте редактирование страницы Заказов – оформление заказа, корзина являются стандартными страницами WP – и посмотрите как там обстоят дела в настройках организации мета… Это если мета-установки реализованы посредством плагина. А если в коде, то вот пост по условным тегам WOOC
Условные теги woocommerce — наиболее полная подборка, подробные пояснения, примеры…
Шорткоды Woocommerce и их применение
Настройка виджетов WooCommerce. Поправьте “редакции” разработчика и – готово дело))
Спасибо решил, на странице плагином было добавлено.
Замечательно!
Желаю удачи! …заходите и впредь)
Спасибо
Корзина закрыта, но есть страницы индексируются, в вебмастере такие страницы появились:
/shop/?add-to-cart=2259
/shop/?add-to-cart=2317
И эти страницы “запросов” нужно закрывать…
Этого в статье нет. Добавлю…
Да, это очень важно!
Пока я готовлю редакцию поста – попробуйте прочесть ЭТОТ пост: по примерам и вариантам сниппетов можно что-то для себя решить.
Михаил добрый день!
Подскажите пожалуйста, как убрать из индексации страницы добавления в Корзину, типа
mytupperware.spb.ru/kak-poluchit-idealnoe-testo-dlya-vypechki-za-3-prostyh-shaga/?add-to-cart=49147
или добавления в
wishlist
mytupperware.spb.ru/products/izmelchitel-supersonic-kompakt-300-ml/?_wpnonce=d136125582&add_to_wishlist=47221
Спасибо!
Привет, Илья! Вам нужно узнть каким образом у вас на этих страницах установлены теги: index, follow – ну а затем изменить их в требуемые вам т.е. noindex и nofollow…
Чтоб что то-сказать более детальное по вопросу, нужно конкретно смотреть сайт)