Astro 静态博客的搜索、RSS 与站点地图

364 字
2 分钟
Astro 静态博客的搜索、RSS 与站点地图

静态站点没有后端,但依然可以实现搜索、RSS 和站点地图。本文以本站为例简单梳理实现思路。

全文搜索:Pagefind#

本站使用 Pagefind 实现全文搜索。它在构建完成后扫描 dist/ 目录下的静态 HTML,生成切分好的索引文件:

Terminal window
astro build && pagefind --site dist

特点是:

  • 搜索完全在浏览器端进行,不需要任何服务端;
  • 索引按需分片加载,只在搜索时才请求,不影响首屏性能;
  • 对中文支持良好(内置字符级切分)。

RSS 订阅#

Astro 官方的 @astrojs/rss 可以在构建时生成 RSS 订阅源,核心逻辑就是遍历文章集合:

import rss from "@astrojs/rss";
export async function GET(context) {
const posts = await getCollection("posts");
return rss({
title: "拾光小筑",
description: "记录、思考与生活",
site: context.site,
items: posts.map((post) => ({
title: post.data.title,
description: post.data.description,
pubDate: post.data.published,
link: `/posts/${post.slug}/`,
})),
});
}

读者只需要在阅读器里订阅 https://你的域名/rss.xml 即可。

站点地图与 SEO#

站点地图由 @astrojs/sitemap 自动生成,配合 astro.config.mjs 中的 site 字段,构建时输出 sitemap-index.xml。再配合:

  • robots.txt(本站由 src/pages/robots.txt.ts 动态生成);
  • 每篇文章的 Open Graph 元信息;
  • 语义化的 HTML 结构,

就能获得相当不错的搜索引擎表现。

小结#

静态博客的”功能缺失”大多可以用构建时方案补齐。搜索、RSS、站点地图这三件套,本站已经全部就位。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Astro 静态博客的搜索、RSS 与站点地图
https://c75c3a79.thisissam.pages.dev/posts/astro-search-rss-sitemap/
作者
山野
发布于
2026-09-08
许可协议
CC BY-NC-SA 4.0

文章目录

WELCOME欢迎来到拾光小筑

很高兴在这里遇见你。