To secure a good user experience for the users that subscribes to your RSS feed, you need to make sure it validates. RSS is a standard just like HTML and CSS and irregular markup can cause problems now or in the future. RSS aggregators like feeder.co strive to be as consistent as possible. We have made the decision to try to stay as pragmatic towards feeds as possible. If a feed is not 100% according to the specification, we try anyway.
There are multiple services on the web you can use to validate your RSS or Atom feed. The canonical service is made by the W3CÂ and called the Feed Validation Service.
Common pitfalls
Date format
There are a lot of different formats for dates out in the wild. Different regions use different standards and don’t always mix well. The RSS standard RFC822 format looks like this: Thu, 23 Feb 2017 14:03:01 GMT
Most programming languages provide a standard package to output dates in this format. For example:
PHP: echo date(DATE_RFC822);
Go: print(time.Now().Format(time.RFC822))
Ruby: DateTime.now.rfc822
Not including a GUID
The <guid>
element is a fantastic way for you as website owner to make the RSS aggregator’s lives simpler. The GUID is a globally unique identifier, that can be anything. Just make sure it’s unique. A large complexity for RSS parsers is to detect new posts that weren’t there on a previous crawl. If no GUID is available we go off the title and the posted date. However, if any of those change we will mark it as a new post and our users will be annoyed because they probably already saw that post.
Changing something causing all posts to look new
In the same vein as the previous point, if you for example change time zone on the server and all timestamps are changed with +1 hours or so, a feed reader might think the posts are new. Keep in mind these points if you were to migrate any time in the future.