The RSS Blog

News and commentary from the RSS and OPML community.

One of the most effective ways of getting your blog indexed is to ping a site called weblogs.com. Just recently, I added ping code to some new blogs and within moments Technorati was indexing these blogs like mad. Proof positive that Technorati is still using weblogs.com to find updated blogs. There are two ways of pinging the weblogs.com ping service. You can use a simple REST-like interface or an XML-RPC interface. The XML-RPC interface is slightly complex, so I've always opted for the simpler REST-list interface, but I'll describe both here.

XML-RPC Ping

The XML-RPC interface involves posting a small XML fragment to a specific URI. The URI is http://rpc.weblogs.com/RPC2. A sample XML fragment is shown.

<?xml version="1.0"?>
<methodCall>
<methodName>weblogUpdates.ping</methodName>
<params>
<param><value>The RSS Blog</value></param>
<param><value>https://rssweblog.com/</value></param>
</params>
</methodCall>

There is also an extended ping with three additional parameters, one of which is optional. The first parameter is the address of the webpage that has been updated, the second parameter is the address of your RSS feed and the third parameter is a delimited list of categories related to your blog. A sample XML fragment for the request follows.

<?xml version="1.0"?>
<methodCall>
<methodName>weblogUpdates.extendedPing</methodName>
<params>
<param><value>The RSS Blog</value></param>
<param><value>https://rssweblog.com/</value></param>
<param><value>https://rssweblog.com/</value></param>
<param><value>http://feeds.feedburner.com/TheRssBlog</value></param>
<param><value>rss|opml</value></param>
</params>
</methodCall>

The response will be another XML-RPC package that contains an error code and message.

<?xml version="1.0"?>  
<methodResponse> 
<params><param><value><struct>
<member><name>flerror</name><value><boolean>0</boolean></value></member>
<member><name>message</name><value>Thanks for the ping.</value></member>
</struct></value></param></params>
</methodResponse>

An flerror value of 0 indicates there was not error. If the value is not 0, then it should be 1 and the message parameter will contain details of the failure.

REST-like Ping

Although the XML-RPC ping is only slightly complicated, I prefer to use the REST-list ping because it is trivial. In this case, you execute a very simple HTTP GET or HTTP POST request with two required parameters and one optional one. The first parameter is the name of the blog that has been updated. The second is the url of the blog's homepage. The third and only optional parameter is the address of the blog's RSS feed. Sample shown with only the two required parameters.

http://rpc.weblogs.com/pingSiteForm ?name=The+RSS+Blog &url=http%3A%2F%2Fwww.kbcafe.com%2Frss%2F

You can also simply enter this URL in a web browser's address bar to accomplish the same. Sample C# code follows.

Uri pingUri = new Uri( string.Format ("http://rpc.weblogs.com/pingSiteForm?name={0}&url={1}&changesURL={2}",
   UrlEncode(title), UrlEncode(link), UrlEncode(rss)));
WebRequest request = WebRequest.Create(pingUri.AbsoluteUri);
request.GetResponse();

Google Blog Search

I did notice that these same blogs were not appearing in Google blog search yet. I thought at one point Google was using weblogs.com to populate its database, but I assume that has stopped. The REST-like code above will also work for pinging Google Blog Search, but the formatted string changes slightly and takes only one parameter, the address of the RSS feed.

Uri pingUri = new Uri( string.Format("http://blogsearch.google.com/ping?url={0}",
   UrlEncode(rss)));

Other Ping Services

There are many other ping services, but the vast majority of them have very few users and many of them simply don't work. If the ping above doesn't get you indexed by Technorati, then you might consider their XML-RPC ping interface.

Reader Comments Subscribe
I am really confused by this (not your post in particular, I mean in general).  I want my custom blog to ping Technorati after each new posting.  I can certainly program my blog application to produce text files that look exactly like those you describe above.  But, how on earth do I transmit that information to (those text files) to Technorati after I do?  I keep reading "ping" Technorait, but how do you ping from an ASP script?  Usually when I ping something I open CMD from Windows and type P-I-N-G (whatever domain), and that's it.  I don't see how that works in any CGI script.

Dave
Type "339":