Correctly Link Atom/RSS Feeds with your HTML Pages

by Christoph Schiessl

All websites that regularly publish new content should consider implementing an Atom or RSS feed as one communication channel to inform readers about new content. It doesn't matter which one you pick because both Atom and RSS have the same purpose; the only difference is their format. Anyways, once your feed is generated, you must add an appropriate <link> tag in the <head> of your HTML documents so clients can actually discover it ...

How to <link> Atom feeds

For instance, if the Atom feed of a website is located at https://example.com/atom-feed.xml, then you should add a <link> tag to your HTML pages as follows:

<link rel="alternate" type="application/atom+xml" href="https://example.com/atom-feed.xml" />

How to <link> RSS feeds

If you are using the RSS format, then you should also add a <link> tag, but use a different type attribute:

<link rel="alternate" type="application/rss" href="https://example.com/rss-feed.xml" />

Linking multiple feeds

Lastly, simultaneously having an Atom feed and an RSS feed is not required but totally valid. In this case, you are supposed to add two <link> tags — one for each type.

<link rel="alternate" type="application/atom+xml" href="https://example.com/atom-feed.xml" />
<link rel="alternate" type="application/rss+xml" href="https://example.com/rss-feed.xml" />

Thank you very much for reading! If you are interested in web development, please check out my other articles and subscribe to my mailing list (or Atom feed) to be notified when I publish new content.

Ready to Learn More Web Development?

Join my Mailing List to receive one article per week.


I send one email per week on building performant and resilient Web Applications with Python, JavaScript and PostgreSQL. No spam. Unscubscribe at any time.

Continue Reading?

Here are a few more Articles for you ...


Why JavaScript’s undefined Isn’t What You Think It Is

In this informative article, you learn that undefined is not a keyword in JavaScript, and it's up to you to ensure it refers to the value its name suggests.

By Christoph Schiessl on JavaScript

The Built-In chr() and ord() Functions

Discover Python's built-in functions chr() and ord() for handling Unicode characters and converting between integers and characters.

By Christoph Schiessl on Python

How to Return Two Values from a Python Function

Returning multiple values from a function using tuples. Understand the syntax and how to write correct type annotations.

By Christoph Schiessl on Python

Christoph Schiessl

Hi, I'm Christoph Schiessl.

I help you build robust and fast web applications.


I'm available for hire as a freelance web developer, so you can take advantage of the more than a decade of experience I have collected working on many projects across several industries. Most of my clients are building web-based SaaS applications in a B2B context and depend on my expertise in various capacities.

More often than not, my involvement includes hands-on development work using technologies like Python, JavaScript, and PostgreSQL. Furthermore, if you already have an established team, I can support you as a technical product manager with a passion for simplifying complex processes. Lastly, I'm also an avid writer and educator who takes pride in breaking down technical concepts into the simplest possible terms.