Как удалить wp-json и oembed в WordPress

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

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

В очередной раз заглянув в панель Яндекс Вебмастер, я обнаружил у этого сайта большое количество загруженных и исключенных страниц. Я был в шоке! Робот проиндексировал более 1000 не нужных страниц! Среди исключенных страниц обнаружились страницы с wp-json/, а в этой папке еще одна папка oembed с еще кучей страниц.

как убрать wp-json

Всему виной критическая ошибка, которая появилась с новым обновлением WordPress 4.4. Новая версия движка WordPress создает специальную виртуальную директорию для API REST, в которой размещается никому не нужная информация.

Эти страницы ничего ценного не содержат кроме «мусора«, котором забивается блог,
что приводит к проблемам с ранжированием сайта в поисковиках.

Но что самое страшное, так то, что с обновлением WordPress до новой версии этот сайт, как и другие мои сайты потерял поисковый трафик и это очень серьезно!

Как удалить wp-json и oembed в WordPress?

Решение очень простое, нужно добавить в файл functions.php нужный код, который отключит все, что отвечает за REST API и сделает переадресацию с этих страниц на главную. Код ниже нужно вставить в файл темы functions.php, после тега <?php


/*-----------------------------------------------------------------------------------*/
/* Боримся с wp-json
/*-----------------------------------------------------------------------------------*/

// Отключаем сам REST API
 add_filter('rest_enabled', '__return_false');

// Отключаем события 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 );

// Отключаем фильтры 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 );

//Отключаем type="application/json+oembed"
 remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );
 remove_action( 'wp_head', 'rest_output_link_wp_head' );
 remove_action( 'template_redirect', 'rest_output_link_header', 11, 0 );

После этих манипуляций, «мусорные» страницы перестанут генерироваться и со временем полностью исчезнут из индекса поисковиков.

Update: 20.04.2016

После нескольких обновлений выдачи Яндекса, количество просканированных wp-json страниц уменьшилось в разы! Из более тысячи страниц остались 194 страницы! См. рис. ниже:

просканированные wp-json страницы

Думаю не за горами и рост трафика.

Так же советую прочитать мою прошлую статью про лишний код в разделе head. Как видите хорошая оптимизация блога на WordPress быстро приносит свои плоды!

~~~~~

Поделитесь в комментариях как вы с этим поборолись.
Может есть что добавить в этот код?

 







Комментарии
  1. dima
  2. dima
  3. Раиса
  4. Раиса
  5. Гена
  6. Гена
  7. Дмитрий
    • Alex
  8. Юлия
  9. Александр
  10. Ава
  11. Ава
  12. Ава
    • @lexei
  13. Ава
    • @lexei
  14. Гена

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