2

WP json oembed 1.0 что это такое и как с этим бороться

Здравствуйте, друзья. Сегодня поговорим о новых дублях страниц WP json oembed 1.и как их удалить.  Где-то  месяц назад, анализируя свой сайт в “Яндекс вебмастер”, обратил внимание на резкое  увеличение количества проиндексированных  статей. Сперва не придал этому особого значения и оставил на потом.

Два дня назад, при очередном анализе в вебмастере количество статей в индексе оказалось почти пятьсот шук, при реальном количестве 70 статей.  Ничего себе фига, сюрприз. Причиной данной проблемы, стало очередное обновление WordPress до версии 4.4.

indeks-stranits-vzlet

Что такое wp json oembed и какую опасность он несет для блога.

Разработчики внедрили новый интерфейс REST API под управлением, которого и работает wordpress CMS. При помощи данного интерфейса, в будущем, будет обеспечен доступ к нашему сайту через специальные приложения.

WordPress REST API – это общий интерфейс данных и программирования, который позволяет считывать и записывать информацию в WordPress через разные приложения. Теперь разработчикам, которые нацелены на работу с WordPress, не понадобится углубленно разбираться в WP.
Разработчики смогут выполнять практически все функции управления данными и считывания данных, которые возможны в PHP, воспользовавшись новым API
.

Это сделано с перспективой на развитие, таким образом разработчики будут получать доступ к данным наших сайтов через специальные приложения. Вот только они совершенно не задумались о том, что это привело к созданию  дублей страниц, которые с хорошим аппетитом кушает Яндекс.

ubiraem-dubli-json

Если мы введем в адресной строке браузера http://site.ru/wp-json, то нас перекинет на непонятную XML-страницу, или на копию главной страницы сайта. И что самое страшное, что роботы данную страницу благополучно индексируют. Это может привести к проблемам ранжирования сайта, наложению санкций и фильтров от поисковиков. Поэтому, желательно срочно исправить данную проблему.

dubli-stranits-oembed

Убираем Wp-json, Oembed, Embed.

Для удаления этого вредоносного кода, необходимо внести изменения в файл functions.php вашего сайта. Таким образом вы пропишите команды, которые уберут весь мусор и при посещении страницы  http://site.ru/wp-json будет отдаваться ошибка 404. Итак, переходим в свой файл functions.php через админ панель сайта или с помощью FTP доступа, и в самом конце, перед ? > вставляем следующий код.

// Отключаем сам REST API
add_filter('rest_enabled', '__return_false');
 
// Отключаем фильтры REST API
remove_action( 'xmlrpc_rsd_apis', 'rest_output_rsd' );
remove_action( 'wp_head', 'rest_output_link_wp_head', 10, 0 );
remove_action( 'template_redirect', 'rest_output_link_header', 11, 0 );
remove_action( 'auth_cookie_malformed', 'rest_cookie_collect_status' );
remove_action( 'auth_cookie_expired', 'rest_cookie_collect_status' );
remove_action( 'auth_cookie_bad_username', 'rest_cookie_collect_status' );
remove_action( 'auth_cookie_bad_hash', 'rest_cookie_collect_status' );
remove_action( 'auth_cookie_valid', 'rest_cookie_collect_status' );
remove_filter( 'rest_authentication_errors', 'rest_cookie_check_errors', 100 );
 
// Отключаем события REST API
remove_action( 'init', 'rest_api_init' );
remove_action( 'rest_api_init', 'rest_api_default_filters', 10, 1 );
remove_action( 'parse_request', 'rest_api_loaded' );
 
// Отключаем Embeds связанные с REST API
remove_action( 'rest_api_init', 'wp_oembed_register_route');
remove_filter( 'rest_pre_serve_request', '_oembed_rest_pre_serve_request', 10, 4 );
 
remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );

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

normalnyiy-indeks

Ваш сайт будет снова работоспособным и чистым. Я надеюсь, при очередных обновлениях движка,  разработчики WordPress исправят эту ошибку .

stranitsyi-v-indekse

Совет: Для того, чтобы избежать проблем с индексацией и выдачей в дальнейшем, систематически проводите анализ своего сайта в панелях вебмастера Яндекс и Гугл. Особенно это надо выполнять после очередного обновления CMS и выдачи поисковиков.  

Насколько вы смогли понять данная операция с кодом временная. При очередной смене шаблона сайта или обновлении движка wordpress, вам понадобится повторить все манипуляции с кодом заново. Можно дополнительно подстраховаться внесением в файл robots.txt дополнительной директивы.

Disallow: /wp-json/

Что поможет защитить от появления мусорных страниц, после обновлений темы и движка сайта. Хотя я считаю, что внесение данной директивы не совсем корректно.

Дальнейшее изучение темы борьбы с WP json oembed 1.0 привело меня к принятию решения, установить один замечательный плагин, который разом решит все вопросы с дублированным контентом и разного рода мусором.  И хотя, я не являюсь сторонником установки дополнительных плагинов на свой сайт, это решение показалось мне оправданным.

А новичкам, которым сложно ковыряться с кодом и нет желания прибегать к услугам фриланса, установка специального плагина является единственно правильным решением. Но это уже тема следующей статьи.   Спасибо за внимание. Всем всего доброго!

комментария 2
  1. admin
    11.02.2017 в 20:24

    Андрей, здравствуйте. Я на своем сайте решил задачу борьбы с дублями и мусором при помощи плагина Clearfy. Вполне можно использовать и ваш вариант запретив индексацию wp-json в файле robots.txt. Удачи!

  2. Андрей
    11.02.2017 в 13:18

    Сергей прочитал статью и бегом проверять! Сайт еще только запустил, он еще даже весь не проиндексировался! У меня сейчас Вордпресс версии 4.7.2 и он прекрасно открывает эту страницу с добавлением к адресу сайта wp-json! Получается что проблему до сих пор не решили и лучше внести изменения в файл functions.php, чтобы удалить эту гадость? И еще а если просто внести изменения в файл robots.txt (Disallow: /wp-json/) то тогда в файл functions.php изменять не надо? Спасибо вам большое!

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.