Грамотная поисковая оптимизация требует знания особенностей движка WordPress и его уязвимых мест. В числе мер по ускорению ресурса и улучшению его SEO-показателей вам потребуется отключить на сайте WP REST API.
- JSON REST API: что это, и для чего нужен на сайте WordPress
- API — интерфейс обмена информацией
- JSON — текстовые файлы для обмена данными
- REST: отправка и получение данных
- Как работает REST API в WordPress: примеры
- Работа с постами
- Кэширование ответов REST API
- Аутентификация
- Gutenberg Block Editor
- Почему стоит отключить на WP REST API
- Где в WP подключается JSON REST API
- Способы отключения REST API в WP
- Плагины WP для отключения REST API на WordPress-сайтах
- Disable REST API — правила доступа и списки конечных точек
- Disable WP REST API — полное или частичное отключение
- Clearfy Pro — лучшее решение для отключения REST API
- Программный способ отключения REST API в WP
- Проверка отключения JSON REST API
JSON REST API: что это, и для чего нужен на сайте WordPress
Встроенный в движок WP функционал JSON REST API позволяет реализовывать современные возможности на сайтах. Он служит для обмена данными между скриптами внутри ресурса, написанными на разных языках программирования, или с внешними сервисами.
Рассмотрим по отдельности, что означает каждое слово, входящее в понятие JSON REST API.
API — интерфейс обмена информацией
API — это широкое понятие в CMS WordPress представляет собой интерфейс для обмена данными между скриптами внутри сайта, а также с внешними приложениями. Через него другие сервисы могут подключаться к сайту удаленно и получать данные для своих нужд.
Аналогично ваш сайт может соединяться с внешними сервисами и брать какой-либо контент. Например, обмен данными может происходить между интернет-магазином и программой бухгалтерского учета.
JSON — текстовые файлы для обмена данными
JSON — это текстовый формат файлов, в которых содержатся данные в виде объектов JavaScript.
В разных языках программирования есть свои способы расшифровки данных, передаваемых в формате JSON. Поэтому сайты и приложения обычно обмениваются данными в этом формате.
REST: отправка и получение данных
REST — этот протокол использует методы HTTP для получения и отправки информации. Он также применяется для сжатия передаваемых данных и ускорения передачи.
API-интерфейс на сайте WordPress вам может потребоваться в одной из трех ситуаций:
Если вы разрабатываете свою тему или плагин с использованием JavaScript и нужно, чтобы данные передавались из БД сайта в эти скрипты. Для этого потребуется зашифровывать их в формат JSON и воспользоваться интерфейсом для передачи.
Если вам нужно подключиться к стороннему сервису и получать от него данные для использования на сайте WordPress, то данные также будут поступать в формате JSON.
Если вы разрабатываете внешнее приложение, которое будет отправлять данные на сайт WP или получать их от него, то обмен тоже будет осуществляться посредством API-интерфейса в формате JSON.
Если все три пункта к вам не относятся, лучше отключить этот функционал. Он может тормозить работу сайта и плохо влиять на SEO-продвижение.
Как работает REST API в WordPress: примеры
Работа с постами
REST API позволяет путем создания HTTP-запросов получать данные из WP и использовать, например, для вывода на фронтэнд. Через запрос вы можете получить список записей, создать новый пост, обновить его или даже удалить.
Кэширование ответов REST API
Если на вашем ресурсе WP высокий трафик и вы используете API-интерфейс, то из-за увеличения запросов к БД сайт может начать заметно притормаживать.
Если такое происходит, то есть способ справиться с проблемой. Для этого нужно включить кэширование. Оно позволит сохранять ответы API и использовать их при последующих запросах к БД.
Для кэширования ответов REST API можно воспользоваться специальными плагинами.
Аутентификация
При обмене данными между сайтом WordPress и внешними сервисами по API-интерфейсу необходимо реализовать аутентификацию, что означает вход пользователя и предоставление ему необходимых прав.
Эта задача осуществляется несколькими способами:
- По cookies. В этом случае в запросе требуется сообщать специальный nonce-код.
- С использованием JavaScript. Этот метод не требует передачи nonce-кода, API все необходимое делает сам.
- Путем создания AJAX-запросов. Также потребует передачи nonce-кода при каждом запросе.
Gutenberg Block Editor
Блоки Гутенберг работают на JavaScript и для обмена данными с серверной частью сайта WordPress, написанной на PHP, используют REST API.
В частности, такой способ передачи информации применяется для обновления постов, хранения атрибутов блока и других операций.
Почему стоит отключить на WP REST API
Если вы не используете этот функционал на своем ресурсе WP, то его лучше отключить.
Где в WP подключается JSON REST API
Вы можете легко найти подключение этого кода на вашем сайте WP. Зайдите на любую страницу, щелкните по окну браузера правой кнопкой мыши и выберите пункт «Исходный текст страницы».
В открывшейся вкладке нажмите Ctrl+F, вбейте в строку поиска wp-json. В результатах поиска вы увидите ссылку на файл json, которая располагается между тегами head. Если пройдете по этой ссылке, то убедитесь, что там находится довольно объемный файл.
Вставка кода такого объема в шапку может заметно тормозить сайт при его загрузке. Поэтому по возможности лучше избавиться от этого подключения.
Способы отключения REST API в WP
Совсем отключать этот интерфейс не рекомендую, так как от него зависят многие важные функции.
В первую очередь, на нем построена логика работы блоков Gutenberg. Поэтому в целях безопасности лучше просто закрыть доступ к некоторым возможностям этого функционала.
Существует два способа, с помощью которых можно управлять доступом к REST API. Это вставка кода в файл functions.php либо использование специальных плагинов. Рассмотрим оба метода.
Плагины WP для отключения REST API на WordPress-сайтах
Disable REST API — правила доступа и списки конечных точек
Если после настройки плагина пользователь, ограниченный в правах доступа, попытается подключиться к вашему сайту, то WP выдаст сообщение с ошибкой аутентификации.
Disable WP REST API — полное или частичное отключение
Также плагин убирает ссылку в секции head. Таким образом, модуль защищает ваш WordPress-ресурс от несанкционированного доступа через API-интерфейс.
Clearfy Pro — лучшее решение для отключения REST API
![Решение Clearfy Pro](https://n-wp.ru/wp-content/uploads/2024/03/clearfy-proe.jpg)
Clearfy Pro — этот многофункциональный модуль от команды WPShop чистит код WP от линков wp-json. Тем самым он решает проблему с быстродействием и индексацией мусорных страниц.
Полностью REST API не удаляется. При залогинивании в админку все его функции становятся доступными, поэтому вы можете не переживать за работу важных плагинов.
Если ранее мусорные страницы были проиндексированы и попали в выдачу поисковых систем, то посетители, которые перейдут по этим ссылкам, будут перенаправляться на главную страницу WP.
Преимущества плагина Clearfy Pro:
Модуль комплексно решает проблемы, связанные с подготовкой к продвижению сайта WP в поисковых системах. Вам не потребуется искать и устанавливать дополнительные плагины для каждой мелкой задачи.
Настройка не займет много времени. Компания-разработчик предоставляет подробную документацию на русском языке. А сотрудники техподдержки всегда готовы прийти на помощь в случае каких-либо проблем.
Плагин легкий и не создает дополнительной нагрузки на сервер. Также он не содержит каких-либо сторонних библиотек или фреймворков.
Забрать лицензию Clearfy Pro
Программный способ отключения REST API в WP
Вставьте следующий небольшой код в файл functions.php, не забыв предварительно сделать резервную копию сайта.
add_filter( 'rest_authentication_errors', 'code_disable_rest_api' ); function code_disable_rest_api( $access ) { return new WP_Error( 'rest_disabled', __( 'REST API disabled' ), array( 'status' => rest_authorization_required_code() ) ); }
Этот код не отключает полностью json rest api в WP, а лишь ограничивает доступ для неавторизованных пользователей.
Проверка отключения JSON REST API
Чтобы проверить, отключен ли json rest api, разлогиньтесь из админки WP, а затем перейдите по ссылке вида ваш_сайт.ru/wp-json/.
При правильной работе хука вы больше не увидите в коде файл с огромным количеством кода. Вместо него будет отображаться всего лишь одна строка, оповещающая о том, что REST API отключен.
REST API на веб-ресурсе WordPress лучше отключить для незалогиненных пользователей. Таким способом вы защитите сайт от взлома и DDoS-атак, улучшите его производительность и SEO-показатели. Лучший способ это сделать — установить премиальный плагин Clearfy Pro. Он закроет доступ к REST API для неавторизованных юзеров, оставив активными все полезные функции этого интерфейса внутри ВордПресс-админки.
Скидка 15% на Clearfy Pro
![Создай свой первый сайт на WordPress](https://wpcourses.ru/static/first-site/first-site-760.png)