Sales CRM 的 SEO 架构:从 lib/seo.ts 到 robots、sitemap 与 llms.txt 的完整链路
Sales CRM 的 SEO 架构从 lib/seo.ts 到 robots、sitemap 与 llms.txt 的完整链路【免费下载链接】sales-crm项目地址: https://gitcode.com/gh_mirrors/sa/sales-crmSales CRM 是一个基于 Next.js 16 React 19 构建的开源销售团队客户管道Pipeline管理系统。它最值得学习的亮点是一套**单源驱动的 SEO 架构**全站只需要维护一个文件 lib/seo.tsrobots、sitemap、llms.txt 以及每个页面的元数据Metadata就全部自动生成。对新手来说这是理解现代站点如何做搜索引擎优化SEO AI 搜索优化的绝佳最小样本。 一张表看懂 SEO 链路全景文件作用面向谁lib/seo.ts站点名称、URL、描述、路由清单的唯一事实源开发者app/layout.tsx注入全局 metadatacanonical、OpenGraph、Twitter 卡片搜索引擎 / 社交分享app/robots.ts动态 robots 规则只放行正规域名屏蔽 /api/搜索引擎爬虫app/sitemap.ts从 SITE_ROUTES 自动生成 sitemap.xml搜索引擎爬虫app/llms.txt/route.ts输出纯文本版站点地图AI 爬虫LLM整条链路只有 5 个文件核心逻辑不到 150 行——这就是精简 SEO 架构的样子。 第 1 步为什么把所有 SEO 配置塞进一个 lib/seo.ts打开 lib/seo.ts你会看到 4 个站点级常量 1 份路由清单SITE_NAME/SITE_DESCRIPTION站点的名字和一句话描述SITE_URL读取环境变量NEXT_PUBLIC_SITE_URL未设置时回退到占位地址方便多环境部署absoluteUrl(path)把/about拼成完整绝对 URL供 canonical 使用SITE_ROUTES站点所有可索引页面的清单每页带 title、description、更新频率changeFrequency和权重priority// SITE_ROUTES 的结构示意真实文件见 lib/seo.ts { path: /, title: Companies, description: ..., changeFrequency: weekly, priority: 1 }它还导出一个pageMetadata()工厂函数传入标题和路径直接返回 Next.js 标准的Metadata对象自动补齐canonical 链接防止重复内容、OpenGraph社交分享卡片和Twitter 卡片。根布局 app/layout.tsx 只需一行...pageMetadata({...})就能让整个站点带上完整的 SEO 头信息。 新手常见错误canonical、OG 图、title 分散在各页面各写一套改 URL 时漏改某处导致搜索引擎抓到重复页。单源配置从机制上杜绝了这个问题。️ 第 2 步robots.ts 的正规域名守卫app/robots.ts 只有十几行但有两个进阶技巧值得抄作业Host 校验每次请求都读取请求头里的host与SITE_URL的域名比对。如果不是正规域名比如别人用你的 CDN 地址做了镜像直接返回禁止抓取全部路径防止流量和权重被镜像站截走。精准放行正规域名下允许抓取全站但明确disallow: [/api/]避免爬虫浪费配额去扫接口。同时它自动声明了sitemap指向sitemap.xml搜索引擎无需自己猜。️ 第 3 步sitemap.ts 零手工维护app/sitemap.ts 的做法是SITE_ROUTES.map(...)一行遍历把路由清单翻译成标准 sitemap 条目url、lastModified、changeFrequency、priority并用export const revalidate 3600让 Next.js 每小时重新生成一次缓存。新增页面时你只需要在SITE_ROUTES里加一行sitemap 自动跟上——没有任何 XML 需要手拼。 第 4 步llms.txt——写给 AI 爬虫的站点地图app/llms.txt/route.ts 是一个极简的 Next.js Route Handler把SITE_ROUTES渲染成一段 Markdown 风格的纯文本包含站点名、一句话描述和每个页面的标题 描述 绝对链接Content-Type为text/plain。这是面向 LLM大语言模型爬虫的新兴约定AI 在回答问题前读取/llms.txt就能快速理解这个站有哪些页面、每个页面讲什么从而更准确地引用你。同样基于SITE_ROUTES生成零额外维护成本——这是整套架构最优雅的地方加一条路由robots、sitemap、llms.txt 三处同步更新。 如何把这套链路搬进你自己的项目复制 lib/seo.ts改掉SITE_NAME、SITE_DESCRIPTION并在部署环境设置NEXT_PUBLIC_SITE_URL为你的正式域名README 的First things to set一节明确把它列为新项目的第 1 步见 README.md。复制三个 app 文件app/robots.ts、app/sitemap.ts、app/llms.txt/route.ts无需改动即可工作。补一张 1200×630 的opengraph-image.jpg放在app/目录下社交分享卡片就齐了项目约定见 lib/seo.ts 中的DEFAULT_OG_IMAGE常量。之后每新增一个页面在SITE_ROUTES里加一行 → 调用pageMetadata()设置页面元数据。完成。小结Sales CRM 用不到 150 行代码示范了 2026 年一个务实的 SEO 完整链路单源配置SITE_ROUTES一处维护处处生效canonical OpenGraph Twitter 卡片pageMetadata()一键生成robots 防镜像 API 屏蔽动态 Host 校验sitemap 自动生成 每小时缓存刷新llms.txt提前布局 AI 搜索时代的站点描述对新手而言这套结构麻雀虽小五脏俱全是理解Next.js 元数据 API从入门到实战的最佳起点。【免费下载链接】sales-crm项目地址: https://gitcode.com/gh_mirrors/sa/sales-crm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

洛谷P1553数字反转升级版:字符串模拟题的零处理与边界陷阱

洛谷P1553数字反转升级版:字符串模拟题的零处理与边界陷阱

第一次看到 P1553“数字反转(升级版)”的时候,我心里想的是:这不就是之前那道数字反转加几个情况吗,无非多一个百分号、小数点、分数线,扫一遍字符串,反转一下,完事。等我真正动手写…

2026/10/10 8:17:48 阅读更多 →
电商出图自动化:12个Agent Skills从一句话到一套图

电商出图自动化:12个Agent Skills从一句话到一套图

1. 电商出图这件事,为什么值得单独做一套Agent Skills做电商视觉的人都有一个共同感受:出图这件事,单张不难,难的是"批量、稳定、风格统一"。一个店铺动辄几百个SKU,每个SKU要主图、场景图、细节图、卖点图&…

2026/10/10 8:17:48 阅读更多 →
Win10或者Win11无法设置Windows Hello指纹和PIN码或者人脸识别解锁,提示“其中某些设置已由组织隐藏或管理”,无法设置指纹

Win10或者Win11无法设置Windows Hello指纹和PIN码或者人脸识别解锁,提示“其中某些设置已由组织隐藏或管理”,无法设置指纹

一、Win10或者Win11无法设置Windows Hello指纹的三种解决方法 方法一、适用于家庭版的用户1、“winR”快捷键开启运行,输入“msconfig”,回车打开。2、在打开的窗口中,点击上方的“工具”选项卡,选择“更改UAC设置 ”,…

2026/10/10 8:17:48 阅读更多 →

最新新闻

vllm_platform.h:跨平台C/C++代码统一契约头文件设计

vllm_platform.h:跨平台C/C++代码统一契约头文件设计

如果你维护过需要同时跑在 Windows、Linux 和 macOS 上的 C/C 库,十有八九见过这种场面:业务代码里到处都是#ifdef _WIN32,同一个功能写了三份实现,新增模块时全靠全文搜索平台宏来决定要不要复制粘贴。我最近在整理一个底层基础设…

2026/10/11 11:00:30 阅读更多 →
GPT-5.5 终端编程 82.7% 背后:把 Codex auth.json 改到 TaoToken 的完整实测

GPT-5.5 终端编程 82.7% 背后:把 Codex auth.json 改到 TaoToken 的完整实测

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 11:00:30 阅读更多 →
LangChain V1.0 Agent开发核心组件:用TaoToken统一Key打通LLM与工具链

LangChain V1.0 Agent开发核心组件:用TaoToken统一Key打通LLM与工具链

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 11:00:30 阅读更多 →
GOOSE-LightGBM多变量分类预测:鹅优化算法调参的Matlab实现与验证

GOOSE-LightGBM多变量分类预测:鹅优化算法调参的Matlab实现与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 11:00:30 阅读更多 →
Python方法的重载和方法的覆盖

Python方法的重载和方法的覆盖

前言 先把一个前提讲清楚:这个标题把"重载"和"覆盖"并列,容易让人以为 Python 同时支持两者。实际上 Python 只支持方法覆盖(overriding),不支持传统意义上的方法重载(overloading&…

2026/10/11 11:00:29 阅读更多 →
草莓目标检测数据集YOLO/VOC格式转换与训练避坑实战

草莓目标检测数据集YOLO/VOC格式转换与训练避坑实战

简介:面向农业与计算机视觉开发者,这份草莓目标检测数据集覆盖VOC和YOLO两种主流标注格式,可直接用于目标检测模型训练与算法验证。VOC部分按JPEGImages图片目录和Annotations标签目录组织,每张jpg带对应xml框选信息;Y…

2026/10/11 10:59:29 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →