<
  • Главная
Статьи

Главная Новости

Как отключить wp-json?


Опубликовано: 01.09.2018

видео Как отключить wp-json?

Устраняем проблему с WP-JSON после обновления WordPress

После последнего обновления Яндекса я совершенно случайно обнаружил, что у меня на сайте в индексе появилась ТЫСЯЧА новых страниц! Я не мог написать столько статей за пару недель между АПами и поэтому это было НЕНОРМАЛЬНО.


Как удалить Wp json и oEmbed коды на сайте WordPress

Яндекс Вебмастер показывал мне источник проблемы - раздел /wp-json/ на сайте. Но на практике такой папки на сайте не оказалось, и я понял, что придется попотеть.

У меня уже был опыт с удалением дорвеев , которые мне заливали на сайты злобные хакеры, и тут я подумал, что опять мне кто-то подсунул какую-то гадость.


Ошибки wp-json в индексе Яндексе Wordpress 4.4 (мусорные страницы)

При заходе на адрес https://prostolinux.ru/wp-json я получал страницу с таким кодом:

{"name":"\u041f\u0440\u043e LINUX, SOFT \u0438 HARDWARE.","description":"\u041f\u0440\u043e\u0441\u0442\u043e \u043e Linux, SEO \u0438 FOREX.","url":"http:\/\/prostolinux.ru","namespaces":["oembed\/1.0"],"authentication":[],"routes":{"\/":{"namespace":"","methods":["GET"],"endpoints":[{"methods":["GET"],"args":{"context":{"required":false,"default":"view"}}}],"_links":{"self":"http:\/\/prostolinux.ru\/wp-json\/"}},"\/oembed\/1.0":{"namespace":"oembed\/1.0","methods":["GET"],"endpoints":[{"methods":["GET"],"args":{"namespace":{"required":false,"default":"oembed\/1.0"},"context":{"required":false,"default":"view"}}}],"_links":{"self":"http:\/\/prostolinux.ru\/wp-json\/oembed\/1.0"}},"\/oembed\/1.0\/embed":{"namespace":"oembed\/1.0","methods":["GET"],"endpoints":[{"methods":["GET"],"args":{"url":{"required":true},"format":{"required":false,"default":"json"},"maxwidth":{"required":false,"default":600}}}],"_links":{"self":"http:\/\/prostolinux.ru\/wp-json\/oembed\/1.0\/embed"}}},"_links":{"help":[{"href":"http:\/\/v2.wp-api.org\/"}]}}

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

Но как это Яндекс так быстро нашел все эти страницы? Оказалось все просто: в шапке сайта (посмотрел исходный код страницы, в header.php этого нет) болтались три замечательные ссылки на всю эту ерунду, да еще и с картой XML для ЛУЧШЕГО индексирования!

<link rel='https://api.w.org/' href='https://prostolinux.ru/wp-json/' /> <link rel="alternate" type="application/json+oembed" href="https://prostolinux.ru/wp-json/oembed/1.0/embed?url=http%3A%2F%2Fprostolinux.ru%2F" /> <link rel="alternate" type="text/xml+oembed" href="https://prostolinux.ru/wp-json/oembed/1.0/embed?url=http%3A%2F%2Fprostolinux.ru%2F&#038;format=xml" />

Как удалить ссылки link rel?

Первое, на что у меня хватило ума - это удалить эти ссылки. Для этого в function.php  прописал немного кода. Нашел это на англоязычном сайте, там уже пошла паника по этому поводу и кто-то предложил такой способ решения проблемы:

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 );

Но проблема до конца не была решена, хотя ссылки пропали, сами виртуальные страницы остались. Немного покопавшись в интернете я нашел решение этого вопроса у одного известного блогера .

WP-json что это?

Как оказалось, проблема была в новой версии WordPress. Начиная в версии 4.4 они ввели новый API REST, который наплодил у всех кучу мусорных страниц в виртуальной директории wp-json.

Решить вопрос можно просто, отключив опять же все это через function.php, добавив туда кучу кода:

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

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

Как оказалось, я только этот сайт обновил до версии 4.4 и поэтому у других моих проектов таких проблем нет. Я пока не буду их обновлять и вам не советую, а если вы уже это сделали, то добавьте приведенный в статье код в function.php, чтобы избежать проблем.

Еще очень полезно установить на сайт три плагина:  Disable WordPress Core Updates, Disable WordPress Plugin Updates и  Disable Theme Updates.

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

ВНИМАНИЕ : Полное отрубание wp-jons отключает некоторые функции плагинов, например, в SEO YOAST, так как что лучше всего закрывать просто в robots.txt

СОВЕТ ВЕБМАСТЕРУ: Умение зарабатывать в интернете - это только пол дела, вторая половина - это умение ВЫГОДНО обналичивать электронные деньги. Вот список офшорных банковских карт, на которые можно выводить средства и потом снимать с них хрустящие купюры:

1. Epayments - можно открыть счет в долларах, евро и рублях. Формально банка нет, юридический адрес в Лондоне, но можно получить реквизиты банка в Латвии.

2. AdvCash - Офшорный банк находится в Белизе, можно открыть счет в долларах, евро, фунтах и рублях.

3. Payeer - Штаб квартира этой платежной системы находится в Грузии, тут так же можно открыть счет в долларах, евро и рублях.

4. Capitalist - Можно создать счета в долларах, евро и рублях. Низкие тарифы на вывод. Компания зарегистрирована в юрисдикции Британских Виргинских Островов.

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



Новости
  • Виртуальный хостинг

    Виртуальный хостинг. Возможности сервера распределяются в равной мере между всеми... 
    Читать полностью

  • Редизайн сайта

    Редизайн сайта – это полное либо частичное обновление дизайна существующего сайта.... 
    Читать полностью

  • Консалтинг, услуги контент-менеджера

    Сопровождение любых интернет ресурсов;- Знание HTML и CSS- Поиск и обновление контента;-... 
    Читать полностью

  • Трафик из соцсетей

    Сравнительно дешевый способ по сравнению с поисковым и контекстным видами раскрутки... 
    Читать полностью

  • Поисковая оптимизация

    Поисковая оптимизация (англ. search engine optimization, SEO) — поднятие позиций сайта в результатах... 
    Читать полностью

rss