Как закрыть доступ к xmlrpc.php в WordPress и не сломать сайт

Файл xmlrpc.php в WordPress часто оставляют без внимания, пока не появляются странные попытки входа, лишняя нагрузка или жалобы на брутфорс. Сам по себе XML-RPC не «плохой», но на многих сайтах он просто не нужен. Если вы не используете мобильное приложение WordPress, внешние публикации через старые клиенты или интеграции, которые завязаны именно на XML-RPC, доступ к нему можно закрыть.

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

Когда xmlrpc.php действительно стоит отключать

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

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

Если у вас обычный корпоративный сайт, блог или лендинг на WordPress, XML-RPC обычно не нужен. Для таких проектов закрытие доступа — нормальная техническая мера, а не «перестраховка ради перестраховки».

Диагностика: как понять, что именно xmlrpc.php создаёт проблему

Перед изменениями проверьте, есть ли обращения к этому файлу и нет ли зависимых сервисов. Это можно сделать по логам веб-сервера или по событиям в панели хостинга. В access.log обычно видно много запросов к /xmlrpc.php, особенно если сайт атакуют перебором логинов.

Что искать в логах

Обратите внимание на повторяющиеся POST-запросы к xmlrpc.php с разных IP, а также на ошибки 200/403/404 в большом количестве. Если запросов много, а вы не используете XML-RPC, это хороший кандидат на отключение.

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

Пошаговое решение: как закрыть xmlrpc.php

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

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

Это самый простой способ, если у вас есть доступ к functions.php дочерней темы или к собственному мини-плагину. Такой вариант не требует правок конфигурации сервера.

add_filter( 'xmlrpc_enabled', '__return_false' );

Этот фильтр отключает XML-RPC на уровне WordPress. Если кто-то обратится к xmlrpc.php, WordPress не будет обрабатывать запрос как обычно.

Если нужен более жёсткий вариант, можно принудительно отдавать 403 при прямом обращении к файлу:

add_action( 'init', function () {
    if ( defined( 'XMLRPC_REQUEST' ) && XMLRPC_REQUEST ) {
        status_header( 403 );
        exit;
    }
} );

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

Вариант 2. Заблокировать на уровне Apache

Если сайт работает на Apache или LiteSpeed с поддержкой .htaccess, можно запретить доступ к файлу напрямую. Это снижает лишнюю нагрузку ещё до загрузки WordPress.

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

Если сервер старый и использует синтаксис Apache 2.2, встречается вариант с Deny from all, но на современных конфигурациях лучше использовать Require all denied.

Вариант 3. Заблокировать на уровне Nginx

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

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

После изменения конфигурации не забудьте проверить синтаксис и перезагрузить Nginx. Иначе правило просто не применится.

Что выбрать: код, сервер или оба варианта

СпособПлюсыМинусыКогда использовать
Фильтр xmlrpc_enabledБыстро, не требует доступа к серверуЗапрос всё равно доходит до WordPressЕсли нет доступа к конфигу веб-сервера
.htaccessПростая блокировка на ApacheНе подходит для NginxЕсли сайт на Apache/LiteSpeed
Nginx ruleБлокирует до PHP, экономит ресурсыНужен доступ к конфигуЕсли вы администрируете сервер

Если у вас есть доступ к серверу, лучше блокировать там. Если доступа нет — используйте фильтр WordPress. На нагруженных сайтах можно совместить оба подхода.

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

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

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

Ожидаемый результат зависит от способа блокировки:

  • 403 Forbidden — если доступ запрещён на сервере;
  • 405 Method Not Allowed или похожий ответ — если сервер/прокси ограничивает метод;
  • 200 OK с сообщением WordPress о XML-RPC — значит, блокировка не сработала;
  • 404 Not Found — если файл скрыт или запрос перехвачен настройками сервера.

Дополнительно проверьте, не появляются ли новые обращения к файлу в логах после внедрения правила. Если запросы продолжают приходить, но получают 403, значит блокировка работает корректно.

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

Сломали мобильное приложение WordPress

Если кто-то в команде публикует записи через официальное приложение WordPress, отключение XML-RPC может убрать эту возможность. Решение простое: либо возвращаете доступ, либо переводите процесс на REST API и обычную авторизацию.

Добавили правило не в тот конфиг

На Nginx частая ошибка — править не тот server block или забыть перезагрузить сервис. После изменения всегда проверяйте nginx -t и только потом делайте reload.

В .htaccess правило стоит ниже конфликтующего блока

На Apache порядок правил имеет значение. Если в файле уже есть сложные rewrite-правила, блокировка может не сработать так, как ожидается. В таком случае проверьте, не переписывает ли другой блок запрос к xmlrpc.php.

Отключили XML-RPC, но атаки продолжаются

Это нормально: бот может продолжать стучаться в файл, даже если он закрыт. Важен не сам факт запроса, а то, что он не проходит дальше и не нагружает PHP. Если запросов слишком много, дополнительно настройте WAF, rate limit или блокировку на уровне CDN.

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

Если вы закрываете XML-RPC ради защиты, не ограничивайтесь одним файлом. Проверьте ещё несколько вещей:

  • обновлены ли ядро WordPress, тема и плагины;
  • есть ли включённые двухфакторные методы входа для администраторов;
  • не открыт ли доступ к wp-login.php без ограничений;
  • не используются ли старые плагины, которые держатся на устаревших механизмах авторизации;
  • есть ли базовая защита от перебора паролей на уровне хостинга или сервера.

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

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

Премиум шаблоны для WordPress Купить плагины для WordPress

Демо сайт с темой Reboot

Красивая ВордПресс-тема на русском от wpshop.ru отлично подойдет для блога или новостного ресурса. Современная типографика будет привлекать новых пользователей и "заставит" остаться постоянных читателей. Высокая скорость работы обеспечит высокие показатели PageSpeed даже на медленном дешевом хостинге. Встроенная в тему реклама позволит заработать на своем блоге, разместив блоки Google Ads и Яндекс.Директ в любом месте сайта.

После успешной оплаты на почту Вам придет письмо с лицензией и архивом. Вы сможете скачать шаблон Reboot на свой компьютер и установить на сайт.

Видеообзоры

Преимущества

Настройка главной страницы

Гибкие настройки для создания уникальной главной страницы.

Размер контента

Возможность растянуть контент на всю ширину.

Правильные заголовки H1-H6

Валидные заголовки для SEO.

Настройки заголовка и описания для рубрик

Задание и вывод описания категорий для продвижения.

Нет циклических ссылок

Отсутствие ссылок, ведущих на самих себя.

Полностью адаптивный шаблон Mobile-first

Все элемены сайта корректно отображаются на всех устройствах.

Встроенная реклама

12 гибких рекламных позиций.

Социальные профили и кнопки поделиться

Поддержка 20+ соцсетей и кнопок поделиться.

Свой заголовок для комментариев

Настройка отдельных заголовков для комментариев.

Блоки внимания

8 различных блоков внимания.

Мощная типографика

Больше 30+ Google-шрифтов.

Настройка карточек постов

Отдельные настройки для каждой карточки постов.

Главные отличия WordPress темы Reboot

Можно перечислить следующие функции.

1. Многоцелевая

Изначально темплейт нацелен под блоги и новостные ресурсы. Тут есть все что нужно: боковые панели, выбор и настройка карточки поста, управление мета-информацией страницы.

Страница сайта на основе темы Reboot

Темплейта подходит и для других типов сайтов. Подходит для коммерческого сайта. Для одностраничника есть Конструктор главной, который дает возможность выводить и сортировать посты, добавлять свои HTML-блоки. Также для этого подходит популярный Elementor.

На основе темы можно создать форум. Частично поддерживаются популярные ВордПресс-решения.

Для создания интернет-магазина шаблон можно использовать в связке с WooCommerce.

2. Несколько виджетов в подвале

В нижней части есть область, в которую можно добавить одновременно до 5 виджетов.

Виджеты подвала Reboot

3. Конструктор главной страницы

Главная особенность темы Reboot - конструктор главной страницы. В нем можно добавлять 2 вида блоков: вывод постов и свой код HTML. В первом случае для каждого блока можно задать категорию публикаций, исключить конкретные посты, задать сортировку и вид карточек.

Настройка постов в конструкторе главной Reboot

В блоки HTML можно вставить свой код. Отлично подходит для создания своей разметки, блоков подписки.

Настройка блока HTML в конструкторе главной Reboot

4. Скорость

Разработчики в исходном коде не используют тяжеловесные библиотеки и фреймворки. В итоге темплейт выигрывает по скорости.

5. Блоки внимания для выделения контента

8+ блоков выделения текста для привлечения внимания и придания содержимому экспертности. Такую статью прочитают в первую очередь.

Блоки внимания Reboot

6. Шорткоды контактной формы и HTML карты сайта

Форма контактов и список всех публикаций сайта должны быть на любом онлайн-ресурсе. Посетитель должен иметь возможность связаться с представителем сайта.

Контактная форма Reboot
А карта позволит ему быстрее ориентироваться и найти ответ на вопрос.

Карта сайта Reboot

7. Настройка и вывод рекламы

Тема имеет 10+ блоков для вывода рекламы в шапке, контенте и подвале.

Реклама в Reboot

8. 11+ встроенных модулей

Шаблон Reboot в коробке имеет больше десятка модулей, которые заменят отдельные плагины. Среди них:

  • лайтбокс для увеличения изображения по клику,
  • слайдер постов на главной странице,
  • содержание для большой статьи,
  • счетчик количества просмотров,
  • шаринг в соцсетях.
Настройка модулей Reboot

9. Готовность к SEO продвижению

Тема Reboot готова к работам по СЕО-оптимизации. Имеет правильные теги, микроразметку, описание рубрик, псевдо-ссылки и многое другое.

10. 5 вариантов карточек постов

Все варианты карточек имеют настраиваемую структуру. Можно включить и переставить местами миниатюру, рубрику, заголовок, дату, имя автора, отрывок. Для последнего задается количество символов.

Настройка карточки постов в Reboot

11. Возможность зафиксировать сайдбар при скролле

Актуально для рекламных блоков, которые будут всегда на виду при прокрутке страницы.

Фиксированный сайдбар Reboot

Примеры готовых сайтов на теме Ребут

Можно выделить парочку ресурсов на основе этого темплейта.

Настройка шаблона

Тема настраивается через встроенный настройщик – админ-меню Внешний вид – Настроить. Все опции имеют логическую структуру и разделены на понятные секции. Чтобы изменения вступили в силу, просто нажмите кнопку Опубликовать.

Настройка Reboot

Документация и список обновлений

Если хотите детально познакомиться с шаблоном, его возможностями и преимуществами, переходите по ссылкам этого раздела.

Промокод со скидкой на покупку

Если хотите получить эту тему, воспользуйтесь промокодом и получите 15% скидку.

Отзывы покупателей

Несколько скриншотов о том, что думают о теме Reboot клиенты WPShop.ru.