Как отключить XML-RPC в WordPress и чем заменить доступ по API

XML-RPC в WordPress до сих пор включён по умолчанию на многих сайтах, хотя в реальных проектах он часто не нужен. Проблема не в самом факте его наличия, а в том, что через xmlrpc.php сайт получает лишнюю точку входа: брутфорс, pingback-спам, лишние запросы от старых клиентов и интеграций. Если вы не используете мобильное приложение WordPress, внешние публикации через старые сервисы или специфические интеграции, этот интерфейс обычно проще отключить.

Ниже — не абстрактная теория, а рабочий сценарий: как понять, нужен ли XML-RPC именно вам, как отключить его без поломки сайта, чем заменить доступ к данным и как проверить, что всё действительно сработало.

Когда XML-RPC стоит отключать, а когда лучше оставить

Сначала полезно отсеять ложные причины. XML-RPC не тормозит сайт сам по себе всегда и везде. Он становится проблемой, когда на него идут регулярные запросы извне или когда сайт не использует функции, завязанные на этот протокол.

Сценарии, где отключение обычно оправдано

  • сайт не использует мобильное приложение WordPress;
  • нет внешних сервисов, которые публикуют записи через XML-RPC;
  • в логах видно много запросов к /xmlrpc.php;
  • на сайте регулярно появляются попытки брутфорса через XML-RPC;
  • pingback и trackback не нужны как механизм уведомлений.

Когда лучше не спешить

Если у вас есть старый сервис автопостинга, интеграция с десктопным клиентом или нестандартная связка с внешней системой, сначала проверьте, умеет ли она работать через REST API. В некоторых проектах XML-RPC всё ещё используется по инерции, и отключение без проверки ломает публикацию контента или синхронизацию черновиков.

Диагностика: как понять, что XML-RPC реально используется

Самый практичный способ — посмотреть логи веб-сервера или мониторинг безопасности. Если доступа к логам нет, можно проверить поведение вручную. Откройте https://example.com/xmlrpc.php в браузере: если файл доступен, WordPress обычно отвечает сообщением о том, что XML-RPC сервер принимает только POST-запросы. Это не признак проблемы, а просто подтверждение, что endpoint открыт.

Дальше проверьте, есть ли обращения в access log. Пример для Nginx:

grep 
Как найти и убрать дубли страниц в WordPress: диагностика, каноникал и редиректы
18.08.2026
Как отключить XML-RPC в WordPress и чем заменить доступ по API
13.09.2026
Как найти и удалить дубли archive page в WordPress без потери индексации
24.08.2026
Как автоматизировать удаление спам комментариев в WordPress
03.10.2026
Как использовать Redis для кэширования в WordPress
13.09.2026