Введя в поисковую строку любой поисковой системы выражение wp-json, вы найдете множество блогов, где авторы описывают ситуацию с появлением на сайтах WordPress проиндексированных Яндексом служебных страниц. Началось это еще в январе 2016 года, с обновлением CMS до версии 4.4, но проблема по каким-то причинам коснулась или проявилась не сразу на всех ресурсах, созданных на платформе вордпресс. Даже у одного владельца нескольких сайтов не на все навалилась напасть, сначала породившая панику, а потом и заставившая искать решение.
На меня «озарение» снизошло 1 сентября. При проверке валидности вылез код, на который валидатор указывал как на ошибку.
Error: Bad value https://api.w.org/ for attribute rel on element link: The string https://api.w.org/ is not a registered keyword. From line 114, column 1; to line 114, column 71 </script><link rel='https://api.w.org/' href='https://site.ru/wp-json/' /><link
У rel не могло быть атрибута в виде ссылки, а ссылка стояла на domen/wp-json. Во-первых, сам факт появления ошибки удивил: пару недель назад на сайте не было ни одной ошибки, чему я радовалась, потому что устранение их потребовало времени и в некоторых случаях даже хирургического вмешательства.
Во-вторых, не могла понять, что это вообще такое wp-json и откуда взялось, но обратилась на форуме sbup.com к специалисту по валидности HTML, который легко устраняет любые бяки в коде. На этот раз мастер пожал плечами, но послал меня по упомянутым выше найденным им ссылкам.
В тот же день произошло обновление поисковой базы Яндекса, и на проблемном сайте количество страниц выросло на 60 штук. Самое интересное, что даты в RDS-баре стояли апрельские. Допускаю, что просканированные весной страницы Яндекс решил выложить в индекс только сейчас. Рекомендуемый код для отключения REST API у меня уже был добавлен в htaccess, при переходе из выдачи на проиндексированные страницы XML срабатывал редирект на главную, она же указывалась канонической во всех случаях. Такое положение дел не очень устраивало, потому задала вопрос поддержке Яндекса, что лучше – код или disallow директории /wp-json/ в файле robots.txt. Ответ Платона Щукина получила в тот же день:
Здравствуйте, Надежда! Для того, чтобы робот максимально быстро исключил из поиска нежелательные страницы и больше не индексировал их достаточно добавить в файл robots.txt запрет на индексирование wp-json Робот удалит страницы из поиска автоматически в течении 1-2 обновлений поисковой базы. Использование Вашего варианта возможно, однако это может занять больше времени относительно запрета в robots.txt
Удивительно, но в тот же вечер страницы из индекса исчезли.
При обсуждении wp-json с друзьями и коллегами выяснилось, что многие впервые услышали об этом сюрпризе Вордпресс от меня, и только у одного человека из круга общения стоял запрет в файле robots.txt. Очевидно, что эта директива теперь должна присутствовать в стандартном роботсе для сайтов на WordPress по умолчанию, как админ. Что скажете?
Несмотря на то, что wp-json появился в вордпрессе с версии 4.4, проблема выплыла только сейчас
У кого как. У меня сейчас, а народ активно обсуждает аж с конца прошлого года. Зато у новой клиентки сразу поставила директиву disallow, потому что куча страниц в индексе.