Is one MIME type preferable to ensure compatibility with RSS readers and other scrapers?
The options seem to be:
- text/xml
- text/rss+xml
Interestingly Stackoverflow is using text/html.
Other commenters have pointed out that the single correct mime type is application/rss+xml,
.
However, if you are setting an accept header for a client then
Accept: application/rss+xml, application/rdf+xml;q=0.8, application/atom+xml;q=0.6, application/xml;q=0.4, text/xml;q=0.4
might be a good choice, as it states that it accepts RSS, Atom, and XML (in descending order or preference).
Here's a pragmatic answer: whatever the "correct" answer may be (and clearly there is debate about this), text/xml
is the type used by pretty much all the popular feeds out there in the wild.
Here are a few that I checked:
$ for f in \
https://feeds.feedburner.com/TechCrunch/ \
http://feeds.bbci.co.uk/news/video_and_audio/news_front_page/rss.xml \
http://rss.nytimes.com/services/xml/rss/nyt/HomePage.xml \
https://daringfireball.net/thetalkshow/rss \
http://www.npr.org/rss/podcast.php?id=381444908 \
http://feeds.serialpodcast.org/serialpodcast \
http://podcasts.joerogan.net/feed \
https://feeds.feedburner.com/thetimferrissshow \
http://feed.thisamericanlife.org/talpodcast ; do \
curl -s -I $f | fgrep -i Content-Type: ; done
content-type:text/xml; charset=UTF-8
Content-Type: text/xml
Content-Type: text/xml
Content-Type: text/xml;charset=UTF-8
Content-Type: text/xml;charset=UTF-8
Content-Type: text/xml; charset=UTF-8
Content-Type: text/xml; charset=UTF-8
content-type:text/xml; charset=UTF-8
Content-Type: text/xml; charset=UTF-8
So you can be sure that text/xml
will be correctly interpreted by commonly used RSS clients.
The most correct is application/rss+xml
The most compatible is application/xml
According to W3C:
RSS feeds should be served as application/rss+xml (RSS 1.0 is an RDF format, so it may be served as application/rdf+xml instead). Atom feeds should use application/atom+xml. Alternatively, for compatibility with widely-deployed web browsers, any of these feeds can use one of the more general XML types - preferably application/xml.
https://validator.w3.org/feed/docs/warning/UnexpectedContentType.html
Go for MIME application/rss+xml to be safe if you want to make sure your feed is compatible with RSS readers and other scrapers. That's what I use.
text/xml is the only correct answer. Mime types are a registration based system. There is an official list managed by IANA (Internet Assigned Numbers Authority) at http://www.iana.org/assignments/media-types/media-types.xhtml