# Webflow Mcp:link Checker

> 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.

- **Type:** Skill
- **Install:** `agentstack add skill-webflow-webflow-skills-link-checker`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [webflow](https://agentstack.voostack.com/s/webflow)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [webflow](https://github.com/webflow)
- **Source:** https://github.com/webflow/webflow-skills/tree/main/plugins/webflow-skills/skills/link-checker

## Install

```sh
agentstack add skill-webflow-webflow-skills-link-checker
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# 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 `data_pages_tool` with action `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 `data_sites_tool` with action `list_sites` 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 `data_pages_tool` with action `get_page_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 `data_cms_tool` with action `get_collection_details` to identify Link and Rich Text fields
- Use `data_cms_tool` with action `list_collection_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

…

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [webflow](https://github.com/webflow)
- **Source:** [webflow/webflow-skills](https://github.com/webflow/webflow-skills)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-webflow-webflow-skills-link-checker
- Seller: https://agentstack.voostack.com/s/webflow
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
