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

|

XML-RPC в WordPress часто отключают «на всякий случай», а потом ловят неочевидные поломки: перестают работать мобильные клиенты, внешние сервисы публикации, интеграции с Jetpack или старые скрипты автопостинга. Проблема не в самом отключении, а в том, что его делают без проверки зависимостей.

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

Когда XML-RPC реально можно отключать

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

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

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

Начните с простого аудита. Не нужно сразу править .htaccess или ставить тяжёлые плагины безопасности.

Проверьте активные плагины и интеграции

Посмотрите, есть ли на сайте Jetpack, мобильные клиенты, сервисы автопостинга, интеграции с внешними CRM или редакторами. Если в документации плагина прямо указано использование XML-RPC, отключать его без замены нельзя.

Проверьте доступность endpoint

Откройте в браузере или через curl адрес /xmlrpc.php. Сам по себе ответ сервера ещё не доказывает, что endpoint нужен, но помогает понять, как он сейчас ведёт себя.

curl -I https://example.com/xmlrpc.php

Если сервер отдаёт 200 или 405, это нормально для проверки. Важно не это, а наличие зависимостей на стороне сайта.

Проверьте логи и события входа

Если у вас включено логирование на уровне сервера или безопасности, посмотрите, есть ли обращения к xmlrpc.php. Частые запросы к этому файлу без понятного источника — повод отключать его в первую очередь.

Что лучше: плагин, код или блокировка на сервере

Способ зависит от того, насколько аккуратно вы хотите управлять исключениями. Для большинства сайтов достаточно кода в functions.php или в небольшом must-use плагине. Если нужен более жёсткий контроль на уровне сервера, можно блокировать запросы в веб-сервере, но это уже менее гибко.

ПодходПлюсыМинусыКогда использовать
Код в WordPressПросто откатить, легко сопровождатьНе блокирует запрос до загрузки WordPressОбычные сайты, где важна управляемость
Плагин безопасностиУдобно для админов без кодаЛишняя зависимость, иногда перегруз настроекЕсли уже используете security-плагин
Блокировка на сервереРанний отказ, меньше нагрузкиСложнее поддерживать, можно задеть легитимные сценарииКогда XML-RPC точно не нужен и нужен жёсткий запрет

Пошаговое решение: отключаем XML-RPC без лишнего риска

Вариант 1. Отключение через код

Самый прозрачный способ — отключить XML-RPC через фильтр WordPress. Добавьте код в functions.php дочерней темы или в отдельный мини-плагин.

<?php
add_filter( 'xmlrpc_enabled', '__return_false' );

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

Вариант 2. Блокировка доступа к xmlrpc.php на уровне сервера

Если вы уверены, что endpoint не нужен вообще, можно закрыть прямой доступ. Для Apache это обычно делают через .htaccess:

<Files xmlrpc.php>
    Require all denied
</Files>

Для Nginx логика будет другой, и правило лучше добавлять в конфигурацию виртуального хоста. Если вы не уверены в синтаксисе, не вносите правки на боевом сервере без теста на staging.

Вариант 3. Использовать плагин безопасности

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

Как проверить, что отключение сработало

После внедрения проверьте не только сам endpoint, но и реальные сценарии, которые могли зависеть от XML-RPC.

Для быстрой проверки через curl можно отправить тестовый XML-RPC-запрос. Если endpoint отключён, вы должны получить отказ в доступе или неуспешный ответ.

curl -i -X POST https://example.com/xmlrpc.php \
  -H 'Content-Type: text/xml' \
  --data '<?xml version="1.0"?><methodCall><methodName>system.listMethods</methodName></methodCall>'

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

Частые ошибки и как их исправить

Отключили XML-RPC, а перестал работать Jetpack

Значит, зависимость была, но её не проверили. Верните доступ, затем либо оставьте XML-RPC включённым, либо перенесите нужную функцию на другой механизм. Не пытайтесь «починить» это жёсткой блокировкой без понимания, какой именно модуль использует endpoint.

Добавили правило в .htaccess, но файл всё равно доступен

Часто причина в том, что сайт работает не на Apache, а на Nginx, либо правило перекрывается другой конфигурацией. Проверьте стек сервера и место, где реально обрабатываются правила доступа.

Поставили security-плагин, но он конфликтует с кэшем или авторизацией

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

Отключили XML-RPC на проде без теста

Это самая дорогая ошибка. Сначала проверьте staging-копию или хотя бы список активных интеграций. Если у сайта есть внешние публикации, отключение без теста почти гарантированно создаст инцидент.

Практические советы по безопасности и производительности

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

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

Короткий чек-лист перед отключением

Если вам нужен более широкий аудит технических дублей, индексации и лишних элементов в WordPress, похожие задачи удобно закрывать точечными инструментами вроде Clearfy Pro: https://wpshop.ru/plugins/clearfy?utm_source=wporg.ru&utm_medium=article&utm_campaign=otklyuchit-xmlrpc-v-wordpress-bez-polomki-sayta. Но для самого XML-RPC чаще достаточно аккуратного кода и проверки зависимостей.

Как отключить XML-RPC в WordPress без поломки сайта и плагинов
19.09.2026
Как убрать дубли страниц в WordPress от фильтров, архивов и параметров
22.09.2026
Как закрыть старые ссылки 301-редиректом в WordPress без цепочек и дублей
12.09.2026
Как отключить emojis в WordPress без поломки админки и фронтенда
15.09.2026
Как отключить XML-RPC в WordPress без поломки плагинов и мобильных приложений
09.09.2026
×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше