A Guide to RSS Elements:
Beyond Title, Description, and Link
Copyright 2006 - Greg Smith; Elegant Computer Design
[Updated  April 6, 2006 to relfect recent changes to commentRss]

You’ve got your RSS feed up and running and you already have the <title>,
<description>, and (maybe) <link> elements in your feed. And now you want
to optimize your feed for FeederReader or
other offline aggregators? This
guide will help you understand what RSS elements you can add to your feed
to optimize the user experience in FeederReader and, likely, other
aggregators.

<pubDate>
pubDate will tell the aggregator exactly when the item was published.
Otherwise, the only hint that the aggregator has is the time the feed is
updated. In many cases, the user can look at the download time and get a
general clue about when the item was published because the user is
updating anywhere from hourly to weekly. But when the user first pulls down
your feed and you don’t have a pubDate, all items will be marked as
published at the download time. If you have any items that were published,
for instance, five weeks ago, then the user has to mentally sift through items
to determine when they might have been published (or be left to wonder).
Additionally, the user can list items from multiple feeds in chronological
order. If you have individual pubDate elements, then your items will be listed
correctly among other feeds instead of lumped into groups of items
downloaded at the same time. Be careful of the correct format of the
pubDate element and be careful of outputting the correct time/timezone
relative to Daylight Savings Time (aka “Summer Time”). It is probably safer to
automatically generate UTC times rather than using “PST” or “PDT” (which
you would likely have to change back or forth every 6 months).

<dc:creator>
http://dublincore.org/ (there isn’t a clear concise description of dc:creator in
an RSS feed)
dc:creator is the name of the person or group that created the item. This
should be just a simple “First Last” name or a (relatively short) group name.
The dc:creator (for display purposes) is useful even when you have an
<author> element (http://blogs.law.harvard.
edu/tech/rss#ltauthorgtSubelementOfLtitemgt ) because the <author>
element is specified to be the email address of the author, while <dc:
creator> is simple display text.

<title> of the RSS channel
http://blogs.law.harvard.edu/tech/rss#requiredChannelElements
It is important that the title of the RSS channel be relatively short and
displayable (no markup) and yet specific enough to differentiate from any
other of your feeds. For instance, if you have multiple video feeds with
different enclosure types, then the titles of your RSS channels should
indicate “Cool Videos WMV” or “Cool Videos MOV”. Or if you have a text-only
feed, a audio only feed, and a mixed feed “Great Greg Info - text only”, “Greg
Greg Info - audio only”, “Great Greg Info - text and audio”.

<image> of the RSS channel
http://blogs.law.harvard.edu/tech/rss#ltimagegtSubelementOfLtchannelgt
The image of the RSS channel is (optionally) displayed at the top of every
message. It is scaled to be displayed at a maximum of  30 pixels high and
the width of the device (generally around 230 pixels). It is best that your
image be horizontally oriented, possibly with your logo and the name of your
feed or organization within the image.


The <pubDate>, <dc:creator>, <title> and <image> elements all work
together to present a useful item display to the user. The display consists of
the image on top, followed by the title (as a link using the <link> element),
followed by a byline that reads “ – 1 hr ago by Greg Smith from Cool Videos”).

<guid>
http://blogs.law.harvard.edu/tech/rss#ltguidgtSubelementOfLtitemgt
This “Global Unique Identifier” allows you to republish or update specific
items without duplicating these items in an aggregator. If you change an
item without using the <guid> element, then the aggregator has no way of
determining that the new item is replacing an old item. In that case, the
aggregator will retain the old item and the new item, forcing the user to read
it twice. If the <guid> element exists (and is the same as a previous item’s
<guid>) then the aggregator can (at the users option) replace the old item
with the new one. If the user has not read the item yet, then all they will see
is the updated item. If they have read the old item already, then they can
optionally read the update or ignore it.

<source>
http://blogs.law.harvard.edu/tech/rss#ltsourcegtSubelementOfLtitemgt
This is the URI of the RSS feed from which you got a particular item. When
the <source> element exists in an item, the user is presented with an easy
way to subscribe to this link. This would also be an alternative way (to OPML)
to present a list of feeds that a user can optionally subscribe to. If you have a
list of 5-30 feeds that you want to recommend to a user, you could create an
RSS feed that contains those feeds including a title, description, and source
elements. The user could then scan the list of titles to see which might be
interesting, and subscribe easily to each one that is interesting.

<comments>
http://blogs.law.harvard.edu/tech/rss#ltcommentsgtSubelementOfLtitemgt
comments is specified to be the URL of the web page that contains
comments and an HTML form that allows comments to be posted. For
offline aggregators (users reading your RSS feed while disconnected from
the Web), this is a big problem. If a user is not connected to the web, they
cannot comment on any items in your feed. If they wanted to (and
remembered to), they could wait until they got an internet connection, then go
back to your item, and select the comments page to view and/or post. How
likely is that? A much better way to support comments is to implement the
CommentAPI.

CommentAPI - <wfw:comment>
http://wellformedweb.org/story/9
If your server supports the CommentAPI, you can publish the <wfw:
comment> element with your item. This allows offline aggregators to
present a standard form, collect the user’s comment, and save the comment
until the next time the user connects to the internet.

Comment RSS Feed - <wfw:commentRss>
Use of <wfw:commentRSS> (note capitalization difference) is Deprecated:
This contains the URI of the RSS feed that contains the comments for this
item. This URI can be presented to the user while reading the item and, if
interested, the user can subscribe to the comments in this feed to be
notified of and be able to read (offline, if desired) any comments on this item.

History of wfw:commentRss vs. wfw:commentRSS.
In April of 2006, Joe Gregorio mentioned on the Feed Validator list that he
changed the well-formed web link describing this element from wfw:
commentRSS to wfw:commentRss because it had conflicted with Chris
Sells' published specification. Due to this change, feed producers are
recommended to use the following capitalization: <wfw:commentRss>.

[Deprecated April 6, 2006]
Here are my original comments regarding the wfw:commentRss element.
http://www.sellsbrothers.com/spout/default.aspx?content=archive.
htm#exposingRssComments (If this link doesn’t work, see the Appendix)
...
Unfortunately, the link within the “Well Formed Web” page lists this element
as “wfw:commentRSS” and the Chris Sells Specification lists this element
as “wfw:commentRss”. (see http://trac.wordpress.org/ticket/1544 -- or
Appendix B -- for a great explanation why wfw:commentRSS seems
“correct”).
Home
Getting Started
Downloads
Forums
Program Help
Enclosure Support
Playing Media Files
RSS Basic Guide