diff --git a/layouts/partials/rss/pages.html b/layouts/partials/rss/pages.html
new file mode 100644
index 00000000..cfe0bcb7
--- /dev/null
+++ b/layouts/partials/rss/pages.html
@@ -0,0 +1,17 @@
+{{- $pages := .pages | default (slice) -}}
+{{- $filtered := slice -}}
+
+{{- range $page := $pages -}}
+ {{- if isset $page.Params "date" -}}
+ {{- $frontmatter := "" -}}
+ {{- with $page.File -}}
+ {{- $source := readFile (printf "content/%s" .Path) -}}
+ {{- $frontmatter = delimit (findRE `(?s)^---\r?\n.*?\r?\n---` $source 1) "" -}}
+ {{- end -}}
+ {{- if gt (len (findRE `(?m)^date:\s*['"]?\d{4}-\d{2}-\d{2}[ T]\d{2}:\d{2}:\d{2}['"]?\s*$` $frontmatter 1)) 0 -}}
+ {{- $filtered = $filtered | append $page -}}
+ {{- end -}}
+ {{- end -}}
+{{- end -}}
+
+{{- return $filtered -}}
diff --git a/themes/2026/layouts/index.rss.xml b/themes/2026/layouts/index.rss.xml
index ec602f07..a2bdbc38 100644
--- a/themes/2026/layouts/index.rss.xml
+++ b/themes/2026/layouts/index.rss.xml
@@ -20,7 +20,8 @@
{{- $pages = $pctx.Pages -}}
{{- end -}}
-{{- $pages = $pages.ByLastmod.Reverse -}}
+{{- $pages = partial "rss/pages.html" (dict "pages" $pages) -}}
+{{- $pages = $pages.ByPublishDate.Reverse -}}
{{- $limit := .Site.Config.Services.RSS.Limit -}}
{{- if ge $limit 1 -}}
{{- $pages = first $limit $pages -}}
@@ -39,8 +40,8 @@
{{ site.Language.LanguageCode }}{{ with $authorEmail }}
{{.}}{{ with $authorName }} ({{ . }}){{ end }}{{ end }}{{ with $authorEmail }}
{{ . }}{{ with $authorName }} ({{ . }}){{ end }}{{ end }}{{ with .Site.Copyright }}
- {{ . }}{{ end }}{{ if not .Date.IsZero }}
- {{ (index $pages.ByLastmod.Reverse 0).Lastmod.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}{{ end }}
+ {{ . }}{{ end }}{{ if gt (len $pages) 0 }}
+ {{ (index $pages 0).PublishDate.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}{{ end }}
{{- with .OutputFormats.Get "RSS" }}
{{ printf "" .Permalink .MediaType | safeHTML }}
{{- end }}
diff --git a/themes/42/layouts/index.rss.xml b/themes/42/layouts/index.rss.xml
index 24eaa906..f84b82e6 100644
--- a/themes/42/layouts/index.rss.xml
+++ b/themes/42/layouts/index.rss.xml
@@ -20,7 +20,8 @@
{{- $pages = $pctx.Pages }}
{{- end }}
-{{- $pages = $pages.ByLastmod.Reverse }}
+{{- $pages = partial "rss/pages.html" (dict "pages" $pages) }}
+{{- $pages = $pages.ByPublishDate.Reverse }}
{{- $limit := .Site.Config.Services.RSS.Limit }}
{{- if ge $limit 1 }}
{{- $pages = first $limit $pages }}
@@ -39,8 +40,8 @@
{{ site.Language.LanguageCode }}{{ with $authorEmail }}
{{.}}{{ with $authorName }} ({{ . }}){{ end }}{{ end }}{{ with $authorEmail }}
{{ . }}{{ with $authorName }} ({{ . }}){{ end }}{{ end }}{{ with .Site.Copyright }}
- {{ . }}{{ end }}{{ if not .Date.IsZero }}
- {{ (index $pages.ByLastmod.Reverse 0).Lastmod.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}{{ end }}
+ {{ . }}{{ end }}{{ if gt (len $pages) 0 }}
+ {{ (index $pages 0).PublishDate.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}{{ end }}
{{- with .OutputFormats.Get "RSS" }}
{{ printf "" .Permalink .MediaType | safeHTML }}
{{- end }}