mcpField
S
seo-images-media

seo-images-media

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

关于 seo-images-media

seo-images-media 是用于检查图像描述、尺寸、格式和嵌入视频元数据的 SEO 审计技能。它帮助团队发现无障碍访问和媒体标记问题,并仅依据页面上下文提出替代文本和修复建议。

主要功能

  1. 01检查图像替代文本是否存在及合适
  2. 02标记缺少尺寸的图像
  3. 03检查旧式图像格式
  4. 04检测缺少 VideoObject 结构化数据的视频
  5. 05提出符合上下文的替代文本

适用场景

  1. 01查找缺少替代文本的内容图像
  2. 02找出未预留显示尺寸的图像
  3. 03审计嵌入视频的结构化数据

安装

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

$npx skills add https://github.com/hainrixz/claude-seo-ai --skill seo-images-media

安装后在 Claude Code 中输入/seo-images-media确认已加载。

详细介绍

seo-images-media (M9)

易于访问且描述清晰的媒体内容既会被排名系统读取,也会被 AI 提取器读取——alt 文本是图像的主要语义标识。参考:references/schema-tier1.md(VideoObject 行)。

输入

根据调度信封中指定的 PageSnapshot 操作:从 <run_dir>/pages/<slug>.json 读取 parsed(images[] 中包含 alt_present/sized/lazy、iframes、jsonld[]);在 pages/<slug>.html 中使用 Grep 查找原文证据;站点资料位于 <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. Alt 是否存在:每个内容 <img> 都必须有 alt 属性。区分装饰性图像(alt="" + role="presentation" 是正确做法,不算发现)和完全缺少 alt(不合格)。
  2. Alt 质量:内容图像的 alt 不应为空,也不应只是文件名(IMG_2031.jpg),不同图像的 alt 不应逐字重复,也不应堆砌关键词(逗号分隔的关键词列表是一种反模式)。Alt 应结合周围内容,提供描述性信息。目标长度约为 80-140 个字符——既要足够具体,又要简洁,以免屏幕阅读器/AI 截断。
  3. 尺寸:在 <img> 上设置 width 和 height(或在 CSS 中预留宽高比),以避免布局偏移(CLS,是 Core Web Vitals 的一项输入——CWV 测量本身交由性能模块处理)。
  4. 格式:如果现代格式(WebP/AVIF)或响应式 <picture>/srcset 能减小字节数,则标记旧式 jpg/png。
  5. 视频:嵌入的视频(<video>、YouTube/Vimeo iframe)若没有 VideoObject JSON-LD,则应标记——与 M5 协调;必需/推荐属性见 references/schema-tier1.md。

修复

  • 自动(fixable: auto):根据源资源的固有尺寸,为 <img> 添加 width/height(确定性、增量式、可验证)——以差异形式输出,供 fix 使用。
  • 建议(fixable: proposed):根据图像及其周围的标题/说明/段落,生成符合上下文的 alt 文本草稿。每项草稿都需人工接受(alt 属于编辑内容)。绝不根据页面上下文无法支持的信息臆测图像内容——上下文不足时,留下明确标记的 TODO: describe image 占位符,或询问用户。
  • 提示(fixable: advisory):格式升级(WebP/AVIF、srcset)。该工具无法转码二进制文件,因此绝不会写入这些更改——只提供建议。

验证

  • 方法 dom_assert:重新解析快照并断言条件(alt 非空、存在 width+height、不是文件名等)。
  • 当尺寸检查需要远程资源的固有尺寸但没有可用的抓取层时,状态为 needs_api,绝不能错误地判定为 pass。

发现

按 schema/finding.schema.json 输出发现;轴为 both;整个模块的严重性均为 3。严重性策略:5 专用于站点/模板级别的灾难性事实(会导致失去资格);4 重大 · 3 中等 · 2 轻微 · 1 表面 · 0 仅供参考——只有处于活跃类别中的 established 严重性为 5 的 fail 才能限制评分(references/scoring-model.md)。M9 中没有任何内容达到 4。

  • M9.alt.missing — 内容 <img> 缺少 alt 属性。状态为 fail,fixable: proposed,置信度为 established。evidence.observed 引用有问题的 <img> 标签。
  • M9.img.no_dimensions — <img> 缺少 width/height。状态为 warn,fixable: auto,置信度为 directional(与 CLS 相关)。
  • M9.video.missing_videoobject — 嵌入的视频缺少 VideoObject schema。状态为 warn,fixable: proposed,置信度为 established。 每条发现:evidence.observed 引用页面内容;verification.reproduce 是可运行的命令,例如 node "${CLAUDE_PLUGIN_ROOT}/scripts/parse-html.mjs" --snapshot <pages/<slug>.json>(或 --url <u>),然后检查 images 块(missing_alt、empty_alt、missing_dimensions)。expected_impact 按区间表达,并标注置信度(不提供没有上下文的百分比)。

诚信原则

  • Alt 文本有助于无障碍访问以及图片理解/AI 理解;应将排名提升视为 directional,而非有保证的收益——不要承诺重写 alt 文本能带来流量。
  • Alt 文本中堆砌关键词有害无益——应标记此问题,绝不要生成这类文本。
  • WebP/AVIF 可减少字节数(这是影响性能的实际因素),但格式本身并非有记录的排名因素;应将其保持为 advisory/low 影响程度。

评论

支持 Markdown