Disable XML-RPC

XML-RPC was useful in WordPress’s early days — it let you publish posts from desktop apps and mobile devices. But today? The REST API handles all that better. Meanwhile, XML-RPC has become one of the most exploited attack vectors on WordPress sites. Attackers use it for brute force attacks, DDoS amplification, and pingback spam. If you’re not actively using it, turn it off.

Use Cases

  • Block brute force attacks that try thousands of passwords via xmlrpc.php
  • Prevent your site from being used in DDoS amplification attacks
  • Stop pingback spam from flooding your comments
  • Reduce server load from bot requests hitting XML-RPC
  • Clean up your site’s attack surface by removing unused functionality

How It Works

This is a toggle module — enable it and XML-RPC is disabled. No configuration needed.

When enabled, the module:

  1. Returns 403 Forbidden for any request to xmlrpc.php
  2. Disables all XML-RPC methods at the WordPress level
  3. Removes the RSD (Really Simple Discovery) link from your HTML head
  4. Removes the Windows Live Writer manifest link
  5. Removes the X-Pingback header from responses
  6. Disables pingbacks entirely

What Gets Blocked

BeforeAfter
yoursite.com/xmlrpc.php returns XML responseReturns 403 Forbidden
<link rel="EditURI" ...> in HTML headRemoved
<link rel="wlwmanifest" ...> in HTML headRemoved
X-Pingback header in responsesRemoved
Pingbacks can be sent/receivedDisabled

Why XML-RPC is a Security Risk

Brute Force Amplification

Normal brute force attacks try one password per request. XML-RPC’s system.multicall method lets attackers try hundreds of passwords in a single request. This bypasses many rate-limiting protections.

DDoS Amplification

Attackers can abuse the pingback feature to make your server send requests to target sites. Your server becomes an unwitting participant in DDoS attacks, and the target sees requests coming from your IP.

Pingback Spam

Spammers use XML-RPC pingbacks to flood sites with junk trackbacks, often linking to malicious or SEO-spam sites.

Verification

After enabling, verify XML-RPC is blocked:

  1. Visit yoursite.com/xmlrpc.php directly
  2. You should see “XML-RPC services are disabled on this site.”
  3. View your homepage source — no RSD or wlwmanifest links should appear

Using curl:

curl -I yoursite.com/xmlrpc.php

Should return HTTP/1.1 403 Forbidden

FAQ

Will this break the WordPress mobile app?The official WordPress app switched to the REST API years ago. If you’re using a current version of the app, XML-RPC isn’t needed. Very old app versions (pre-2015) might have issues.
Will this break Jetpack?Jetpack primarily uses the REST API now. Some older Jetpack features relied on XML-RPC, but current versions work fine without it. If you experience issues, Jetpack’s troubleshooting docs have guidance.
I need XML-RPC for a specific integration. What should I do?If you have a legitimate need for XML-RPC (legacy desktop publishing app, specific third-party integration), you’ll need to keep this module disabled. Consider restricting XML-RPC access via .htaccess to specific IPs instead.
Will this stop all brute force attacks?It stops XML-RPC-based attacks, which are common. Attackers can still target wp-login.php directly. For complete protection, combine this with the Limit Login Attempts module.
My security scanner still flags XML-RPC. Why?Some scanners check if xmlrpc.php file exists, not whether it’s functional. The file still exists (it’s part of WordPress core), but this module makes it return 403 Forbidden, effectively disabling it.
Can I delete xmlrpc.php instead?You could, but it will come back with every WordPress update. Using this module is the proper way to disable XML-RPC without modifying core files.

Already under attack? If you’re seeing heavy traffic to xmlrpc.php in your logs, enabling this module will immediately block those requests. For severe attacks, you may also want to add a server-level block via .htaccess or your firewall for better performance.

This module is safe for the vast majority of WordPress sites. Unless you specifically know you need XML-RPC for a particular integration, enable this module.

PRO

Get access to all 147 modules with a single license

Upgrade to Pro