mcpField
L
landing-page-auditor

landing-page-auditor

github.com/infrasity-labs营销与增长15085 次安装17 周前更新
代码仓库

关于 landing-page-auditor

landing-page-auditor 是用于检查落地页和服务页面的审计技能。它依据 10 个类别中的 48 项检查评分,并生成独立 HTML 报告。

主要功能

  1. 01检查 10 类共 48 项指标
  2. 02并行获取页面及技术数据
  3. 03按类别和总体计算评分
  4. 04生成独立 HTML 报告

适用场景

  1. 01评估落地页内容与结构
  2. 02检查页面的技术和索引信号

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/infrasity-labs/dev-gtm-claude-skills --skill landing-page-auditor

安装后在 Claude Code 中输入/landing-page-auditor确认已加载。

附带文件references/html-template.md

详细介绍

落地页 GEO 和大模型审计工具

针对 10 个类别中的 48 项检查,审计任意落地页或服务页面。提供 URL 后,获取所有必需数据,为每项检查评分,计算各类别和整体得分,然后生成独立的 HTML 报告。


第 0 步 — 解析并确认 URL

如果用户在调用参数中提供了 URL,直接使用。如果没有,请询问:

“请提供您要审计的页面 URL。”

规范化规则:

  • 确保 URL 以 https:// 开头
  • 移除末尾的斜杠
  • 保留完整路径(例如:https://infrasity.com/claude-skills,而不只是 infrasity.com)
  • 提取不带路径的域名,用于命名文件(例如:infrasity.com)
  • 提取域名根目录,用于辅助文件(仅在子域名不同时移除子域名——两种情况都要检查)

继续前,回显解析后的 URL:

“正在审计 {URL} — 现在获取数据……”


第 1 步 — 并行获取所有必需数据

同时运行以下所有获取操作。不要等其中一项完成后再开始下一项。

1a — 页面内容概览(WebFetch 第 1 次)

使用以下提示获取 {URL}:

“返回页面的完整文本内容。包括:所有标题(H1、H2、H3、H4)及其确切级别和文本、所有段落文本、所有列表项、正文开头的句子和前 150 个词(不包括导航)、任何 FAQ 部分的内容、推荐或社会认同文本、定价信息、统计数据和数字、目标受众相关表述、类似‘不同于 X’或‘而非 X’的对比表述、类似‘不适用于 X’的负面范围限定、可衡量的成效声明(例如‘将 X 减少了 Y%’)、所有内部链接的 href 和锚文本、所有外部链接的 href 和锚文本、任何可见日期或‘最后更新’文本、任何面包屑导航,以及任何对比表格。”

1b — 页面结构化数据和技术信息(WebFetch 第 2 次)

使用以下提示获取 {URL}:

“返回:1)所有 JSON-LD 结构化数据块的原文,包括其 @type 值;2)所有图像标签的确切 src 和 alt 属性——列出每张图片;3)meta 标题标签的内容;4)meta 描述的内容;5)canonical 链接标签中的规范 URL;6)robots meta 标签的内容;7)任何 BreadcrumbList 结构化数据;8)任何 Service、ProfessionalService、SoftwareApplication 或 Product 结构化数据;9)任何 FAQPage 结构化数据;10)页面内容在不执行 JavaScript 的情况下是否可在原始 HTML 中查看。”

1c — robots.txt(WebFetch)

使用以下提示获取 {ROOT_DOMAIN}/robots.txt:

“返回 robots.txt 的完整内容。列出每个 User-agent 条目及其 Allow/Disallow 规则。特别指出针对以下对象的规则:GPTBot、ClaudeBot、PerplexityBot、OAI-SearchBot,以及任何通配符 User-agent。如果存在 Sitemap 指令 URL,也请注明。”

1d — sitemap.xml(WebFetch)

使用以下提示获取 {ROOT_DOMAIN}/sitemap.xml:

“检查 sitemap 中是否包含 {FULL_URL} 或其任何变体。返回完全匹配的 URL、其 lastmod 日期、changefreq 和 priority。还要返回 sitemap 中的 URL 总数。”

如果第一个 sitemap 是引用子 sitemap 的索引文件,则获取最相关的子 sitemap 并重复检查。

1e — llms.txt(WebFetch)

使用以下提示获取 {ROOT_DOMAIN}/llms.txt:

“返回此 llms.txt 文件的完整内容。列出其中提到的每个 URL 或路径。特别检查文件中是否出现 '{PAGE_PATH}'(目标 URL 的路径部分)或完整 URL '{FULL_URL}'。”

1f — 服务器响应时间(Bash / curl)
RESPONSE_MS=$(curl -o /dev/null -s -w "%{time_starttransfer}" --max-time 15 "{URL}" | awk '{printf "%.0f", $1 * 1000}')
echo "TTFB: ${RESPONSE_MS}ms"

如果 curl 不可用,将检查 10.3 标记为 ⚠ Warning,并附注“无法测量响应时间。”

第 2 步 — 为全部 48 项检查评分

使用获取的数据评估以下每一项检查。分配以下四种判定之一:

判定符号分值权重使用条件
通过✓1.0明确存在且符合标准
警告⚠0.5部分存在、可改进或含义不明确
未通过✗0.0缺失、失效或明确不存在
人工审核○不计入需要人工审核才能准确验证

还要为每项检查撰写一条简短的证据说明(最多 1 句)——说明发现了什么或未发现什么。


类别 1 — 内容清晰且直截了当(5 项检查)

1.1 — 开篇句清晰地描述服务

查看正文的第一句话(不包括导航、主视觉按钮和 GitHub 徽章)。

  • 通过: 第一句清晰说明产品/服务是什么或能做什么
  • 警告: 有开篇句,但前面有多个非句子元素(按钮、徽章、行动号召),导致其被推到首屏以下
  • 未通过: 没有清晰的开篇句;页面开头只有标语、图片或营销辞令

1.2 — 前 100 个词内定义服务(“X 是一种……,可以……”)

统计正文前 100 个词(去除导航链接、行动号召按钮文字和图标标签)。

  • 通过: 前 100 个词内出现明确的定义句(“X 是一种……,可以……”或“X 执行……,以便……”)
  • 警告: 有定义,但出现在 100 个词之后;或只作了暗示,没有明确陈述
  • 未通过: 前 100 个词内没有找到定义句

1.3 — 不使用未经解释的行话或缩写

检查缩写(2 至 5 个字符的全大写字母序列)和未作解释的技术术语。

  • 通过: 所有缩写首次出现时均有定义(例如“GEO(生成式引擎优化)”),或没有缩写
  • 警告: 有 1–2 个未经解释的缩写/术语,但核心产品概念清晰
  • 未通过: 有 3 个或更多缩写或关键术语首次出现时未作任何解释

1.4 — 提供使用场景说明(“专为 X 设计”“适合 Y 团队”)

查找明确的目标受众表述。

  • 通过: 出现“专为……设计”“为……打造”“适合……”“最适合……”等表述,或点明目标客户类型(公司、职位或行业)
  • 警告: 根据内容上下文可以推断受众,但从未明确说明
  • 未通过: 页面任何位置都没有使用场景或目标受众相关表述

1.5 — 明确说明不适用范围(“不适用于 X”“我们不做 Z”)

查找明确的排除项。

  • 通过: 存在“不适用于”“我们不”“并非为……设计”“不包含”或清晰的“不建议用于”列表
  • 警告: 隐含地限定了范围(例如只列出技术用途),但从未以否定形式说明
  • 未通过: 完全没有说明不适用范围

类别 2 — 结构与易读性(5 项检查)

2.1 — H1 → H2 → H3 标题层级正确

根据 fetch 1a 返回的标题列表,检查标题顺序。

  • 通过: 层级清晰 — 顶部仅出现一次 H1;之后为 H2;H3 仅出现在 H2 下方;没有跳过层级
  • 警告: 轻微违规 — 在应使用 H3 的位置使用了一两次 H4,或某个部分的 H3 直接跟在 H1 后面
  • 未通过: 存在严重违规 — 多个部分中 H3 之前出现 H4,或层级不清晰

2.2 — 至少有一个疑问句式的标题

扫描所有以 ? 结尾的标题。

  • 通过: 正文主体中至少有一个 H2 或 H3 采用疑问句式
  • 警告: 只有 FAQ 部分中有疑问句式标题,正文主体中没有
  • 未通过: 完全没有疑问句式标题

2.3 — 段落简短(平均 ≤15 个词,不出现大段文字)

根据返回的正文估算段落平均长度。

  • 通过: 段落看起来较短;没有超过 150 个词的连续大段文字
  • 警告: 有 1 个看起来像大段文字的段落(超过 150 个词),或段落明显偏长
  • 未通过: 检测到 2 个或更多大段文字,或正文大部分内容都是密集段落

2.4 — 使用项目符号列出功能或优势

统计 fetch 1a 中的列表项。

  • 通过: 使用列表或项目符号列出功能、优势、步骤或服务项目(全页共 10 项或更多)
  • 警告: 有一些列表,但主要优势或功能仅以段落形式呈现
  • 未通过: 页面上没有列表元素

2.5 — 开篇没有泛泛而谈的填充段落

检查开篇部分是否具体且信息密集。

  • 通过: 开篇段落具体、内容丰富,并且与产品直接相关
  • 警告: 开篇尚可,但页面其他位置有一个明显泛泛而谈的填充段落
  • 未通过: 开篇段落含糊、空泛(“欢迎访问我们的网站”),或充斥营销套话

类别 3 — 实体与事实信息(5 项检查)

3.1 — 品牌名称至少出现 5 次

统计正文中的品牌名称出现次数。

  • 通过: 正文内容中品牌名称出现 5 次或更多(不包括导航栏或页脚)
  • 警告: 出现 3–4 次
  • 未通过: 少于 3 次

3.2 — 至少有 3 个具体数字或统计数据(不包括年份)

查找具体数字 — 百分比、数量、金额、时间估算(不包括“2026”或“v3”)。

  • 通过: 正文内容中至少有 3 个具体数字或数据点
  • 警告: 有 1–2 个具体数字
  • 未通过: 没有具体数字或统计数据

3.3 — 存在比较表达(“不同于 X”“而非”“替代方案”)

  • 通过: 找到明确的比较表达:“不同于 X”“而非”“替代方案”“相比”“vs”“而不是”
  • 警告: 通过列出差异特点暗示了比较定位,但没有明确的比较表达
  • 未通过: 完全没有比较表达

3.4 — 命名的服务项目采用一致的样式(加粗或大写)

检查产品或服务名称的格式是否一致。

  • 通过: 服务名称采用加粗、大写或其他一致的样式
  • 警告: 服务名称的样式不一致(有时加粗,有时为普通文本)
  • 未通过: 命名服务项目没有采用一致的样式

3.5 — 页面显示价格或提供指向 /pricing 页面的链接

  • 通过: 页面上显示价格、价格范围或起步价,或提供清晰的 /pricing 页面链接
  • 警告: 提示“联系获取价格”“定制报价”或“预约通话”,但没有具体价格或定价页面链接
  • 未通过: 页面上没有任何价格信息或定价页面链接

类别 4 — 信任与权威信号(4 项检查)

4.1 — 客户评价或客户引言

  • **通过:**具名客户引言、注明公司归属的评价,或注明出处的案例研究片段
  • **警告:**笼统的社会认同表述(“受到 500 多个团队的信赖”),但没有直接引言
  • **未通过:**没有任何评价、引言或社会认同内容

4.2 — 客户徽标或合作伙伴徽章

  • **通过:**页面上清晰展示公司徽标、“曾获媒体报道”徽章、合作伙伴徽标或奖项徽章
  • **警告:**正文中提及客户公司名称,但没有徽标
  • **未通过:**没有视觉信任信号(徽标、徽章、认证)

4.3 — 具体、可衡量的成效(“在 N 周内将 X 降低了 Y%”)

这些必须是你的服务为客户带来的成效,而不是有关客户所在行业的统计数据。

  • **通过:**至少一项量化的客户成果:“将 X 降低了 Y%”“将 X 从 A 提升至 B”“在 N 周内达成 X”
  • **警告:**描述了定性成效(“改善了性能”“加快了产品上市速度”),但没有数字
  • **未通过:**没有成效声明,只有功能介绍

4.4 — 3 个以上指向可信来源的外部链接

统计指向权威域名的出站链接(GitHub、研究论文、政府网站、知名行业出版物、Wikipedia)。

  • **通过:**正文中有 3 个以上指向可信来源的外部链接
  • **警告:**有 1–2 个指向可信来源的外部链接
  • **未通过:**没有指向可信来源的外部链接(只有社交媒体个人资料或链接农场网站)

类别 5 — FAQ 与架构标记信号(5 项检查)

5.1 — 使用疑问句式 H2/H3 标题的 FAQ 部分

  • **通过:**有专门的 FAQ 部分,且使用 H2 或 H3 标题,并以实际问题的形式表述
  • **警告:**存在 FAQ 内容,但标题不是疑问句式(“FAQ”“常见问题”不符合要求)
  • **未通过:**未找到 FAQ 部分

5.2 — JSON-LD Service 或 ProfessionalService 架构

检查 fetch 1b 中的架构。

  • **通过:**在 JSON-LD 中找到 Service、ProfessionalService、SoftwareApplication 或 Product @type
  • **警告:**存在 Organization 或 WebPage 架构,但没有 Service 类型的实体
  • **未通过:**完全没有 JSON-LD 架构,或没有 Service/Product 类型的架构

5.3 — JSON-LD FAQPage 架构

  • **通过:**JSON-LD 中存在 FAQPage @type,且包含 Question 和 acceptedAnswer 配对项
  • **警告:**页面上可见 FAQ 内容,但没有 FAQPage 架构标记
  • **未通过:**没有 FAQ 架构,也没有 FAQ 内容

5.4 — Meta 标题准确描述服务

根据 fetch 1b 检查 <title> 标签。

  • **通过:**标题长度为 30–60 个字符,清楚说明产品/服务名称及主要价值主张
  • **警告:**存在标题但内容笼统、被截断(超过 70 个字符),或仅与域名相同
  • **未通过:**没有 meta 标题,或标题为空/为占位文本

5.5 — Canonical URL 设置正确

根据 fetch 1b 检查 <link rel="canonical"> 标签。

  • **通过:**存在 Canonical 标签,且指向此确切页面 URL(或正确的 www/non-www 变体)
  • **警告:**存在 Canonical,但指向错误的域名变体(例如,页面使用 non-www,但指向 www)
  • **未通过:**没有 Canonical 标签,或 Canonical 指向首页或完全不同的页面

类别 6 — 语义答案覆盖度(5 项检查)

6.1 — 是什么 — 清晰说明服务

  • 通过: 存在定义性陈述,如“X 是……”“X 可让……”“X [动词]……”
  • 警告: 可从功能列表中推断出服务,但未直接定义
  • 失败: 未说明该服务是什么

6.2 — 面向谁 — 明确理想客户

  • 通过: 明确指出目标公司类型、角色、团队或行业(而非仅泛称“企业”或“团队”)
  • 警告: 暗示面向一般受众(如“面向开发者”“面向营销人员”),但没有具体说明
  • 失败: 未指出目标客户

6.3 — 如何实现 — 说明交付流程或工作流

  • 通过: 说明服务运作方式的分步流程、编号工作流或清晰方法
  • 警告: 提及了大致流程,但不够详细
  • 失败: 未说明运作方式或流程

6.4 — 为什么 — 说明相较于其他方案的差异

  • 通过: 明确说明差异,例如“为何选择我们”“与 X 不同”、独特机制或显著优势
  • 警告: 列出了优势,但未与其他方案比较,也未说明为何这种方式更好
  • 失败: 未说明差异或选择理由

6.5 — 费用多少 — 提及价格或预算范围

  • 通过: 提供价格、价格范围、标明费用的套餐名称,或带有可见 /pricing 链接的明确“查看价格” CTA
  • 警告: 仅写“联系咨询价格”或“定制价格”,没有价格范围或起步价
  • 失败: 未提及任何费用,也未提供查看价格信息的途径

类别 7 — 内部链接与上下文图谱(5 项检查)

7.1 — 10 个以上上下文相关的内部链接

统计 fetch 1a 正文内容中的内部链接(不包括导航菜单和页脚)。

  • 通过: 正文内容中有 10 个以上内部链接
  • 警告: 正文内容中有 5–9 个内部链接
  • 失败: 正文内容中的内部链接少于 5 个

7.2 — 链接到相关服务或博客/资源内容

  • 通过: 正文内容中有指向相关博客文章、指南、资源或其他服务页面的链接
  • 警告: 相关内容仅在侧边栏或页脚中链接,正文中没有
  • 失败: 未找到任何相关内容链接

7.3 — 面包屑导航(含 BreadcrumbList 架构标记)

  • 通过: 同时存在可见的面包屑导航和 BreadcrumbList JSON-LD 架构标记
  • 警告: 有可见的面包屑导航但没有架构标记,或有 BreadcrumbList 架构标记但没有可见导航
  • 失败: 没有面包屑导航,也没有 BreadcrumbList 架构标记

7.4 — 关键服务术语链接到各自的专属页面

检查正文中提及的主要服务/功能是否带有超链接。

  • 通过: 正文中的主要服务/功能名称链接到各自的专属页面
  • 警告: 部分服务术语带有链接,其他术语仅作为纯文本提及
  • 失败: 正文中没有服务术语的上下文链接

7.5 — 存在对比表(套餐、服务包或替代方案对比)

  • 通过: 页面中存在价格套餐表、功能对比表或替代方案对比表
  • 警告: 以文本/项目符号而非表格的形式呈现对比信息
  • 失败: 没有任何对比表格

类别 8 — 内容丰富度与多模态(3 项检查)

8.1 — 定义了流程或工作流步骤(按编号或阶段划分)

  • 通过: 使用编号步骤(1、2、3)或命名阶段(阶段 1、步骤 1)说明流程如何运作
  • 警告: 在段落文字中描述流程,但未将其整理为编号步骤
  • 未通过: 未提供流程步骤或工作流定义

8.2 — 图片包含描述性替代文本

检查 fetch 1b 中每张图片的 alt 属性。

  • 通过: 90% 以上的图片包含有意义的替代文本(非空、非“image.png”或泛泛的描述)
  • 警告: 50–89% 的图片包含描述性替代文本,或关键图片缺少替代文本
  • 未通过: 少于 50% 的图片包含替代文本,或所有产品/功能图片均缺少替代文本

8.3 — 页面已列入 llms.txt

检查 fetch 1e 中的 llms.txt 内容。

  • 通过: llms.txt 中出现了确切的页面路径(例如 /claude-skills)或完整 URL
  • 警告: llms.txt 中出现了根域名,但未列出此特定页面路径
  • 未通过: llms.txt 不存在(404),或其中未包含此页面的 URL/路径

类别 9 — 时效性与维护信号(4 项检查)

9.1 — 内容在过去 6 个月内经过审核/更新

检查是否存在任何日期信号:页面上可见的日期、站点地图中的 lastmod 或内容时间戳。

  • 通过: 任意日期信号(可见日期、站点地图 lastmod、发布/更新字段)都在距今天不到 6 个月的范围内
  • 警告: 存在日期,但已超过 6 个月
  • 未通过: 未找到任何日期——没有可见日期、站点地图 lastmod 或时间戳

9.2 — 页面上显示“最后更新”日期

从 fetch 1a 中查找页面内容里明确显示的“Last updated”、“Updated:”、“Published:”或日期字符串。

  • 通过: 页面正文中显示“Last updated”或发布日期
  • 警告: 元数据(站点地图、meta 标签)中存在日期,但页面上没有向读者显示
  • 未通过: 页面上完全没有日期标记

9.3 — 已移除过时的统计数据、价格或声明

  • 人工检查: 需要人工审核。检查统计数据、定价和具名示例是否标注了当前日期且仍然准确。无法通过程序验证。

9.4 — 提供变更日志或版本历史

  • 通过: 页面上显示变更日志部分、发行说明链接或版本历史
  • 警告: 文本中提到了版本,但没有专门的变更日志或历史记录
  • 未通过: 完全没有变更日志、发行说明或版本历史

类别 10 — 可抓取性与技术(7 项检查)

10.1 — 页面已收录在 XML 站点地图中

来自 fetch 1d。

  • 通过: 在 sitemap.xml 中找到确切的页面 URL(或 www/non-www 变体)
  • 警告: 站点地图存在且包含 URL,但未找到此特定页面
  • 失败: sitemap.xml 返回 404 或不存在

10.2 — Sitemap 的 lastmod 在过去 6 个月内

来自 fetch 1d,检查此页面条目的 <lastmod> 值。

  • 通过: lastmod 日期在距今天过去 6 个月内
  • 警告: 存在 lastmod,但日期早于 6 个月
  • 失败: 站点地图中未找到此页面的 lastmod 日期

10.3 — 服务器响应时间低于 500ms

来自步骤 1f 的 curl 结果。

  • 通过: TTFB 低于 500ms
  • 警告: TTFB 为 500ms–1000ms
  • 失败: TTFB 超过 1000ms,或测量失败

10.4 — robots.txt 允许 AI 爬虫

来自 fetch 1c。

  • 通过: GPTBot、ClaudeBot 和 PerplexityBot 均被明确允许(Allow: /),或未在任何 Disallow 规则中提及(默认允许)
  • 警告: 部分 AI 机器人被允许,其他机器人未被提及或状态不明确
  • 失败: GPTBot、ClaudeBot 或 PerplexityBot 中的任何一个被明确设置为 Disallow

10.5 — 页面可编入索引(没有 noindex)

来自 fetch 1b,检查 robots meta 标签。

  • 通过: 存在 <meta name="robots" content="index, follow">,或没有具有限制作用的 robots meta 标签
  • 警告: 缺少 robots meta 标签(情况不明确——根据服务器设置,默认值可能是 index 或 noindex)
  • 失败: 在 meta robots 标签或 X-Robots-Tag 标头中发现 noindex 指令

10.6 — AI 爬虫访问此 URL 的路径未受限制

来自 fetch 1c,检查页面的特定路径是否被禁止 AI 爬虫访问。

  • 通过: 没有任何 AI 爬虫 user-agent 的 Disallow 规则涵盖此页面路径
  • 警告: 存在可能影响此路径的通配符 Disallow 规则,但未指定 AI 机器人
  • 失败: 针对此页面路径的特定 Disallow 规则适用于 GPTBot、ClaudeBot 或 PerplexityBot

10.7 — 无需 JavaScript 即可读取页面内容

来自 fetch 1b,检查原始服务器渲染的 HTML 中是否包含实质性内容。

  • 通过: 原始 HTML 中可见 500 个或更多有意义的内容词,无需执行 JS
  • 警告: 原始 HTML 中有 100–499 个词(部分 SSR——部分内容可能仅由 JS 呈现)
  • 失败: 原始 HTML 中少于 100 个词;页面由客户端渲染,AI 爬虫基本无法读取

步骤 3 — 计算分数

各类别分数(满分 100)
Category Score = (Σ check_scores) / (total_scoreable_checks_in_category) × 100

Where:
  check_score = 1.0 for Pass
  check_score = 0.5 for Warning
  check_score = 0.0 for Fail
  Manual checks are excluded from both numerator and denominator

四舍五入到最接近的整数。

总分(满分 100)
Overall Score = (Σ all_check_scores across all categories) / (total_scoreable_checks) × 100

检查总数:48。计算分母时不包括人工检查项。

分数颜色阈值
分数颜色标签Hex
80–100绿色#22C55E
60–79琥珀色#F59E0B
0–59红色#EF4444

步骤 4 — 确定优先修复项

评分后,汇总所有失败和警告项,并按影响排序。使用以下优先级框架:

影响等级划分:

影响标准
高检查项是已知的大模型引用影响因素(llms.txt 列表、Service schema、FAQPage schema、标题层级、段落长度、规范 URL、AI 爬虫访问权限、JS 可读性)
中检查项会影响人类和大模型都能看到的内容质量或信任信号(可量化成果、对比表格、用例措辞、面包屑、替代文本)
低检查项会影响完善度或新鲜度信号(更新日志、上次更新日期、服务器速度、负面范围界定)

按优先顺序列出前 10 项修复建议。每项包括:

  • 优先级编号(P1–P10)
  • 影响等级(高 / 中 / 低)
  • 类别名称
  • 修复标题(要添加或修改的内容)
  • 详细说明(一句话解释其重要性或说明要采取的措施)

第 5 步——生成 HTML 报告

阅读 references/html-template.md,了解完整的 HTML 结构。

将本次审计中的所有真实数据填入模板中的 AUDIT_DATA JavaScript 对象:

const AUDIT_DATA = {
  url: "{FULL_URL}",
  domain: "{BARE_DOMAIN}",
  date: "{AUDIT_DATE}",          // e.g. "June 16, 2026"
  overallScore: {OVERALL_SCORE},
  totalChecks: 48,
  scoreable: {SCOREABLE_COUNT},  // 48 minus manual count
  pass: {PASS_COUNT},
  warn: {WARN_COUNT},
  fail: {FAIL_COUNT},
  manual: {MANUAL_COUNT},
  categories: [
    {
      name: "Content Clarity & Directness",
      score: {CAT1_SCORE},
      pass: {CAT1_PASS},
      warn: {CAT1_WARN},
      fail: {CAT1_FAIL},
      manual: 0,
      checks: [
        { status: "pass|warn|fail|manual", label: "Clear opening sentence", note: "Evidence note — one sentence" },
        // ... all 5 checks
      ]
    },
    // ... all 10 categories in order
  ],
  topFixes: [
    { priority: 1, impact: "High", category: "Category Name", fix: "Fix title", detail: "One sentence detail" },
    // ... up to 10 fixes
  ]
};

不要留下任何未填充的占位值。 每个数字都必须是本次审计中的真实值。


第 6 步——写入并展示

将完成的 HTML 报告写入当前工作目录中的文件:

{domain}-landing-page-audit.html

例如:infrasity-com-landing-page-audit.html

写入后,告知用户:

“审计完成。报告已保存至 {filename}.html——可在任意浏览器中打开。 总分:{SCORE}/100({PASS} 项通过 · {WARN} 项警告 · {FAIL} 项失败 · {MANUAL} 项需人工检查) 首要修复项:{P1_FIX}”

然后询问用户是否希望详细了解某个类别,或生成按优先级排序的行动计划。


错误处理

情况操作
URL 返回 404 或连接被拒绝清楚报告错误。建议用户核实 URL 后重试。不要继续。
页面完全由 JS 渲染(原始 HTML 少于 100 个单词)说明 AI 爬虫可能无法读取该页面。将检查 10.7 标记为失败。审计可根据元数据评估的内容,并注明覆盖范围有限。
robots.txt 返回 404将检查 10.4 和 10.6 标记为警告,并注明“未找到 robots.txt——AI 爬虫访问状态未知。”
sitemap.xml 返回 404将检查 10.1 和 10.2 标记为失败,并注明“未找到 sitemap.xml。”
llms.txt 返回 404将检查 8.3 标记为失败,并注明“根域名下未找到 llms.txt。”
无法通过 WebFetch 提取 JSON-LD注明此限制,并将 Schema 检查标记为警告,而非失败,除非能确定 Schema 不存在。
curl 不可用,无法测量响应时间将检查 10.3 标记为警告,并注明“无法测量服务器响应时间——curl 不可用。”

评论

支持 Markdown