RSS'den 66 sosyal ağa: Facebook, Instagram, X, LinkedIn, Telegram ve daha fazlası Blog Satış Ortaklığı İletişim
Giriş yapın Ücretsiz başlayın
Updated: 2026-10-27
Jekyll Feed Plugin: Set Up an RSS Feed That Validates

Short answer: To publish a feed from a Jekyll site, add the jekyll-feed gem to your Gemfile, list it under plugins in _config.yml, set the site url, title and description, and run a build. The plugin writes an Atom feed to /feed.xml with your newest posts. Raise posts_limit if you publish often, add the feed_meta tag to your layout so tools can discover the feed, choose between full content and excerpts, test the built file with curl and a validator, and give the public address to an auto-poster so new posts are shared automatically.

Jekyll is one of the oldest and most widely used static site generators, and it is the engine behind a large share of project blogs and personal sites, including sites hosted on GitHub Pages. A Jekyll site is rebuilt from markdown files and templates, so a feed has to be produced during the build. The official jekyll-feed plugin does that with almost no configuration, which makes it one of the first things a new Jekyll blog should have. This guide walks through the setup, explains the options that matter, covers the traps around the site address and future-dated posts, and ends with the checks that keep the feed dependable once readers and auto-posters rely on it.

Why a Jekyll blog should publish a feed

A static site has no interface that outside tools can query, so a feed is often the only machine-readable list of what is new. Readers who follow it receive every post in order, search engines and aggregators find new pages sooner, and an auto-poster such as PostRSS can share each new post on social networks within minutes of publication. For a blog that is updated by one or two people, that removes a task that otherwise tends to be forgotten.

If you only need to locate the feed that your site already produces, read how to find your Hugo, Jekyll or Eleventy feed. If you are comparing generators, the same ideas are covered for Hexo, Zola ve Pelican.

Install the plugin

Add the gem to your Gemfile, inside the group used for Jekyll plugins if you have one, and then list it in the configuration file. Older versions of Jekyll used a key called gems instead of plugins, so check which version you run.

# Gemfile
group :jekyll_plugins do
  gem "jekyll-feed"
end

# _config.yml
plugins:
  - jekyll-feed

Run bundle install once to fetch the gem. If you build on GitHub Pages without a custom workflow, the plugin is already available there, and listing it in the configuration is enough.

The configuration that matters

The plugin reads a few ordinary settings from your configuration file. Without them the feed still builds, but it may point to the wrong addresses or carry an empty title.

# _config.yml
title: Example Journal
description: News and guides from Example Journal.
url: "https://example.com"
baseurl: ""
author:
  name: Example Journal

feed:
  posts_limit: 20
  excerpt_only: false

The url value is the most important. The plugin uses it to build absolute links, and an auto-poster fetching your feed from outside needs them. Do not include a trailing slash, and do not put a path in it; if the site lives in a subfolder, set that in baseurl. The title and description fill the header of the feed. The author is used for entries that have no author of their own, and you can override it in the front matter of a post. By default the plugin includes the ten newest posts, so set posts_limit if you publish several items a week or want readers and tools to see a longer history.

Dates, time zones and future posts

Jekyll takes a post’s date from the start of its file name, and you can add a time and a time zone in the front matter. The feed uses that date for publication, and an auto-poster uses it to decide what is new. Two settings are worth knowing.

  • timezone. Set it in the configuration, for example to a region name, so that dates are built the same way on your laptop and on the build server. Without it, the machine’s own zone is used, and a post can move to the next day when the build runs elsewhere.
  • future. By default Jekyll skips posts dated in the future. That is useful for scheduling, but a static site changes only when it is rebuilt, so a future post appears only after the first build that runs on or after its date. Plan a scheduled rebuild, for example a daily job, if you rely on this.

Never run builds with the option that includes future posts on the production site, because an auto-poster would share an article before it exists on the website.

Write posts that make a good feed

# _posts/2026-10-27-hello-jekyll.md
---
title: "Hello, Jekyll"
date: 2026-10-27 09:00:00 +0000
description: A short note on how this site publishes new posts.
image: /assets/hello-jekyll.png
---
The first paragraph of the post goes here.

The plugin uses the title, the date, the excerpt, the categories and the tags that Jekyll generates, and it reads a few optional values from the front matter: an image that represents the post, an author and a short description. Give every post a description of one or two sentences. If it is missing, readers and auto-posters see only the title and, depending on your settings, the beginning of the content. An image helps an auto-poster attach a picture to each post; use an absolute path that resolves on your real domain.

Atom, not RSS

The plugin generates an Atom feed, not an RSS 2.0 file. Atom is a mature, well-specified format, and every modern feed reader and auto-poster understands it, including PostRSS. If a tool you use insists on RSS, check whether it accepts Atom first; the differences are explained in Atom or RSS: does it matter for auto-posting. The address of the feed is /feed.xml, and the .xml extension is a normal choice for Atom.

If you already publish a feed at another path and your host cannot redirect, set the path option in the feed configuration to your old address, so that existing subscribers keep receiving updates. That is the only reason to change it.

Full content or excerpts

By default each entry contains the full content of the post. If you prefer readers to visit your site, set excerpt_only to true in the configuration, or set it for a single post in its front matter, and the content element is omitted. Auto-posters rarely need the full text, because they build a short post from the title, the summary and the link. The trade-off is explained in full text or excerpt in an RSS feed.

Where each field comes from

Feed elementJekyll sourceRule
Titletitle in front matterPlain text, no markup
LinkPost address plus urlAbsolute, https, returns 200
DateFile name or date in front matterFixed once published
Summarydescription or excerptOne or two sentences
Authorauthor in front matter or configA name, not an email address
Feed address/feed.xml or the path optionNever changes once published

The address of the feed itself deserves the most care. Subscribers and auto-posters store it, so if you move it you silently break every connection. Choose a path once and keep it.

Feeds for categories, tags and collections

The plugin can create more than one feed. List categories in the configuration to get a feed for each, with addresses that follow the pattern /feed/category-name.xml. Switch on tags to create a feed for every tag, written to /feed/by_tag/tag-name.xml by default, with options to include only some tags or to exclude others. Collections other than posts can also have feeds, which works best for chronological collections such as a changelog. Separate feeds are the cleanest way to send different topics to different social channels; see category filtering for auto-posting. Keep the number of feeds small, because each one is an address you must keep stable.

Make the feed discoverable

Add the feed_meta tag to the head of your layout so browsers, feed readers and tools can find the feed from any page. Themes based on the default theme include it already; custom layouts need the line added by hand.

<head>
  ...
  {% feed_meta %}
</head>

The tag writes a link element with the right type, title and address. With that in place, a visitor or an auto-poster that only knows your home page can locate the feed on its own. The details are in the guide to feed autodiscovery.

Build and test the feed

Build the site as it will be built for production and look at the file before you publish anything. The serve command overrides the site address with a local one for convenience, so links in a feed produced by it point to localhost; for a realistic test, build in the production environment.

JEKYLL_ENV=production bundle exec jekyll build
head -c 1200 _site/feed.xml
curl -i https://example.com/feed.xml

Work through a short list of checks:

  • Confirm a 200 status on the deployed address and that the file starts with an XML declaration and a feed element.
  • Confirm that every link is absolute, uses https and points to your real domain.
  • Paste the public address into the W3C Feed Validation Service and fix every error.
  • Check that the newest post is first and that every date is correct and in the past.
  • Rebuild without changing anything and confirm that no entry changed its address or date.

There is a longer checklist in the feed validation guide and a short routine in the guide to debugging a feed with curl. If your host serves the file with the wrong content type, see the content type header guide.

Common mistakes to avoid

  • No url in the configuration. Links in the feed are wrong or missing for every outside reader.
  • A trailing slash or a path in url. Addresses end up with double slashes or in the wrong folder; use baseurl for a subfolder.
  • Testing only with jekyll serve. The local address hides the real result.
  • Renaming posts. A changed file name changes the address and the identifier, and an auto-poster may share the post again; see why a feed auto-posts the same article twice.
  • Future posts included in a production build. An auto-poster shares an article before it exists on the website.
  • No rebuild after publishing. The feed stays out of date until the next deployment.

How PostRSS works with a Jekyll feed

PostRSS has been publishing RSS and Atom feeds to social networks since 2014. Paste the address of your Jekyll feed, connect your accounts and choose how each post is built from the title, the summary or the page title. PostRSS checks the feed as often as every minute and shares each new entry, with its image and link, to the channels you choose among 66 supported networks, messengers, team chats and blogs, including LinkedIn, X, Bluesky, Mastodon and Telegram. Keyword filters, UTM parameters and posting windows let you tune each channel, and webhooks connect PostRSS to your own systems. See the PostRSS features page and the plan limits on the pricing page. More developer guides are under the Technical Guide tag.

İlgili Okumalar

The bottom line

Jekyll needs one gem and a few settings to publish a dependable feed: add jekyll-feed to the Gemfile and the plugin list, set the site url, title and description, raise posts_limit if you publish often and decide between full content and excerpts. Write an explicit date and a short description for every post, set a time zone, keep future posts out of production builds, add the feed_meta tag to your layout, build in the production environment, test the file with curl and a validator, keep the address unchanged and connect it to an auto-poster. After that, every post you publish can reach your readers and your social channels automatically.

FAQ

Does Jekyll have a built-in feed?

Not in the core, but the official jekyll-feed plugin creates an Atom feed at /feed.xml from your posts with almost no configuration, and it is available on GitHub Pages.

Why do my feed links show localhost?

You probably tested with the serve command, which replaces the site address with a local one, or the url setting is missing. Set url in the configuration and build in the production environment.

How many posts does the Jekyll feed include?

The default is ten. Set posts_limit in the feed section of the configuration to include more.

Is the Jekyll feed RSS or Atom?

Atom. Modern readers and auto-posters, including PostRSS, accept Atom, so there is normally no need to convert it.

Can I use this feed with PostRSS?

Yes. PostRSS reads any valid RSS or Atom address that is reachable without a login. Paste the address, connect your channels and new entries are shared as soon as they appear.

New guides, once a month

What changed in the networks, what broke, and how to fix it before it costs you reach.

We send a confirmation e-mail first. Unsubscribe any time.

Ekibimizden daha fazla araç

PostRSS'in arkasındaki ekip Internet Solutions tarafından geliştirildi. Her biri size farklı bir şekilde zaman kazandırır.