Asset Audit
Analyze assets on a Webflow site for SEO optimization.
Important Note
ALWAYS use Webflow MCP tools for all operations:
- Use Webflow MCP's
data_assets_tool for fetching and updating assets
- Use Webflow MCP's
get_asset_preview (with the asset's asset_id) for analyzing image content
- Use Webflow MCP's
data_sites_tool with action list_sites for listing available sites
- Use Webflow MCP's
webflow_guide_tool to get best practices before starting
- DO NOT use any other tools or methods for Webflow operations
- All tool calls must include the required
context parameter (15-25 words, third-person perspective)
Instructions
Phase 1: Site Selection & Asset Discovery
- Get site: Identify the target site. If user does not provide site ID, ask for it.
- 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)
- For sites with 50+ assets, process in batches of 20
- Show progress: "Processing assets 1-20 of 150..."
- Detect patterns: Analyze asset naming for common patterns:
- Camera uploads (IMG_, DSC_, etc.)
- Screenshots (screenshot, Screen Shot, etc.)
- Generic names (untitled, image-1, etc.)
- Date-based names (2024-01-10, etc.)
Phase 2: Issue Analysis & Pattern Recognition
- Identify issues: List all assets which:
- Do not have alt text set (null or empty string)
- Have existing alt text but it's poor quality (too short, redundant phrases, etc.)
- Do not have SEO-friendly asset names
- Are duplicates or very similar
- Pattern detection report: Show detected patterns:
🔍 Detected patterns:
- 15 assets start with "IMG_" (camera uploads)
- 8 assets contain "screenshot"
- Suggest: Bulk rename these patterns
- Ask user preference: Ask if they want to generate:
- Alt text only
- SEO-friendly names only
- Both
- Apply naming pattern/template
Phase 3: Analysis & Suggestion Generation
- 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
- Error handling: If Webflow MCP's
get_asset_preview fails, use fallback:
- Extract description from existing filename
- Use generic placeholder with warning
- Continue with other assets
- Process in batches to avoid timeout
- Generate suggestions with validation:
- Alt text validation:
- Max 125 characters (warn if longer)
- No redundant phrases ("image of", "picture of", "photo of")
- Must end with punctuation
- Flag generic descriptions (confidence < 50%)
- SEO name validation:
- Only lowercase a-z, 0-9, hyphens
- No double extensions (.webp.webp) - strip existing extension first
- Max 100 characters
- Replace spaces/underscores with hyphens
- No special characters
- Folder organization suggestions: If patterns detected, suggest folder structure:
💡 Organization suggestions:
- Create "team-photos" folder for 8 team images
- Create "product-images" folder for 15 product shots
Phase 4: Granular Approval & Application
- Present suggestions with granular approval:
- Show numbered list with checkboxes
- Allow individual toggle: "Enter numbers to skip (e.g., '2,4')"
- Options: "all", "none", or specific numbers
- Show validation warnings for each suggestion
- Offer naming template (if many similar assets):
🎨 Apply naming pattern?
1. [category]-[description] (e.g., team-john-headshot)
2. [description]-[location] (e.g., office-workspace-desk)
3. Custom pattern...
4. Skip patterns, use individual names
- Store rollback data: Before applying changes, store:
- Original asset names
- Original alt text
- Timestamp
- Assets modified
- Apply updates: Use Webflow MCP's
data_assets_tool to update approved assets only
- Show progress for batch updates
- Handle partial failures gracefully
- Report successes and failures separately
- Offer rollback option: After changes applied:
📋 Rollback Available:
Last update: 4 assets modified 2 minutes ago
Type "undo" to revert these changes
Examples
User prompt:
Run an asset audit on my site.
Step 1: Initial Audit Report
📊 SEO Asset Audit: MCP Demo #2
Total: 4 assets
🔍 Detected patterns:
- 4 assets have generic numeric names (1.webp, 2.webp, 3.webp, 4.webp)
- All assets are in WebP format ✓
⚠️ Missing Alt Text (4 assets):
├── 1.webp (empty alt text)
├── 2.webp (empty alt text)
├── 3.webp (empty alt text)
└── 4.webp (empty alt text)
⚠️ Non-SEO-Friendly Names (4 assets):
├── 1.webp (generic numeric name)
├── 2.webp (generic numeric name)
├── 3.webp (generic numeric name)
└── 4.webp (generic numeric name)
---
What would you like to generate?
1. Alt text only
2. SEO-friendly names only
3. Both alt text and SEO-friendly names
Please select an option (1, 2, or 3).
Example with Validation Warnings:
📋 Suggested Improvements:
[1] ✓ IMG_1234.jpg
Alt text: "Professional team member headshot with blue background."
New name: professional-team-member-headshot.jpg
✅ Validation passed
[2] ✓ screenshot-2024.png
Alt text: "Dashboard analytics overview showing user engagement metrics."
New name: dashboard-analytics-overview.png
✅ Validation passed
[3] ⚠️ untitled-image.webp
Alt text: "Photo"
⚠️ Warning: Alt text too short (< 10 chars) - needs more detail
New name: untitled-image.webp
⚠️ Warning: Unable to generate better name (image preview failed)
[4] ⚠️ TeamPhoto2024!!!.jpg
Alt text: "Image of a person working on laptop in modern office with plants and natural lighting through large windows in the background."
⚠️ Warning: Alt text too long (137 chars) - consider shortening for screen readers
New name: team-photo-2024.jpg
✅ Validation passed (special characters removed)
Which assets would you like to update?
Step 2: After user selects option 3 and images are analyzed
📋 Suggested Improvements:
[1] ✓ 1.webp
Alt text: "Podcast host with headphones and microphone recording Webflow podcast episode in studio."
New name: webflow-podcast-host-recording-studio.webp
✅ Validation passed
[2] ✓ 2.webp
Alt text: "Professional developer wearing glasses working on laptop with Webflow logo in modern office."
New name: developer-working-laptop-webflow-office.webp
✅ Validation passed
[3] ✓ 3.webp
Alt text: "Webflow homepage hero section with tagline and email signup form."
New name: webflow-homepage-hero-section.webp
✅ Validation passed
[4] ✓ 4.webp
Alt text: "Speaker presenting on stage at Webflow Conf with audience watching."
New name: webflow-conf-speaker-presentation-stage.webp
✅ Validation passed
---
Which assets would you like to update?
- Type numbers to skip (e.g., "2,4" to skip items 2 and 4)
- Type "all" to proceed with all
- Type "none" to cancel
Step 3: After user confirms with "all"
🔄 Applying updates...
Progress: ████████████████████ 100% (4/4 assets)
✅ Updates Applied Successfully!
SEO Asset Audit Complete: MCP Demo #2
Summary:
- ✅ 4 assets updated successfully
- ❌ 0 assets failed
- ⏭️ 0 assets skipped
Changes Applied:
┌─────────────────────────────────────────────────────────────────┐
│ [1] webflow-podcast-host-recording-studio.webp │
│ ✓ Alt text added │
│ ✓ Filename updated │
├─────────────────────────────────────────────────────────────────┤
│ [2] developer-working-laptop-webflow-office.webp │
│ ✓ Alt text added │
│ ✓ Filename updated │
├─────────────────────────────────────────────────────────────────┤
│ [3] webflow-homepage-hero-section.webp │
│ ✓ Alt text added │
│ ✓ Filename updated │
├─────────────────────────────────────────────────────────────────┤
│ [4] webflow-conf-speaker-presentation-stage.webp │
│ ✓ Alt text added │
│ ✓ Filename updated │
└─────────────────────────────────────────────────────────────────┘
📋 Rollback Available:
Last update: 4 assets modified just now
Type "undo" to revert these changes
---
🎉 Your site's assets are now fully optimized for SEO and accessibility!
Alternative Step 3: User selects specific assets (e.g., "1,3")
🔄 Applying updates to assets 1 and 3...
Progress: ████████████████████ 100% (2/2 assets)
✅ Partial Update Complete!
Summary:
- ✅ 2 assets updated successfully
- ❌ 0 assets failed
- ⏭️ 2 assets skipped (as requested)
Changes Applied:
┌─────────────────────────────────────────────────────────────────┐
│ [1] webflow-podcast-host-recording-studio.webp │
│ ✓ Alt text added │
│ ✓ Filename updated │
├─────────────────────────────────────────────────────────────────┤
│ [3] webflow-homepage-hero-section.webp │
│ ✓ Alt text added │
│ ✓ Filename updated │
└─────────────────────────────────────────────────────────────────┘
Skipped Assets (can run audit again later):
- [2] 2.webp
- [4] 4.webp
📋 Rollback Available:
Type "undo" to revert these 2 changes
Guidelines
Phase 1: Critical Validations (Must Follow)
File Extension Handling:
- ALWAYS strip existing extension before adding new one
- Bad:
image.webp → new-name.webp.webp
- Good:
image.webp → new-name.webp
- Implementation: Use filename without extension + new extension
Alt Text Quality Rules:
- Max length: 125 characters (accessibility best practice)
- Must end with punctuation (period, exclamation, question mark)
- Remove redundant phrases:
- ❌ "Image of a person" → ✅ "Person working at desk"
- ❌ "Picture of logo" → ✅ "Company logo on blue background"
- ❌ "Photo showing" → ✅ Direct description
- Flag if too short (< 10 chars): ⚠️ "Too generic - needs more detail"
- Flag if too long (> 125 chars): ⚠️ "Consider shortening for screen readers"
SEO Filename Rules:
- Only allow: lowercase a-z, numbers 0-9, hyphens
- Max length: 100 characters (before extension)
- Convert spaces to hyphens:
team photo → team-photo
- Convert underscores to hyphens:
team_photo → team-photo
- Remove special characters:
photo!@#$ → photo
- Convert to lowercase:
TeamPhoto → team-photo
- Remove consecutive hyphens:
team--photo → team-photo
- Trim leading/trailing hyphens:
-photo- → photo
Phase 2: Batch Processing & Performance
Large Site Handling:
- Sites with 50+ assets: Process in batches of 20
- Show progress: "Processing batch 1 of 5 (assets 1-20)..."
- Allow user to process specific batches
- Timeout protection: If Webflow MCP's
get_asset_preview takes > 30s, skip to next batch
Pattern Detection:
Detect and report these patterns:
- Camera uploads:
IMG_, DSC_, DCIM_, P_
- Screenshots:
screenshot, Screen Shot, Capture
- Generic names:
untitled, image-1, photo, asset
- Date formats:
2024-01-10, 20240110, 01-10-2024
- Suggest bulk rename when 3+ assets match a pattern
Error Handling:
- If Webflow MCP's
get_asset_preview fails:
- Log the error (don't show to user)
- Use fallback: Extract description from filename
- Mark with ⚠️ warning: "Generated from filename (image preview failed)"
- Continue with other assets
- Partial success handling:
- Report successes separately from failures
- Show: "✅ 15 updated, ❌ 2 failed, ⏭️ 3 skipped"
- Offer to retry failed assets
Phase 3: Advanced Features
Granular Approval System:
- Number each suggestion:
[1], [2], [3], etc.
- Show checkmark status:
✓ or ✗
- Accept multiple formats:
- "all" - approve all
- "none" - cancel operation
- "1,3,5" - skip items 1, 3, and 5
- "2-5" - skip items 2 through 5
- Always show validation status per item
Naming Templates:
Offer templates when 5+ similar assets detected:
[category]-[description]-[modifier]
- Example:
product-laptop-front-view.jpg
[description]-[location]-[year]
- Example:
team-photo-office-2024.jpg
[type]-[name]-[variant]
- Example:
icon-arrow-blue.svg
Folder Organization:
Suggest folders when detecting:
- 5+ images with "team", "staff", "employee" →
team-photos folder
- 5+ images with "product", "item" →
product-images folder
- 5+ images with "logo", "brand" →
branding folder
- 5+ images with "screenshot", "capture" →
screenshots folder
Rollback System:
Before any update, store in memory:
{
"timestamp": "2026-01-10T00:45:00Z",
"assets": [
{
"id": "asset-id",
"originalName": "1.webp",
"originalAltText": "",
"newName": "podcast-host.webp",
"newAltText": "Podcast host recording..."
}
]
}
- Offer undo for 5 minutes after changes
- Clear rollback data after next audit starts
- Show rollback option in final summary
Duplicate Detection:
- Compare asset sizes (exact match = likely duplicate)
- Compare filenames (similar names = potential duplicate)
- Report: "⚠️ Potential duplicates: asset1.jpg (2.4MB) and asset1-copy.jpg (2.4MB)"
- Don't auto-delete - let user decide
General Best Practices
- Always use Webflow MCP's
get_asset_preview (with asset_id, not a URL) to understand image content
- Generate specific, descriptive suggestions (not generic)
- Validate all suggestions before presenting to user
- Handle partial operations gracefully
- Provide clear progress indicators for long operations
- Group similar issues together in reports
- Use visual indicators: ✅ ⚠️ ❌ 🔍 💡 📋 🎉
- Be conversational but concise
- Always offer rollback after changes
1---2name: webflow-mcp-asset-audit3description: Analyze 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.4---5
6# Asset Audit
7
8Analyze assets on a Webflow site for SEO optimization.
9
10## Important Note
11
12**ALWAYS use Webflow MCP tools for all operations:**
13- Use Webflow MCP's `data_assets_tool` for fetching and updating assets
14- Use Webflow MCP's `get_asset_preview` (with the asset's `asset_id`) for analyzing image content
15- Use Webflow MCP's `data_sites_tool` with action `list_sites` for listing available sites
16- Use Webflow MCP's `webflow_guide_tool` to get best practices before starting
17- DO NOT use any other tools or methods for Webflow operations
18- All tool calls must include the required `context` parameter (15-25 words, third-person perspective)
19
20## Instructions
21
22### Phase 1: Site Selection & Asset Discovery
231. **Get site**: Identify the target site. If user does not provide site ID, ask for it.
242. **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)
25 - For sites with 50+ assets, process in batches of 20
26 - Show progress: "Processing assets 1-20 of 150..."
273. **Detect patterns**: Analyze asset naming for common patterns:
28 - Camera uploads (IMG_, DSC_, etc.)
29 - Screenshots (screenshot, Screen Shot, etc.)
30 - Generic names (untitled, image-1, etc.)
31 - Date-based names (2024-01-10, etc.)
32
33### Phase 2: Issue Analysis & Pattern Recognition
344. **Identify issues**: List all assets which:
35 - Do not have alt text set (null or empty string)
36 - Have existing alt text but it's poor quality (too short, redundant phrases, etc.)
37 - Do not have SEO-friendly asset names
38 - Are duplicates or very similar
395. **Pattern detection report**: Show detected patterns:
40 ```
41 🔍 Detected patterns:
42 - 15 assets start with "IMG_" (camera uploads)
43 - 8 assets contain "screenshot"
44 - Suggest: Bulk rename these patterns
45 ```
466. **Ask user preference**: Ask if they want to generate:
47 - Alt text only
48 - SEO-friendly names only
49 - Both
50 - Apply naming pattern/template
51
52### Phase 3: Analysis & Suggestion Generation
537. **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
54 - **Error handling**: If Webflow MCP's `get_asset_preview` fails, use fallback:
55 - Extract description from existing filename
56 - Use generic placeholder with warning
57 - Continue with other assets
58 - Process in batches to avoid timeout
598. **Generate suggestions with validation**:
60 - **Alt text validation**:
61 - Max 125 characters (warn if longer)
62 - No redundant phrases ("image of", "picture of", "photo of")
63 - Must end with punctuation
64 - Flag generic descriptions (confidence < 50%)
65 - **SEO name validation**:
66 - Only lowercase a-z, 0-9, hyphens
67 - No double extensions (.webp.webp) - strip existing extension first
68 - Max 100 characters
69 - Replace spaces/underscores with hyphens
70 - No special characters
719. **Folder organization suggestions**: If patterns detected, suggest folder structure:
72 ```
73 💡 Organization suggestions:
74 - Create "team-photos" folder for 8 team images
75 - Create "product-images" folder for 15 product shots
76 ```
77
78### Phase 4: Granular Approval & Application
7910. **Present suggestions with granular approval**:
80 - Show numbered list with checkboxes
81 - Allow individual toggle: "Enter numbers to skip (e.g., '2,4')"
82 - Options: "all", "none", or specific numbers
83 - Show validation warnings for each suggestion
8411. **Offer naming template** (if many similar assets):
85 ```
86 🎨 Apply naming pattern?
87 1. [category]-[description] (e.g., team-john-headshot)
88 2. [description]-[location] (e.g., office-workspace-desk)
89 3. Custom pattern...
90 4. Skip patterns, use individual names
91 ```
9212. **Store rollback data**: Before applying changes, store:
93 - Original asset names
94 - Original alt text
95 - Timestamp
96 - Assets modified
9713. **Apply updates**: Use Webflow MCP's `data_assets_tool` to update approved assets only
98 - Show progress for batch updates
99 - Handle partial failures gracefully
100 - Report successes and failures separately
10114. **Offer rollback option**: After changes applied:
102 ```
103 📋 Rollback Available:
104 Last update: 4 assets modified 2 minutes ago
105 Type "undo" to revert these changes
106 ```
107
108## Examples
109
110**User prompt:**
111```
112Run an asset audit on my site.
113```
114
115**Step 1: Initial Audit Report**
116```
117📊 SEO Asset Audit: MCP Demo #2
118
119Total: 4 assets
120
121🔍 Detected patterns:
122- 4 assets have generic numeric names (1.webp, 2.webp, 3.webp, 4.webp)
123- All assets are in WebP format ✓
124
125⚠️ Missing Alt Text (4 assets):
126├── 1.webp (empty alt text)
127├── 2.webp (empty alt text)
128├── 3.webp (empty alt text)
129└── 4.webp (empty alt text)
130
131⚠️ Non-SEO-Friendly Names (4 assets):
132├── 1.webp (generic numeric name)
133├── 2.webp (generic numeric name)
134├── 3.webp (generic numeric name)
135└── 4.webp (generic numeric name)
136
137---
138
139What would you like to generate?
1401. Alt text only
1412. SEO-friendly names only
1423. Both alt text and SEO-friendly names
143
144Please select an option (1, 2, or 3).
145```
146
147**Example with Validation Warnings:**
148```
149📋 Suggested Improvements:
150
151[1] ✓ IMG_1234.jpg
152 Alt text: "Professional team member headshot with blue background."
153 New name: professional-team-member-headshot.jpg
154 ✅ Validation passed
155
156[2] ✓ screenshot-2024.png
157 Alt text: "Dashboard analytics overview showing user engagement metrics."
158 New name: dashboard-analytics-overview.png
159 ✅ Validation passed
160
161[3] ⚠️ untitled-image.webp
162 Alt text: "Photo"
163 ⚠️ Warning: Alt text too short (< 10 chars) - needs more detail
164 New name: untitled-image.webp
165 ⚠️ Warning: Unable to generate better name (image preview failed)
166
167[4] ⚠️ TeamPhoto2024!!!.jpg
168 Alt text: "Image of a person working on laptop in modern office with plants and natural lighting through large windows in the background."
169 ⚠️ Warning: Alt text too long (137 chars) - consider shortening for screen readers
170 New name: team-photo-2024.jpg
171 ✅ Validation passed (special characters removed)
172
173Which assets would you like to update?
174```
175
176**Step 2: After user selects option 3 and images are analyzed**
177```
178📋 Suggested Improvements:
179
180[1] ✓ 1.webp
181 Alt text: "Podcast host with headphones and microphone recording Webflow podcast episode in studio."
182 New name: webflow-podcast-host-recording-studio.webp
183 ✅ Validation passed
184
185[2] ✓ 2.webp
186 Alt text: "Professional developer wearing glasses working on laptop with Webflow logo in modern office."
187 New name: developer-working-laptop-webflow-office.webp
188 ✅ Validation passed
189
190[3] ✓ 3.webp
191 Alt text: "Webflow homepage hero section with tagline and email signup form."
192 New name: webflow-homepage-hero-section.webp
193 ✅ Validation passed
194
195[4] ✓ 4.webp
196 Alt text: "Speaker presenting on stage at Webflow Conf with audience watching."
197 New name: webflow-conf-speaker-presentation-stage.webp
198 ✅ Validation passed
199
200---
201
202Which assets would you like to update?
203- Type numbers to skip (e.g., "2,4" to skip items 2 and 4)
204- Type "all" to proceed with all
205- Type "none" to cancel
206```
207
208**Step 3: After user confirms with "all"**
209```
210🔄 Applying updates...
211
212Progress: ████████████████████ 100% (4/4 assets)
213
214✅ Updates Applied Successfully!
215
216SEO Asset Audit Complete: MCP Demo #2
217
218Summary:
219- ✅ 4 assets updated successfully
220- ❌ 0 assets failed
221- ⏭️ 0 assets skipped
222
223Changes Applied:
224┌─────────────────────────────────────────────────────────────────┐
225│ [1] webflow-podcast-host-recording-studio.webp │
226│ ✓ Alt text added │
227│ ✓ Filename updated │
228├─────────────────────────────────────────────────────────────────┤
229│ [2] developer-working-laptop-webflow-office.webp │
230│ ✓ Alt text added │
231│ ✓ Filename updated │
232├─────────────────────────────────────────────────────────────────┤
233│ [3] webflow-homepage-hero-section.webp │
234│ ✓ Alt text added │
235│ ✓ Filename updated │
236├─────────────────────────────────────────────────────────────────┤
237│ [4] webflow-conf-speaker-presentation-stage.webp │
238│ ✓ Alt text added │
239│ ✓ Filename updated │
240└─────────────────────────────────────────────────────────────────┘
241
242📋 Rollback Available:
243Last update: 4 assets modified just now
244Type "undo" to revert these changes
245
246---
247
248🎉 Your site's assets are now fully optimized for SEO and accessibility!
249```
250
251**Alternative Step 3: User selects specific assets (e.g., "1,3")**
252```
253🔄 Applying updates to assets 1 and 3...
254
255Progress: ████████████████████ 100% (2/2 assets)
256
257✅ Partial Update Complete!
258
259Summary:
260- ✅ 2 assets updated successfully
261- ❌ 0 assets failed
262- ⏭️ 2 assets skipped (as requested)
263
264Changes Applied:
265┌─────────────────────────────────────────────────────────────────┐
266│ [1] webflow-podcast-host-recording-studio.webp │
267│ ✓ Alt text added │
268│ ✓ Filename updated │
269├─────────────────────────────────────────────────────────────────┤
270│ [3] webflow-homepage-hero-section.webp │
271│ ✓ Alt text added │
272│ ✓ Filename updated │
273└─────────────────────────────────────────────────────────────────┘
274
275Skipped Assets (can run audit again later):
276- [2] 2.webp
277- [4] 4.webp
278
279📋 Rollback Available:
280Type "undo" to revert these 2 changes
281```
282
283## Guidelines
284
285### Phase 1: Critical Validations (Must Follow)
286
287**File Extension Handling:**
288- ALWAYS strip existing extension before adding new one
289- Bad: `image.webp` → `new-name.webp.webp`
290- Good: `image.webp` → `new-name.webp`
291- Implementation: Use filename without extension + new extension
292
293**Alt Text Quality Rules:**
294- Max length: 125 characters (accessibility best practice)
295- Must end with punctuation (period, exclamation, question mark)
296- Remove redundant phrases:
297 - ❌ "Image of a person" → ✅ "Person working at desk"
298 - ❌ "Picture of logo" → ✅ "Company logo on blue background"
299 - ❌ "Photo showing" → ✅ Direct description
300- Flag if too short (< 10 chars): ⚠️ "Too generic - needs more detail"
301- Flag if too long (> 125 chars): ⚠️ "Consider shortening for screen readers"
302
303**SEO Filename Rules:**
304- Only allow: lowercase a-z, numbers 0-9, hyphens
305- Max length: 100 characters (before extension)
306- Convert spaces to hyphens: `team photo` → `team-photo`
307- Convert underscores to hyphens: `team_photo` → `team-photo`
308- Remove special characters: `photo!@#$` → `photo`
309- Convert to lowercase: `TeamPhoto` → `team-photo`
310- Remove consecutive hyphens: `team--photo` → `team-photo`
311- Trim leading/trailing hyphens: `-photo-` → `photo`
312
313### Phase 2: Batch Processing & Performance
314
315**Large Site Handling:**
316- Sites with 50+ assets: Process in batches of 20
317- Show progress: "Processing batch 1 of 5 (assets 1-20)..."
318- Allow user to process specific batches
319- Timeout protection: If Webflow MCP's `get_asset_preview` takes > 30s, skip to next batch
320
321**Pattern Detection:**
322Detect and report these patterns:
323- Camera uploads: `IMG_`, `DSC_`, `DCIM_`, `P_`
324- Screenshots: `screenshot`, `Screen Shot`, `Capture`
325- Generic names: `untitled`, `image-1`, `photo`, `asset`
326- Date formats: `2024-01-10`, `20240110`, `01-10-2024`
327- Suggest bulk rename when 3+ assets match a pattern
328
329**Error Handling:**
330- If Webflow MCP's `get_asset_preview` fails:
331 1. Log the error (don't show to user)
332 2. Use fallback: Extract description from filename
333 3. Mark with ⚠️ warning: "Generated from filename (image preview failed)"
334 4. Continue with other assets
335- Partial success handling:
336 - Report successes separately from failures
337 - Show: "✅ 15 updated, ❌ 2 failed, ⏭️ 3 skipped"
338 - Offer to retry failed assets
339
340### Phase 3: Advanced Features
341
342**Granular Approval System:**
343- Number each suggestion: `[1]`, `[2]`, `[3]`, etc.
344- Show checkmark status: `✓` or `✗`
345- Accept multiple formats:
346 - "all" - approve all
347 - "none" - cancel operation
348 - "1,3,5" - skip items 1, 3, and 5
349 - "2-5" - skip items 2 through 5
350- Always show validation status per item
351
352**Naming Templates:**
353Offer templates when 5+ similar assets detected:
3541. `[category]-[description]-[modifier]`
355 - Example: `product-laptop-front-view.jpg`
3562. `[description]-[location]-[year]`
357 - Example: `team-photo-office-2024.jpg`
3583. `[type]-[name]-[variant]`
359 - Example: `icon-arrow-blue.svg`
360
361**Folder Organization:**
362Suggest folders when detecting:
363- 5+ images with "team", "staff", "employee" → `team-photos` folder
364- 5+ images with "product", "item" → `product-images` folder
365- 5+ images with "logo", "brand" → `branding` folder
366- 5+ images with "screenshot", "capture" → `screenshots` folder
367
368**Rollback System:**
369Before any update, store in memory:
370```json
371{
372 "timestamp": "2026-01-10T00:45:00Z",
373 "assets": [
374 {
375 "id": "asset-id",
376 "originalName": "1.webp",
377 "originalAltText": "",
378 "newName": "podcast-host.webp",
379 "newAltText": "Podcast host recording..."
380 }
381 ]
382}
383```
384- Offer undo for 5 minutes after changes
385- Clear rollback data after next audit starts
386- Show rollback option in final summary
387
388**Duplicate Detection:**
389- Compare asset sizes (exact match = likely duplicate)
390- Compare filenames (similar names = potential duplicate)
391- Report: "⚠️ Potential duplicates: asset1.jpg (2.4MB) and asset1-copy.jpg (2.4MB)"
392- Don't auto-delete - let user decide
393
394### General Best Practices
395
396- Always use Webflow MCP's `get_asset_preview` (with `asset_id`, not a URL) to understand image content
397- Generate specific, descriptive suggestions (not generic)
398- Validate all suggestions before presenting to user
399- Handle partial operations gracefully
400- Provide clear progress indicators for long operations
401- Group similar issues together in reports
402- Use visual indicators: ✅ ⚠️ ❌ 🔍 💡 📋 🎉
403- Be conversational but concise
404- Always offer rollback after changes