Как отключить XML-RPC в WordPress без плагинов

XML-RPC — это протокол, который позволяет удалённо взаимодействовать с WordPress, например, через мобильные приложения, внешние сервисы или плагин Jetpack. Несмотря на свои преимущества, XML-RPC часто становится причиной проблем с безопасностью и нагрузкой на сервер, так как используется злоумышленниками для проведения атак типа brute force или DDoS.

Что такое XML-RPC и зачем его отключать?

XML-RPC — это интерфейс удалённого вызова процедур, встроенный в WordPress по умолчанию. Он доступен на URL https://ваш-сайт.com/xmlrpc.php и позволяет выполнять множество действий, например, публиковать посты, редактировать страницы, управлять комментариями и т.д.

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

  • Снизить риск взлома через перебор паролей;
  • Уменьшить нагрузку на сервер;
  • Защитить сайт от некоторых видов DDoS-атак.

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

Способы отключения XML-RPC в WordPress

1. Отключение через functions.php темы

Самый простой и быстрый способ — добавить в файл functions.php вашей активной темы следующий код:

function wpsnippets_disable_xmlrpc() {  add_filter('xmlrpc_enabled', '__return_false');}add_action('init', 'wpsnippets_disable_xmlrpc');

Этот фильтр полностью отключит обработку XML-RPC запросов в WordPress. Однако обратите внимание, что если вы используете плагины, которые зависят от XML-RPC (например, Jetpack), они перестанут работать.

2. Отключение через .htaccess (для Apache)

Если ваш сервер работает на Apache, вы можете заблокировать доступ к файлу xmlrpc.php на уровне веб-сервера. Добавьте в файл .htaccess в корне сайта следующий код:

# Отключить xmlrpc.php<Files xmlrpc.php>  Order Allow,Deny  Deny from all</Files>

Этот метод не отключает сам функционал WordPress, а просто блокирует доступ к файлу, что часто достаточно для защиты.

3. Отключение через nginx

Для серверов на nginx можно добавить в конфигурацию сайта:

location = /xmlrpc.php {  deny all;  access_log off;  log_not_found off;}

После внесения изменений перезапустите nginx.

Проверка отключения XML-RPC

Чтобы проверить, отключён ли XML-RPC, можно выполнить простой запрос:

curl -I https://ваш-сайт.com/xmlrpc.php

Если всё сделано правильно, вы увидите ответ с ошибкой доступа (403 или 404) либо пустой ответ, если отключили через фильтр WordPress.

Практический пример: отключение XML-RPC с уведомлением в админке

Чтобы дополнительно информировать администратора сайта об отключении XML-RPC, можно добавить уведомление в админ-панель с помощью кода в functions.php:

function wpsnippets_admin_notice_xmlrpc_disabled() {  if ( !xmlrpc_enabled() ) {    echo '<div class="notice notice-success is-dismissible"><p>XML-RPC успешно отключён для повышения безопасности сайта.</p></div>';  }}

Далее зарегистрируем хук:

add_action('admin_notices', 'wpsnippets_admin_notice_xmlrpc_disabled');

Так вы всегда будете видеть напоминание, что функция отключена.

Альтернативы и плагины для управления XML-RPC

Если по каким-то причинам вы хотите частично ограничить XML-RPC, а не отключать полностью, можно использовать плагины с гибкими настройками, например:

  • Clearfy Pro — позволяет отключать XML-RPC и другие потенциально опасные функции одной кнопкой;
  • Плагин Disable XML-RPC — простой инструмент для отключения без кода;
  • Использовать файрволы (например, Wordfence), которые блокируют подозрительные запросы к XML-RPC.

Однако для полной свободы и минимальной нагрузки лучше использовать именно кодовые решения.

Выводы и рекомендации

Отключение XML-RPC — это важный шаг для повышения безопасности WordPress-сайта, особенно если вы не используете мобильные приложения или внешние сервисы, работающие через этот протокол. Варианты отключения через код и настройки сервера позволяют гибко и быстро решить эту задачу без плагинов.

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

Как удалить неактуальные метаданные в WordPress: оптимизация базы данных
04.01.2026
Как добавить категорию в REST API WordPress: практическое руководство
05.03.2026
Как изменить автоматический slug в WordPress: практические решения и примеры кода
29.12.2025
WooCommerce: как исключить повторную отправку письма при изменении статуса заказа по условиям
02.06.2026
WordPress: как удалить или изменить shortcode без плагинов
26.12.2025