服务端SEO优化:smallpath Blog自动生成sitemap.xml、RSS订阅与robots.txt并接入Google Analytics
服务端SEO优化smallpath Blog自动生成sitemap.xml、RSS订阅与robots.txt并接入Google Analytics【免费下载链接】blog前后端分离服务端渲染的博客系统. 基于Vue2、Koa2、MongoDB、Redis项目地址: https://gitcode.com/gh_mirrors/blog205/blogsmallpath Blogblog205/blog是一款前后端分离 服务端渲染SSR的博客系统基于 Vue2、Koa2、MongoDB 与 Redis 构建。它把 sitemap.xml 自动生成、RSS 订阅与 robots.txt 全部交给 Node.js 服务端渲染完成并原生支持接入 Google Analytics让新手无需任何额外插件即可获得完整的 SEO 能力。 为什么服务端 SEO 对博客系统至关重要对于纯客户端渲染的 SPA搜索引擎爬虫拿到的往往是一棵几乎为空的div idapp收录效果很差。smallpath Blog 采用服务端渲染爬虫首次访问即可拿到完整 HTML这是 SEO 的地基。在这块地基之上项目又补上了三块传统上需要手动维护的“SEO 拼图”sitemap.xml告诉搜索引擎“我有哪些文章、最近改了什么时间”。RSS 订阅让读者用订阅工具持续追更。robots.txt指导哪些爬虫可以访问、哪些要屏蔽。它们全部由服务端根据数据库中的文章动态生成并缓存而不是写死在静态文件里。核心入口是 SSR 服务 front/server.js三大路由在启动时即被挂载访问路径作用/sitemap.xml返回全站文章地址清单/rss.xml返回最近文章订阅源/robots.txt返回爬虫抓取规则️ 一键生成 sitemap.xml让搜索引擎快速收录sitemap 的生成逻辑封装在 front/server/sitemap.js。它向本地文章接口发起查询条件是“已发布 公开文章”按更新时间倒序只取pathName与updatedAt两个字段再用一段模板把每篇文章拼成标准的url节点包含文章链接loc、最后修改日期lastmod和固定权重priority。这种写法有两个好处数据零冗余sitemap 永远和数据库一致发一篇、删一篇重新生成即可。按需取字段只select需要的列避免把正文拉进内存对大博客更友好。 自动构建 RSS 订阅吸引读者持续关注RSS 的实现在 front/server/rss.js取最新 10 篇文章的标题、链接与正文。值得注意的是它会对正文做 HTML 转义把 替换成对应的 XML 实体防止正文里的特殊字符把整个 RSS 文档“打坏”。生成的频道信息标题、描述、语言zh-cn同样来自站点配置最后写入lastBuildDate标记本次构建时间。订阅工具如各种 RSS 阅读器直接访问/rss.xml即可获取持续更新的内容流。️ 智能 robots.txt精细化控制爬虫robots 规则由 front/server/robots.js 生成内容分两类通用规则User-agent: *全部放行并主动声明Sitemap地址帮搜索引擎更快找到站点地图。黑名单对YisouSpider、EasouSpider、EtaoSpider、MJ12bot等特定爬虫Disallow全站避免无价值流量污染统计。Sitemap 地址通过config.siteUrl动态拼接因此只要后台填对了站点地址robots.txt 里的指引就自动正确。 服务端接入 Google Analytics无侵入统计这是 smallpath Blog 最有意思的设计之一它同时支持服务端与客户端两种打点方式。服务端打点由中间件 front/middleware/serverGoogleAnalytic.js 完成。SSR 在渲染流吐出首个数据块时就拼装好dt/dp/z/cid等参数向 Google 的/collect接口发出pageview请求并把真实 IP、User-Agent 一并上报。爬虫过滤中间件内置了一份spider关键词列表spider、bot、feed 等命中则直接跳过上报防止机器流量刷高统计。访客标识首次访问会下发一个idCookie有效期两年用 UUID 作为cid用于跨请求识别同一访客。客户端补位路由切换时front/src/utils/clientGoogleAnalyse.js 通过/_.gif图片请求补报 SPA 内部的页面跳转标题与路径都能拿到正确的 vue-meta 值。这样“首屏靠服务端、翻页靠客户端”的组合既保证了爬虫可见性又覆盖了真实用户的浏览行为。Track ID 来自后台配置项analyzeCode对应 server/conf/option.js 中的默认值留空时整套 GA 逻辑自动静默不会报错。⚙️ 配置项一览在管理后台填好这些参数所有 SEO 相关参数都来自站点选项默认值定义在 server/conf/option.js配置键用途siteUrl站点根地址用于拼接 sitemap、RSS 链接title/description/keywords站点标题、描述与关键字analyzeCodeGoogle Analytics 跟踪 ID留空即关闭统计服务端在启动时通过flushOption()从/api/option拉取并缓存这些值见 front/server/config.js因此后台改一处、全站生效无需重启。⏰ 定时刷新机制每日自动更新sitemap 与 RSS 并不是每次请求都重算而是缓存在内存变量里。front/server.js 使用定时任务每天凌晨 3:30 自动重新拉取文章并刷新两份数据兼顾了新鲜度与性能。✅ 总结smallpath Blog 把 sitemap.xml 自动生成、RSS 订阅、robots.txt 与 Google Analytics 全部内建到服务端渲染流程中数据驱动、按需取字段、自动转义、定时刷新、爬虫过滤一应俱全。新手只需在后台填好siteUrl和analyzeCode即可拥有一套零维护成本的服务端 SEO 方案——这正是基于 Vue2、Koa2、MongoDB、Redis 的现代化博客系统该有的样子。【免费下载链接】blog前后端分离服务端渲染的博客系统. 基于Vue2、Koa2、MongoDB、Redis项目地址: https://gitcode.com/gh_mirrors/blog205/blog创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考