---
url: /docs/agentbuff-stack/content-seo.md
---
# 内容、搜索优化与统计

## 内容位置

公开页在 `apps/web/pages/`，工具目录和同步处理器在 `packages/core/tools.ts`，英文文章在 `apps/web/content/blog/*.md`，西班牙语译文在 `apps/web/content/blog/es/`，按同名文件配对。公开页面是构建得到的静态 HTML，React 处理交互工具，博客搜索使用轻量原生脚本。

文章 frontmatter 包含 `title`、`description`、`date`、`author`、`category`，可选 `updated`、`draft` 和关联 `tool`。草稿不会生成文章页，RSS 和 sitemap 使用同一份可发布文章列表。英文草稿也会抑制对应译文；缺译文的目录卡片明确回退英文，RSS 不冒充翻译。已启用语言的空正文、无来源译文和无效元数据拒绝构建，详细规则见[产品语言](./languages)。

## 导航与博客浏览

公开导航明确提供首页、功能、工具、博客、定价。英文产品界面分别显示 `Home`、`Features`、`Tools`、`Blog`、`Pricing`；教程使用中文。导航数据集中在 `packages/core/navigation.ts`，公开页头、页脚和工作台的浏览入口共同读取。工作台访问公开页使用文档导航，避免由 SPA 错接博客路径。

博客索引 `/blog` 与启用后的 `/es/blog` 支持按标题、简介和分类搜索，多个关键词按同时匹配筛选；分类取自已发布文章的 `category`，不需要维护第二份分类列表。清除筛选后恢复全部文章。筛选只在浏览器运行，不请求 API，不增加数据库或第三方搜索服务。可通过 `/blog?q=json` 或 `/blog?category=Practical%20guide` 给首次加载设置筛选条件；交互筛选不会改写 URL。

全部文章卡片和正文在构建时输出，禁用 JavaScript 仍能浏览文章；交互筛选栏仅在脚本加载成功后显示。当前只有两篇示例教程，分类随真实文章扩充。它们说明工具行为与限制，不能当作需求或流量验证材料。

文章页显示作者、发布日期、可选更新日期、预估阅读时间、相关文章和关联工具。阅读时间按各语言正文约每分钟 200 词估算，不作为精确阅读耗时。目录从 Markdown 二级、三级标题提取，锚点链接无需 JavaScript。首页与博客索引共用 `apps/web/components/public/PostCard.astro`（使用通用 `@repo/ui/marketing/BlogCard.astro`），文章来源、草稿过滤和排序仍集中在 `apps/web/lib/posts.ts`。

## 当前输出

默认 title / description、canonical、Open Graph / Twitter 卡片、文章结构化数据、sitemap、robots 和 RSS。OG 图片来自 `metadata.ogImage`，默认未提供；配置 URL 本身不会生成图片。

`blog.enabled=false` 会移除导航 / 首页文章、文章路径、RSS 条目和 sitemap 中的博客地址。`/blog` 索引页保留无文章的 noindex 页面，西班牙语博客和订阅不生成，robots 禁止博客和 RSS。任何语言没有实际已发布文章时，目录设置 noindex 并从 sitemap 排除。构建会清理旧产物；部署时也必须替换整套静态资产，不能残留旧文章。

账号、API 与工作台不作为搜索内容。模板法律页仍是 noindex 占位，需要站主提供真实适用内容。新增文章不会自动提升 Google 可信度或保证排名；内容应解释真实任务、处理限制、结果与作者责任。

## Cloudflare 统计

```ts
analytics: {
  ...websiteConfig.analytics,
  provider: "cloudflare",
}
```

同时设置公开的 `PUBLIC_CF_ANALYTICS_TOKEN`。默认 `none` 时不加载统计脚本；只有公共 Astro 页面插入 beacon，工作台及 API 不植入。配置检查和构建都会拒绝开启统计却缺少 token。

参考 [Cloudflare Web Analytics 启用说明](https://developers.cloudflare.com/web-analytics/get-started/)。如果 Cloudflare 控制台已自动注入统计，不能再重复使用本站手动 beacon，选择一种注入路径。公开工具另有默认关闭、需明确同意的第一方[使用事件](./tool-usage-events)，它不由 beacon 提供，也不是服务端任务或收入证据。实际任务、附件下载与积分包确认有独立的[服务端事件](./server-activity-events)，默认关闭且需账号明确选择；它不代表净收入或订阅留存。收入归因与真实 Cloudflare 统计数据尚未验收。

## 检查

查看页面原始 HTML 的标题、h1、canonical、结构化数据与图片 URL；核对 sitemap 无草稿 / 私有页、RSS 日期与链接；检查文章移动端和禁用博客后的产物。发布新工具任务页要有真实可交付结果，不生成只有换关键词的空页面。
