关于 seo-mobile
seo-mobile 是用于评估页面小屏体验的 SEO 审计技能,检查视口设置、布局、触控目标、字体和移动端内容一致性,并区分自动修复与建议项。
主要功能
- 01视口 meta 检查
- 02横向溢出检查
- 03触控目标与字号审查
- 04移动端与桌面内容一致性
- 05自动添加视口标签
适用场景
- 01审计页面的移动端可用性
- 02检查移动端是否缺少主要内容
- 03生成带证据的 SEO 发现
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ hainrixz/ claude-seo-ai --skill seo-mobile安装后在 Claude Code 中输入/seo-mobile确认已加载。
详细介绍
seo-mobile(M7b)
Google 采用移动优先索引:页面的移动端渲染版本是排名所依据的规范版本。本模块会检查页面能否在小视口中正常使用。影响移动端可用性的布局问题通常会体现为 CLS——请交叉参考 references/cwv-thresholds.md。
输入
使用调度信封中指定的 PageSnapshot:从 <run_dir>/pages/<slug>.json 读取 parsed(视口标签位于 metas[] 中),并在 render.used 不为 none 时读取 parsed_rendered(布局/几何检查需要它);使用 Grep 在 pages/<slug>.html 中查找原文证据;网站相关文件位于 <run_dir>/site/{robots.json,sitemaps.json,discovery.json}。audit.mjs 已输出的确定性发现列在 <run_dir>/findings.deterministic.json 中——不要重复输出这些 ID;仅添加由模型判定的发现。如果直接使用 URL/路径调用,且不存在快照,请先运行 node "${CLAUDE_PLUGIN_ROOT}/scripts/snapshot.mjs" <target> --out "${CLAUDE_PLUGIN_DATA}/runs",并使用打印出的快照路径。
审计
基于 PageSnapshot 检查(当 render.used 不为 none 时使用 parsed_rendered,否则使用 parsed):
- 视口 meta 标签:应存在包含
width=device-width和initial-scale=1的<meta name="viewport">。标记缺失、固定宽度(width=1024)或阻止缩放的值(user-scalable=no、maximum-scale=1)——最后一种也会损害无障碍体验。 - 无水平滚动:检测会使视口宽于设备的固定宽度容器/过大的绝对宽度(内容溢出约 360 px 的小视口)。
- 触控目标尺寸:交互元素(链接、按钮、表单控件)应足够大且间距合理,避免相邻目标容易被误触。
- 基础字体易读性:正文渲染后的基础字号应易于阅读,而不是只能在桌面端使用的小字号,导致移动端用户必须双指缩放。
- 内容一致性:移动端 DOM 必须包含与桌面端相同的主要内容、标题、结构化数据和链接——移动优先索引根据移动端渲染版本确定排名,因此移动端隐藏/剥离内容会带来排名风险。
修复
- AUTO(
fixable: auto):如果缺少<meta name="viewport" content="width=device-width, initial-scale=1">,则将其注入<head>。此修复具有确定性、只会添加内容且可验证——修复时以差异形式输出。 - ADVISORY(
fixable: advisory):固定宽度/溢出布局、触控目标尺寸、基础字号和内容一致性问题取决于 CSS、设计系统和 JS——破坏风险较高。该工具会诊断并确定优先级,但不会自动编辑布局代码。切勿臆造断点值或像素尺寸——报告观察到的值,或留下明确标注的 TODO 供用户处理。
验证
- 方法
dom_assert:根据快照断言(视口 meta 标签的存在/内容、计算宽度、目标几何信息)。 - 离线复现确定性部分(视口 meta 标签的存在/内容):运行
node "${CLAUDE_PLUGIN_ROOT}/scripts/parse-html.mjs" --snapshot <pages/<slug>.json>(或使用--url <u>/--file <path>)——检查head_hygiene.viewport。触控目标/溢出几何检查需要对渲染后的快照进行manual_review。 - 触控目标和溢出检查需要渲染后的快照(计算布局)。如果只有
raw_html_path可用,且无法解析布局,则状态应为needs_api,绝不可误报为pass。
发现
按 schema/finding.schema.json 输出发现项。示例:
M7b.viewport.missing— 缺少 viewport meta(状态fail,严重性 3,fixable: auto,维度search,置信度established)。M7b.viewport.user_scalable_no— viewport 禁用了缩放(状态warn,严重性 3,fixable: advisory,维度search,置信度established)。M7b.layout.horizontal_scroll— 内容超出小视口范围(状态fail,严重性 3,fixable: advisory,维度search,置信度directional)。M7b.taptarget.too_small— 交互目标过小或间距过近(状态warn,严重性 3,fixable: advisory,维度search,置信度directional)。
每个发现项:evidence.observed 引用页面内容(meta 标签字符串、溢出的选择器/宽度、目标几何尺寸);verification.reproduce 是上文中可运行的命令;expected_impact 按区间标注并附带置信度(不得只给出百分比)。
诚实性
- 移动设备友好性是可用性的基准,并非有力的正向排名因素——快速、构建完善但仅面向桌面的网站,添加 viewport 标签并不会获得排名加成;它只是消除一项可用性风险。应将修复描述为消除风险,而非提升排名。
- Google 已停用独立的“Mobile-Friendly Test”工具和页面体验徽章;不存在一个可以“赢得”的单一移动设备友好排名标记。不要传播这种误解。
- 存在 viewport meta 并不能证明布局确实具有响应能力——应通过渲染快照确认,不要仅凭标签推断响应能力。