Здравствуйте, друзья. Сегодня поговорим о новых дублях страниц WP json oembed 1.0 и как их удалить. Где-то месяц назад, анализируя свой сайт в “Яндекс вебмастер”, обратил внимание на резкое увеличение количества проиндексированных статей. Сперва не придал этому особого значения и оставил на потом.
Два дня назад, при очередном анализе в вебмастере количество статей в индексе оказалось почти пятьсот шук, при реальном количестве 70 статей. Ничего себе фига, сюрприз. Причиной данной проблемы, стало очередное обновление WordPress до версии 4.4.
Что такое wp json oembed и какую опасность он несет для блога.
Разработчики внедрили новый интерфейс REST API под управлением, которого и работает wordpress CMS. При помощи данного интерфейса, в будущем, будет обеспечен доступ к нашему сайту через специальные приложения.
Это сделано с перспективой на развитие, таким образом разработчики будут получать доступ к данным наших сайтов через специальные приложения. Вот только они совершенно не задумались о том, что это привело к созданию дублей страниц, которые с хорошим аппетитом кушает Яндекс.

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

Ваш сайт будет снова работоспособным и чистым. Я надеюсь, при очередных обновлениях движка, разработчики WordPress исправят эту ошибку .
Насколько вы смогли понять данная операция с кодом временная. При очередной смене шаблона сайта или обновлении движка wordpress, вам понадобится повторить все манипуляции с кодом заново. Можно дополнительно подстраховаться внесением в файл robots.txt дополнительной директивы.
Что поможет защитить от появления мусорных страниц, после обновлений темы и движка сайта. Хотя я считаю, что внесение данной директивы не совсем корректно.
Дальнейшее изучение темы борьбы с WP json oembed 1.0 привело меня к принятию решения, установить один замечательный плагин, который разом решит все вопросы с дублированным контентом и разного рода мусором. И хотя, я не являюсь сторонником установки дополнительных плагинов на свой сайт, это решение показалось мне оправданным.
А новичкам, которым сложно ковыряться с кодом и нет желания прибегать к услугам фриланса, установка специального плагина является единственно правильным решением. Но это уже тема следующей статьи. Спасибо за внимание. Всем всего доброго!

sergeyneznamov.ru
Чем чревато игнорирование wp-json
Появляется куча мусорных страниц, которые отрицательно отражаются на развитии блога/сайта. Появившиеся страницы связаны с картой xml, а значит, яндекс робот моментально их индексирует и в результате, в индексе возникает куча дублей. Но а дальше всё по накатанной: занижение позиций в поиске, уменьшение трафика, да + возникают ненужные исходящие ссылки.
Как проверить наличие wp-json на своём сайте
- Зайти в аккаунт Яндекс Веб-мастер, найти графу «Индексирование», далее «Структура сайта». Если в открывшимся окне увидите раздел «wp-json» — поздравляем! Срочно примите меры для его устранения.
- В поисковой строке добавьте к вашему домену/ wp-json. Если вылезет что-то подобное:
вы в числе счастливчиков! Срочно исправлять.
Решение всех проблем
Решение придумано не лично нами, а взято из разных источников. Тестировали каждый способ и в итоге, мы нашли то, что помогло нам избавится от проблем. Итак, давайте приступим ?
- Обязательно сделать back-up!
- Установить связь с сервером с помощью ftp-клиент (например, File Zilla).
- Найти и скопировать на свой компьютер файл functions.php, который расположен: public_html/ wp-content/ themes/ папка с названием вашей темы / файл functions.php
- Открыть скопированный файл в Notepad++ и немного его редактировать.
Добавляем код, указанный ниже в самый конец файла ОБЯЗАТЕЛЬНО до ?>.
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 ); add_filter('rest_enabled', '__return_false'); remove_action( 'xmlrpc_rsd_apis', 'rest_output_rsd' ); remove_action( 'wp_head', 'rest_output_.
s', 'rest_cookie_check_errors', 100 ); remove_action( 'init', 'rest_api_init' ); remove_action( 'rest_api_init', 'rest_api_default_filters', 10, 1 ); remove_action( 'parse_request', 'rest_api_loaded' ); remove_action( 'rest_api_init', 'wp_oembed_register_route' ); remove_filter( 'rest_pre_serve_request', '_oembed_rest_pre_serve_request', 10, 4 );
На скрине видно, где расположен код у нас.
- Изменённый файл залить обратно.
- Редактировать файл Robots.txt. Вставляем строчку: Disallow: /wp-json/
Можете наглядно увидеть, как мы изменили наш Robots.txt.
Теперь проводим проверку по 2ому способу (он указан выше). Если набор страшных строк – пропадёт и вас перебросит на главную страницу и в адресной строке останется только сайт.ру, без «/wp-json»? — проблема устранилась.
Но, если вы такой же везунчик, как и мы и при проверке перебрасывает на главную страницу, но в адресе сайта всё-таки есть вп-джейсон (что является дублем) – возвращаемся на доработку кода в файле functions.php.
Для редиректа с сайт.ру/wp-json/ на главную и редиректа всех вложенных директорий, Вам нужно будет к уже добавленному ранее коду дописать следующее:
add_action( 'template_redirect', function() { if ( preg_match( '#^/wp-json/(.*)#', $_SERVER['REQUEST_URI'] ) ) { wp_redirect( get_option( 'siteurl' ), 301 ); die(); } } );
Опять же, ОБЯЗАТЕЛЬНО до ?>. Скрин для лучшего понимания прилагается.
Делаем повторную проверку. Действия, перечисленные выше, помогли нам разобраться с тем, как убрать wp-json и oembed из новой версии WordPress. Если возникнут вопросы – обязательно напишите их в комментариях. Постараемся помочь. Уф, сложная статейка получилась. Самое время немного расслабиться и пуститься на прогулку. Пошли мы, а Вам – удачи!
С уважением, Андрей и Даша.
thebizfromscratch.ru
Видеоинструкция
Как видите, это решение очень простое, но на самом деле, оно позволит уберечь ваш сайт от очень серьезных проблем в будущем. Потому, как уже есть много примеров, и среди моих знакомых в том числе, у которых сайты начали терять свои позиции именно из-за того, что у них в выдаче появлялось очень много мусорных страниц и дублей, связанных с элементом WP-JSON.
Если данная статья была для вас полезна – не забудьте написать комментарий и поделиться статьей в социальных сетях. А на этом у меня все, подписывайтесь на мою рассылку и мой канал на YouTube. До встречи в следующих статьях и видео!
С уважением Юлия Гусарь
impuls-web.ru
Как удалить ссылки 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
Регистрация доменов Домен RU — 99 руб Домен РФ — 99 руб |
zmoe.ru
как отключить ссылку wp-json
Если вы заходили к себе в веб инструментарий Яндекса, то в проиндексированных страницах наблюдали нечто похожее: а именно, среди прочего ссылочного пути некоторых линков встречается вензель wp-json
Я показываю то, что было у меня в вебмастере: вот проиндексированная ссылка…
Так вот …если вы кликните там у себя подобную ссылку — вас перенесёт в довольно-таки странное окно браузера: откроется страничка сплошь уписанная строками кода…
В общем вряд ли есть смысл любоваться этакой изысканностью программного письма…
Кому интересно, можете начать изучение json хотя бы с этого… или с этого…
Ещё вот — такая скринка «структуры» сайта (всё в том же вебмастере Яшки), правда, не очень качественная, но для наглядности сойдёт.
По картинке видно, сколько роботом яндекс обследовано json страничек, загружено/проиндексировано и процентная «доля страниц» в индексе.
Но — поехали))
Остаётся только открыть легендарный файл functions.php
и где-то перед ?>
прописать следующие немаленькие строчки кода.
После того как установите нижепоказанный) код и… сразу же, кликнув по ссылке в панели web мастера Яндекс — вас перебросит на главную страницу вашего же сайта, но не страничку с кодом, о которой говорилось выше…
Вот так вот..!
/** ЧИСТОТА ШАПКИ САЙТА уборка wp-json **/ //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 ); // Отключаем сам 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( 'parse_request', 'rest_api_loaded' ); remove_action( 'rest_api_init', 'rest_api_default_filters', 10, 1 ); // Отключаем 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' ); // если будете выводить вставки из других сайтов на своем, то закомментируйте строку ниже //remove_action( ‘wp_head’, ‘wp_oembed_add_host_js’); /** ЧИСТОТА ШАПКИ САЙТА уборка wp-json**/
(немного отвлекусь)
к оглавлению $
ошибки REST API с обновлением WordPress 5.0 …и пр.
Теперь REST API используется в админке WordPress!!
…продолжаем:
…после того как вас (после клика в вебмастере) перенесло на главную страничку сайта, обратите внимание на путь (ссылку) в адресной строке браузера, которым, в этом случае, обозначена главная страничка!
Так вот-с! …странная будет ссылка. И хотя вряд ли кто-то и когда-то будет переходить по этой «замысловатой» ссылке (в том числе и поисковики) ибо отработка, скажем так, виртуальной папки и ссылки wp-json вследствие прописки нашего кода будет заказана (link из исходника и т.п. пропадёт) но порядка для (всё-таки 100% что либо утверждать невозможно) — думается, будет нелишне… разобраться с вопросом правильного редиректа на домашнюю страничку, чтобы оставалось одно доменное имя:
к оглавлению $
как правильно настроить редирект с https://mihalica.ru/wp-json/ на главную
Online консультация по работе c сайтом на WordPress
Пропишите и этот код в файл functions.php…
Редирект…
/** редирект на главную wp-json **/ add_action( 'template_redirect', function() { if ( preg_match( '#^/wp-json/(.*)#', $_SERVER['REQUEST_URI'] ) ) { wp_redirect( get_option( 'siteurl' ), 301 ); die(); } } ); /** ФИН редирект на главную wp-json **/
…и вновь кликнете в веб мастере по ссылке…
Теперь адресом заглавной страницы сайта будет чистое доменное имя.
Вот таким нехитрым способом мы убрали волнующие ссылки API REST из исходного кода блога/сайта.
как эпилог:
Я прекрасно жил совместно с API json с того момента как заведую этим блогом (месяцев семь): никаких явновыражанных ошибок и багов не наблюдал. В веб мастере да, в «структуре сайта» эта виртуальная папка присутствовала во всей красе… но, ещё раз повторюсь, никаких явных нарушений работы сайта не усмотрел… кроме тревоги от надуманных тысячных дублей страниц, однако — многие о них в сети говорят, и толкуют скрижали апи скрипта по-своему…
Так что принятие решения убрать/оставить json полностью зависит лично от вас! Я ради экса убрал: теперь понаблюдаем-с…
Технические инструкции json rest изучал в англоязычном сегменте… Вы же, коли есть желание посмотреть в глаза API-чуду и изучить лично, можете пройти по этой ссылке… или тем, которые выше.
к оглавлению $
как скрыть версию WordPress — удаляем ненужные элементы wp_head
к очистке шапки сайта и личной совести)) чтобы удалить все теги функции wp_head (или почти все…) пропишите в файл функций строки показанные ниже…
Пояснения в комментариях:
/** ОПТИМИЗАЦИЯ ШАПКИ САЙТА - ПАГИНАЦИЯ - All In One SEO Pack **/ function my_remove_prev_link( $data ) { return false; } add_filter( 'aioseop_prev_link', 'my_remove_prev_link' ); //убр. навиг - листалка главной страницы add_filter( 'aioseop_next_link', 'my_remove_prev_link' ); //убр. навиг /** ОПТИМИЗАЦИЯ ШАПКИ САЙТА - ПАГИНАЦИЯ - All In One SEO Pack **/
…и ещё…
/** ОПТИМИЗАЦИЯ ШАПКИ САЙТА **/ remove_action( 'wp_head', 'feed_links_extra', 3 ); // откл доп фид лент remove_action( 'wp_head', 'feed_links', 2 ); remove_action( 'wp_head', 'rsd_link' ); // откл доп фид лент remove_action( 'wp_head', 'wlwmanifest_link' ); // ссылки главную страницу, первый пост, следующий, предыдущий remove_action( 'wp_head', 'index_rel_link' ); remove_action( 'wp_head', 'start_post_rel_link', 10, 0 ); remove_action( 'wp_head', 'parent_post_rel_link', 10, 0 ); remove_action( 'wp_head', 'adjacent_posts_rel_link', 10, 0 ); // ссылки главную страницу, первый пост, следующий, предыдущий remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 ); // Убираем связанные ссылки remove_action( 'wp_head', 'wp_generator' ); // запрет показа версии вордпресс remove_action( 'wp_head', 'wp_shortlink_wp_head', 10, 0 ); // Короткая ссылка, ссылка без ЧПУ //add_filter( 'show_admin_bar', '__return_false' ); // запрет админбара /** ФИН ОПТИМИЗАЦИИ ШАПКИ САЙТА **/
к оглавлению $
как убрать полностью показ cms сайта (generator) и его версию
Обратите внимание на строку 13 в коде показанном выше… Посредством этой строки мы уберём следующий метатег в исходном коде:
<meta name="generator" content="WordPress 9.9.9" />
Вообще, стоило бы для начала поработать с файлом вашей темы header.php
но касательно этой темы у меня написаны иные статьи…
Для чего все эти «закрывашки» нужны, думаю, вам известно!
…а значит пойдём дальше… ибо многие на этом этапе СКРЫТИЯ CMS останавливаются: рекомендую дочитать статью до финала!
к оглавлению $
как убрать отображение версии движка из фида-ленты
/*** защита сайта запрет показа версии движка сайта ***/ function remove_version() { return ''; } add_filter('the_generator', 'remove_version'); /*** защита сайта запрет показа версии движка сайта ***/
Ну и заодно уж не дадим взломщику-новичку, при его входе в админку, информацию о том что из: логин или пароль подобраны не правильно!
Далее в файле функций пропишите вот такой чудо код:
/** уберём подсказку - неправильный логин-пароль - при входе в админку **/ add_filter('login_errors',create_function('$a', "return null;")); /** уберём подсказку - неправильный логин-пароль при входе в админку **/
Обратите внимание на стрелку и сравните у себя! поле при ОШИБОЧНОМ ВХОДЕ должно быть чисто — инфа удалена…
А вот об изменени самого адреса входа в адмипанель, читайте в этой статье о плагине Better WP Security…
И ещё —
к оглавлению $
mihalica.ru
wp json
Не успело 06.04.2016 произойти обновление поисковой системы Яндекс как многие владельцы сайтов на системе управления wordpress версии 4.4 и выше заметили странные изменения в панели вебмастера Яндекс.
А именно, что-то вроде:
- Резко выросло количество загруженных роботом страниц.
- Структура сайта изменилась.
- А ведь мы там ничего не меняли.
- Появилась непонятная директория wp-json с подкатегориями oembed , /1.0/, embed.
И если Вы откроите url http://ваш_сайт/wp-json то наверняка увидите нечто вроде
И так, что такое wp-json? Изучив внимательнейшим образом сее творение разработчиков wordpress смею Вас заверить что не стоит бить во все колокола и поднимать панику. Это не вирус. Это, прежде всего виртуальная директория для API REST для CMS WordPress версии 4.4 и выше.
Таким образом, разработчики wordpress внедряют в свое творение новый, плагин для удобного доступа к данным Вашего сайта с помощью HTTP RESET API. Подробности Вы можете изучить на странице разработчика http://v2.wp-api.org/.
Но мы не будем вдаваться в подробности и технические сложности данной инновации. Смущает другое. Почему разработчики wordpress не позаботились о закрытии служебных директорий и оставили их открытыми для поисковых систем? Как избавится от непонятных и не желательных ссылок в поисковой выдаче? А ведь многие сайты Яндекс уже успел проиндексировать!
Не стану, долго рассказывать и объяснять к каким негативным последствиям это может привести. Я надеюсь, что Вы это и сами прекрасно уже поняли и жаждите подробностей, как от этой напасти избавится. Не стану Вас томить и подробно расскажу что нужно делать если ваш сайт стал жертвой технического упущения разработчиков WordPress.
inoption.info
Что принесло обновление?
А обновление принесло очень много нехорошего, а именно, лишние страницы на блоге. Буквально вчера добавлял свой новый сайт в яндекс вебмастер, и решил посмотреть, что творится на блоге. И обнаружил неожиданный рост числа страниц. Это показалось мне странным, так как публикаций практически не было, а добавилось более 150 страниц.
Заглянул в структуру сайта и обнаружил эту картину.
Как можете видеть, появилась директория wp-json, которая и нагенерировала множество новых страниц. Рекомендую вам тоже зайти в яндекс вабмастер и посмотреть как обстоят дела у вас. Так как в выдаче уже много сайтов с подобными страницами.
Давайте разбираться, что такое wp-json?
Как я уже говорил выше, вся проблема в обновленной версии движка, а именно WordPress 4.4. А именно появление в ядре REST API и появление виртуальной директории wp-json, которая и занимается размножением не нужных для нас страниц.
Как отключить wp-json на своем сайте или блоге?
Отключить все это дело очень просто, нужно опять поработать над файлом functions.php. И так добавляем туда следующий код:
Ну вот, теперь можете не беспокоиться за появление этих страниц. А чтобы быть в курсе событий, рекомендую изредка заглядывать в яндекс вебмастер. Можно обнаружить много интересного.
P.S. Совсем забыл указать еще несколько строк кода. Он избавляет от ссылок в head на папку wp-json. Эти строки так же нужно дописать в файл functions.php
masalkin.name
Как убрать wp json?
Метод борьбы с запретом индексации через robots.txt некорректен, правильно будет устранить корень проблемы – физически отключить появление ссылок в коде сайта и запретить появление соответствующих страниц.
Делается это все через файл functions.php шаблона, добавлением группы специальных хуков, блокирующих соответствующие функции. Нужно добавить в этот файл нижеследующие строки. Добавлять лучше в начало после <?php или в самом конце, перед закрывающим ?>. В некоторых темах закрывающей скобки в в этом файле нет, там просто в конец добавляйте.
К сожалению, объяснить каждую строчку моих познаний не хватает, равно как и объяснить для чего вообще данная штука была внедрена разработчиками, поэтому, берем и пользуемся как есть.
Ссылки из кода удаляются, а вместо страниц открывается контент с главной.
Для того, чтобы эти страницы не считались дублями домашней, у вас должны быть включены канонические URL на сайте (тег link rel=”canonical”). Со временем все, что Яндекс нашел удалится и ваш сайт снова будет чистым и аккуратным.
Если кто-то может более полно разжевать тему – велком в комментарии, мне будет интересно.
biznessystem.ru