Как убрать max-image-preview, max-snippet, max-video-preview в Wordpress
Wordpress

Как убрать max-image-preview, max-snippet, max-video-preview в WordPress

Ответ на вопрос простой. Нужно добавить несколько в файл functions.php в шаблоне (теме), который вы используете в данный момент. Вот эти строчки:

remove_filter( 'wp_robots', 'wp_robots_max_image_preview_large' );
add_filter( 'wpseo_robots_array', 'walkpress_remove_snippet_settings' );
function walkpress_remove_snippet_settings( $robots ) {
	unset($robots['max-snippet']);
	unset($robots['max-image-preview']);
	unset($robots['max-video-preview']);
	return $robots;
}

На этом всё, “урок” окончен. 100% работает (по крайней мере, на момент публикации статьи, проверено на нескольких собственных проектах).

А теперь разберёмся, что это, как работает и вообще для чего убирать эти штуки.

CMS WordPress не стоит на месте и постоянно развивается, обновляется и расширяется. Это хорошо, потому что, кто бы что ни говорил, а вордпресс остаётся самой популярной системой управления сайтами, с самым большим сообществом. К этому сообществу относимся и мы. Мы регулярно берём заказы на создание, техническую поддержку и доработки сайтов на WordPress. Отчасти поэтому статьи на этом сайте выходят редко. Просто нет на них времени, хотя писать есть о чём и переводить есть что. И про WordPress, и не только про него.

В то же время, многие функции нам не нужны. Либо нужны, но настраивать нужно руками. А здесь всё пихается автоматом. В последних версиях вы могли заметить, что, например, и xml карты стали генерироваться автоматически (это тоже можно отключить). С недавнего времени, а именно с версии 5.7, если сайт открыт для индексации, то в meta robots стала автоматически добавляться директива max-image-preview:large.

Для чего нужна директива max-image-preview:large?

Эта директива позволяет поисковым роботам использовать для предварительного просмотра изображений их большие версии, исключая дубли. Вроде как и полезная функция. Кто-то скажет, что экономит краулинговый бюджет и т.д. Но кто-то старой закалки не любит нововведения, кто-то считает её бесполезной, а кому-то просто она не нравится. Собственно, не важно кто по какой причине хочет убрать, мы показали как это сделать в самом начале поста. Пока не доказана полезность, мы решаем её отключать.

А откуда взялись max-snippet и max-video-preview спросите вы?

Всё просто. Популярный (в нашем случае он используется не на всех сайтах, но на подавляющем большинстве) плагин для внедрения настроек SEO – Yoast SEO. Начиная с версии 12.2, они стали автоматом добавлять в тот же meta robots директивы max-snippet:-1, max-video-preview:-1.

Что за они? Несколько лет назад Google разрешил вебмастерам самостоятельно определять как страницы их сайта будут отображаться в поисковой выдаче. Например, строка <meta name=”robots” content=”max-snippet:50,max-video-preview:15″> указывает, что максимальное количество символов в сниппете 50, а максимальная длительность предпросмотра видео – 15 секунд.

Опять же, вроде как полезная и удобная штука. Но на деле не всегда работает. В плагине Yoast автоматически ставятся значения “-1”, что эквивалентно “ограничений нет”. Однако на практике у нас на паре проектов внезапно посыпались позиции, и было непонятно почему. Оказалось, что эта функция просто-напросто поломала все наши красивые сниппеты (хотя по идее не должна была, т.к. это же значит, что ограничений нет). Эти директивы в плагине нельзя перенастроить пакетно или одной кнопкой в плагине просто отключить. В те времена, когда это только начиналось, мы очень грубым способом убирали эти директивы из метатега. Просто заходили в код плагина и удаляли строки. Мы открывали папку плагина: wordpress-seo — frontend — class-frontend.php. И в этом файле, в строке 788 удаляли эти директивы. Затем где-то с 14 версии плагина, код поменялся. Путь уже стал wordpress seo — src — presentations — indexable-presentation.php. Нужно было удалять строки 233, 234, 235. На сегодняшний день это уже строки 285, 285 и 286.

Ещё была и max-image-preview:large, и также удалялась из кода. Сейчас, если это сделать, эта директива в метатеге всё равно останется, потому что теперь она ещё и вордпрессом по умолчанию добавляется, как мы описали чуть выше. Поэтому код, решающий эти проблемы, состоит из двух строк. Строка remove_filter( ‘wp_robots’, ‘wp_robots_max_image_preview_large’ ); удаляет то, что добавляет WordPress.

Но потом мы прокачались и узнали, что не нужно каждый раз лазить в код (а ведь после обновления плагина строки, разумеется, возвращались на место). И в файл functions.php нужно всего лишь добавить строки, которые берут массив с содержанием метатега robots и удалить из этого массива лишнее. Теперь хоть заобновляйся, в robots ничего не будет добавляться лишнего.

Пока что никаких проблем не возникало.

Если кто-то хочет переубедить нас, что эти директивы очень нужны – вэлкам в комменты.

Комментариев нет

Оставить комментарий

Ваш email не будет опубликован.

Ещё статьи по теме
Pin It on Pinterest