Blog Ping List and XML-RPC Generator

If you're using WordPress or something similar for your blog, it's easy to add in blog pinging services and forget about the whole process. But, what if you need to ping those services for a blog constructed outside of WordPress? This tutorial will answer that question for you.

What is Blog Pinging?

Blog pinging is the process by which your server immediately lets content aggregators and search engines know that you have new content that should be indexed. Almost always, this is done with an XML-RPC-based request sent from your server.

How do I construct my XML-RPC Request?

The format is pretty simple. Here's an example:

1.   <?xml version="1.0"?>
2.   <methodCall>
3.     <methodName>weblogUpdates.extendedPing</methodName>
4.     <params>
5.   	<param>
6.   	  <value>Example Blog</value>
7.   	</param>
8.   	<param>
9.   	  <value>http://www.example.com/blog/</value>
10.  	</param>
11.  	<param>
12.  	  <value>http://www.example.com/blog/new-post.html</value>
13.  	</param>
14.  	<param>
15.  	  <value>http://www.example.com/blog/feed.xml</value>
16.  	</param>
17.    </params>
18.  </methodCall>

Want it even easier? Okay… Tell us your blog details and we'll construct the XML-RPC request for you:

Blog Name
Site URL
New Post URL
RSS Feed URL
 

Now, who should I ping it to?

If you search around the internet for a blog ping list, you'll find lots, but most of them are composed primarily of services that are no longer active. Because of the large amount of spam pings generated and sent, blog pinging seems to be dying. However, the services listed as Active below are still out there and working. You should send your blog pings to them:

Service NameEndpoint (Ping URL)Status*Comments
Google Blog Searchhttp://blogsearch.google.com/ping/RPC2ActiveMore information can be found in this Google Help Article.
Weblogs.comhttp://rpc.weblogs.com/RPC2Active 
NewsGatorhttp://services.newsgator.com/ngws/xmlrpcping.aspxActive 
PubSubhttp://xping.pubsub.com/ping/Active 
Feedburnerhttp://ping.feedburner.comActive 
BlogPeoplehttp://www.blogpeople.net/servlet/weblogUpdatesActive 
Technoratihttp://technorati.com/pingInactiveTechnorati has a message on their site saying that they no longer accept pings as of October 2009.
Ping-o-Matic!http://pingomatic.com/ping/InactiveIf you try to ping this service from outside of WordPress, you simply get a response of "You are too awesome for Ping-o-matic."
Yahoo!http://api.my.yahoo.com/RPC2InactiveThere is a message on Yahoo's Developer Site saying that pinging will has been discontinued as of December 2010.
Feedsterhttp://api.feedster.com/pingInactiveFeedster is no longer around. You can find more details in the article Feedster Quietly Dies.
Blo.gshttp://ping.blo.gs/InactiveThe service is returning a 403 Forbidden error, even if you access via the form on their site.
 http://api.moreover.com/RPC2Inactive 
 http://ping.weblogalot.com/rpc.phpInactive 
 http://rpc.blogrolling.com/pinger/Inactive 
 http://rpc.icerocket.com:10080/Inactive 
 http://topicexchange.com/RPC2Inactive 
 http://www.blogdigger.com/RPC2Inactive 
 http://www.blogstreet.com/xrbin/xmlrpc.cgiInactive 
 http://www.newsisfree.com/RPCCloudInactive 
 http://ping.weblogs.se/Inactive 
 http://blogmatcher.com/u.phpInactive 
 http://coreblog.org/ping/Inactive 
 http://bulkfeeds.net/rpcInactive 
 http://trackback.bakeinu.jp/bakeping.phpInactive 
 http://ping.bitacoras.comInactive 
 http://ping.bloggers.jp/rpc/Inactive 
 http://1470.net/api/pingInactive 
 http://bblog.com/ping.phpInactive 
 http://ping.myblog.jpInactive 
Syndic8http://ping.syndic8.com/xmlrpc.phpInactive 

* This list was last tested on March 13th, 2014. If you find that any of the statuses are not up to date, please comment below and let us know.

How do I submit my ping?

If you're running PHP, you can use the following:

1.   $context = stream_context_create(array('http' => array(
2.   	'method' => "POST",
3.   	'header' => "Content-Type: text/xml\r\n",
4.   	'content' => $xml
5.   )));
6.   $file = @file_get_contents($post_to, false, $context);
7.   if ($file === false) { echo '<p>Couldn\'t connect!</p>'; }
8.   elseif ($file) {
9.   	echo '<p>The following response was returned:</p>';
10.  	echo '<pre>'.htmlspecialchars($file).'</pre>';
11.  } else {
12.  	echo '<p>Empty response!</p>';
13.  }

(Define $xml with the XML-RPC request that you generated a couple paragraphs further up the page.)

That's it. Happy pinging! If you have questions or comments, please leave them below. Also, new blog pinging services are always appreciated! Don't keep them to yourself.


Comments

Loading…

This post was first published on January 29th, 2011 and last updated on March 13th, 2014 by Robert James Reese in the following categories: Blogging, PHP, and XML. Before using any of the code or other content in this post, you must read and agree to our terms of use.