Making RSS in 2020
I love a good RSS feed. As mentioned previously in my post about How to read RSS in 2020, I’ve been working on a starter blog for people to use with Site.js. It’s all very nice to provide RSS feeds by default in a theme, and explain to a site’s readers how to use RSS, but I also have big opinions on the structure of the post in an RSS feed. So often the RSS template suffers from a woeful lack of attention. It’s desperately clear that many sites with RSS feeds either use the default template that comes with their CMS (content management system) or aren’t really aware that they’re outputting an RSS feed at all. It’s a shame because I think we can do a lot to improve the reading experience for those who favour RSS.
Full content or go home
If your RSS feed only shows an excerpt of the blog post, don’t bother. It removes all value from using an RSS feed in the first place. Unless your content absolutely cannot be rendered inside a feed reader, there is no excuse. If your excuse is “I need people to visit my site so I can track them to make money”, RSS feeds aren’t for you. They’re more in the spirit of sharing and enabling independence, not surveilling and mining people’s personal data. One of the big benefits of RSS from a reader’s perspective is the lack of tracking. If you embed tracking in RSS, you are a bad person.
Use semantic HTML
RSS doesn’t include your CSS, much like a browser’s Reader/Reading view. Which gives us yet another reason to use semantic HTML or semantic markdown. (The number one reason to use semantic HTML is, of course, for accessibility.) If you’re writing a list, use <ul>
or <ol>
. If you’re quoting someone, use <blockquote>
. Use headings (<h1>
,<h2>
,<h3>
) hierarchically to segment lengthy content to make it easier to read. If you’re including a image with a caption, use <figure>
and <figcaption>
. A feed reader will style these elements so their meaning is still clear, whereas it will ignore your <div>
s and <span>
s. Nobody wants to be writing multiple versions of their content specifically for RSS or Reader views, so it makes sense to make your content as flexible as possible and use semantic HTML for everything.
Below is an article on A List Apart as rendered in the browser with fancy CSS:
Compare that to the same article rendered in the Feedbin feed reader. The caption styling is different, but it’s still clear that it’s a caption:
Don’t be afraid to have multiple feeds
People aren’t necessarily after a feed of everything you publish all the time. If you’ve got different sections on your site, it’s helpful to provide separate feeds for those sections. On my site I have separate feeds for the more work-related stuff I produce, like my blog or my recommended reads, and my more personal stuff like notes and photos that are more like social media feeds. There is still an all-in-one feed for my whole site, but I wouldn’t recommend it unless you really like me.
Designing for RSS
It’s obvious when a site has put effort into its RSS feed. Little touches like a descriptive (but not too long!) feed title can make all the difference.

Some of the feed titles in my subscriptions. Much like
Customise your template depending on your feed’s content
If you write short posts, like status updates, it’s worth
Link back to original post/article
Make your feeds easy to discover for both technology and humans
- linking to original resource and/or site in content, not just heading
- make your RSS feeds visible to tech and humans