mcpField
S
seo-mobile

seo-mobile

github.com/hainrixz营销与增长79203 次安装3 天前更新
代码仓库

关于 seo-mobile

seo-mobile 是用于评估页面小屏体验的 SEO 审计技能,检查视口设置、布局、触控目标、字体和移动端内容一致性,并区分自动修复与建议项。

主要功能

  1. 01视口 meta 检查
  2. 02横向溢出检查
  3. 03触控目标与字号审查
  4. 04移动端与桌面内容一致性
  5. 05自动添加视口标签

适用场景

  1. 01审计页面的移动端可用性
  2. 02检查移动端是否缺少主要内容
  3. 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):

  1. 视口 meta 标签:应存在包含 width=device-width 和 initial-scale=1 的 <meta name="viewport">。标记缺失、固定宽度(width=1024)或阻止缩放的值(user-scalable=no、maximum-scale=1)——最后一种也会损害无障碍体验。
  2. 无水平滚动:检测会使视口宽于设备的固定宽度容器/过大的绝对宽度(内容溢出约 360 px 的小视口)。
  3. 触控目标尺寸:交互元素(链接、按钮、表单控件)应足够大且间距合理,避免相邻目标容易被误触。
  4. 基础字体易读性:正文渲染后的基础字号应易于阅读,而不是只能在桌面端使用的小字号,导致移动端用户必须双指缩放。
  5. 内容一致性:移动端 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 并不能证明布局确实具有响应能力——应通过渲染快照确认,不要仅凭标签推断响应能力。

评论

支持 Markdown