21+ years in hosting · Jaipur, India · INR billing with 18% GST · 24/7 email support
Blog · WebJi® India

What Is XML-RPC in WordPress and Is It Still Needed?

Quick answer

XML-RPC is WordPress's older remote API: clients POST XML commands to xmlrpc.php to log in, publish and send pingbacks. The block editor and modern apps use the REST API instead, so most sites can block XML-RPC safely. Keep it, restricted, only if Jetpack or a desktop editor that speaks MetaWeblog still depends on it.

For WordPress owners who see xmlrpc.php in their logs or security scans and want to know whether it is needed before blocking it.

✓ In business since 2005
✓ INR + GST billing
✓ 24/7 Email Support — avg reply < 60 min
GuideWebJi®
knowledge
Read time
5 min
Sections
7
Updated
14 Nov 2026
Written by
WebJi® team

What is XML-RPC in WordPress?

XML-RPC is a remote procedure call protocol: a client POSTs an XML document naming a method and its parameters to xmlrpc.php, WordPress runs that method and returns an XML response. It is how remote tools published to WordPress before the REST API existed, and WordPress has shipped it switched on by default since version 3.5 (2012).

<?xml version="1.0"?>
<methodCall>
  <methodName>wp.getUsersBlogs</methodName>
  <params>
    <param><value><string>admin</string></value></param>
    <param><value><string>password</string></value></param>
  </params>
</methodCall>

Credentials travel inside the body of every authenticated call, which is part of why the endpoint attracts password guessing. Visiting the file in a browser sends a GET, so WordPress replies "XML-RPC server accepts POST requests only." That message means the endpoint is live, not broken.

What still uses XML-RPC in WordPress?

Jetpack's connection to WordPress.com, desktop blog editors that speak the MetaWeblog API, pingbacks and some older automation scripts still use XML-RPC; the block editor and most modern integrations use the REST API instead.

Common XML-RPC consumers and whether they need it today
ClientUses XML-RPC?If you disable it
Block editor and wp-adminNo, uses REST and admin-ajaxNo change
JetpackYes, for the WordPress.com connectionJetpack features stop; restrict instead of disabling
Desktop editors (MarsEdit and similar)Yes, MetaWeblog methodsPublishing from the app stops
Pingbacks and trackbacksYes, pingback.pingOther blogs cannot notify you; rarely missed
Current WordPress mobile appsSelf-hosted sites can connect with application passwords over RESTUsually no change; test once

If none of the rows that say "Yes" apply to your site, XML-RPC has no job there.

Why do attackers target xmlrpc.php?

Bots target xmlrpc.php for two reasons: it accepts login credentials outside the normal login form, and pingback.ping makes your server fetch any URL the caller supplies.

  • Password guessing: each POST can test credentials without loading wp-login.php, bypassing login-page CAPTCHAs and some lockout plugins.
  • system.multicall: packs many method calls into one request. Since WordPress 4.4, a failed login inside a multicall makes the remaining logins in that request fail, which blunted the "hundreds of guesses per request" trick, but every request still costs PHP time.
  • Pingback abuse: your server can be told to request internal addresses (probing) or a third-party site (reflection in a flood).
  • Resource drain: thousands of POSTs a day keep PHP workers busy even when every guess fails, which slows small shared plans.

You can see whether this is happening on your site by counting requests in the access log: grep -c "POST /xmlrpc.php" access.log. Reading those logs is covered in Apache log files explained.

How to check whether XML-RPC is enabled on your site

Send a system.listMethods call from outside the server; a list of methods means XML-RPC is fully active, while a 403 or 404 means something already blocks it.

curl -s -X POST -H 'Content-Type: text/xml' \
  --data '<?xml version="1.0"?><methodCall><methodName>system.listMethods</methodName></methodCall>' \
  https://example.in/xmlrpc.php
  • Look for pingback.ping and system.multicall in the reply.
  • Test both www and non-www hosts; a block may cover only one.
  • If a security plugin is active, check its XML-RPC setting before adding a second rule.

Is XML-RPC still needed in 2026?

For most sites, no: if you publish only through wp-admin and do not run Jetpack or a desktop editor, you can block XML-RPC with no visible change. Keep it, restricted to the services that use it, if Jetpack is connected or an editorial tool depends on MetaWeblog methods.

There are three levels of response. Block xmlrpc.php at the web server so requests never reach PHP; disable only pingbacks if a client still needs authenticated methods; or allow Jetpack's IP ranges and deny everyone else. The WordPress xmlrpc_enabled filter alone only disables authenticated methods and leaves pingbacks answering, so it is not a complete block. Step-by-step code for each option, with tests, is in how to disable XML-RPC in WordPress.

XML-RPC vs the WordPress REST API

The REST API sends JSON to named routes under /wp-json/ using normal HTTP verbs, while XML-RPC sends XML envelopes to a single endpoint over POST. New integrations should use REST; XML-RPC should remain only for a client that cannot.

XML-RPC and REST API side by side
AttributeXML-RPCREST API
EndpointOne file, /xmlrpc.phpMany routes, e.g. /wp-json/wp/v2/posts
FormatXML, POST onlyJSON, GET/POST/PUT/DELETE
AuthenticationUsername and password inside each callCookie + nonce, or application passwords (since WordPress 5.6)
Batchingsystem.multicallBatch endpoint for selected routes
Used byJetpack, legacy editors, pingbacksBlock editor, apps, most plugins

Closing XML-RPC is one item on a longer list; the WordPress security checklist covers the rest, and WebJi® WordPress hosting support can confirm whether a server-level rule already blocks the file on your account.

FAQ

Frequently asked questions

Can I just delete xmlrpc.php?

It works until the next WordPress update, which restores core files including xmlrpc.php. A server rule that denies access to the file survives updates and stops requests before PHP starts, so it is the better approach.

Does blocking XML-RPC affect SEO?

No. Search engines crawl your pages and sitemaps, not xmlrpc.php. The only visible loss is incoming pingbacks, which most sites already disable because they attract spam.

Why do I see hundreds of POST /xmlrpc.php requests in my logs?

Automated bots scan every WordPress site and try credentials or pingback calls through that file. The traffic is usually harmless if passwords are strong, but it wastes server resources, so blocking the file or rate-limiting it is worthwhile.

Does a limit-login-attempts plugin cover XML-RPC?

Some do and some only watch wp-login.php. Check the plugin's settings for XML-RPC coverage, or block the endpoint at the server; limiting login attempts in WordPress compares the options.

Checked 14 November 2026 against the WordPress developer documentation · Reviewed by the WebJi® team, Jaipur.

WebJi® since 2005

Ready to get started with WebJi®?

Join 12,000+ businesses across India and overseas. INR pricing, 18% GST shown before payment and 24/7 email support in Hindi and English — average first reply under 60 minutes.