Tuesday, 21 July 2009

Feed publishers – top 12 best practices

How should a website implement feeds? Below is my wishlist of essential to-dos for any website that provides feeds (reflecting my top 12 feed annoyances but of course), in the form of an open letter to website owners.

In my view these are the minimum best practices that web sites which publish feeds should follow. And here's a tip: how not to implement feeds is to omit any one of these steps! (except no. 12, which in my view is optional unless the site has lots of feeds).

Some guilty parties are named and shamed below. However, choccies & bouquets go to the BBC. Kiss kiss. If in doubt on feeds, the general rule is, see how Auntie did it, and do it that way.

Dear Website Owners

Please, please, please:

  1. Feeds, feeds, give us feeds! Just give us feeds. HTML webpages are soooo 20th century.
  2. Feeds for all periodically changing pages. Provide feeds for all pages on your site which readers may want to check regularly – not just news but also events, publications etc.
    1. Example: Citizens Online offers a feed for news, but not new publications. (And their “What is RSS?” link doesn’t work, which is ironic)
  3. Feeds per topic (and ideally one global feed too, see no. 12). Give us separate feeds for different pages or topics, so users can choose to subscribe to the individual feeds whose subject matter interests them, rather than having to get everything from your site in a single “all in one” feed.
    1. Example of good practices: BBC’s feeds; Out-Law.com’s per topic feeds.
  4. Autodiscovery on all relevant pages. Enable autodiscovery on all pages which have feed equivalents (and point ‘em to the right feed addresses!).
    1. Counter-example: Out-Law.Com (as an example of bad practice for a change) don’t provide auto-discovery code on their news page.
    2. Amazon don’t provide auto-discovery on their feeds page for their news releases.
  5. Autodiscovery on home page. Also provide autodiscovery for your feeds on your site’s home page, not just your individual news or other sub-pages.
    1. Out-Law.Com don’t provide auto-discovery on their main page either. (You can still find their feed address via Google Reader, but that’s due to Google coding cleverness, not auto-discovery on Out-Law’s site.)
  6. Display feed icons / chicklets on your news / blog pages. Include clearly visible feed icons / chicklets on all pages which have feed equivalents. Don’t leave ‘em out (my emphasis): “The canonical use of the feed icon is on a web page containing information (such as blog posts, news articles, and so on) that is also made available via web syndication, with the icon linking to a URL for the web feed.”

    And don’t just have just a text link saying “feed” (like this example, see top left). People are visual animals, we tend to look for nice visible icons.
    1. The UK Information Commissioner’s Office has a press releases page, but the feed URL for press releases isn’t even hinted at on that page – only on another separate page. You even have to search for “RSS” to find the page listing feeds! Easy to find, not.
    2. Newish information law blog Amberhawk have a “Subscribe to this blog's feed” link, but it’s small text & not obvious – and there are no chicklets.
  7. Link your feed icons properly. Feed icons should be linked to the addresses of the correct associated feeds – i.e. to the correct feed URLs. People expect to be able to rightclick feed icons to get your feed address.
    1. Don’t link the icon to another webpage that lists the feed URLs (ahem Google Groups feeds! scroll to bottom of page, feed icon doesn’t link to a feed but a webpage; smacks too to New Scientist and Amazon). Feed icons are meant to link to feeds, not webpages! (my emphasis): “The canonical use of the feed icon is on a web page containing information (such as blog posts, news articles, and so on) that is also made available via web syndication, with the icon linking to a URL for the web feed.”
    2. Don’t link chicklets to feed URLs that don’t actually work! (smacks to the European Commission – the RSS dropdown links only work in Internet Explorer, no other browser; and trying to choose a language (French etc) from the very shy Javascript dropdown list is almost impossible unless you’re very dextrous of mouse, so there’s an accessibility no no there. And the XML link on that page makes e.g. Google Reader and Bloglines choke.)
  8. Title your feed. Give proper descriptive titles for feeds (and for individual items). “Site feed” just doesn’t cut it (whose??), “(untitled)” is just as bad. “X’s feed” (for a site named X) is slightly better, “X news”, “X publications on topic Y”, “X events”, “X what’s new” better still.
  9. Give us full feeds. Provide full feeds, or at least the option of full feeds, and not just headlines or excerpts. (The European Commission’s press releases feed is next to useless especially for the Midday Express.)
    1. The only thing I don’t like about the BBC is that they don’t provide full feeds, only 1 liners, on their news sites. (They have full feeds on their blogs, at least.)
    2. Too many sites only provide short feeds. I guess they want readers to click through to their sites in order to view their advertising. But now there’s services like AdSense for Feeds, why not put out full feeds with ads? And the ad point is no excuse for public service sites like the BBC.
  10. No false “new” feeds. Produce your feeds properly so that they don’t always get marked as “new” whenever something irrelevant changes on your source page, and pop up again on your users’ feed readers. It wastes their time having to check feeds which supposedly have new content but don’t.
  11. Help de-duplicate items. If you put out several feeds which may sometimes contain the same new item because it’s relevant to more than one main topic, don’t forget people might subscribe to all those feeds. So help enable their news readers to de-duplicate items by encoding your items appropriately. Otherwise, having the same item pop up in different feeds is a time-waster for your users / customers. (I know not all feed readers can de-duplicate, but at least for those that incorporate the facility, help them do it!)
  12. (Optional) Feed directory and global feed. [EDIT: sorry, correcting bad editing after copy/pasting!] If you offer a ton of feeds, consider offering a single “directory” page listing all available feeds, as an extra service to users, and a single global feed that combines all your feeds, especially if you’ve done no. 3 above - but do that in addition to (not instead of) the above.

    Why? Because it’s very helpful to have the option of an “all in one” feed for users who want everything from your site but don’t want to have to subscribe one by one to every single individual feed you offer, and it also means that the user who subscribes to the single all in one feed can avoid getting duplicate items (see 11).

    If you decide to provide a directory page listing your site’s feeds:
    1. make the directory page easy to find, at a minimum from your home page and pages that have associated feeds, or on a search for “feeds” or “RSS” on your site
    2. don’t attach the directory page’s URL to the standard feed icon! Yes I know I’m repeating 7.1, but this bugs me
    3. list all your site’s available feeds on the directory page, not just a random selection (e.g. the IPPR feeds page doesn’t list their podcast feed)
    4. make sure the feed addresses listed on the directory page are correct and actually work.

(For those new to feeds see my detailed howto guidance / tutorial introduction on the basics of publishing feeds, primarily aimed at bloggers, and my very basic intro for new feed users.)


Struan said...

Hi there,

I'm the editor of Out-law.com. Thanks for pointing out the auto-discovery issues at our site. It's something that hadn't occured to me before. I'll be asking our developers to investigate.


Improbulus said...

Struan, thanks for your comment and for taking the point on board. I hope your developers do enable auto-discovery on Out-Law fully soon, it's an excellent blog.