--- name: link-checker description: Find and fix broken or insecure links across an entire site, including CMS content, to improve SEO and user experience. Audits HTTP/HTTPS issues and validates all internal and external links. --- # Link Checker Audit and fix broken or insecure links across your Webflow site to improve SEO and user experience. ## Important Note **ALWAYS use Webflow MCP tools for all operations:** - Use Webflow MCP's `webflow_guide_tool` to get best practices before starting - Use Webflow MCP's `data_sites_tool` with action `list_sites` to identify available sites - Use Webflow MCP's `data_sites_tool` with action `get_site` to retrieve site details - Use Webflow MCP's `data_pages_tool` with action `list_pages` to get all pages - Use Webflow MCP's `data_pages_tool` with action `get_page_content` to extract links from static pages - Use Webflow MCP's `data_pages_tool` with action `update_static_content` to fix links on static pages (requires Designer) - Use Webflow MCP's `data_cms_tool` with action `get_collection_list` to get all CMS collections - Use Webflow MCP's `data_cms_tool` with action `get_collection_details` to get collection schemas - Use Webflow MCP's `data_cms_tool` with action `list_collection_items` to get CMS items with links - Use Webflow MCP's `data_cms_tool` with action `update_collection_items` to fix links in CMS (draft) - Use Webflow MCP's `data_cms_tool` with action `publish_collection_items` to publish fixed CMS items - 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) - **Designer connection required** for static page link fixes ## Instructions ### Phase 1: Site Selection & Discovery 1. **Get site information**: Use Webflow MCP's `data_sites_tool` with action `list_sites` to identify target site 2. **Confirm scope**: Ask user if they want to check: - Static pages only - CMS content only - Both static pages and CMS content 3. **List pages**: Use Webflow MCP's `data_pages_tool` with action `list_pages` to get all pages 4. **List collections**: Use Webflow MCP's `data_cms_tool` with action `get_collection_list` to get all CMS collections ### Phase 2: Link Extraction & Validation 5. **Extract links from static pages**: Use Webflow MCP's `data_pages_tool` with action `get_page_content` for each page - Identify all link elements (Link, Button, TextLink, LinkBlock) - Capture: pageId, nodeName, URL, link text 6. **Extract links from CMS**: Use Webflow MCP's `data_cms_tool` with action `list_collection_items` for each collection - Identify Link fields and Rich Text fields with links - Capture: collectionId, itemId, fieldName, URL 7. **Validate each link**: Test URL accessibility - Check for 4xx/5xx errors (broken links) - Check for HTTP vs HTTPS (insecure links) - Test if HTTP has HTTPS equivalent available - Flag redirects (3xx status codes) 8. **Categorize results**: - ✅ Working links (2xx status) - ❌ Broken links (4xx/5xx errors) - ⚠️ Insecure links (HTTP when HTTPS available) - 🔄 Redirects (3xx status) - ⚪ Manual review needed (timeouts, DNS errors, etc.) ### Phase 3: Analysis & Reporting 9. **Calculate statistics**: - Total links scanned - Links by type (internal vs external) - Links by status (working, broken, insecure, redirects) - Links by location (static pages vs CMS) 10. **Generate health score**: Calculate link health (0-100) - Working links: +1 point each - Broken links: -5 points each - Insecure links: -2 points each - Redirects: -1 point each - Normalize to 0-100 scale 11. **Identify critical issues**: Prioritize fixes - 🔴 Critical: Broken links on high-traffic pages - ⚠️ Warning: Insecure HTTP links - 💡 Suggestion: Optimize redirects ### Phase 4: Suggestion Generation & Approval 12. **Generate fix suggestions**: For each problematic link, suggest fix - Broken links: Remove link or update to correct URL - Insecure links: Upgrade HTTP to HTTPS - Redirects: Update to final destination URL 13. **Show preview with validation**: ``` [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 ``` 14. **Implement granular approval**: Ask user which fixes to apply - Type numbers to skip (e.g., "2,4") - Type "all" to proceed with all automatic fixes - Type "none" to cancel - Flag manual review items separately ### Phase 5: Execution & Confirmation 15. **Apply fixes to static pages**: Use Webflow MCP's `pages_update_static_content` - Requires Designer connection - Update link URLs in nodes - Process in batches of 20 links 16. **Apply fixes to CMS content**: Use Webflow MCP's `data_cms_tool` with action `update_collection_items` - Update Link fields directly - Update links in Rich Text fields - Process in batches of 50 items 17. **Publish changes** (if requested): Use Webflow MCP's `data_cms_tool` with action `publish_collection_items` 18. **Show progress**: Display progress indicators for large operations 19. **Generate final report**: - Links scanned: X - Links fixed: Y - Links requiring manual review: Z - Health score improvement: Before → After ### Phase 6: Verification & Recommendations 20. **Verify fixes**: Re-check fixed links to confirm success 21. **Report failures**: Clearly identify any fixes that failed 22. **Provide recommendations**: - Schedule regular link checks (monthly/quarterly) - Set up monitoring for critical external links - Consider using 301 redirects for changed URLs 23. **Export report** (optional): Offer to export findings ## Examples ### Example 1: Complete Site Audit **User 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) ``` ### Example 2: CMS-Only Link Check **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 ``` ### Example 3: Static Pages Only (Quick Check) **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. ``` ### Example 4: Fixing Specific Issues **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 ``` ## Guidelines ### Phase 1: Discovery Best Practices **Site Selection:** - Use `sites_list` to get available sites - Never assume site ID - Confirm site name with user **Scope Definition:** - Ask if checking static pages, CMS, or both - Estimate time based on scope: - Static pages only: 1-3 minutes - CMS only: 2-5 minutes (depends on item count) - Full site: 5-10 minutes **Collection Selection:** - List all collections with item counts - If user specifies collection, focus on that - If "all CMS", check all collections ### Phase 2: Link Extraction Best Practices **Static Page Link Extraction:** - Use `pages_get_content` to get page nodes - Look for these node types: - Link (a tag) - Button (with link) - TextLink - LinkBlock - Extract href/url property - Capture link text for reporting - Track nodeId for fixing later **CMS Link Extraction:** - Use `collections_get` to identify Link and Rich Text fields - Use `collections_items_list_items` to get all items - For Link fields: Extract URL directly - For Rich Text fields: Parse HTML to extract tags - Track: collectionId, itemId, fieldName for fixing **Link Validation:** - Test each unique URL (avoid duplicate tests) - Use HEAD request first (faster than GET) - Fallback to GET if HEAD fails - Handle timeouts (10 second max) - For HTTP links: Test HTTPS equivalent - Record status code and final URL (after redirects) **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 ``` ### Phase 3: Analysis Best Practices **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 ``` ### Phase 4: Suggestion Generation Best Practices **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:** - Number each fix starting from 1 - Show all automatic fixes first - Show manual review items separately - Allow user to select specific fixes - Options: "all", "none", or specific numbers - Example: "1,3,5-10" applies fixes 1, 3, and 5 through 10 ### Phase 5: Execution Best Practices **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 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 ``` ### Phase 6: Verification Best Practices **Re-validation:** - Re-check all fixed links - Confirm status changed (404 → 200, HTTP → HTTPS) - Report any fixes that didn't work - Calculate new health score **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 ``` ### Phase 7: Export Options **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):** ```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 ``` ### Phase 8: Performance Optimization **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) ``` ### Phase 9: Error Handling **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. ``` ### Phase 10: Edge Cases **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) ``` ## Production Checklist Before considering link checker implementation complete: ### ✅ Discovery - [ ] Sites listed with all details - [ ] Scope confirmed (static/CMS/both) - [ ] All pages retrieved - [ ] All collections identified - [ ] User understands time estimate ### ✅ Link Extraction - [ ] Static page links extracted correctly - [ ] CMS link fields identified - [ ] Rich Text links parsed correctly - [ ] All link elements captured (nodeId, URL, text) - [ ] Duplicate URLs consolidated for validation ### ✅ Validation - [ ] Each unique URL validated - [ ] Status codes captured correctly - [ ] HTTP/HTTPS checking works - [ ] Redirects detected and final URLs captured - [ ] Timeout handling implemented - [ ] Error categorization accurate ### ✅ Analysis - [ ] Health score calculated correctly - [ ] Issues prioritized (Critical/Warning/Suggestion) - [ ] Statistics complete and accurate - [ ] Internal vs external links separated - [ ] Location tracking (page/CMS) accurate ### ✅ Suggestion Generation - [ ] Automatic fixes identified correctly - [ ] Manual review items flagged - [ ] HTTPS upgrades verified before suggesting - [ ] Redirect final destinations verified - [ ] Preview format clear and detailed - [ ] Validation status shown for each fix ### ✅ Approval System - [ ] Granular approval implemented - [ ] User can select specific fixes - [ ] "all"/"none"/numbers format works - [ ] Manual review items separated - [ ] Clear instructions provided ### ✅ Execution - [ ] Static page updates work (Designer connected) - [ ] CMS Link field updates work - [ ] CMS Rich Text link updates work - [ ] Batch processing implemented - [ ] Progress indicators shown - [ ] Error handling graceful ### ✅ Verification - [ ] Fixed links re-validated - [ ] New health score calculated - [ ] Failures reported clearly - [ ] Partial successes vs full failures separated - [ ] Before/after comparison shown ### ✅ Reporting - [ ] Final summary complete - [ ] Statistics accurate - [ ] Recommendations provided - [ ] Export options offered - [ ] Next steps clear ### ✅ Error Handling - [ ] Designer disconnected handled - [ ] Timeout errors handled - [ ] Rate limits handled - [ ] SSL errors handled - [ [ ] Partial failures reported separately ### ✅ Performance - [ ] Batch processing for scale - [ ] URL deduplication for validation - [ ] Progress indicators for long operations - [ ] Timeout protection implemented - [ ] Efficient API usage ### ✅ User Experience - [ ] Clear feedback at each step - [ ] Progress indicators shown - [ ] Warnings shown before changes - [ ] Success confirmation clear - [ ] Recommendations actionable