PHPackages                             mubseoul/wp-link-sweeper - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. mubseoul/wp-link-sweeper

ActiveWordpress-plugin[Utility &amp; Helpers](/categories/utility)

mubseoul/wp-link-sweeper
========================

Fast, safe broken link scanner with bulk find/replace and auto-fix rules for WordPress content.

v1.1.0(4mo ago)00GPL-2.0-or-laterPHPPHP &gt;=8.0

Since Feb 21Pushed 4mo agoCompare

[ Source](https://github.com/mubseoul/wp-link-sweeper)[ Packagist](https://packagist.org/packages/mubseoul/wp-link-sweeper)[ RSS](/packages/mubseoul-wp-link-sweeper/feed)WikiDiscussions main Synced today

READMEChangelog (2)Dependencies (3)Versions (3)Used By (0)

WP Link Sweeper � Broken Link Finder + Auto Fixer
=================================================

[](#wp-link-sweeper--broken-link-finder--auto-fixer)

A fast, safe WordPress plugin that scans your content for broken links and provides powerful tools to fix them efficiently.

Features
--------

[](#features)

### Core Functionality

[](#core-functionality)

- **Smart Link Scanner**: Scans posts, pages, and WooCommerce products for broken links
- **Comprehensive Detection**: Finds links in `` tags and plain URLs in content
- **Intelligent Checking**: Uses HEAD requests first, falls back to GET when needed
- **Status Reporting**: Detects 404s, timeouts, DNS errors, SSL issues, and redirects
- **Batch Processing**: AJAX-based scanning prevents timeouts on large sites

### Link Management

[](#link-management)

- **Detailed Reporting**: View all broken links with status codes, occurrence counts, and affected posts
- **Advanced Filtering**: Filter by status, post type, domain, and more
- **Quick Actions**: Recheck individual links, ignore false positives
- **Response Metrics**: See response times and redirect chains

### Bulk Operations

[](#bulk-operations)

- **Find &amp; Replace**: Safely replace URLs across your content
- **Match Types**: Contains, equals, starts with, ends with
- **Preview Changes**: See exactly what will be modified before applying
- **Undo Support**: Revert the last bulk operation if needed
- **Safe Replacement**: Protects code blocks from modification

### Auto-Fix Rules

[](#auto-fix-rules)

- **Pattern Matching**: Create rules for automatic URL replacement
- **Wildcard Support**: Use `*` to preserve URL paths (e.g., `oldsite.com/*` � `newsite.com/*`)
- **Rule Management**: Enable/disable rules without deleting them
- **Dry Run**: Preview rule application before executing

### Performance &amp; Reliability

[](#performance--reliability)

- **Rate Limiting**: Configurable request throttling (be kind to servers)
- **Batch Processing**: Processes posts and URLs in manageable chunks
- **WP Cron Support**: Schedule automatic scans (hourly, daily, weekly)
- **Progress Tracking**: Real-time progress updates during scans
- **Stop Anytime**: Safely interrupt long-running scans

### Developer-Friendly

[](#developer-friendly)

- **Clean OOP Structure**: PSR-4 autoloading, namespaces
- **Custom DB Tables**: Efficient storage with proper indexing
- **Security First**: Capability checks, nonces, input sanitization
- **i18n Ready**: Translation-ready strings
- **Hooks &amp; Filters**: Extensible architecture (coming in v1.1)

Requirements
------------

[](#requirements)

- WordPress 6.0 or higher
- PHP 8.0 or higher
- MySQL 5.6 or higher

Installation
------------

[](#installation)

### From ZIP File

[](#from-zip-file)

1. Download the plugin ZIP file
2. Go to WordPress admin � Plugins � Add New � Upload Plugin
3. Choose the ZIP file and click "Install Now"
4. Activate the plugin
5. Navigate to Tools � Link Sweeper

### Manual Installation

[](#manual-installation)

1. Upload the `wp-link-sweeper` folder to `/wp-content/plugins/`
2. Activate the plugin through the Plugins menu
3. Navigate to Tools � Link Sweeper

### From Source (Development)

[](#from-source-development)

```
git clone https://github.com/mubseoul/wp-link-sweeper.git
cd wp-link-sweeper
# If using Composer (optional)
composer install
```

Usage Guide
-----------

[](#usage-guide)

### Running Your First Scan

[](#running-your-first-scan)

1. Go to **Tools � Link Sweeper**
2. Click **Start New Scan**
3. The scanner will:
    - Extract all URLs from your content
    - Check each URL's availability
    - Report broken links, redirects, and errors

### Viewing Broken Links

[](#viewing-broken-links)

1. Click the **Broken Links** tab
2. Use filters to narrow results:
    - Status (Broken, OK, Redirects)
    - Post Type
    - Domain
3. See which posts contain each broken link
4. Recheck or ignore individual links

### Finding &amp; Replacing URLs

[](#finding--replacing-urls)

1. Go to the **Find &amp; Replace** tab
2. Enter the URL to find (e.g., `http://oldsite.com`)
3. Enter the replacement URL (e.g., `https://newsite.com`)
4. Select match type and post types
5. Click **Preview Changes** to see what will happen
6. Click **Execute Replacement** to apply changes
7. Use **Undo** if you need to revert

### Creating Auto-Fix Rules

[](#creating-auto-fix-rules)

1. Go to the **Auto-Fix Rules** tab
2. Add a new rule:
    - Pattern: `oldsite.com/*`
    - Replacement: `newsite.com/*`
    - Match Type: Contains
3. Click **Add Rule**
4. Preview or apply rules to broken links

### Configuring Settings

[](#configuring-settings)

1. Go to the **Settings** tab
2. Configure:
    - **Post Types**: Which content to scan
    - **Rate Limit**: Requests per second (default: 5)
    - **Timeout**: How long to wait for responses
    - **Normalization**: UTM removal, fragment handling
    - **Scheduled Scans**: Automatic scanning frequency
    - **Batch Sizes**: Adjust for server performance

Testing Checklist
-----------------

[](#testing-checklist)

### Basic Functionality

[](#basic-functionality)

- Install and activate plugin
- Access admin page at Tools � Link Sweeper
- All tabs load without errors
- Settings save successfully

### Scanning

[](#scanning)

- Start a new scan
- Progress bar updates in real-time
- Scan completes without timeout
- Stop scan button works
- Dashboard shows accurate statistics
- Broken links appear in table
- Can filter by status, post type, domain
- Pagination works for large result sets

### Link Checking

[](#link-checking)

- Recheck individual link updates status
- Ignore link removes from list
- Status badges display correctly
- HTTP codes are accurate
- Response times are recorded
- Redirects are detected and counted

### Find &amp; Replace

[](#find--replace)

- Preview shows affected posts
- Preview shows sample changes
- Execute replacement works
- Code blocks are protected
- Undo restores original content
- Match types work (contains, equals, etc.)

### Auto-Fix Rules

[](#auto-fix-rules-1)

- Can add new rule
- Can delete rule
- Can enable/disable rule
- Preview shows what will change
- Apply rules replaces URLs correctly
- Wildcard patterns work

### WooCommerce Integration

[](#woocommerce-integration)

- Product post type appears if WooCommerce active
- Can scan product descriptions
- Can replace URLs in products

### Scheduled Scans

[](#scheduled-scans)

- Can set cron schedule
- Next run time displays correctly
- Scheduled scan executes (wait for schedule or test with WP-CLI)

### Performance

[](#performance)

- Large sites (1000+ posts) scan without timeout
- Batch processing works correctly
- Rate limiting prevents server overload
- Database queries are efficient

### Security

[](#security)

- Non-admin users cannot access
- AJAX requests require nonce
- SQL injection attempts fail
- XSS attempts are escaped

### Uninstall

[](#uninstall)

- Can enable "Delete data on uninstall"
- Deactivate plugin
- Uninstall plugin
- Database tables removed (if option enabled)
- Options removed (if option enabled)

Roadmap
-------

[](#roadmap)

### Version 1.1 (Released)

[](#version-11-released)

- Export broken links to CSV

### Version 1.2 (Planned)

[](#version-12-planned)

- Email notifications for broken links
- Scan custom fields (Yoast, RankMath)
- Deeper Elementor/page builder support
- Hooks and filters for developers
- Bulk ignore by domain
- Link status history tracking
- Multi-language support improvements

### Pro Ideas (Not in Free Version)

[](#pro-ideas-not-in-free-version)

- Multi-site network support
- Advanced scheduling (specific times)
- Automatic replacement with dry-run logs
- Integration with Google Search Console
- Broken image detection
- External link monitoring service
- Priority support
- White-label options

Contributing
------------

[](#contributing)

Contributions are welcome! Please follow these guidelines:

1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request

### Coding Standards

[](#coding-standards)

- Follow [WordPress Coding Standards](https://developer.wordpress.org/coding-standards/wordpress-coding-standards/)
- Use PHP 8.0+ features where appropriate
- Write clear, documented code
- Include PHPDoc blocks for classes and methods

Support
-------

[](#support)

- **Issues**: [GitHub Issues](https://github.com/mubseoul/wp-link-sweeper/issues)
- **Documentation**: [Wiki](https://github.com/mubseoul/wp-link-sweeper/wiki)
- **WordPress.org**: [Support Forum](https://wordpress.org/support/plugin/wp-link-sweeper)

License
-------

[](#license)

GPLv2 or later. See [LICENSE](LICENSE) file.

Credits
-------

[](#credits)

Developed by [Mubseoul](https://mubseoul.com)

Special thanks to:

- WordPress community
- Contributors (see [CONTRIBUTORS.md](CONTRIBUTORS.md))

Changelog
---------

[](#changelog)

### 1.1.0 - 2024-02-XX

[](#110---2024-02-xx)

- **NEW**: CSV Export functionality
- Export broken links to CSV file
- Respects current filters (status, post type, domain)
- Includes all link details and affected posts
- Enhanced data portability for reporting

### 1.0.0 - 2024-01-XX

[](#100---2024-01-xx)

- Initial release
- Core scanning functionality
- Find &amp; replace tool
- Auto-fix rules
- Scheduled scans
- WooCommerce support

---

**Note**: This plugin performs HTTP requests to external websites. Always respect robots.txt and be mindful of rate limiting.

###  Health Score

32

—

LowBetter than 69% of packages

Maintenance76

Regular maintenance activity

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

132d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/9cdeee878ffcba362afaf1ed18ded1f4b5ce83a2ecb50d7de6014e7d443f7175?d=identicon)[mubseoul](/maintainers/mubseoul)

---

Top Contributors

[![mubseoul](https://avatars.githubusercontent.com/u/177406116?v=4)](https://github.com/mubseoul "mubseoul (4 commits)")

---

Tags

pluginwordpressmaintenanceseolink-checkerbroken-links

###  Code Quality

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/mubseoul-wp-link-sweeper/health.svg)

```
[![Health](https://phpackages.com/badges/mubseoul-wp-link-sweeper/health.svg)](https://phpackages.com/packages/mubseoul-wp-link-sweeper)
```

###  Alternatives

[sybrew/the-seo-framework-extension-manager

A WordPress plugin that allows you to manage extensions for The SEO Framework.

8794.3k](/packages/sybrew-the-seo-framework-extension-manager)[afragen/git-updater

A plugin to automatically update GitHub, Bitbucket, GitLab, or Gitea hosted plugins, themes, and language packs.

3.3k1.7k](/packages/afragen-git-updater)[webdevstudios/cmb2-attached-posts

Custom field for CMB2 for creating post relationships.

13565.8k](/packages/webdevstudios-cmb2-attached-posts)[iceicetimmy/acf-post-type-selector

Post type selector for Advanced Custom Fields.

559.0k](/packages/iceicetimmy-acf-post-type-selector)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
