$npx -y skills add webflow/webflow-skills --skill asset-auditAnalyze assets on a Webflow site for SEO optimization. Identifies assets missing alt text and assets with non-SEO-friendly names, then generates and applies improvements.
| 1 | # Asset Audit |
| 2 | |
| 3 | Analyze assets on a Webflow site for SEO optimization. |
| 4 | |
| 5 | ## Important Note |
| 6 | |
| 7 | **ALWAYS use Webflow MCP tools for all operations:** |
| 8 | - Use Webflow MCP's `data_assets_tool` for fetching and updating assets |
| 9 | - Use Webflow MCP's `get_asset_preview` (with the asset's `asset_id`) for analyzing image content |
| 10 | - Use Webflow MCP's `data_sites_tool` with action `list_sites` for listing available sites |
| 11 | - Use Webflow MCP's `webflow_guide_tool` to get best practices before starting |
| 12 | - DO NOT use any other tools or methods for Webflow operations |
| 13 | - All tool calls must include the required `context` parameter (15-25 words, third-person perspective) |
| 14 | |
| 15 | ## Instructions |
| 16 | |
| 17 | ### Phase 1: Site Selection & Asset Discovery |
| 18 | 1. **Get site**: Identify the target site. If user does not provide site ID, ask for it. |
| 19 | 2. **Fetch all assets**: Use Webflow MCP's `data_assets_tool` to get all assets from the site (each asset record includes its `asset_id`, needed for previews) |
| 20 | - For sites with 50+ assets, process in batches of 20 |
| 21 | - Show progress: "Processing assets 1-20 of 150..." |
| 22 | 3. **Detect patterns**: Analyze asset naming for common patterns: |
| 23 | - Camera uploads (IMG_, DSC_, etc.) |
| 24 | - Screenshots (screenshot, Screen Shot, etc.) |
| 25 | - Generic names (untitled, image-1, etc.) |
| 26 | - Date-based names (2024-01-10, etc.) |
| 27 | |
| 28 | ### Phase 2: Issue Analysis & Pattern Recognition |
| 29 | 4. **Identify issues**: List all assets which: |
| 30 | - Do not have alt text set (null or empty string) |
| 31 | - Have existing alt text but it's poor quality (too short, redundant phrases, etc.) |
| 32 | - Do not have SEO-friendly asset names |
| 33 | - Are duplicates or very similar |
| 34 | 5. **Pattern detection report**: Show detected patterns: |
| 35 | ``` |
| 36 | 🔍 Detected patterns: |
| 37 | - 15 assets start with "IMG_" (camera uploads) |
| 38 | - 8 assets contain "screenshot" |
| 39 | - Suggest: Bulk rename these patterns |
| 40 | ``` |
| 41 | 6. **Ask user preference**: Ask if they want to generate: |
| 42 | - Alt text only |
| 43 | - SEO-friendly names only |
| 44 | - Both |
| 45 | - Apply naming pattern/template |
| 46 | |
| 47 | ### Phase 3: Analysis & Suggestion Generation |
| 48 | 7. **Analyze assets**: Use Webflow MCP's `get_asset_preview` tool, passing each asset's `asset_id` (from Phase 1), to analyze the assets that need updates |
| 49 | - **Error handling**: If Webflow MCP's `get_asset_preview` fails, use fallback: |
| 50 | - Extract description from existing filename |
| 51 | - Use generic placeholder with warning |
| 52 | - Continue with other assets |
| 53 | - Process in batches to avoid timeout |
| 54 | 8. **Generate suggestions with validation**: |
| 55 | - **Alt text validation**: |
| 56 | - Max 125 characters (warn if longer) |
| 57 | - No redundant phrases ("image of", "picture of", "photo of") |
| 58 | - Must end with punctuation |
| 59 | - Flag generic descriptions (confidence < 50%) |
| 60 | - **SEO name validation**: |
| 61 | - Only lowercase a-z, 0-9, hyphens |
| 62 | - No double extensions (.webp.webp) - strip existing extension first |
| 63 | - Max 100 characters |
| 64 | - Replace spaces/underscores with hyphens |
| 65 | - No special characters |
| 66 | 9. **Folder organization suggestions**: If patterns detected, suggest folder structure: |
| 67 | ``` |
| 68 | 💡 Organization suggestions: |
| 69 | - Create "team-photos" folder for 8 team images |
| 70 | - Create "product-images" folder for 15 product shots |
| 71 | ``` |
| 72 | |
| 73 | ### Phase 4: Granular Approval & Application |
| 74 | 10. **Present suggestions with granular approval**: |
| 75 | - Show numbered list with checkboxes |
| 76 | - Allow individual toggle: "Enter numbers to skip (e.g., '2,4')" |
| 77 | - Options: "all", "none", or specific numbers |
| 78 | - Show validation warnings for each suggestion |
| 79 | 11. **Offer naming template** (if many similar assets): |
| 80 | ``` |
| 81 | 🎨 Apply naming pattern? |
| 82 | 1. [category]-[description] (e.g., team-john-headshot) |
| 83 | 2. [description]-[location] (e.g., office-workspace-desk) |
| 84 | 3. Custom pattern... |
| 85 | 4. Skip patterns, use individual names |
| 86 | ``` |
| 87 | 12. **Store rollback data**: Before applying changes, store: |
| 88 | - Original asset names |
| 89 | - Original alt text |
| 90 | - Timestamp |
| 91 | - Assets modified |
| 92 | 13. **Apply updates**: Use Webflow MCP's `data_assets_tool` to update approved assets only |
| 93 | - Show progress for batch updates |
| 94 | - Handle partial failures gracefully |
| 95 | - Report successes and failures separately |
| 96 | 14. **Offer rollback option**: After changes applied: |
| 97 | ``` |
| 98 | 📋 Rollback Available: |
| 99 | Last update: 4 assets modified 2 minutes ago |
| 100 | Type "undo" to revert these changes |
| 101 | ``` |
| 102 | |
| 103 | ## Examples |
| 104 | |
| 105 | **User prompt:** |
| 106 | ``` |
| 107 | Run an asset audit on my site. |
| 108 | ``` |
| 109 | |
| 110 | **Step 1: Initial Audit Report** |
| 111 | ``` |
| 112 | 📊 SEO Asset Audit: MCP Demo #2 |
| 113 | |
| 114 | Total: 4 assets |
| 115 | |
| 116 | 🔍 Detected patterns: |
| 117 | - 4 assets have generic numeric names (1.webp, 2.webp, 3.webp, 4.webp) |
| 118 | - All assets are in WebP format ✓ |
| 119 | |
| 120 | ⚠️ Missing Alt Text (4 assets): |
| 121 | ├── 1.webp (empty alt text) |
| 122 | ├── 2.webp (empty alt text) |
| 123 | ├── 3.webp (empty |