Приветствую Вас в новой статье! Не так давно, я узнал, что в новых версиях WordPress, появилась проблема с дублями страниц, которые создает WP-JSON (WordPress JSON REST API). Таким образом, в индексации Яндекс, может появиться не одна тысяча мусорных страниц сайта.
[hr]Читайте также: как удалить смайлы Эмодзи на сайте WordPress[hr]
Но, как известно, на сайте должен индексироваться только нужный контент, а не разный хлам. Приблизительно неделю назад, я отключил все возможные коды WP-JSON в шапке блога, но мусора в индексе все равно еще много. Со временем все дубли созданные джейсоном, должны с индекса отпасть.
Функционал WP-JSON стали потихоньку внедрять в движок WordPress, но на данном этапе он находится на стадии разработки, как я понимаю, поэтому его лучше удалить. Я проверил пять сайтов на движке WordPress, и на трех из них джейсон все еще подключен.
[lazy_load_box effect=»slidefromleft» speed=»1900″ delay=»10″]
Как узнать, подключен ли WP-JSON на сайте?
Откройте код любой страницы Вашего сайта, а затем через поиск (клавиши Ctrl + f) попробуйте найти WP-JSON. Должно быть найдено три ссылки, которые подключаются через
<link rel='https://… … … … //….ru/wp-json/' />
Также, если в адресной строке ввести http://ваш-сайт.ru/wp-json, откроется страница с кучей непонятного кода, или может открыться копия главной страницы сайта.
Как удалить WP-JSON на сайте WordPress
Удалить код с WordPress, можно с помощью некоторых плагинов, или путем добавления специального кода в файл темы. Если Вы не хотите лезть самостоятельно в код, тогда можете воспользоваться плагином Clearfy или Disable JSON API. Плагин Clearfy — платный, но с его помощью, можно устранить не только код, описанный выше, но и многие другие проблемы.
Проверить бесплатно свой сайт на ошибки, можно по этой ссылке. Введите в поле адрес сайта, а затем жмите «Проверить». Все найденные ошибки будут выявлены, которые можно легко исправить с помощью этого плагина. Второй плагин — Disable JSON API, который также поможет избавиться от этого кода, но раздел /wp-json/ на сайте он не удаляет.
Но, если Вы не хотите устанавливать на сайт дополнительные плагины, можете вставить код, который нужно добавить в файл function.php. Файл этот находится в теме Вашего сайта. Скопируйте код ниже, а затем вставьте его в самое начало файла, после <?php, или в конце файла, перед ?>.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
/* * Отключаем wp-json * https://dvpress.ru/kak-udalit-wp-json-i-oembed-s-sajta-wordpress.html */ // Отключаем WP-API версий 1.x add_filter( 'json_enabled', '__return_false' ); add_filter( 'json_jsonp_enabled', '__return_false' ); // Отключаем WP-API версий 2.x add_filter( 'rest_enabled', '__return_false' ); add_filter( 'rest_jsonp_enabled', '__return_false' ); // Удаляем информацию о REST API из заголовков HTTP и секции head remove_action( 'xmlrpc_rsd_apis', 'rest_output_rsd' ); remove_action( 'wp_head', 'rest_output_link_wp_head', 10 ); remove_action( 'template_redirect', 'rest_output_link_header', 11 ); // Отключаем фильтры REST API remove_action( 'xmlrpc_rsd_apis', 'rest_output_rsd' ); 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 ); // Убираем oembed ссылки в секции head remove_action( 'wp_head', 'wp_oembed_add_discovery_links' ); // Если собираетесь выводить oembed из других сайтов на своём, то закомментируйте следующую строку remove_action( 'wp_head', 'wp_oembed_add_host_js' ); |
Так Вы удалите на сайте не только wp-json, но и oEmbed.
[hr]oEmbed — это формат, который позволяет внедрять на сайт контент через URL с внешних ресурсов (например, фото или видео).[hr]
Чтобы убедиться в устранении проблем, перейдите по адресу http://сайт.ru/wp-json, и убедитесь, что страница выдает ошибку 404, которая означает, что страница не существует. Также в открытом коде сайта не должно быть найдено WP-JSON.
Да, Людмила, надо подождать, когда все ненужное, что проиндексировали поисковику будет удалено. Плагин хорош тем, что не надо в коды лезть, и что-то редактировать. Как говорится: установил — и забыл )
активировала плагин, вещь точно отличная, настраивается несложно. У меня мусора хватает, буду ждать когда уберется лишнее
Приветствую, Людмила! Конечно помогу, если будут какие-то вопросы по плагину. А вот обзор я вряд ли смогу написать, т. к. у меня этот плагин не установлен.
Юра, привет! Купила плагин по твоей ссылке, если буду вопросы — поможешь? Может обзор по этому плагину написать подробный, кажется, вещь хорошая!