A few days ago on of our customers reported that Jetpack stoppped working on his wordpress website. The exact error was: The Jetpack server was unable to communicate with your site [HTTP 404].
Immediately one thing came to my mind: this is happening because of some XML-RPC protections against attacks.
How can I fix “The Jetpack server was unable to communicate with your site [HTTP 404]” error?
This error happens because the server is not able to communicate with wordpress.com servers. This can happen because of two main reasons:
1) Firewall blocking outgoing connections on port 80 or 443
Ask your web hosting provider to check the firewall rules, you must allow outgoing TCP connections from ports 80 and 443.
2) XML-RPC was disabled on that particular website.
Check if there is an allow/deny code inside the .htaccess of that website, you should look for something like this:
[firstname.lastname@example.org:~]cat .htaccess <files xmlrpc.php> order allow,deny deny from all </files>
Comment out the xmlrpc.php adding # in front of each line, it should look like this:
#<files xmlrpc.php> # order allow,deny # deny from all # </file
If you don’t have direct access to your .htaccess file or you are not sure how to do it, you can always ask for support to your web hostig provider. They should also provide you a way to secure your wordpress website against XML-RCP attacks using alternative methods like mod_security or fail2ban.
On your WP backend, you can always enable security plugins that integrate web application firewalls like Wordfence, Sucuri, and even Cloudflare.
What if you don’t want to enable XML-RPC?
You can always stop using Jetpack, which I found useless to be honest, all the Jetpack features can be found on other wordpress plugins, or you can code your own if you have programming skills.
Another alternative is using Jetpack’s Development mode, this way you will be able to use Jetpack features that do not require any XML-RCP connection against WordPress.com servers.
At this point the error: The Jetpack server was unable to communicate with your site [HTTP 404] should be fixed, as it can be caused by firewall blocks or .htaccess denying xml-rpc requests.