Skill v1.0.2
currentAutomated scan100/100~2 modified
version: "1.0.2" name: webflow-mcp: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. mcp-version: 2.0.1
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_toolto get best practices before starting - Use Webflow MCP's
data_sites_toolwith actionlist_sitesto identify available sites - Use Webflow MCP's
data_sites_toolwith actionget_siteto retrieve site details - Use Webflow MCP's
data_pages_toolwith actionlist_pagesto get all pages - Use Webflow MCP's
data_pages_toolwith actionget_page_contentto extract links from static pages - Use Webflow MCP's
data_pages_toolwith actionupdate_static_contentto fix links on static pages - Use Webflow MCP's
data_cms_toolwith actionget_collection_listto get all CMS collections - Use Webflow MCP's
data_cms_toolwith actionget_collection_detailsto get collection schemas - Use Webflow MCP's
data_cms_toolwith actionlist_collection_itemsto get CMS items with links - Use Webflow MCP's
data_cms_toolwith actionupdate_collection_itemsto fix links in CMS (draft) - Use Webflow MCP's
data_cms_toolwith actionpublish_collection_itemsto publish fixed CMS items - DO NOT use any other tools or methods for Webflow operations
- All tool calls must include the required
contextparameter (15-25 words, third-person perspective) - No Designer connection is required — both static page and CMS link fixes go through
data_tools
Instructions
Phase 1: Site Selection & Discovery
- Get site information: Use Webflow MCP's
data_sites_toolwith actionlist_sitesto identify target site - Confirm scope: Ask user if they want to check:
- Static pages only
- CMS content only
- Both static pages and CMS content
- List pages: Use Webflow MCP's
data_pages_toolwith actionlist_pagesto get all pages - List collections: Use Webflow MCP's
data_cms_toolwith actionget_collection_listto get all CMS collections
Phase 2: Link Extraction & Validation
- Extract links from static pages: Use Webflow MCP's
data_pages_toolwith actionget_page_contentfor each page
- Identify all link elements (Link, Button, TextLink, LinkBlock)
- Capture: pageId, nodeName, URL, link text
- Extract links from CMS: Use Webflow MCP's
data_cms_toolwith actionlist_collection_itemsfor each collection
- Identify Link fields and Rich Text fields with links
- Capture: collectionId, itemId, fieldName, URL
- 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)
- 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
- 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)
- 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
- Identify critical issues: Prioritize fixes
- 🔴 Critical: Broken links on high-traffic pages
- ⚠️ Warning: Insecure HTTP links
- 💡 Suggestion: Optimize redirects
Phase 4: Suggestion Generation & Approval
- 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
- 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 ```
- 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
- Apply fixes to static pages: Use Webflow MCP's
data_pages_toolwith actionupdate_static_content
- Update link URLs in nodes
- Process in batches of 20 links
- Apply fixes to CMS content: Use Webflow MCP's
data_cms_toolwith actionupdate_collection_items
- Update Link fields directly
- Update links in Rich Text fields
- Process in batches of 50 items
- Publish changes (if requested): Use Webflow MCP's
data_cms_toolwith actionpublish_collection_items - Show progress: Display progress indicators for large operations
- Generate final report:
- Links scanned: X
- Links fixed: Y
- Links requiring manual review: Z
- Health score improvement: Before → After
Phase 6: Verification & Recommendations
- Verify fixes: Re-check fixed links to confirm success
- Report failures: Clearly identify any fixes that failed
- Provide recommendations:
- Schedule regular link checks (monthly/quarterly)
- Set up monitoring for critical external links
- Consider using 301 redirects for changed URLs
- 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 SelectionAvailable sites:1. Company Website2. Blog Site3. PortfolioWhich site would you like to audit? (1/2/3)
Step 2: Scope Confirmation
📋 Link Checker ScopeWhat would you like to check?1. Static pages only (faster)2. CMS content only3. Both static pages and CMS content (comprehensive)Recommendation: Option 3 for complete auditYour 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 linksValidating 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 WebsiteOverall 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 HTTPSPage: ContactElement: Button "Follow Us"Current: http://social-media.com/companyNew: https://social-media.com/company✅ HTTPS verified working[2] ✓ Upgrade to HTTPSCMS: Blog Posts > "Getting Started" > content fieldCurrent: http://tutorial-site.comNew: https://tutorial-site.com✅ HTTPS verified working[3] ✓ Update redirectPage: ServicesElement: Text link "Learn more"Current: https://example.com/old-urlNew: https://example.com/new-url✅ Final destination verified[4-24] ... 21 more automatic fixes### Manual Review Required (2):[25] ⚠️ Broken link - needs correctionPage: About UsElement: Button "View Partner Site"Current: https://partner-site.com/old-pageIssue: 404 Not FoundAction needed: Provide correct URL or remove link[26] ⚠️ Broken link - needs correctionCMS: Blog Posts > "Product Launch" > content fieldCurrent: https://press-release.com/announcementIssue: 404 Not FoundAction 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 fixedCMS 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 linkCurrent: https://partner-site.com/old-pageAction: Update or remove manually[2] Blog post "Product Launch" - broken press releaseCurrent: https://press-release.com/announcementAction: Update or remove manually---💡 Next Steps:1. Fix the 2 manual review items2. Re-run link checker in 1 month3. Set up monitoring for critical external links4. Consider 301 redirects for any URL changesWould 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 CollectionsFound 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/guideStatus: 404 Not FoundAppears in: 3 posts[2] Post: "Best Practices 2024"Field: external-link (Link)Link: https://expired-resource.comStatus: 410 Gone[3] Post: "Tutorial Series Part 3"Field: content (Rich Text)Link: https://video-host.com/deleted-videoStatus: 404 Not Found### ⚠️ Insecure Links (5):[4] Post: "Case Study: Company A"Field: content (Rich Text)Link: http://company-a-site.comFix: 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/guideSuggestion: Update to new docs URL if available[2] ⚠️ Remove broken link (manual review)Post: "Best Practices 2024"Link: https://expired-resource.comSuggestion: Remove or replace with alternative[3] ⚠️ Remove broken link (manual review)Post: "Tutorial Series Part 3"Link: https://video-host.com/deleted-videoSuggestion: Update with new video URL[4] ✓ Upgrade to HTTPSPost: "Case Study: Company A"Current: http://company-a-site.comNew: 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 PagesScanning 15 static pages...Progress: ████████████████████ 100%Found 89 links across 15 pagesValidation 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 pageValidation Results:✅ Working: 9 links❌ Broken: 2 links⚠️ Insecure: 1 link---Issues Found:[1] ❌ Broken: Partner site linkElement: Button "Visit Partner"Link: https://partner-old-site.comStatus: 404 Not FoundFix: Manual review needed[2] ❌ Broken: Team member profileElement: Text link "Meet Sarah"Link: /team/sarah-old-profileStatus: 404 Not FoundFix: Update to /team/sarah-johnson?[3] ⚠️ Insecure: Social media linkElement: Link "Follow us"Link: http://social.com/companyFix: 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 cancelNote: Item [1] requires manual correction with correct URL
Guidelines
Phase 1: Discovery Best Practices
Site Selection:
- Use
data_sites_toolwith actionlist_sitesto 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
data_pages_toolwith actionget_page_contentto 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
data_cms_toolwith actionget_collection_detailsto identify Link and Rich Text fields - Use
data_cms_toolwith actionlist_collection_itemsto get all items - For Link fields: Extract URL directly
- For Rich Text fields: Parse HTML to extract <a> 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 = 1002. Working links: No change3. Broken links: -5 points each4. Insecure links: -2 points each5. Redirects: -1 point each6. Minimum score: 07. Maximum score: 100Example:- 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 & percentageDetailed:- 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 availableLocation: [Page name or CMS item]Element: [Element type + text]Current: [Current URL]New: [Proposed URL]✅ Verification: [Status][Y] ⚠️ Manual review neededLocation: [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:- Use data_pages_tool with action update_static_content- Update nodes array with new URLs- Process in batches of 20 links per page- Verify updates after each batchError 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 data_cms_tool with action update_collection_items- Option: update live or draftFor Rich Text Fields:- Parse HTML content- Find and replace <a> tags- Preserve other HTML formatting- Update fieldData[fieldName] with new HTMLBatch 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 data_cms_tool with action publish_collection_items- No: Leave as draftsFor 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 updateLocation: Contact pageReason: Page content changed since last read (conflict)Action: Re-fetch the page and retry[2] URL still brokenLocation: Blog post "Guide"Reason: HTTPS version returned 404Action: Manual correction needed
Success Reporting:
✅ Summary:Before:- Health Score: 76/100- Broken links: 8- Insecure links: 18- Redirects: 6After:- 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 links3. Best practices for avoiding broken links4. URL redirect strategies if applicableExample:💡 Recommendations:1. **Schedule regular checks**- Run link checker monthly for active sites- Run quarterly for static sites- Set calendar reminder2. **Monitor critical external links**- Key partners: company-a.com, partner-site.com- Documentation: docs.example.com- Social media profiles3. **Set up URL redirects**- If changing URLs, create 301 redirects- Test redirects before going live- Keep redirect map updated4. **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 documentation2. **CSV** - Spreadsheet format- Columns: Location, Element, URL, Status, Issue, Fix Applied- Easy to filter and analyze- Good for sharing with team3. **JSON** - Machine-readable data- Complete raw data- Useful for integrations- Archive for historical tracking
Export Example (Markdown):
# Link Audit Report: Company WebsiteDate: 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...## Recommendations1.Schedule monthly link checks2.Monitor key external links3.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 pagesReason: Designer MCP app not connectedSolution:1. Open Webflow Designer2. Open the target site3. Connect Designer MCP app4. Retry static page fixesNote: CMS fixes can proceed without Designer
2. Rate Limits:
⚠️ Warning: Rate limit reachedPausing for 60 seconds...Progress will resume automatically.Current: 50/200 links validated
3. Timeout Errors:
⚠️ Link validation timeoutLink: https://very-slow-site.comTimeout: 10 seconds exceededMarked for manual review.Continuing with remaining links...
4. SSL Certificate Errors:
⚠️ SSL Certificate ErrorLink: https://expired-cert-site.comIssue: Certificate expiredCannot verify HTTPS. Marked for manual review.
Phase 10: Edge Cases
Case 1: No Issues Found
🎉 Excellent! No Issues FoundAll 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 LinksFound 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 down2. Verify domain and SSL configuration3. Test a few links manually4. Contact Webflow support if neededShall I still proceed with individual link fixes? (yes/no)
Case 3: Mixed HTTP/HTTPS Site
⚠️ Mixed Content WarningYour 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 DetectedLink: https://example.com/old→ 301 to: https://example.com/temp→ 301 to: https://example.com/finalRecommendation: Update directly to final URL- Improves page load speed- Reduces redirect overhead- Better for SEOFix: Update to https://example.com/finalApply 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