规则说明
Loomaly 检查的每一条规则:严重程度、计分维度、规则 ID、含义和修复方法。
Loomaly 报告的每一个问题,都来自本页列出的 81 条规则之一,而每条规则只由扫描的一个环节报告。问题说明和修复 prompt 都来自固定的模板,所以同一个问题每次扫描都对应同一个规则 ID、同样的描述,Loomaly 也因此能分辨一个问题是新出现的、仍然存在,还是已经修好。处理问题的方法见问题。
规则如何影响健康分
每条规则都有严重程度(错误、警告或提示)和所属的维度,即它衡量的是搜索健康的哪一方面。在一个页面上,一个错误让该维度直接记 0 分,一个警告扣 25 分,一个提示扣 5 分(提示最多共扣 10 分)。站点分是五个维度的加权平均。详细算法和示例见健康分怎么算。
规则由谁来检查
每张表的最后一列说明这条规则由扫描的哪个环节报告。各环节何时运行,见扫描是怎么工作的。
| 检查方式 | 含义 | 问题分组 |
|---|---|---|
| 规则检查 | 由代码检查页面 HTML,每次结果都一样,Loomaly 找到的每个页面都会做。 | 结构性 |
| AI 判断 | 由 AI 模型回答一个关于页面的固定问题(比如:有没有给访客明确的下一步?),每个页面都会做。只有把握很大的回答才会变成问题,哪些问题适用于哪类页面由代码决定。 | 语义 |
| 性能测试 | 用 Google PageSpeed Insights 在移动端测量,有 Chrome 真实用户数据时优先使用,只针对每个模板的代表页。 | 性能 |
| 页面判断 | 整站扫描后,由代码挑出可疑页面(近似重复、看起来空了或下架了),再交给 AI 判断。 | 页面判断 |
| 站点检查 | 每次扫描由代码检查一次 robots.txt 和 sitemap,并把 sitemap 和页面自己的声明做对比。作为一个全站问题显示,只计一次分,不按页面计。 | 结构性 |
页面设置了 noindex 时只报告 noindex 本身;重定向到其他网站的页面完全不检查。
Meta 标签
| 规则 | 严重程度 | 维度 | 检查方式 |
|---|---|---|---|
缺少 <title> 标签 | 错误 | 页面基础 | 规则检查 |
| 标题过短 | 警告 | 页面基础 | 规则检查 |
| 标题过长 | 警告 | 页面基础 | 规则检查 |
| 缺少 meta description | 警告 | 页面基础 | 规则检查 |
| 标题和其他页面重复 | 警告 | 页面基础 | 页面判断 |
| 描述和其他页面重复 | 提示 | 页面基础 | 页面判断 |
| meta description 过短 | 提示 | 页面基础 | 规则检查 |
| meta description 过长 | 提示 | 页面基础 | 规则检查 |
| 缺少 canonical 链接 | 提示 | 可收录性 | 规则检查 |
| canonical 指向了另一个 URL | 警告 | 可收录性 | 规则检查 |
| 缺少 viewport meta | 警告 | 页面基础 | 规则检查 |
| 登录页或应用页可以被索引 | 警告 | 可收录性 | 规则检查 |
| 页面设置了 noindex | 错误 | 可收录性 | 规则检查 |
| 页面设置了 nofollow | 警告 | 可收录性 | 规则检查 |
| 标题和页面内容对不上 | 警告 | 内容与 AI 可读性 | AI 判断 |
| 缺少 Open Graph 标签 | 提示 | 页面基础 | 规则检查 |
| 缺少 Open Graph 图片 | 提示 | 页面基础 | 规则检查 |
缺少 <title> 标签
严重程度: 错误 · 维度: 页面基础 · 规则 ID: missing-title · 检查方式: 规则检查 · 工作量: 小
含义: 页面没有 <title>,或者内容为空。标题是搜索结果里显示的那一行大字,也是页面主题最强的信号。
怎么修: 在 <head> 里加一个独一无二、说清楚页面内容的 <title>:主题在前、品牌在后,长度 20–70 个字符。
官方说明: developers.google.com/search/docs/appearance/title-link
标题过短
严重程度: 警告 · 维度: 页面基础 · 规则 ID: title-too-short · 检查方式: 规则检查 · 工作量: 小
业内惯例,不是 Google 的硬性要求,单靠它不决定排名。
含义: 标题少于 20 个字符,太短,搜索用户看不出这个页面能提供什么。中日韩文字占两个英文字符的宽度,每个字按 2 个字符算。
怎么修: 补上页面的核心主题或产品名,再加一个有区分度的细节,控制在 20–70 个字符。
官方说明: developers.google.com/search/docs/appearance/title-link
标题过长
严重程度: 警告 · 维度: 页面基础 · 规则 ID: title-too-long · 检查方式: 规则检查 · 工作量: 小
业内惯例,不是 Google 的硬性要求,单靠它不决定排名。
含义: 标题超过 70 个字符,在搜索结果里会被截断。中日韩文字占两个英文字符的宽度,每个字按 2 个字符算。
怎么修: 把最重要的词放在最前面,删掉废话和重复的品牌名,压到 70 个字符以内。
官方说明: developers.google.com/search/docs/appearance/title-link
缺少 meta description
严重程度: 警告 · 维度: 页面基础 · 规则 ID: missing-meta-description · 检查方式: 规则检查 · 工作量: 小
含义: 页面没有 meta description,或者内容为空。搜索引擎会自己从正文里截一段当摘要,用户点击前看到什么就不由你决定了。
怎么修: 加上 <meta name="description" content="...">,用 70–160 个字符说清楚访客能得到什么、为什么值得点。
官方说明: developers.google.com/search/docs/appearance/snippet
标题和其他页面重复
严重程度: 警告 · 维度: 页面基础 · 规则 ID: duplicate-title · 检查方式: 页面判断 · 工作量: 中
含义: 网站里还有其他页面用了一模一样的 <title>,问题里会写出有几个,并列出其中一个。搜索引擎只能在它们里面挑一个来排名,搜索的人也分不清这些结果有什么区别。
怎么修: 让每个页面的标题说清楚这个页面讲什么:商品名、文章主题或分类名放前面,品牌放最后。如果这些页面确实是同一个内容,保留一个,其他的用 canonical 或跳转指向它。
官方说明: developers.google.com/search/docs/appearance/title-link
描述和其他页面重复
严重程度: 提示 · 维度: 页面基础 · 规则 ID: duplicate-meta-description · 检查方式: 页面判断 · 工作量: 中
含义: 网站里还有其他页面用了同样的描述,搜索结果里这些页面的摘要看起来都一样。
怎么修: 按每个页面自己的内容写描述;实在没有特别要说的页面可以留空,Google 会从页面内容里自动生成。
官方说明: developers.google.com/search/docs/appearance/snippet
meta description 过短
严重程度: 提示 · 维度: 页面基础 · 规则 ID: meta-description-too-short · 检查方式: 规则检查 · 工作量: 小
业内惯例,不是 Google 的硬性要求,单靠它不决定排名。
含义: meta description 少于 70 个字符,搜索摘要的大部分空间都浪费了。中日韩文字占两个英文字符的宽度,每个字按 2 个字符算。
怎么修: 扩写到 70–160 个字符,加上具体的卖点、细节或行动号召。
官方说明: developers.google.com/search/docs/appearance/snippet
meta description 过长
严重程度: 提示 · 维度: 页面基础 · 规则 ID: meta-description-too-long · 检查方式: 规则检查 · 工作量: 小
业内惯例,不是 Google 的硬性要求,单靠它不决定排名。
含义: meta description 超过 160 个字符,在搜索结果里会被截断。中日韩文字占两个英文字符的宽度,每个字按 2 个字符算。
怎么修: 把核心信息压缩在前 160 个字符内,其余删掉。
官方说明: developers.google.com/search/docs/appearance/snippet
缺少 canonical 链接
严重程度: 提示 · 维度: 可收录性 · 规则 ID: missing-canonical · 检查方式: 规则检查 · 工作量: 小
含义: 页面没有声明 <link rel="canonical">。搜索引擎只能自己判断带参数、带不带斜杠等多个 URL 变体里哪个是正式地址。
怎么修: 加一个指向页面自身首选 URL 的 canonical。大多数框架和 SEO 插件都能给每个页面自动输出自引用的 canonical。
官方说明: developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls
canonical 指向了另一个 URL
严重程度: 警告 · 维度: 可收录性 · 规则 ID: canonical-mismatch · 检查方式: 规则检查 · 工作量: 中
含义: canonical 指向的 URL 和页面本身不一致(按重定向之后的最终地址比较,末尾斜杠和域名大小写不算不同)。搜索引擎可能会去收录那个 URL,而不是这一页。
怎么修: 如果这个页面需要单独参与排名,把 canonical 改成指向它自己;如果它本来就是要把权重交给另一页的重复页,保持不变,并在忽略时写明原因。
官方说明: developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls
缺少 viewport meta
严重程度: 警告 · 维度: 页面基础 · 规则 ID: missing-viewport · 检查方式: 规则检查 · 工作量: 小
含义: 页面没有 <meta name="viewport">,手机上会显示成缩小的桌面版页面。而 Google 收录的是你网站的移动版。
怎么修: 在 <head> 里加上 <meta name="viewport" content="width=device-width, initial-scale=1">。
官方说明: developers.google.com/search/docs/crawling-indexing/mobile/mobile-sites-mobile-first-indexing
登录页或应用页可以被索引
严重程度: 警告 · 维度: 可收录性 · 规则 ID: indexable-app-page · 检查方式: 规则检查 · 工作量: 小
含义: 这个地址像登录、账户或应用页面,并且以 200 返回、没有 noindex。搜索结果里可能出现登录墙,而不是公开页面。
怎么修: 在 robots meta 或 X-Robots-Tag 响应头里加上 noindex。不要为这些页面写标题和描述。
官方说明: developers.google.com/search/docs/crawling-indexing/robots-meta-tag
页面设置了 noindex
严重程度: 错误 · 维度: 可收录性 · 规则 ID: robots-noindex · 检查方式: 规则检查 · 工作量: 小
含义: 页面告诉搜索引擎不要收录它,所以它不会出现在搜索结果里。登录、账户、购物车、结账、法律条款这类通常有意不让收录的页面,Loomaly 不会报这个问题。
怎么修: 如果这个页面应该出现在搜索里,从 robots meta 标签(以及 X-Robots-Tag 响应头)里去掉 noindex;如果是有意为之,忽略该问题并写明原因。
官方说明: developers.google.com/search/docs/crawling-indexing/block-indexing
页面设置了 nofollow
严重程度: 警告 · 维度: 可收录性 · 规则 ID: robots-nofollow · 检查方式: 规则检查 · 工作量: 小
含义: 页面级 robots 设置了 nofollow,搜索引擎不会跟踪页面上的任何链接,被链接的页面也就得不到发现机会和权重。
怎么修: 从页面的 robots meta 标签里去掉 nofollow。如果只是不想让某几个链接传递权重,给这些链接单独加 rel="nofollow"。
官方说明: developers.google.com/search/docs/crawling-indexing/robots-meta-tag
标题和页面内容对不上
严重程度: 警告 · 维度: 内容与 AI 可读性 · 规则 ID: title-content-mismatch · 检查方式: AI 判断 · 工作量: 小
含义: <title> 说的内容,页面的小标题和正文并没有提供。点进来的搜索用户很快就会离开,Google 也可能在搜索结果里改写这个标题。
怎么修: 按页面实际提供的内容重写标题,可以沿用主标题里的说法;或者反过来调整页面,让它兑现标题的承诺。
官方说明: developers.google.com/search/docs/appearance/title-link
缺少 Open Graph 标签
严重程度: 提示 · 维度: 页面基础 · 规则 ID: missing-og-tags · 检查方式: 规则检查 · 工作量: 小
业内惯例,不是 Google 的硬性要求,单靠它不决定排名。
含义: 页面上 og:title、og:description、og:image 一个都没有。社交平台、聊天软件和 AI 助手在链接被分享时,靠这些 Open Graph 标签生成预览卡片。
怎么修: 在 <head> 里至少加上 og:title、og:description 和 og:image(最好再加 og:url)。大多数 SEO 插件和框架都能根据页面标题和描述自动生成。
官方说明: ogp.me
缺少 Open Graph 图片
严重程度: 提示 · 维度: 页面基础 · 规则 ID: missing-og-image · 检查方式: 规则检查 · 工作量: 中
业内惯例,不是 Google 的硬性要求,单靠它不决定排名。
含义: 页面有 Open Graph 标签,但没有 og:image,分享出去的链接没有预览图,或者被随便抓一张图。
怎么修: 加上 og:image,填一张有代表性的图片的绝对 URL,常用尺寸是 1200 x 630 像素。
官方说明: ogp.me
标题层级
缺少 H1
严重程度: 警告 · 维度: 页面基础 · 规则 ID: missing-h1 · 检查方式: 规则检查 · 工作量: 小
业内惯例,不是 Google 的硬性要求,单靠它不决定排名。
含义: 页面没有 <h1>。H1 是页面上最主要的可见标题,也是页面主题的强信号。
怎么修: 加一个(且只加一个)H1,写明页面的核心主题,可以和 title 一致或相近。
官方说明: developers.google.com/search/docs/fundamentals/seo-starter-guide
有多个 H1
严重程度: 警告 · 维度: 页面基础 · 规则 ID: multiple-h1 · 检查方式: 规则检查 · 工作量: 小
业内惯例,不是 Google 的硬性要求,单靠它不决定排名。
含义: 页面有不止一个 <h1>,主题信号被分散了。常见原因是主题模板把 logo 或各区块标题都写成了 H1。
怎么修: 只保留一个表达核心主题的 H1,其余改成 H2 或 H3。
官方说明: developers.google.com/search/docs/fundamentals/seo-starter-guide
标题层级跳级
严重程度: 提示 · 维度: 页面基础 · 规则 ID: heading-skip-level · 检查方式: 规则检查 · 工作量: 中
业内惯例,不是 Google 的硬性要求,单靠它不决定排名。
含义: 标题层级跳级了,比如 H1 下面直接是 H3。读屏软件和爬虫把标题当作页面大纲,跳级会让结构难以理解。
怎么修: 按结构依次使用 H1、H2、H3,字号大小用 CSS 调整,而不是靠换标题级别。
官方说明: developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/Heading_Elements
内容
| 规则 | 严重程度 | 维度 | 检查方式 |
|---|---|---|---|
| 与站内另一页争抢同一个搜索 | 警告 | 内容与 AI 可读性 | 页面判断 |
| 已下架或缺货的页面仍可被收录 | 警告 | 内容与 AI 可读性 | 页面判断 |
| 没有实际内容的占位页 | 警告 | 内容与 AI 可读性 | 页面判断 |
| 访客不知道下一步该做什么 | 警告 | 内容与 AI 可读性 | AI 判断 |
| 内容单薄 | 警告 | 内容与 AI 可读性 | AI 判断 |
| 字数过少 | 提示 | 内容与 AI 可读性 | 规则检查 |
| 疑似关键词堆砌 | 警告 | 内容与 AI 可读性 | AI 判断 |
| 目标搜索词不在标题里 | 警告 | 内容与 AI 可读性 | 关键词检查 |
| 目标搜索词不在 H1 里 | 提示 | 内容与 AI 可读性 | 关键词检查 |
| 目标搜索词不在描述里 | 提示 | 内容与 AI 可读性 | 关键词检查 |
| 目标搜索词不在正文开头 | 提示 | 内容与 AI 可读性 | 关键词检查 |
| 有人搜的词不在标题里 | 警告 | 内容与 AI 可读性 | 关键词检查 |
| 目标词不在标题开头 | 提示 | 内容与 AI 可读性 | 关键词检查 |
| 站点没有 llms.txt | 提示 | 内容与 AI 可读性 | 站点检查 |
| llms.txt 不是一份可用的页面地图 | 提示 | 内容与 AI 可读性 | 站点检查 |
| llms.txt 链到了打不开的页面 | 警告 | 内容与 AI 可读性 | 站点检查 |
| 页面不利于被 AI 引用 | 提示 | 内容与 AI 可读性 | AI 判断 |
| 缺少作者署名 | 提示 | 内容与 AI 可读性 | AI 判断 |
| 缺少发布日期 | 提示 | 内容与 AI 可读性 | AI 判断 |
与站内另一页争抢同一个搜索
严重程度: 警告 · 维度: 内容与 AI 可读性 · 规则 ID: duplicate-intent · 检查方式: 页面判断 · 工作量: 大
含义: 站内另一个页面在争抢同一个搜索,问题里会写出是哪一页。搜索引擎通常只选其中一个,另一个就输了。已经互相声明为 canonical 或语言版本的页面不会被标记。
怎么修: 把两页合并成一页并把较弱的 URL 重定向过去;或者用 canonical 让一页指向另一页;或者把它们做得明显不同(面向不同人群、产品或问题)。
官方说明: developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls
已下架或缺货的页面仍可被收录
严重程度: 警告 · 维度: 内容与 AI 可读性 · 规则 ID: unavailable-item · 检查方式: 页面判断 · 工作量: 中
含义: 页面对应的东西已经没有了(售罄、停产、活动已结束),但仍然可以被搜索到。
怎么修: 只有在它能帮访客找到下一步(替代品、补货时间)时才保留;否则重定向到最接近的替代页面,或者加 noindex。
官方说明: developers.google.com/crawling/docs/troubleshooting/http-status-codes
没有实际内容的占位页
严重程度: 警告 · 维度: 内容与 AI 可读性 · 规则 ID: placeholder-page · 检查方式: 页面判断 · 工作量: 大
含义: 页面只是一个模板空壳或占位页,访客什么也得不到,比如占位文字、空分类或「敬请期待」页。
怎么修: 补上真正的内容;在那之前先别让它被收录(加 noindex 或先下线)。
官方说明: developers.google.com/search/docs/fundamentals/creating-helpful-content
访客不知道下一步该做什么
严重程度: 警告 · 维度: 内容与 AI 可读性 · 规则 ID: missing-next-step · 检查方式: AI 判断 · 工作量: 中
业内惯例,不是 Google 的硬性要求,单靠它不决定排名。
含义: 首页、落地页或商品页没有给访客一个明确的下一步:注册、购买、预约、联系你,或者继续阅读。页面就算有排名,也会白白流失带来的访客。AI 判断时会看到页面上的按钮和行动链接;只有记录到了这些按钮的页面才会检查这一项。
怎么修: 在页面上方和主要内容之后各放一个主要的行动按钮,用动词说清楚点了会怎样(比如「免费试用」「预约通话」)。次要链接在视觉上弱化一些。
官方说明: developers.google.com/search/docs/fundamentals/creating-helpful-content
内容单薄
严重程度: 警告 · 维度: 内容与 AI 可读性 · 规则 ID: thin-content · 检查方式: AI 判断 · 工作量: 大
含义: 就这个页面的用途(商品、文章、落地页)而言,它给访客的实质内容不够:除了一个标题和几行字,没什么别的。搜索引擎会把这类页面当作低价值页面。
怎么修: 补充访客在这个页面真正需要的内容。如果这一页本身没有独立价值,就并入相关页面,或者不让它被收录。
官方说明: developers.google.com/search/docs/fundamentals/creating-helpful-content
字数过少
严重程度: 提示 · 维度: 内容与 AI 可读性 · 规则 ID: low-word-count · 检查方式: 规则检查 · 工作量: 大
业内惯例,不是 Google 的硬性要求,单靠它不决定排名。
含义: 页面的文字量低于这个主题通常需要的深度。
怎么修: 补充有用的细节,比如参数规格、常见问题解答、示例,而不是凑字数。
官方说明: developers.google.com/search/docs/fundamentals/creating-helpful-content
疑似关键词堆砌
严重程度: 警告 · 维度: 内容与 AI 可读性 · 规则 ID: keyword-stuffing · 检查方式: AI 判断 · 工作量: 中
含义: 文字读起来不像人写给人看的:搜索词的重复次数远超自然写作。读起来别扭,也有被搜索引擎降权的风险。
怎么修: 把相关段落改写得自然一些,换用同义词,并删掉标题、alt 文本和页脚里的重复。
官方说明: developers.google.com/search/docs/essentials/spam-policies#keyword-stuffing
目标搜索词不在标题里
严重程度: 警告 · 维度: 内容与 AI 可读性 · 规则 ID: keyword-missing-title · 检查方式: 关键词检查 · 工作量: 小
含义: 这个页面要排名的搜索词不在 Google 会展示的 <title> 前半段。只出现在标题后半段的词,在搜索结果里会被截掉。
怎么修: 把这个词放进 <title> 的前半段,品牌名放在后面。
官方说明: developers.google.com/search/docs/appearance/title-link
目标搜索词不在 H1 里
严重程度: 提示 · 维度: 内容与 AI 可读性 · 规则 ID: keyword-missing-h1 · 检查方式: 关键词检查 · 工作量: 小
业内惯例,不是 Google 的硬性要求,单靠它不决定排名。
含义: 这个页面要排名的搜索词不在任何一个 H1 里,访客最先看到的标题没有说出这个页面是做什么的。
怎么修: 在页面的 H1 里用上这个词,用搜索者会用的说法。
官方说明: developers.google.com/search/docs/fundamentals/seo-starter-guide
目标搜索词不在描述里
严重程度: 提示 · 维度: 内容与 AI 可读性 · 规则 ID: keyword-missing-description · 检查方式: 关键词检查 · 工作量: 小
业内惯例,不是 Google 的硬性要求,单靠它不决定排名。
含义: 这个页面要排名的搜索词不在 meta description 里,搜索结果下方的摘要就没提到它。
怎么修: 在 meta description 里用一次这个词,写成访客能得到什么。
官方说明: developers.google.com/search/docs/appearance/snippet
目标搜索词不在正文开头
严重程度: 提示 · 维度: 内容与 AI 可读性 · 规则 ID: keyword-missing-intro · 检查方式: 关键词检查 · 工作量: 小
业内惯例,不是 Google 的硬性要求,单靠它不决定排名。
含义: 这个页面要排名的搜索词没有出现在正文开头,第一屏没有告诉访客来对了地方。
怎么修: 在第一段里用上这个词;中文、日文、韩文或泰文页面写在开头的一两行里。
官方说明: developers.google.com/search/docs/fundamentals/creating-helpful-content
有人搜的词不在标题里
严重程度: 警告 · 维度: 内容与 AI 可读性 · 规则 ID: gsc-query-title-gap · 检查方式: 关键词检查 · 工作量: 小
含义: Google 已经因为一个有真实搜索量的词展示这个页面,但标题和 H1 里都没有这个词。标题忽略了这个页面已经在获得的搜索。
怎么修: 如果页面确实在回答这个搜索,就把这个词写进标题或 H1。页面讲的是别的事就不要硬加。
官方说明: developers.google.com/search/docs/appearance/title-link
目标词不在标题开头
严重程度: 提示 · 维度: 内容与 AI 可读性 · 规则 ID: keyword-not-title-start · 检查方式: 关键词检查 · 工作量: 小
含义: 这个页面要排名的词在标题里,但不在开头(前三分之一宽度,或前几个词)。搜索的人先看到标题的开头。
怎么修: 把这个词移到标题开头,放在品牌名之前。
官方说明: developers.google.com/search/docs/appearance/title-link
站点没有 llms.txt
严重程度: 提示 · 维度: 内容与 AI 可读性 · 规则 ID: llms-txt-missing · 检查方式: 站点检查 · 工作量: 小
业内惯例,不是 Google 的硬性要求,单靠它不决定排名。
含义: /llms.txt 不存在,或者这个地址返回的是网页。HTML 兜底页也算没有。有些产品会抓这个文件来找页面,它必须是纯文本。
怎么修: 在域名根路径以 text/plain 发布 /llms.txt:一个 # 标题、可选的一行摘要,以及指向真实页面的 Markdown 链接。Next.js 用 public/llms.txt 或 app/llms.txt/route.ts。Astro 和 TanStack Start 用 public/llms.txt。Fumadocs 从文档源生成。Docusaurus 和其他静态站点用 static/llms.txt 或主机的 public 目录。
官方说明: llmstxt.org
llms.txt 不是一份可用的页面地图
严重程度: 提示 · 维度: 内容与 AI 可读性 · 规则 ID: llms-txt-invalid · 检查方式: 站点检查 · 工作量: 小
业内惯例,不是 Google 的硬性要求,单靠它不决定排名。
含义: /llms.txt 以纯文本发布,但还不能当页面地图用:需要一个标题(# …)和至少一条指向页面的 Markdown 链接。有些产品会抓这个文件来找页面。文件缺失,或这个地址返回 HTML,是另一条检查。
怎么修: 给 /llms.txt 一个 # 标题、可选的摘要,以及要被阅读的页面的 Markdown 链接,例如 - [定价](https://example.com/pricing): 方案和价格。以 text/plain 提供。Next.js 可以用 public/llms.txt 或 app/llms.txt/route.ts;Astro 和 TanStack Start 用 public/llms.txt;Fumadocs 可以从文档生成;Docusaurus 和其他静态站点用 static/llms.txt。
官方说明: llmstxt.org
llms.txt 链到了打不开的页面
严重程度: 警告 · 维度: 内容与 AI 可读性 · 规则 ID: llms-txt-broken-links · 检查方式: 站点检查 · 工作量: 小
业内惯例,不是 Google 的硬性要求,单靠它不决定排名。
含义: /llms.txt 链到了本站里返回错误的页面。这条问题列出抽查到的地址。顺着文件打开的会落到打不开的页面。
怎么修: 把每条链接改到返回 200 的页面,或删掉那一行。这条会列出最先失败的几个地址。文件通常是 public/llms.txt,或负责输出它的路由。
官方说明: llmstxt.org
页面不利于被 AI 引用
严重程度: 提示 · 维度: 内容与 AI 可读性 · 规则 ID: page-not-citable-by-llm · 检查方式: AI 判断 · 工作量: 大
业内惯例,不是 Google 的硬性要求,单靠它不决定排名。
含义: 页面各小节没有开门见山给出答案,或者单独拿出来读不懂。AI 回答和精选摘要引用的,是开头就把要点说清楚的段落;这一点没有任何标记能替代。
怎么修: 每个小节的第一句话直接回答小标题,再展开细节。小标题尽量贴近用户的问法,写出具体的事实和数字。
官方说明: developers.google.com/search/docs/appearance/ai-features
缺少作者署名
严重程度: 提示 · 维度: 内容与 AI 可读性 · 规则 ID: missing-author-byline · 检查方式: AI 判断 · 工作量: 中
业内惯例,不是 Google 的硬性要求,单靠它不决定排名。
含义: 这篇文章没有写明作者,页面上和结构化数据里都没有。署名能帮读者判断内容是否可信,也是 Google 质量指南关注的一点。
怎么修: 在页面上显示作者姓名并链接到作者简介页,同时在 Article JSON-LD 里加上作者。
官方说明: developers.google.com/search/docs/fundamentals/creating-helpful-content
缺少发布日期
严重程度: 提示 · 维度: 内容与 AI 可读性 · 规则 ID: missing-publish-date · 检查方式: AI 判断 · 工作量: 小
业内惯例,不是 Google 的硬性要求,单靠它不决定排名。
含义: 这篇文章没有显示发布或更新日期,页面上和结构化数据里都没有,读者没法判断内容是否过时。
怎么修: 在页面上显示发布(和更新)日期,并在 JSON-LD 里加上 datePublished 和 dateModified。
官方说明: developers.google.com/search/docs/appearance/publication-dates
图片
| 规则 | 严重程度 | 维度 | 检查方式 |
|---|---|---|---|
| 图片缺少 alt 文本 | 警告 | 页面基础 | 规则检查 |
| 图片未懒加载 | 提示 | 性能 | 规则检查 |
图片缺少 alt 文本
严重程度: 警告 · 维度: 页面基础 · 规则 ID: image-missing-alt · 检查方式: 规则检查 · 工作量: 中
含义: 有 <img> 缺少 alt 属性,问题里会写出页面上有几张图缺失。读屏软件无法描述这些图片,Google 图片搜索也缺少依据。
怎么修: 给每张有意义的图片写一句简短的 alt 描述;纯装饰性的图片用空的 alt=""。
官方说明: developers.google.com/search/docs/appearance/google-images
图片未懒加载
严重程度: 提示 · 维度: 性能 · 规则 ID: image-no-lazy-loading · 检查方式: 规则检查 · 工作量: 小
业内惯例,不是 Google 的硬性要求,单靠它不决定排名。
含义: 页面下方的图片跟着页面一起立刻加载,和首屏内容抢带宽。
怎么修: 给首屏以下的图片加 loading="lazy"。页面顶部的主图不要懒加载,否则会拖慢 LCP。
官方说明: web.dev/articles/browser-level-image-lazy-loading
链接
| 规则 | 严重程度 | 维度 | 检查方式 |
|---|---|---|---|
| 没有内链 | 警告 | 页面基础 | 规则检查 |
| 内链太少 | 提示 | 页面基础 | 规则检查 |
| 外链过多 | 提示 | 页面基础 | 规则检查 |
| 站内链接没有用目标搜索词 | 提示 | 内容与 AI 可读性 | 关键词检查 |
| 焦点页的站内链接太少 | 警告 | 内容与 AI 可读性 | 关键词检查 |
| 站内链接指向打不开的页面 | 警告 | 页面基础 | 站点检查 |
| 站点地图里没有被任何页面链接的页面 | 警告 | 页面基础 | 站点检查 |
没有内链
严重程度: 警告 · 维度: 页面基础 · 规则 ID: no-internal-links · 检查方式: 规则检查 · 工作量: 中
含义: 页面没有链接到站内任何其他页面,既不给其他页面传递权重,爬虫也难以通过它发现更多内容。
怎么修: 在正文里加上指向相关页面的链接,并加上导航或面包屑。确认链接是真正的 <a href>,而不是 JS 点击事件。
官方说明: developers.google.com/search/docs/crawling-indexing/links-crawlable
内链太少
严重程度: 提示 · 维度: 页面基础 · 规则 ID: too-few-internal-links · 检查方式: 规则检查 · 工作量: 中
业内惯例,不是 Google 的硬性要求,单靠它不决定排名。
含义: 页面指向站内其他页面的链接很少,可能被低估,也没能引导访客继续浏览。
怎么修: 在对读者有帮助的地方,链接到相关的商品、文章或分类页。
官方说明: developers.google.com/search/docs/crawling-indexing/links-crawlable
外链过多
严重程度: 提示 · 维度: 页面基础 · 规则 ID: excessive-external-links · 检查方式: 规则检查 · 工作量: 中
业内惯例,不是 Google 的硬性要求,单靠它不决定排名。
含义: 页面链接了很多外部域名。每一个外链都应该是对读者有用的。
怎么修: 删掉没有必要的外链;付费或联盟链接加 rel="sponsored",用户提交的链接加 rel="ugc"。
官方说明: developers.google.com/search/docs/fundamentals/seo-starter-guide
站内链接没有用目标搜索词
严重程度: 提示 · 维度: 内容与 AI 可读性 · 规则 ID: keyword-anchor-missing · 检查方式: 关键词检查 · 工作量: 小
业内惯例,不是 Google 的硬性要求,单靠它不决定排名。
含义: 站内有别的页面链到这里,但这些链接都没有用这个页面要排名的搜索词。锚文本就是这些链接带过来的提示。
怎么修: 至少在一条指向这个页面的站内链接上,用这个词作为可见的链接文字。
官方说明: developers.google.com/search/docs/crawling-indexing/links-crawlable
焦点页的站内链接太少
严重程度: 警告 · 维度: 内容与 AI 可读性 · 规则 ID: focus-page-few-inlinks · 检查方式: 关键词检查 · 工作量: 小
业内惯例,不是 Google 的硬性要求,单靠它不决定排名。
含义: 指向焦点页的站内链接少于 5 条,或者这些链接的锚文本去重后少于 5 种。这个页面得到的站内关注很少。
怎么修: 从相关页面加上指向这里的链接。在助手里调用 link_suggestions,并批准合适的建议。
官方说明: developers.google.com/search/docs/crawling-indexing/links-crawlable
站内链接指向打不开的页面
严重程度: 警告 · 维度: 页面基础 · 规则 ID: internal-links-to-errors · 检查方式: 站点检查 · 工作量: 中
含义: 你网站里的页面链接到了本站其他返回错误(4xx 或 5xx)的页面。问题里会写出有多少个页面链接到了多少个打不开的页面,并附上例子。访客点进去就走进死胡同,爬虫也把抓取次数浪费在这里。
怎么修: 把这些链接改到页面现在的地址,或者直接删掉。如果页面换了地址,把旧地址跳转到新地址,这样外部指过来的链接也不会失效。
官方说明: developers.google.com/crawling/docs/troubleshooting/http-status-codes
站点地图里没有被任何页面链接的页面
严重程度: 警告 · 维度: 页面基础 · 规则 ID: orphan-pages · 检查方式: 站点检查 · 工作量: 中
含义: 站点地图里列出了一些本站没有任何页面链接过去的页面。问题里写出了数量和例子,每个都确认过能正常打开。访客只能从站外进到这些页面,搜索引擎也不太重视没有内链指向的页面。有时它们本来就不该出现在站点地图里(模板、验证文件、过期的活动页)。
怎么修: 给重要的页面从相关页面、汇总页或导航加上链接;不该公开的页面从站点地图里删掉。
官方说明: developers.google.com/search/docs/crawling-indexing/links-crawlable
结构化数据
| 规则 | 严重程度 | 维度 | 检查方式 |
|---|---|---|---|
| 没有 JSON-LD 结构化数据 | 提示 | 结构化数据 | 规则检查 |
| 商品页缺少商品结构化数据(Product) | 警告 | 结构化数据 | 规则检查 |
| 结构化数据无效 | 警告 | 结构化数据 | 规则检查 |
| 缺少 Organization schema | 提示 | 结构化数据 | 规则检查 |
| 缺少面包屑 schema | 提示 | 结构化数据 | 规则检查 |
没有 JSON-LD 结构化数据
严重程度: 提示 · 维度: 结构化数据 · 规则 ID: missing-structured-data · 检查方式: 规则检查 · 工作量: 中
业内惯例,不是 Google 的硬性要求,单靠它不决定排名。
含义: 页面没有任何 JSON-LD。结构化数据用搜索引擎能直接读懂的方式描述页面(商品、文章、你的公司),很多富媒体搜索结果都依赖它。
怎么修: 加一个对应 Schema.org 类型的 <script type="application/ld+json">。让助手(problem)按你的网站类型给出一段可直接粘贴的代码,发布前把占位字段换成真实值。
官方说明: developers.google.com/search/docs/appearance/structured-data/intro-structured-data
商品页缺少商品结构化数据(Product)
严重程度: 警告 · 维度: 结构化数据 · 规则 ID: missing-product-schema · 检查方式: 规则检查 · 工作量: 中
含义: 这是商品页,但没有 Product 结构化数据。Google 购物、富媒体搜索结果和 AI 助手都是从这段标记里读商品名称、价格、币种和库存的;没有它,就只能从页面内容里猜,前提还是它们能看到页面内容。
怎么修: 加一段 Product JSON-LD,包含 name、image、description 和 offers(price、priceCurrency、availability、url),数据来源要和页面上显示的一致。如果网站是在浏览器里渲染的,这段标记必须出现在服务器返回的 HTML 里。
官方说明: developers.google.com/search/docs/appearance/structured-data/product-snippet
结构化数据无效
严重程度: 警告 · 维度: 结构化数据 · 规则 ID: invalid-structured-data · 检查方式: 规则检查 · 工作量: 小
含义: 页面的 JSON-LD 不符合 Schema.org 规则。这项检查由 Loomaly 自己的校验器完成,不靠 AI;问题里会写出第一个错误的路径,以及还有几个错误。只报告错误,不报告警告。
怎么修: 按报告的路径修正对应属性。让助手(problem)给出你自己这段代码的修正版,列出改了哪些地方、还有哪些需要只有你才知道的信息。改完后用 Google 富媒体搜索结果测试工具验证。
官方说明: developers.google.com/search/docs/appearance/structured-data/sd-policies
缺少 Organization schema
严重程度: 提示 · 维度: 结构化数据 · 规则 ID: missing-organization-schema · 检查方式: 规则检查 · 工作量: 小
业内惯例,不是 Google 的硬性要求,单靠它不决定排名。
含义: 首页没有 Organization(或 LocalBusiness)JSON-LD。它告诉搜索引擎你的名称、logo 和社交账号,是出现知识面板的前提。
怎么修: 在首页加上 Organization JSON-LD,包含 name、url、logo,以及指向各社交账号的 sameAs。本地商家用 LocalBusiness,并写上地址和营业时间。让助手(problem)给出可直接填写的模板。
官方说明: developers.google.com/search/docs/appearance/structured-data/organization
缺少面包屑 schema
严重程度: 提示 · 维度: 结构化数据 · 规则 ID: missing-breadcrumb-schema · 检查方式: 规则检查 · 工作量: 中
业内惯例,不是 Google 的硬性要求,单靠它不决定排名。
含义: 页面没有 BreadcrumbList JSON-LD。有了它,Google 能在搜索结果里显示页面在站内的位置,而不是一串裸 URL。
怎么修: 加上与页面导航位置一致的 BreadcrumbList JSON-LD。大多数建站平台和 SEO 插件都能根据面包屑自动生成。让助手(problem)给出模板。
官方说明: developers.google.com/search/docs/appearance/structured-data/breadcrumb
技术
| 规则 | 严重程度 | 维度 | 检查方式 |
|---|---|---|---|
| 错误页面以正常页面返回(软 404) | 错误 | 可收录性 | 页面判断 |
| 不执行 JavaScript 的爬虫看到的是空页面 | 错误 | 可收录性 | 规则检查 |
| 只为搜索引擎预渲染,AI 爬虫看到的是空页面 | 警告 | 内容与 AI 可读性 | 规则检查 |
| 页面使用 HTTP 而非 HTTPS | 错误 | 可收录性 | 规则检查 |
| robots.txt 不是有效的规则文件 | 警告 | 可收录性 | 站点检查 |
| robots.txt 没有声明 sitemap | 提示 | 可收录性 | 站点检查 |
| robots.txt 里只有注释 | 提示 | 可收录性 | 站点检查 |
| robots.txt 屏蔽了 AI 搜索的爬虫 | 警告 | 内容与 AI 可读性 | 站点检查 |
| robots.txt 拦了 AI 爬虫 | 警告 | 内容与 AI 可读性 | 站点检查 |
| 站点要求 AI 回答引擎不要使用这些页面 | 警告 | 内容与 AI 可读性 | 站点检查 |
| 没有找到站点地图 | 警告 | 可收录性 | 站点检查 |
| 站点地图漏了可索引的页面 | 警告 | 可收录性 | 站点检查 |
| sitemap 不是有效的 XML | 警告 | 可收录性 | 站点检查 |
| sitemap 里列了不该收录的网址 | 警告 | 可收录性 | 站点检查 |
| canonical 指向会跳转或打不开的地址 | 警告 | 可收录性 | 站点检查 |
| 独立手机站缺少 rel="alternate" 标注 | 警告 | 可收录性 | 站点检查 |
| 网站的其他地址没有永久跳转到主地址 | 警告 | 可收录性 | 站点检查 |
| 缺少 favicon | 提示 | 页面基础 | 规则检查 |
| 页面返回非 200 状态码 | 错误 | 可收录性 | 规则检查 |
错误页面以正常页面返回(软 404)
严重程度: 错误 · 维度: 可收录性 · 规则 ID: soft-404 · 检查方式: 页面判断 · 工作量: 中
含义: 页面内容显示「找不到」或出错,但 HTTP 状态码却是 200,搜索引擎会把它当成正常页面继续收录。
怎么修: 已经不存在的页面返回真正的 404 或 410;有对应新页面的,301 重定向过去。
官方说明: developers.google.com/crawling/docs/troubleshooting/http-status-codes
不执行 JavaScript 的爬虫看到的是空页面
严重程度: 错误 · 维度: 可收录性 · 规则 ID: client-rendered-without-ssr · 检查方式: 规则检查 · 工作量: 大
含义: 不执行 JavaScript 直接请求时,页面 HTML 有 20 KB 以上,正文却不到 150 个字符:内容要等 JavaScript 执行后才出现。不执行 JavaScript 的爬虫(包括大多数 AI 爬虫,如 ChatGPT、Perplexity、Claude,以及链接预览)看到的就是这样。有些网站只给 Googlebot 返回渲染好的页面,这时 Google 能看到内容,AI 爬虫仍然看不到。这类页面空得没法判断,所以不做 AI 判断,改报这个问题。
怎么修: 改为服务端渲染,或在构建时预渲染,让 HTML 里直接包含内容。大多数框架都支持 SSR 或静态生成。
官方说明: developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics
只为搜索引擎预渲染,AI 爬虫看到的是空页面
严重程度: 警告 · 维度: 内容与 AI 可读性 · 规则 ID: prerendered-for-search-engines-only · 检查方式: 规则检查 · 工作量: 大
含义: 以普通访问者身份请求时,页面是一个等 JavaScript 补全的空壳;以 Googlebot 身份请求时,拿到的是渲染好的完整页面。说明网站只为搜索引擎做了预渲染。Google、Bing 能看到内容,可以正常收录和排名;但 AI 爬虫(ChatGPT、Perplexity、Claude 等)不执行 JavaScript,也不在预渲染名单里,看到的是空页面,回答里就引用不了价格、库存和商品详情。
怎么修: 把主流 AI 爬虫(GPTBot、OAI-SearchBot、PerplexityBot、ClaudeBot 等)加入预渲染名单,通常只需在预渲染服务或 CDN 规则里改一行。长期看,改为对所有访问者服务端输出内容。
官方说明: developers.google.com/search/docs/crawling-indexing/javascript/dynamic-rendering
页面使用 HTTP 而非 HTTPS
严重程度: 错误 · 维度: 可收录性 · 规则 ID: non-https · 检查方式: 规则检查 · 工作量: 中
含义: 页面通过 HTTP 而不是 HTTPS 提供。HTTPS 是 Google 明确的排名因素,浏览器也会把 HTTP 页面标为「不安全」。
怎么修: 配置 TLS 证书,把所有 HTTP 地址 301 重定向到 HTTPS,并把站内链接和 canonical 都改成 HTTPS。
官方说明: developers.google.com/search/docs/appearance/page-experience
robots.txt 不是有效的规则文件
严重程度: 警告 · 维度: 可收录性 · 规则 ID: robots-txt-invalid · 检查方式: 站点检查 · 工作量: 小
含义: 域名根目录的 /robots.txt 返回的是网页或服务器错误,而不是纯文本规则。爬虫读不到任何规则和 sitemap;如果是服务器错误,Google 会暂停抓取整个网站。
怎么修: 在域名根目录以 text/plain 提供 /robots.txt,写上 User-agent 规则和一行 Sitemap:。确认它没有被应用的兜底路由或跳转首页的逻辑接管。
官方说明: developers.google.com/crawling/docs/robots-txt/create-robots-txt
robots.txt 没有声明 sitemap
严重程度: 提示 · 维度: 可收录性 · 规则 ID: robots-txt-no-sitemap · 检查方式: 站点检查 · 工作量: 小
业内惯例,不是 Google 的硬性要求,单靠它不决定排名。
含义: robots.txt 里没有 Sitemap: 这一行,或者网站根本没有 robots.txt。你手动提交过 sitemap 的搜索引擎仍然知道它;Bing、AI 爬虫等其他爬虫只能自己去找。
怎么修: 在 /robots.txt 里加上 Sitemap: https://你的域名/sitemap.xml(每个 sitemap 写完整地址)。如果网站没有 robots.txt(证据里写着 no robots.txt),就新建一个:只有这一行也是合法文件,不会屏蔽任何页面。
官方说明: developers.google.com/search/docs/crawling-indexing/sitemaps/build-sitemap#addsitemap
robots.txt 里只有注释
严重程度: 提示 · 维度: 可收录性 · 规则 ID: robots-only-comments · 检查方式: 站点检查 · 工作量: 小
业内惯例,不是 Google 的硬性要求,单靠它不决定排名。
含义: robots.txt 没有爬虫规则,也没有 Sitemap 行,只有注释。Cloudflare 这类主机常会托管这样一份文件,项目里的副本不一定是爬虫读到的那份。
怎么修: 在主机的 robots.txt 设置里加上 Sitemap 行。如果你能控制这个文件,用真正的规则和一行 Sitemap 换掉这些注释。
官方说明: developers.google.com/search/docs/crawling-indexing/sitemaps/build-sitemap#addsitemap
robots.txt 屏蔽了 AI 搜索的爬虫
严重程度: 警告 · 维度: 内容与 AI 可读性 · 规则 ID: ai-search-crawlers-blocked · 检查方式: 站点检查 · 工作量: 小
含义: robots.txt 禁止了一个或多个为 AI 搜索回答抓取网页的爬虫:OAI-SearchBot(ChatGPT 搜索)、Claude-SearchBot(Claude)和 PerplexityBot(Perplexity),具体是哪些见问题详情。这些产品读不到你的网站,回答里就不会引用或链接它。它们和训练爬虫(GPTBot、ClaudeBot、Google-Extended)不是一回事:屏蔽训练爬虫只是不让内容进入以后的模型训练,很多网站却把两类一起屏蔽了。在 CDN 上设置的拦截(比如一键屏蔽 AI 爬虫的开关)不写在 robots.txt 里,这里查不到。
怎么修: 如果希望出现在 AI 回答里,删掉针对这些爬虫的 Disallow 行,或者给每个爬虫单独写一组 Allow: /,例如 User-agent: OAI-SearchBot 下一行写 Allow: /。不希望内容被拿去训练的话,可以继续屏蔽 GPTBot、ClaudeBot 和 Google-Extended。如果是有意屏蔽,忽略这个问题即可。
官方说明: developers.openai.com/api/docs/bots
robots.txt 拦了 AI 爬虫
严重程度: 警告 · 维度: 内容与 AI 可读性 · 规则 ID: ai-crawler-blocked · 检查方式: 站点检查 · 工作量: 小
含义: robots.txt 禁止一个或多个 AI 爬虫抓首页。搜索和回答爬虫(OAI-SearchBot、Claude-SearchBot、PerplexityBot)是警告:那些产品读不到这个站。训练爬虫(GPTBot、ClaudeBot、Google-Extended,以及 Applebot-Extended、CCBot 这类)只是提示:拦住它们只是不让页面进入以后的模型训练,本身不会让站点从 AI 回答里消失。这条会写出是哪些。Content-Signal 的拒绝是另一条检查。CDN 上的拦截不在 robots.txt 里,这里不查。
怎么修: 如果希望出现在 AI 回答里,删掉这条点名的搜索爬虫的 Disallow,或给每个单独一组并写上 Allow: /。训练爬虫可以继续拦,那只是一条提示。如果拦截是有意的,忽略这条。
官方说明: developers.openai.com/api/docs/bots
站点要求 AI 回答引擎不要使用这些页面
严重程度: 警告 · 维度: 内容与 AI 可读性 · 规则 ID: content-signal-blocks-ai-answers · 检查方式: 站点检查 · 工作量: 小
业内惯例,不是 Google 的硬性要求,单靠它不决定排名。
含义: robots.txt 里的 Content-Signal 对抓取页面、用来生成 AI 回答的爬虫关掉了搜索或 AI 输入(search=no 或 ai-input=no):OAI-SearchBot、Claude-SearchBot 和 PerplexityBot。这些产品被要求不要在回答里使用这些页面。只拒绝训练(ai-train=no)不会触发这条。
怎么修: 在作用于 * 或这些爬虫的 Content-Signal 行里,如果希望允许使用页面,写成 ai-input=yes 和 search=yes。可以保留 ai-train=no。如果是有意拒绝,忽略这个问题即可。
官方说明: contentsignals.org
没有找到站点地图
严重程度: 警告 · 维度: 可收录性 · 规则 ID: sitemap-missing · 检查方式: 站点检查 · 工作量: 小
含义: sitemap.xml 没有响应,robots.txt 也没有指出站点地图。页面已经不少,爬虫只能顺着链接一页页找。
怎么修: 用路由或内容来源生成 XML 站点地图,并在 robots.txt 里加上 Sitemap 行。然后在 Loomaly 里提交。不需要打开 Search Console。
官方说明: developers.google.com/search/docs/crawling-indexing/sitemaps/build-sitemap
站点地图漏了可索引的页面
严重程度: 警告 · 维度: 可收录性 · 规则 ID: sitemap-stale · 检查方式: 站点检查 · 工作量: 中
含义: 网站已有站点地图,但爬虫找到的可索引页面不在里面。末尾斜杠、www 或查询参数不算另一个页面。
怎么修: 用和路由或内容相同的来源生成站点地图,新页面会自动进去。不要手工补 URL。登录页和应用页不要放进去。
官方说明: developers.google.com/search/docs/crawling-indexing/sitemaps/build-sitemap
sitemap 不是有效的 XML
严重程度: 警告 · 维度: 可收录性 · 规则 ID: sitemap-invalid · 检查方式: 站点检查 · 工作量: 中
含义: 某个 sitemap 地址返回的不是 sitemap:通常是被兜底路由接管后返回了网站页面,或者 robots.txt 里写的 sitemap 地址是 404。爬虫从这里拿不到任何网址列表。
怎么修: 以 XML 内容类型提供 sitemap(<urlset> 或 <sitemapindex>),robots.txt 里只写真实存在的 sitemap 地址。
官方说明: developers.google.com/search/docs/crawling-indexing/sitemaps/build-sitemap
sitemap 里列了不该收录的网址
严重程度: 警告 · 维度: 可收录性 · 规则 ID: sitemap-lists-non-canonical · 检查方式: 站点检查 · 工作量: 中
含义: sitemap 里列出的网址不是 Google 应该收录的版本:它们声明了别的网址为 canonical、会跳转到别的页面,或者返回错误。问题里会写出有多少个并附上例子(会跳转的会写出跳到哪里)。sitemap 和页面本身说法不一致时,Google 会降低对它的信任。
怎么修: 让 sitemap 和 canonical 标签从同一个数据源生成,只列出不跳转、直接返回 200 且 canonical 指向自己的网址,旧路径换成它们跳转后的地址。
官方说明: developers.google.com/search/docs/crawling-indexing/sitemaps/build-sitemap
canonical 指向会跳转或打不开的地址
严重程度: 警告 · 维度: 可收录性 · 规则 ID: canonical-target-broken · 检查方式: 站点检查 · 工作量: 中
含义: 一些页面声明的 canonical 网址(告诉搜索引擎该收录哪个版本)本身会跳转或者返回错误。问题里列出了这些地址、它们的响应,以及有多少个页面指向它们。搜索引擎被送去绕路或者走进死胡同,可能忽略这个 canonical,甚至不收录页面。
怎么修: 把每个 canonical 改成最终能直接返回 200 的地址:通常是页面自己,或者旧地址现在跳转到的地方。canonical 一般在共用模板或 SEO 插件设置里统一改。
官方说明: developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls
独立手机站缺少 rel="alternate" 标注
严重程度: 警告 · 维度: 可收录性 · 规则 ID: mobile-site-not-annotated · 检查方式: 站点检查 · 工作量: 中
含义: 手机用户(包括 Google 用来收录的智能手机爬虫)会被跳转到另一个主机上的独立手机站,问题里会写出是哪个。Google 要求这两个版本互相声明:手机页的 canonical 指向桌面页,桌面页用带 media 属性的 rel="alternate" 链接指向手机页。现在桌面页缺少这个链接。
怎么修: 在每个桌面页加上 <link rel="alternate" media="only screen and (max-width: 640px)" href="https://m.你的网站/..."> 指向对应的手机页,手机页的 canonical 保持指回桌面页。或者改成同一个地址的响应式网站。
官方说明: developers.google.com/search/docs/crawling-indexing/mobile/mobile-sites-mobile-first-indexing
网站的其他地址没有永久跳转到主地址
严重程度: 警告 · 维度: 可收录性 · 规则 ID: host-variants-not-redirected · 检查方式: 站点检查 · 工作量: 小
含义: 你的网站能从不止一个地址打开:http:// 版本,或者带 / 不带 www. 的版本,要么直接显示了网站内容,要么只用临时跳转(302 或 307)把访客送过去。问题里列出了每个地址和它的响应。搜索引擎可能把它们当成两个网站,外链和信号会被分散。
怎么修: 让其他版本都用一次永久跳转(301 或 308)直接跳到主地址,一般在主机或 CDN 的域名设置里改(Cloudflare 上是 Always Use HTTPS,再给另一个主机名加一条重定向规则)。
官方说明: developers.google.com/search/docs/crawling-indexing/301-redirects
缺少 favicon
严重程度: 提示 · 维度: 页面基础 · 规则 ID: missing-favicon · 检查方式: 规则检查 · 工作量: 小
含义: 页面没有声明 favicon。Google 搜索结果、浏览器标签页和书签里都会显示它。
怎么修: 在 <head> 里加上 <link rel="icon" href="/favicon.ico">(也可以用 PNG 或 SVG 图标)。
官方说明: developers.google.com/search/docs/appearance/favicon-in-search
页面返回非 200 状态码
严重程度: 错误 · 维度: 可收录性 · 规则 ID: non-200-status · 检查方式: 规则检查 · 工作量: 中
含义: 页面(跟随重定向之后)返回了错误状态码,无法被正常收录。问题里会写出具体的状态码。
怎么修: 如果页面应该存在,修复服务器错误或恢复页面;如果是有意删除的,重定向到替代页面,或者删掉指向它的链接并把它移出 sitemap。
官方说明: developers.google.com/crawling/docs/troubleshooting/http-status-codes
性能
| 规则 | 严重程度 | 维度 | 检查方式 |
|---|---|---|---|
| 最大内容绘制(LCP)超过 2.5 秒 | 警告 | 性能 | 性能测试 |
| 交互到下一次绘制(INP)超过 200 毫秒 | 警告 | 性能 | 性能测试 |
| 累积布局偏移(CLS)超过 0.1 | 警告 | 性能 | 性能测试 |
| 首字节时间(TTFB)超过 800 毫秒 | 警告 | 性能 | 性能测试 |
| Lighthouse 性能分低于 50 | 警告 | 性能 | 性能测试 |
| LCP 图片没有被优先加载 | 警告 | 性能 | 性能测试 |
最大内容绘制(LCP)超过 2.5 秒
严重程度: 警告 · 维度: 性能 · 规则 ID: cwv-lcp-poor · 检查方式: 性能测试 · 工作量: 大
含义: 移动端的 LCP(主要内容出现所需的时间)超过 2.5 秒。页面有足够真实流量时用 Chrome 真实用户数据,否则用实验室测量值。
怎么修: 先找到 Lighthouse 认定的 LCP 元素,看时间花在哪一段。如果是文字:去掉阻塞渲染的 CSS 和 JavaScript,预加载网页字体并设置 font-display,在服务端渲染出来。如果是图片:让它优先加载(fetchpriority="high"、不懒加载、出现在初始 HTML 里),并用新格式和合适的尺寸。服务器响应慢会同时拖慢这两种情况。
官方说明: web.dev/articles/lcp
交互到下一次绘制(INP)超过 200 毫秒
严重程度: 警告 · 维度: 性能 · 规则 ID: cwv-inp-poor · 检查方式: 性能测试 · 工作量: 大
含义: 移动端的 INP(页面对点击、触摸的响应速度)超过 200 毫秒。这一项只基于真实用户数据,所以只会出现在 Chrome 流量足够的页面上。
怎么修: 拆分耗时长的 JavaScript 任务,延后加载非必需的脚本,精简或延迟第三方脚本。
官方说明: web.dev/articles/inp
累积布局偏移(CLS)超过 0.1
严重程度: 警告 · 维度: 性能 · 规则 ID: cwv-cls-poor · 检查方式: 性能测试 · 工作量: 中
含义: 移动端的 CLS(页面加载过程中内容跳动的程度)超过 0.1。
怎么修: 给图片和嵌入内容设置 width 和 height,为广告和横幅预留位置,不要在已显示的内容上方插入新内容。
官方说明: web.dev/articles/cls
首字节时间(TTFB)超过 800 毫秒
严重程度: 警告 · 维度: 性能 · 规则 ID: cwv-ttfb-slow · 检查方式: 性能测试 · 工作量: 大
含义: TTFB(服务器开始返回内容所需的时间)超过 800 毫秒,页面上的其他一切都要等它。
怎么修: 用 CDN 在边缘缓存页面,提升服务器或主机性能,开启压缩,并避免页面前的多余重定向。
官方说明: web.dev/articles/ttfb
Lighthouse 性能分低于 50
严重程度: 警告 · 维度: 性能 · 规则 ID: lighthouse-perf-low · 检查方式: 性能测试 · 工作量: 大
业内惯例,不是 Google 的硬性要求,单靠它不决定排名。
含义: 页面在 Google PageSpeed Insights 里的移动端 Lighthouse 性能分低于 50,通常意味着同时存在多个瓶颈。
怎么修: 先处理同一页面上报告的具体性能问题;该 URL 的 PageSpeed Insights 报告里还会列出更多优化建议。
官方说明: developer.chrome.com/docs/lighthouse/performance/performance-scoring
LCP 图片没有被优先加载
严重程度: 警告 · 维度: 性能 · 规则 ID: lcp-image-no-fetchpriority · 检查方式: 性能测试 · 工作量: 小
业内惯例,不是 Google 的硬性要求,单靠它不决定排名。
含义: PageSpeed Insights 发现页面最大的元素是一张图片,但浏览器没有优先去下载它。如果是 <img>,就是没有 fetchpriority="high"、被懒加载了,或者要等脚本运行后才出现。如果是 CSS 背景图,这个元素不是 <img>,给它加 fetchpriority 没有用。改掉请求方式通常能让 LCP 快 200–500 毫秒。
怎么修: 如果元素是 <img>,给它加上 fetchpriority="high",去掉 loading="lazy",并让它出现在服务器返回的 HTML 里。如果是别的元素上的 CSS 背景图,不要给这个元素加 fetchpriority:用 <link rel="preload" as="image" fetchpriority="high"> 预加载这张图,或者把它渲染成 <img>。
官方说明: web.dev/articles/fetch-priority
多语言
| 规则 | 严重程度 | 维度 | 检查方式 |
|---|---|---|---|
| hreflang 缺少自引用 | 警告 | 页面基础 | 规则检查 |
| 缺少 hreflang x-default | 提示 | 页面基础 | 规则检查 |
hreflang 缺少自引用
严重程度: 警告 · 维度: 页面基础 · 规则 ID: hreflang-self-referential-missing · 检查方式: 规则检查 · 工作量: 中
含义: 页面的 hreflang 列出了其他语言版本,却没有包含它自己。每组 hreflang 都必须包含页面自身的 URL。
怎么修: 为页面自己的语言加一条 hreflang,指向它自己的 URL。
官方说明: developers.google.com/search/docs/specialty/international/localized-versions
缺少 hreflang x-default
严重程度: 提示 · 维度: 页面基础 · 规则 ID: hreflang-x-default-missing · 检查方式: 规则检查 · 工作量: 小
含义: hreflang 里没有 x-default,也就是给语言不在支持范围内的访客准备的默认版本。
怎么修: 加一条 hreflang="x-default",指向语言选择页或默认语言版本。
官方说明: developers.google.com/search/docs/specialty/international/localized-versions
无障碍
| 规则 | 严重程度 | 维度 | 检查方式 |
|---|---|---|---|
<html> 缺少 lang 属性 | 警告 | 页面基础 | 规则检查 |
<html> 缺少 lang 属性
严重程度: 警告 · 维度: 页面基础 · 规则 ID: missing-html-lang · 检查方式: 规则检查 · 工作量: 小
业内惯例,不是 Google 的硬性要求,单靠它不决定排名。
含义: <html> 元素没有 lang 属性,读屏软件和翻译工具无法判断页面的语言。
怎么修: 设置为页面的语言代码,例如 <html lang="zh-CN">、lang="en" 或 lang="de"。
官方说明: developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/lang