From webflow-skills
Audits and fixes broken or insecure links across Webflow sites including static pages and CMS content using Webflow MCP tools. Improves SEO and UX.
npx claudepluginhub webflow/webflow-skills --plugin webflow-skillsThis skill uses the workspace's default tool permissions.
Audit and fix broken or insecure links across your Webflow site to improve SEO and user experience.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
Audit and fix broken or insecure links across your Webflow site to improve SEO and user experience.
ALWAYS use Webflow MCP tools for all operations:
webflow_guide_tool to get best practices before startingdata_sites_tool with action list_sites to identify available sitesdata_sites_tool with action get_site to retrieve site detailsdata_pages_tool with action list_pages to get all pagesdata_pages_tool with action get_page_content to extract links from static pagesdata_pages_tool with action update_static_content to fix links on static pages (requires Designer)data_cms_tool with action get_collection_list to get all CMS collectionsdata_cms_tool with action get_collection_details to get collection schemasdata_cms_tool with action list_collection_items to get CMS items with linksdata_cms_tool with action update_collection_items to fix links in CMS (draft)data_cms_tool with action publish_collection_items to publish fixed CMS itemscontext parameter (15-25 words, third-person perspective)data_sites_tool with action list_sites to identify target sitedata_pages_tool with action list_pages to get all pagesdata_cms_tool with action get_collection_list to get all CMS collectionsdata_pages_tool with action get_page_content for each page
data_cms_tool with action list_collection_items for each collection
[1] ✓ Fix insecure link
Page: About Us
Element: Button "Learn More"
Current: http://example.com
Suggested: https://example.com
✅ HTTPS version verified working
[2] ⚠️ Fix broken link
Page: Blog Post "Getting Started"
Element: Text link
Current: https://oldsite.com/page
Suggested: [REMOVE LINK or provide correct URL]
❌ URL returns 404 - manual review needed
pages_update_static_content
data_cms_tool with action update_collection_items
data_cms_tool with action publish_collection_itemsUser prompt:
Run a complete link check on my site and fix any issues
Step 1: Site Selection
🔍 Link Checker: Site Selection
Available sites:
1. Company Website
2. Blog Site
3. Portfolio
Which site would you like to audit? (1/2/3)
Step 2: Scope Confirmation
📋 Link Checker Scope
What would you like to check?
1. Static pages only (faster)
2. CMS content only
3. Both static pages and CMS content (comprehensive)
Recommendation: Option 3 for complete audit
Your choice? (1/2/3)
Step 3: Extraction & Validation
🔄 Scanning Links...
Progress: ████████████████████ 100%
Found 247 links:
├── Static pages: 89 links (15 pages)
├── CMS content: 158 links (3 collections)
│ ├── Blog Posts: 142 links
│ ├── Team Members: 12 links
│ └── Products: 4 links
Validating links...
Progress: ████████████████████ 100% (247/247 checked)
✅ Working: 215 links (87%)
❌ Broken: 8 links (3%)
⚠️ Insecure: 18 links (7%)
🔄 Redirects: 6 links (2%)
Step 4: Analysis Report
📊 Link Health Report: Company Website
Overall Health Score: 76/100 ⚠️
## Issues Found:
### 🔴 Critical: Broken Links (8)
├── [1] Page: "About Us"
│ └── Link to: https://partner-site.com/old-page
│ Status: 404 Not Found
│ Impact: High (homepage)
│
├── [2] CMS: Blog Post "Product Launch"
│ └── Link to: https://press-release.com/announcement
│ Status: 404 Not Found
│ Impact: Medium
│
├── [3-8] 6 more broken links...
### ⚠️ Warning: Insecure Links (18)
├── [9] Page: "Contact"
│ └── Link: http://social-media.com/company
│ Fix: https://social-media.com/company
│ ✅ HTTPS verified working
│
├── [10] CMS: Blog Post "Getting Started"
│ └── Link: http://tutorial-site.com
│ Fix: https://tutorial-site.com
│ ✅ HTTPS verified working
│
├── [11-26] 16 more insecure links...
### 💡 Suggestion: Redirects (6)
├── [27] Page: "Services"
│ └── Link: https://example.com/old-url
│ Redirects to: https://example.com/new-url
│ Suggestion: Update to final destination
│
├── [28-32] 5 more redirects...
---
💡 Recommendations:
1. Fix 8 broken links immediately (SEO impact)
2. Upgrade 18 HTTP links to HTTPS (security)
3. Update 6 redirects to final URLs (performance)
Estimated time to fix: ~5 minutes
Step 5: Fix Preview
🔧 Proposed Fixes (26 total)
### Automatic Fixes Available (24):
[1] ✓ Upgrade to HTTPS
Page: Contact
Element: Button "Follow Us"
Current: http://social-media.com/company
New: https://social-media.com/company
✅ HTTPS verified working
[2] ✓ Upgrade to HTTPS
CMS: Blog Posts > "Getting Started" > content field
Current: http://tutorial-site.com
New: https://tutorial-site.com
✅ HTTPS verified working
[3] ✓ Update redirect
Page: Services
Element: Text link "Learn more"
Current: https://example.com/old-url
New: https://example.com/new-url
✅ Final destination verified
[4-24] ... 21 more automatic fixes
### Manual Review Required (2):
[25] ⚠️ Broken link - needs correction
Page: About Us
Element: Button "View Partner Site"
Current: https://partner-site.com/old-page
Issue: 404 Not Found
Action needed: Provide correct URL or remove link
[26] ⚠️ Broken link - needs correction
CMS: Blog Posts > "Product Launch" > content field
Current: https://press-release.com/announcement
Issue: 404 Not Found
Action needed: Update with correct URL or remove
---
Which fixes would you like to apply?
- Type "all" to apply all 24 automatic fixes
- Type numbers to skip (e.g., "3,5,7")
- Type "none" to cancel
Step 6: After User Approves "all"
✅ Applying Fixes...
Progress: ████████████████████ 100%
Static Pages:
- Updated 8 links on 5 pages
- ✅ Contact page: 3 links fixed
- ✅ Services page: 2 links fixed
- ✅ About page: 1 link fixed
- ✅ Blog page: 2 links fixed
CMS Content:
- Updated 16 links in 12 items
- ✅ Blog Posts: 14 links fixed
- ✅ Team Members: 2 links fixed
---
🎉 Link Fixes Complete!
Summary:
- Links scanned: 247
- Links fixed: 24 ✅
- Manual review needed: 2 ⚠️
- Failed: 0 ❌
Health Score: 76 → 95 (+19) ✨
---
⚠️ Manual Review Items:
[1] About Us page - broken partner link
Current: https://partner-site.com/old-page
Action: Update or remove manually
[2] Blog post "Product Launch" - broken press release
Current: https://press-release.com/announcement
Action: Update or remove manually
---
💡 Next Steps:
1. Fix the 2 manual review items
2. Re-run link checker in 1 month
3. Set up monitoring for critical external links
4. Consider 301 redirects for any URL changes
Would you like to export this report? (yes/no)
User prompt:
Check all links in my blog posts
Step 1: Collection Selection
🔍 Link Checker: CMS Collections
Found 3 collections:
1. Blog Posts (47 items)
2. Team Members (8 items)
3. Categories (6 items)
You requested blog posts. Checking "Blog Posts" collection...
Step 2: Link Extraction
🔄 Extracting Links from Blog Posts...
Progress: ████████████████████ 100% (47/47 items)
Found 142 links in Blog Posts:
├── Link fields: 23 links
├── Rich Text content: 119 links
└── Total unique URLs: 87 (55 appear multiple times)
Validating links...
Progress: ████████████████████ 100% (87/87 unique URLs checked)
Results:
✅ Working: 79 links (91%)
❌ Broken: 3 links (3%)
⚠️ Insecure: 5 links (6%)
🔄 Redirects: 0 links
Step 3: Issue Report
📊 Blog Posts Link Health: 91/100 ✅
## Issues Found:
### 🔴 Broken Links (3):
[1] Post: "Getting Started with Webflow"
Field: content (Rich Text)
Link: https://old-docs.example.com/guide
Status: 404 Not Found
Appears in: 3 posts
[2] Post: "Best Practices 2024"
Field: external-link (Link)
Link: https://expired-resource.com
Status: 410 Gone
[3] Post: "Tutorial Series Part 3"
Field: content (Rich Text)
Link: https://video-host.com/deleted-video
Status: 404 Not Found
### ⚠️ Insecure Links (5):
[4] Post: "Case Study: Company A"
Field: content (Rich Text)
Link: http://company-a-site.com
Fix: https://company-a-site.com
✅ HTTPS available and working
[5-8] 4 more insecure links...
---
🔧 Proposed Fixes:
[1] ⚠️ Remove broken link (manual review)
Posts affected: 3 (Getting Started, Tutorial 1, Tutorial 2)
Link: https://old-docs.example.com/guide
Suggestion: Update to new docs URL if available
[2] ⚠️ Remove broken link (manual review)
Post: "Best Practices 2024"
Link: https://expired-resource.com
Suggestion: Remove or replace with alternative
[3] ⚠️ Remove broken link (manual review)
Post: "Tutorial Series Part 3"
Link: https://video-host.com/deleted-video
Suggestion: Update with new video URL
[4] ✓ Upgrade to HTTPS
Post: "Case Study: Company A"
Current: http://company-a-site.com
New: https://company-a-site.com
✅ HTTPS verified working
[5-8] ... 4 more HTTPS upgrades
---
Which fixes would you like to apply?
- Type "4-8" to apply only HTTPS upgrades
- Type "all" for all automatic fixes
- Type "none" to cancel
User prompt:
Quick check on my static pages for broken links
Response:
🔍 Quick Link Check: Static Pages
Scanning 15 static pages...
Progress: ████████████████████ 100%
Found 89 links across 15 pages
Validation Results:
✅ All links working! (89/89)
Health Score: 100/100 ✨
Your static pages have no broken or insecure links.
💡 Tip: Run a full audit including CMS content for comprehensive coverage.
User prompt:
I have some broken links on my About page. Can you fix them?
Response:
🔍 Checking Links on "About" Page...
Found 12 links on About page
Validation Results:
✅ Working: 9 links
❌ Broken: 2 links
⚠️ Insecure: 1 link
---
Issues Found:
[1] ❌ Broken: Partner site link
Element: Button "Visit Partner"
Link: https://partner-old-site.com
Status: 404 Not Found
Fix: Manual review needed
[2] ❌ Broken: Team member profile
Element: Text link "Meet Sarah"
Link: /team/sarah-old-profile
Status: 404 Not Found
Fix: Update to /team/sarah-johnson?
[3] ⚠️ Insecure: Social media link
Element: Link "Follow us"
Link: http://social.com/company
Fix: https://social.com/company
✅ HTTPS verified
---
Which fixes would you like to apply?
- Type "3" to only fix the insecure link
- Type "2,3" to fix items 2 and 3
- Type "all" for automatic fixes
- Type "none" to cancel
Note: Item [1] requires manual correction with correct URL
Site Selection:
sites_list to get available sitesScope Definition:
Collection Selection:
Static Page Link Extraction:
pages_get_content to get page nodesCMS Link Extraction:
collections_get to identify Link and Rich Text fieldscollections_items_list_items to get all itemsLink Validation:
Categorization Rules:
✅ Working (2xx):
- 200 OK
- 201 Created
- 204 No Content
❌ Broken (4xx/5xx):
- 400 Bad Request
- 401 Unauthorized
- 403 Forbidden
- 404 Not Found
- 410 Gone
- 500 Internal Server Error
- 502 Bad Gateway
- 503 Service Unavailable
⚠️ Insecure (HTTP):
- URL starts with http://
- HTTPS equivalent exists and returns 2xx
- Mark as "upgrade to HTTPS"
🔄 Redirects (3xx):
- 301 Moved Permanently
- 302 Found
- 307 Temporary Redirect
- 308 Permanent Redirect
⚪ Manual Review:
- Timeout errors
- DNS resolution failures
- Connection refused
- SSL certificate errors
Health Score Calculation:
Formula:
1. Base score = 100
2. Working links: No change
3. Broken links: -5 points each
4. Insecure links: -2 points each
5. Redirects: -1 point each
6. Minimum score: 0
7. Maximum score: 100
Example:
- Total links: 200
- Working: 180 (no penalty)
- Broken: 5 (−25 points)
- Insecure: 10 (−20 points)
- Redirects: 5 (−5 points)
- Score: 100 − 25 − 20 − 5 = 50/100
Issue Prioritization:
🔴 Critical (fix immediately):
- Broken links on homepage
- Broken links on high-traffic pages
- Broken links in navigation
- 404 errors on important external references
⚠️ Warning (fix soon):
- Insecure HTTP links (security risk)
- Broken links on blog posts
- Broken links in footer
- 410 Gone errors
💡 Suggestion (optimize):
- 301 redirects (update to final destination)
- 302 redirects (may change, monitor)
- External links with slow response times
Statistics to Report:
Essential:
- Total links scanned
- Working links count & percentage
- Broken links count & percentage
- Insecure links count & percentage
- Redirect links count & percentage
Detailed:
- Links by location (static vs CMS)
- Links by type (internal vs external)
- Most common issues
- Pages/items with most issues
- External domains with most broken links
Automatic Fix Criteria:
Can auto-fix:
✅ HTTP → HTTPS (if HTTPS verified working)
✅ Redirects → Final destination (if final URL verified)
✅ Relative URLs → Absolute URLs (for external sites)
Needs manual review:
⚠️ Broken links (404, 410, 5xx) - requires correct URL
⚠️ HTTP with no HTTPS equivalent
⚠️ Timeouts or connection errors
⚠️ SSL certificate errors
⚠️ Authentication required (401, 403)
Preview Format:
[X] ✓ Auto-fix available
Location: [Page name or CMS item]
Element: [Element type + text]
Current: [Current URL]
New: [Proposed URL]
✅ Verification: [Status]
[Y] ⚠️ Manual review needed
Location: [Page name or CMS item]
Element: [Element type + text]
Current: [Current URL]
Issue: [Error description]
Suggestion: [What to do]
Granular Approval:
Static Page Updates:
Requirements:
- Designer connection required
- Use pages_update_static_content
- Update nodes array with new URLs
- Process in batches of 20 links per page
- Verify updates after each batch
Error Handling:
- If Designer not connected: Report and skip static pages
- If update fails: Mark link and continue with others
- Report partial successes separately
CMS Updates:
For Link Fields:
- Direct update: fieldData[fieldName] = "new-url"
- Use collections_items_update_items
- Option: update live or draft
For Rich Text Fields:
- Parse HTML content
- Find and replace <a> tags
- Preserve other HTML formatting
- Update fieldData[fieldName] with new HTML
Batch Processing:
- Process 50 items per batch
- Show progress for large collections
- Handle API rate limits gracefully
Publishing:
Ask user:
"Would you like to publish the changes immediately?"
- Yes: Use collections_items_publish_items
- No: Leave as drafts
For static pages:
- Changes are immediate (Designer updates live)
- Warn user that static page changes are live
Re-validation:
Failure Reporting:
If any fixes failed:
❌ Fixes that failed (X):
[1] Failed to update
Location: Contact page
Reason: Designer connection lost
Action: Reconnect Designer and retry
[2] URL still broken
Location: Blog post "Guide"
Reason: HTTPS version returned 404
Action: Manual correction needed
Success Reporting:
✅ Summary:
Before:
- Health Score: 76/100
- Broken links: 8
- Insecure links: 18
- Redirects: 6
After:
- Health Score: 95/100 (+19)
- Broken links: 2 (6 fixed, 2 need manual review)
- Insecure links: 0 (18 fixed)
- Redirects: 0 (6 fixed)
Changes:
- Static pages: 8 links updated on 5 pages
- CMS content: 16 links updated in 12 items
- Total fixes: 24 ✅
- Manual review: 2 ⚠️
Recommendations:
Always provide:
1. Schedule for next check (monthly/quarterly)
2. Monitoring suggestions for critical links
3. Best practices for avoiding broken links
4. URL redirect strategies if applicable
Example:
💡 Recommendations:
1. **Schedule regular checks**
- Run link checker monthly for active sites
- Run quarterly for static sites
- Set calendar reminder
2. **Monitor critical external links**
- Key partners: company-a.com, partner-site.com
- Documentation: docs.example.com
- Social media profiles
3. **Set up URL redirects**
- If changing URLs, create 301 redirects
- Test redirects before going live
- Keep redirect map updated
4. **Best practices**
- Test external links before adding
- Use relative URLs for internal links
- Avoid deep linking to external pages
- Verify links after major redesigns
Report Formats:
Offer to export findings:
1. **Markdown** - Human-readable report
- Include all statistics
- List all issues found
- Show fixes applied
- Add recommendations
- Great for documentation
2. **CSV** - Spreadsheet format
- Columns: Location, Element, URL, Status, Issue, Fix Applied
- Easy to filter and analyze
- Good for sharing with team
3. **JSON** - Machine-readable data
- Complete raw data
- Useful for integrations
- Archive for historical tracking
Export Example (Markdown):
# Link Audit Report: Company Website
Date: January 10, 2026
## Summary
- Total links scanned: 247
- Health score: 95/100
- Links fixed: 24
- Manual review needed: 2
## Issues Found
### Broken Links (8)
1. About Us > Button "Visit Partner"
- URL: https://partner-old-site.com
- Status: 404 Not Found
- Fix: Manual review needed
...
## Recommendations
1. Schedule monthly link checks
2. Monitor key external links
3. Set up 301 redirects for URL changes
Batch Processing:
For large sites:
- Process pages in batches of 10
- Process CMS items in batches of 50
- Show progress: "Processing batch 1 of 5..."
- Timeout protection: Skip after 30s per batch
Caching Validation Results:
- Cache validation results by unique URL
- If same URL appears 10 times, validate once
- Report: "Checking 87 unique URLs (out of 247 total links)"
- Reduces validation time significantly
Parallel vs Sequential:
Parallel (faster):
- Link validation (test multiple URLs simultaneously)
- Page content extraction (fetch multiple pages)
Sequential (required):
- Link updates (one at a time to avoid conflicts)
- Publishing (one batch at a time)
Common Errors:
1. Designer Not Connected:
❌ Error: Cannot update static pages
Reason: Designer MCP app not connected
Solution:
1. Open Webflow Designer
2. Open the target site
3. Connect Designer MCP app
4. Retry static page fixes
Note: CMS fixes can proceed without Designer
2. Rate Limits:
⚠️ Warning: Rate limit reached
Pausing for 60 seconds...
Progress will resume automatically.
Current: 50/200 links validated
3. Timeout Errors:
⚠️ Link validation timeout
Link: https://very-slow-site.com
Timeout: 10 seconds exceeded
Marked for manual review.
Continuing with remaining links...
4. SSL Certificate Errors:
⚠️ SSL Certificate Error
Link: https://expired-cert-site.com
Issue: Certificate expired
Cannot verify HTTPS. Marked for manual review.
Case 1: No Issues Found
🎉 Excellent! No Issues Found
All 247 links are working correctly!
Health Score: 100/100 ✨
Your site has:
✅ No broken links
✅ No insecure HTTP links
✅ No unnecessary redirects
💡 Recommendation:
Run this check monthly to maintain link health.
Case 2: All Links Broken
❌ Critical: Multiple Broken Links
Found 89 broken links across all pages.
This suggests a possible site-wide issue:
- Domain migration not configured?
- External service outage?
- Relative URL path issues?
🔍 Recommended Action:
1. Check if external services are down
2. Verify domain and SSL configuration
3. Test a few links manually
4. Contact Webflow support if needed
Shall I still proceed with individual link fixes? (yes/no)
Case 3: Mixed HTTP/HTTPS Site
⚠️ Mixed Content Warning
Your site uses HTTPS but has 18 HTTP links.
This creates:
- Security warnings in browsers
- SEO penalties
- Trust issues for visitors
🔧 Recommendation:
Upgrade all HTTP links to HTTPS (all 18 can be auto-fixed)
Proceed with upgrade? (yes/no)
Case 4: Redirect Chains
⚠️ Redirect Chain Detected
Link: https://example.com/old
→ 301 to: https://example.com/temp
→ 301 to: https://example.com/final
Recommendation: Update directly to final URL
- Improves page load speed
- Reduces redirect overhead
- Better for SEO
Fix: Update to https://example.com/final
Apply fix? (yes/no)
Before considering link checker implementation complete: