Alert to all bloggers!

We have a serious problem:

In an attempt to reduce the numbers of outbound pings a new undocumented ”feature” was introduced in WordPress 2.8 (this change is not mentioned in the WP 2.8 release notes).

Instead of notifing ping services every time a post is published or edited, pings are now sent once every hour, at the most. Every time a new post is published, WordPress checks if there is a ping batch queued to be sent within the next hour. If so, the ping is added to that batch. If there is nothing in the queue, a ping is sheduled to be sent after 3600 seconds (one hour).



From the Cron View-plugin panel: Ping is not sent instantly. Instead it is added to the list of scheduled jobs.

This has a huge inpact on the speed of post announcements to services such as Google Reader and is effectively sabotaging the steps towards real time search and initatives such as FeedBurner’s support for PubSubHubBub.

The solution:

If you want your posts to be announced as soon as possible and don’t want manually ping services such as Technorati, Twingly or FeedBurner you should install the WordPress plugin MaxBlogPress Ping Optimizer. It will override the new default behavour. Not only does it instantly send a ping when a new post is published, it also corrects the initial problem that the new feature in WordPress tries to solve, by not pinging when you publish future posts or edit previously published posts, as WordPress used to do by default.

I learned this while digging in the WordPress code after debugging my FeedBurner connection to FriendFeed. Big thanks to Brett Slatkin/Google for the initial assistance and Nikke Lindqvist for proof-reading.

Update: Kristoffer Forsgren/Twingly notes that to be able to activate the plugin MaxBlogPress Ping Optimizer you need to sign up on the developers mailing list. To me, that is not a big problem (I publish my email adress publicly on this page anyway), but if you are paranoid: be warned.

Since the plugin is licensed under GPL, it is possible for whoever got the time to deal with it to ”clean” the plugin (drop me a mail if you do and I will link to your version here).

Update 2: If you think that the new setup is flawed, please make yourself heard and leave a comment at the WordPress development ticket system (thanks Pelle Wessman!).

Update 3: Denis de Bernardy, the developer who submitted the patch that changed the behaviour of WordPress’ pinging, has left a comment in which he dismiss my critique as ranting. Denis says that this change are off less importance, and that it easily can be overridden by third party plugins. Commenters at Digg and Reddit are saying things like: ”If once per hour isn’t real-time enough for you, maybe you should be using Twitter!” and ”If you think the world cannot possibly wait an hour for your next post…you are probably wrong”.

Clearly these people don’t value the new web and it’s rapidness as I do. I even doubt that we see the same web. When I look at the blogosphere I see a revolutionary democratization of the media landscape. In the last decade people all over the world have become their own publishers and have connected themself with other blogs and portals. In recent years, newspapers has showed inbound links with offsite comments using services like Twingly. During the last year big players like Google and FriendFeed has worked together and established near real time announcements with PubSubHubBub. All this communcation between different platforms could not be possible without rapid pingbacks. Pings simply need to be sent out from blogs as soon as possible.

If the change in WordPress itself is one problem, the lack of information of it is another. People can not, like Denis suggest, change the behavior of WordPress with a plugin if they don’t know that they need to. Since this change was not clearly communicated from the head developers I can only assume that the patch was accepted by a misstake in a stressed situation before the release of WordPress 2.8.

I would love get some official comments from Automattic (or some of the ”victims” like FeedBurner or Twingly ), but I guess I have to wait until monday for that.

Anyway, Pelle Wessman has submitted a counter-patch that change this behavior , it will be exciting to see how it is recived by the WordPress community.

Update 4: WordPress core developer Ryan has reverted the code back to the default ”ping often” behaviour. It look like everything will be as usual in the 2.8.3 release. More on this later on …