Give Your Site the RSS Treatment

If you have already heard how RSS can help you get more traffic on your site and increase the audience for your content -- no matter what that content might be -- and you're looking for an overview of how you can take advantage of this, then you're in the right place! This document gives you those details, at a high level rather than digging deeply into the technical issues, so that you can make some positive moves toward syndication.

Note: If you have comments on this document, either from a learning standpoint about how easy it is to understand, or a technical standpoint if you find an important inaccuracy or omission, please contact me so that I can address whatever problem(s) you find.

Analyzing Your Content

Before you can give your site "the RSS treatment" (i.e., publishing an RSS feed of your content, to get the benefits from doing so), you need to put some thought into what your site is all about, and what it has on it. The most important thing to look for is content that changes regularly, compared to content that changes infrequently or which may never change.

Static vs. Changing Content

If you have content that changes rarely or never, such as an "About Us" or "Contact Info" page, there is really no benefit to creating an RSS feed to represent the information on those pages. The maximum benefits from RSS can be had by creating one or more feeds for data that is regularly changing. If you have a "Site News" or "Company Press Releases" page, these probably change much more frequently than background information about you or your organization. Therefore, such "news" pages may be excellent candidates for RSS feeds.

Who Changes the Content?

Some of your content will change when you change it, such as a list of press releases, a newsletter, product announcements, or a "change log" for a software product. These parts of your site, which you (or others in your organization) update regularly, should be your first consideration for an RSS feed. Depending on your site, you may also have content that is changed by people who visit your site. This would include guestbooks, blog comments, forum messages, and other interactive parts of your site. If you think others will find that third-party input of interest, you can also build RSS feeds for those parts of your site.

Selecting Technology

Once you have analyzed your site and you have a good idea what part(s) of your site may be suitable for syndicating with RSS, the next inevitable step is to decide on how you will actually construct the RSS feed.

The Goal

The overall goal for this process is to create a data source that other people can use. (I'll call this data source a "file" although it does not technically need to be a file.) The data file must be in one of the accepted RSS formats (all of which use XML as a basis), and it must be available on a server that your desired subscribers can access across the network. For a public feed, this typically means a normal Web site; however, RSS can be used on a private network, such as a company's intranet. Once you have the data in the right format and accessible to your potential subscribers, people who want to use your feed can subscribe to it in a number of ways. For example, they can use an RSS reader to read your data interactively, or they can build your data into their site where it will be automatically updated when you change the data in your feed.

The Low-Tech Way

One way to reach your goal of having an RSS feed is to manually type the contents of the RSS feed, using a text editor like Notepad, Simple Text, or EMACS. While this has the benefits of technological simplicity and getting you to the goal quickly, it has some significant drawbacks. First, it is prone to error. Because your RSS feed data file must be valid XML, hand-editing your file could "break" it due to a variety of things like an incomplete understanding of the RSS format, or of XML -- even a simple typo could make your feed unusable until you correct the problem. Editing your data file by hand requires a solid understanding of XML and RSS. Also, if you have frequent updates, it will take a lot of your time. For content that may change several times within an hour, do you have the time to "babysit" your feed? Hand-editing, if it is done at all, should only be done for feeds with infrequent updates.

Automation: Dynamic Generation or Rewrite a Static File?

No matter what technology tools you decide to use, there are two basic approaches to the way your Web server handles the RSS data. The first is to have a "static" file (a file that does not change by itself) which is updated whenever there is new content, and the second is to have a program that generates the data each time it is run. If you hand-edit the data file, then you are taking the first approach. Another way to use that same approach is to have a program re-write the file when some other event happens, such as when you add a new press release to your press release database, or when a user signs your guestbook.

One important advantage of the file approach is that software tools which process your feed can use the features of HTTP to not re-transfer your data file if it hasn't changed since the last time it picked up a copy of it. This saves your bandwidth, and it saves time on the client side -- two savings that are worth obtaining if possible. However, there are times when the file approach is not possible, perhaps due to the frequency and volume of updates, or technical limitations regarding your site, or the actual source of data, etc. (For example, a pre-built guestbook feature might not be modifiable to write a file instead of relying on a database.) In those cases, you'll need to use some sort of program that will create the feed content every time it is requested, i.e., to "dynamically generate" the feed upon request. An example would be a Perl CGI script that pulls information from a database and sends the properly-formatted RSS data back to the requesting client. Instead of a Perl (or other language) CGI, this could also be done with PHP, ASP, etc.

Database Considerations

The simplest way to supply an automated RSS feed with content, whether your automation process rewrites a static file or dynamically generates the feed data, is to store the content in a database. There are many things that can be considered a "database" but it is common to use a relational database such as MySQL or MS Access. This may already be done for you if your feed is using data from an online forum, guestbook, blog, etc., or you can build something of your own to meet your specific needs (e.g., for a site updates page or company newsletter).

Validation

When you think your feed is ready, you should verify that it is technically valid by submitting it to an RSS validating tool. There are useful tools, such as at feedvalidator.org, that will not only check to see if your RSS feed is valid, but will also provide useful help if there is a problem with your feed.

Finding Subscribers

Once your feed is up and you have confirmed that it is technically valid, it won't magically appear on anybody's site or in anybody's RSS reader. If your feed is on a private network, like a company intranet, then you should know who your subscribers will be, and you can use your normal communication channels to let them know your feed is ready. However, if you are operating a feed that is intended to be seen by the general public, you need to make people whom you've never met aware of your feed, and there are various ways to do this.

At a basic level, finding subscribers on the public Internet is like finding visitors to a regular Web site. That means you can use the same techniques, such as simply telling people in an email newsletter, buying banner ads, posting an appropriate message to a relevant message board or newsgroup, etc. However, in addition to these "traditional" online promotion techniques, there are other mechanisms that are specific to RSS which can help you gain subscribers.

Meta-Data

What is "meta-data?" That's a fancy term that means "information about information" -- in this case, information about your feed. You can add this meta-data to your existing Web pages to make it easy for people and automated scripts to locate your RSS feed. One of the simplest ways to do this is to place a small graphic icon on your site and link it to your feed. The icon to use is the small, orange "XML" button that you can find on other sites that have RSS feeds.

For example, let's assume that your feed is stored in the file my_feed.rss in your site's root directory, and that you have the XML button stored as xml.gif in your /images directory. Let's also assume that your RSS feed is for your guestbook. The following code could be added to the guestbook page on your site, to help promote your feed:

<a href="/my_feed.rss" type="application/rss+xml"><img src="/images/xml.gif" alt="My Guestbook via RSS" width="36" height="14" border="0"></a>

In addition to adding the XML button, you can also add a special tag to the HEAD section of the HTML page that is the "Web version" of the data in your RSS feed. Using the above example, the guestbook page could have the following code added between the and tags to make users and software aware of the RSS feed as an alternate source of the information on that page:

<link rel="alternate" type="application/rss+xml" title="My Guestbook via RSS" href="/my_feed.rss">

The title may or may not be displayed to users visiting your page, depending on the software they use, so it should be descriptive yet succinct. And remember, the meta-data does not belong in your RSS data, but instead belongs in the source code of Web page(s) that are viewed by users with a typical Web browser.

Registries

There are a number of Web sites that host large databases of feeds, where you can register your feed for other people to find it. An example is Syndic8.com, which has a large and growing database of feeds. It's a very good starting point because it has many features that are useful for getting the word out about your feed, including Web Services interfaces that allow people to get your feed data from their database without actually going to the Syndic8.com site.

Remember the part about meta-data? When you add that special code to your site, automated scripts can find your feed (in much the same way that Web search engines find pages on your site) and automatically suggest your feed to registries. This is a great thing for the busy (or just plain lazy!) feed owner; however, it's also a serendipitous way to promote your feed. To be certain you are getting the maximum exposure for your feed, you'll want to manually suggest your feed.

Further Reading

This document does not provide enough information to get you completely through setting up an RSS feed for your site, but it should help you get closer to the goal. It should also give you some ideas for more specific details to research online. The more you read, the more you will be able to fill in knowledge gaps until you are fully ready to launch your RSS feed. Good luck!