Community编程与开发github.com

Webflow 资源审计

分析 Webflow 站点上的资源以优化 SEO。识别缺少替代文本和名称不符合 SEO 最佳实践的资源,并生成和应用改进。

Webflow 资源审计 是什么?

该技能是一个针对 Webflow 站点的自动化 SEO 资源审计工具。它通过 Webflow MCP 工具,系统地抓取和分析站点上的所有图片资源,识别出缺少替代文本、替代文本质量不佳、文件名不符合 SEO 标准以及重复或高度相似的资源。技能的核心优势在于其高度结构化的流程,包括模式检测、批量处理和细粒度的用户审批,确保每次更改都得到确认。它支持多种改进选项,如仅生成替代文本、仅优化文件名或两者同时进行,并提供命名模板建议和文件夹组织方案。此外,该技能内置了回滚机制,在应用任何更改前都会存储原始数据,允许用户在 5 分钟内撤销更新,从而提供了安全网。该技能深度集成 Webflow MCP,所有操作都通过其数据工具执行,确保了与 Webflow 平台的无缝交互和数据一致性。适用于 Claude Code、Cursor 或 Codex 等 AI 代理,通过遵循严格的验证规则(如替代文本长度、文件名格式)来确保输出质量。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/webflow/webflow-skills/tree/HEAD/plugins/webflow-skills/skills/asset-audit

Installed? Explore more 编程与开发 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

资源审计

分析 Webflow 站点上的资源以优化 SEO。

重要说明

始终使用 Webflow MCP 工具进行所有操作:

  • 使用 Webflow MCP 的 data_assets_tool 来获取和更新资源
  • 使用 Webflow MCP 的 get_asset_preview(传入资源的 asset_id)来分析图片内容
  • 使用 Webflow MCP 的 data_sites_tool(操作为 list_sites)来列出可用站点
  • 使用 Webflow MCP 的 webflow_guide_tool 在开始前获取最佳实践
  • 不要使用任何其他工具或方法进行 Webflow 操作
  • 所有工具调用必须包含必需的 context 参数(15-25 个词,以第三人称视角)

操作说明

阶段 1:站点选择与资源发现

  1. 获取站点:确定目标站点。如果用户未提供站点 ID,则向其询问。
  2. 获取所有资源:使用 Webflow MCP 的 data_assets_tool 从站点获取所有资源(每条资源记录包含其 asset_id,用于预览)
    • 对于包含 50 个以上资源的站点,每次批量处理 20 个
    • 显示进度:"正在处理第 1-20 个资源,共 150 个..."
  3. 检测模式:分析资源命名中的常见模式:
    • 相机上传(IMG_、DSC_ 等)
    • 截图(screenshot、Screen Shot 等)
    • 通用名称(untitled、image-1 等)
    • 基于日期的名称(2024-01-10 等)

阶段 2:问题分析与模式识别

  1. 识别问题:列出所有存在以下问题的资源:
    • 未设置替代文本(null 或空字符串)
    • 存在替代文本但质量不佳(过短、冗余短语等)
    • 文件名不符合 SEO 友好要求
    • 重复或高度相似
  2. 模式检测报告:显示检测到的模式:
    🔍 检测到的模式:
    - 15 个资源以 "IMG_" 开头(相机上传)
    - 8 个资源包含 "screenshot"
    - 建议:批量重命名这些模式
    
  3. 询问用户偏好:询问用户希望生成:
    • 仅替代文本
    • 仅 SEO 友好名称
    • 两者
    • 应用命名模式/模板

阶段 3:分析与建议生成

  1. 分析资源:使用 Webflow MCP 的 get_asset_preview 工具,传入每个资源的 asset_id(来自阶段 1),来分析需要更新的资源
    • 错误处理:如果 Webflow MCP 的 get_asset_preview 失败,使用后备方案:
      • 从现有文件名中提取描述
      • 使用带警告的通用占位符
      • 继续处理其他资源
    • 批量处理以避免超时
  2. 生成带验证的建议:
    • 替代文本验证:
      • 最多 125 个字符(超过则警告)
      • 无冗余短语("image of"、"picture of"、"photo of")
      • 必须以标点符号结尾
      • 标记通用描述(置信度 < 50%)
    • SEO 名称验证:
      • 仅允许小写 a-z、0-9、连字符
      • 无双重扩展名(.webp.webp)- 先去除现有扩展名
      • 最多 100 个字符
      • 将空格/下划线替换为连字符
      • 无特殊字符
  3. 文件夹组织建议:如果检测到模式,建议文件夹结构:
    💡 组织建议:
    - 为 8 张团队图片创建 "team-photos" 文件夹
    - 为 15 张产品照片创建 "product-images" 文件夹
    

阶段 4:细粒度审批与应用

  1. 展示带细粒度审批的建议:
    • 显示带复选框的编号列表
    • 允许单独切换:"输入要跳过的编号(例如 '2,4')"
    • 选项:"all"、"none" 或特定编号
    • 为每个建议显示验证警告
  2. 提供命名模板(如果有许多相似资源):
    🎨 应用命名模式?
    1. [category]-[description](例如 team-john-headshot)
    2. [description]-[location](例如 office-workspace-desk)
    3. 自定义模式...
    4. 跳过模式,使用单独名称
    
  3. 存储回滚数据:在应用更改前,存储:
    • 原始资源名称
    • 原始替代文本
    • 时间戳
    • 修改的资源
  4. 应用更新:使用 Webflow MCP 的 data_assets_tool 仅更新已获批的资源
    • 显示批量更新的进度
    • 优雅处理部分失败
    • 分别报告成功和失败
  5. 提供回滚选项:更改应用后:
    📋 回滚可用:
    上次更新:2 分钟前修改了 4 个资源
    输入 "undo" 以恢复这些更改
    

示例

用户提示:

对我的站点进行资源审计。

第 1 步:初始审计报告

📊 SEO 资源审计:MCP 演示 #2

总计:4 个资源

🔍 检测到的模式:
- 4 个资源具有通用数字名称(1.webp、2.webp、3.webp、4.webp)
- 所有资源均为 WebP 格式 ✓

⚠️ 缺少替代文本(4 个资源):
├── 1.webp(替代文本为空)
├── 2.webp(替代文本为空)
├── 3.webp(替代文本为空)
└── 4.webp(替代文本为空)

⚠️ 非 SEO 友好名称(4 个资源):
├── 1.webp(通用数字名称)
├── 2.webp(通用数字名称)
├── 3.webp(通用数字名称)
└── 4.webp(通用数字名称)

---

您想要生成什么?
1. 仅替代文本
2. 仅 SEO 友好名称
3. 替代文本和 SEO 友好名称

请选择一个选项(1、2 或 3)。

带验证警告的示例:

📋 建议的改进:

[1] ✓ IMG_1234.jpg
    替代文本:"Professional team member headshot with blue background."
    新名称:professional-team-member-headshot.jpg
    ✅ 验证通过

[2] ✓ screenshot-2024.png
    替代文本:"Dashboard analytics overview showing user engagement metrics."
    新名称:dashboard-analytics-overview.png
    ✅ 验证通过

[3] ⚠️ untitled-image.webp
    替代文本:"Photo"
    ⚠️ 警告:替代文本过短(< 10 个字符)- 需要更多细节
    新名称:untitled-image.webp
    ⚠️ 警告:无法生成更好的名称(图片预览失败)

[4] ⚠️ TeamPhoto2024!!!.jpg
    替代文本:"Image of a person working on laptop in modern office with plants and natural lighting through large windows in the background."
    ⚠️ 警告:替代文本过长(137 个字符)- 建议缩短以利于屏幕阅读器
    新名称:team-photo-2024.jpg
    ✅ 验证通过(已移除特殊字符)

您想要更新哪些资源?

第 2 步:用户选择选项 3 且图片已分析后

📋 建议的改进:

[1] ✓ 1.webp
    替代文本:"Podcast host with headphones and microphone recording Webflow podcast episode in studio."
    新名称:webflow-podcast-host-recording-studio.webp
    ✅ 验证通过

[2] ✓ 2.webp
    替代文本:"Professional developer wearing glasses working on laptop with Webflow logo in modern office."
    新名称:developer-working-laptop-webflow-office.webp
    ✅ 验证通过

[3] ✓ 3.webp
    替代文本:"Webflow homepage hero section with tagline and email signup form."
    新名称:webflow-homepage-hero-section.webp
    ✅ 验证通过

[4] ✓ 4.webp
    替代文本:"Speaker presenting on stage at Webflow Conf with audience watching."
    新名称:webflow-conf-speaker-presentation-stage.webp
    ✅ 验证通过

---

您想要更新哪些资源?
- 输入编号以跳过(例如,输入 "2,4" 跳过项目 2 和 4)
- 输入 "all" 以继续处理所有项目
- 输入 "none" 以取消

第 3 步:用户确认输入 "all" 后

🔄 正在应用更新...

进度:████████████████████ 100%(4/4 个资源)

✅ 更新成功应用!

SEO 资源审计完成:MCP 演示 #2

摘要:
- ✅ 4 个资源更新成功
- ❌ 0 个资源失败
- ⏭️ 0 个资源跳过

已应用的更改:
┌─────────────────────────────────────────────────────────────────┐
│ [1] webflow-podcast-host-recording-studio.webp                  │
│     ✓ 替代文本已添加                                           │
│     ✓ 文件名已更新                                             │
├─────────────────────────────────────────────────────────────────┤
│ [2] developer-working-laptop-webflow-office.webp                │
│     ✓ 替代文本已添加                                           │
│     ✓ 文件名已更新                                             │
├─────────────────────────────────────────────────────────────────┤
│ [3] webflow-homepage-hero-section.webp                          │
│     ✓ 替代文本已添加                                           │
│     ✓ 文件名已更新                                             │
├─────────────────────────────────────────────────────────────────┤
│ [4] webflow-conf-speaker-presentation-stage.webp                │
│     ✓ 替代文本已添加                                           │
│     ✓ 文件名已更新                                             │
└─────────────────────────────────────────────────────────────────┘

📋 回滚可用:
上次更新:刚刚修改了 4 个资源
输入 "undo" 以恢复这些更改

---

🎉 您站点的资源现已完全优化,符合 SEO 和无障碍最佳实践!

替代第 3 步:用户选择特定资源(例如 "1,3")

🔄 正在对资源 1 和 3 应用更新...

进度:████████████████████ 100%(2/2 个资源)

✅ 部分更新完成!

摘要:
- ✅ 2 个资源更新成功
- ❌ 0 个资源失败
- ⏭️ 2 个资源跳过(按用户要求)

已应用的更改:
┌─────────────────────────────────────────────────────────────────┐
│ [1] webflow-podcast-host-recording-studio.webp                  │
│     ✓ 替代文本已添加                                           │
│     ✓ 文件名已更新                                             │
├─────────────────────────────────────────────────────────────────┤
│ [3] webflow-homepage-hero-section.webp                          │
│     ✓ 替代文本已添加                                           │
│     ✓ 文件名已更新                                             │
└─────────────────────────────────────────────────────────────────┘

跳过的资源(可稍后再次运行审计):
- [2] 2.webp
- [4] 4.webp

📋 回滚可用:
输入 "undo" 以恢复这 2 项更改

指南

阶段 1:关键验证(必须遵循)

文件扩展名处理:

  • 在添加新扩展名前,始终移除现有扩展名
  • 错误:image.webp → new-name.webp.webp
  • 正确:image.webp → new-name.webp
  • 实现:使用不带扩展名的文件名 + 新扩展名

替代文本质量规则:

  • 最大长度:125 个字符(无障碍最佳实践)
  • 必须以标点符号结尾(句号、感叹号、问号)
  • 移除冗余短语:
    • ❌ "Image of a person" → ✅ "Person working at desk"
    • ❌ "Picture of logo" → ✅ "Company logo on blue background"
    • ❌ "Photo showing" → ✅ 直接描述
  • 如果过短(< 10 个字符)则标记:⚠️ "过于通用 - 需要更多细节"
  • 如果过长(> 125 个字符)则标记:⚠️ "建议缩短以利于屏幕阅读器"

SEO 文件名规则:

  • 仅允许:小写 a-z、数字 0-9、连字符
  • 最大长度:100 个字符(扩展名前)
  • 将空格转换为连字符:team photo → team-photo
  • 将下划线转换为连字符:team_photo → team-photo
  • 移除特殊字符:photo!@#$ → photo
  • 转换为小写:TeamPhoto → team-photo
  • 移除连续连字符:team--photo → team-photo
  • 修剪开头/结尾连字符:-photo- → photo

阶段 2:批量处理与性能

大型站点处理:

  • 包含 50 个以上资源的站点:每次批量处理 20 个
  • 显示进度:"正在处理第 1 批,共 5 批(第 1-20 个资源)..."
  • 允许用户处理特定批次
  • 超时保护:如果 Webflow MCP 的 get_asset_preview 耗时超过 30 秒,则跳过至下一批

模式检测: 检测并报告这些模式:

  • 相机上传:IMG_、DSC_、DCIM_、P_
  • 截图:screenshot、Screen Shot、Capture
  • 通用名称:untitled、image-1、photo、asset
  • 日期格式:2024-01-10、20240110、01-10-2024
  • 当 3 个及以上资源匹配某个模式时,建议批量重命名

错误处理:

  • 如果 Webflow MCP 的 get_asset_preview 失败:
    1. 记录错误(不向用户显示)
    2. 使用后备方案:从文件名中提取描述
    3. 用 ⚠️ 警告标记:"从文件名生成(图片预览失败)"
    4. 继续处理其他资源
  • 部分成功处理:
    • 分别报告成功和失败
    • 显示:"✅ 15 个已更新,❌ 2 个失败,⏭️ 3 个跳过"
    • 提供重试失败资源的选项

阶段 3:高级功能

细粒度审批系统:

  • 为每条建议编号:[1]、[2]、[3] 等
  • 显示勾选状态:✓ 或 ✗
  • 接受多种格式:
    • "all" - 批准所有
    • "none" - 取消操作
    • "1,3,5" - 跳过项目 1、3 和 5
    • "2-5" - 跳过项目 2 到 5
  • 始终显示每条项目的验证状态

命名模板: 当检测到 5 个及以上相似资源时提供模板:

  1. [category]-[description]-[modifier]
    • 示例:product-laptop-front-view.jpg
  2. [description]-[location]-[year]
    • 示例:team-photo-office-2024.jpg
  3. [type]-[name]-[variant]
    • 示例:icon-arrow-blue.svg

文件夹组织: 在检测到以下情况时建议文件夹:

  • 5 张及以上包含 "team"、"staff"、"employee" 的图片 → team-photos 文件夹
  • 5 张及以上包含 "product"、"item" 的图片 → product-images 文件夹
  • 5 张及以上包含 "logo"、"brand" 的图片 → branding 文件夹
  • 5 张及以上包含 "screenshot"、"capture" 的图片 → screenshots 文件夹

回滚系统: 在进行任何更新之前,在内存中存储:

{
  "timestamp": "2026-01-10T00:45:00Z",
  "assets": [
    {
      "id": "asset-id",
      "originalName": "1.webp",
      "originalAltText": "",
      "newName": "podcast-host.webp",
      "newAltText": "Podcast host recording..."
    }
  ]
}
  • 在更改后的 5 分钟内提供撤销操作
  • 在下次审计开始后清除回滚数据
  • 在最终摘要中显示回滚选项

重复检测:

  • 比较资源大小(完全匹配 = 可能重复)
  • 比较文件名(相似名称 = 潜在重复)
  • 报告:"⚠️ 潜在重复项:asset1.jpg (2.4MB) 和 asset1-copy.jpg (2.4MB)"
  • 不自动删除 - 让用户决定

通用最佳实践

  • 始终使用 Webflow MCP 的 get_asset_preview(使用 asset_id,非 URL)来理解图片内容

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相关技能