=== Anonindo Broken URL Scanner ===
Contributors: anonymoustech
Tags: broken urls, url scanner, redirects, seo, site audit
Requires at least: 6.0
Tested up to: 6.9
Requires PHP: 7.4
Stable tag: 1.0.1
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Lightweight local URL scanner for WordPress posts, pages, comments, redirects, and media URLs.

== Description ==

Anonindo Broken URL Scanner scans selected WordPress content locally and checks discovered URLs in small batches. It is designed for low server impact: no external API credits, no cloud service, no constant full-site crawling, and repeated URLs reuse recent check results.

Core features:

* Scans posts, pages, selected public custom post types, comment content, and comment author URLs.
* Extracts normal links plus common asset URLs from images, scripts, iframes, video/audio/source tags, and stylesheet links.
* Checks URLs locally with HEAD first and a small GET fallback when servers do not support HEAD.
* Reports broken links, redirects, warnings, skipped links, queued links, and OK links.
* Links each result back to the source post or comment for quick editing.
* Uses WordPress cron and small configurable batches to reduce CPU, memory, bandwidth, and remote HTTP requests.
* Allows ignored domains for paid APIs, staging sites, rate-limited hosts, or services that should not be checked.
* Adds a top-level URL Scanner admin menu with Dashboard, Links, and Settings screens.
* Supports quick actions for recheck, ignore, mark not broken, update URL, apply redirect URL, and unlink where source content can be safely changed.
* Supports dashboard notices and daily email summaries when broken links exist.
* Stores results in one custom WordPress table and cleans up fully on uninstall.

This plugin is original software by anonymoustech. It is not affiliated with, endorsed by, or copied from WPMU DEV or any other URL scanning plugin.

== Installation ==

1. Upload the `anonindo-broken-url-scanner` folder to `/wp-content/plugins/`.
2. Activate "Anonindo Broken URL Scanner" from the WordPress Plugins screen.
3. Go to URL Scanner in the WordPress admin menu.
4. Choose your post types and batch settings.
5. Click "Start Full Scan".

== Frequently Asked Questions ==

= Does it use paid credits or an external API? =

No. Checks run locally through the WordPress HTTP API.

= Why are checks batched? =

Small batches help avoid timeouts, high CPU usage, excessive memory usage, and remote rate limits. You can tune the content and HTTP batch sizes from the settings screen.

= Why are 401, 403, 408, and 429 marked as warnings? =

Those responses can mean access is blocked, rate-limited, or authentication is required. They are worth reviewing but are not always truly broken.

= Does uninstall remove data? =

Yes. Uninstall removes the plugin table, scan state, settings, and DB version option.

== Changelog ==

= 1.0.0 =
* Initial WordPress-ready release.
