=== VVertex Link Health Monitor ===
Contributors: ahmadraza9
Tags: broken links, broken images, link checker, link monitoring, 404
Requires at least: 5.5
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.0.4
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Scan published content for broken links and images, review results in WordPress, and schedule recurring link health checks.

== Description ==

VVertex Link Health Monitor checks links and image URLs found in published WordPress content and records URLs that return an HTTP error status or cannot be reached by the site's HTTP client.

The plugin provides manual scans, batched scheduled scans, email summaries, a filterable report, CSV export, and an activity log.

= Features =

* Manual scans with progress updates in the WordPress admin.
* Batched scheduled scans using WordPress Cron.
* Link and image URL checks using the WordPress HTTP API.
* Configurable request timeout and scan batch size.
* Filterable report with HTTP status information.
* CSV export for recorded scan results.
* Optional scheduled email summaries.
* Activity logs for scan and email events.

= How scanning works =

The plugin reads published post content and extracts URLs from link (`a`) and image (`img`) elements. Relative URLs are resolved against the post URL. HTTP and HTTPS URLs are checked using WordPress safe HTTP request functions. A HEAD request is attempted first and a limited GET request is used as a fallback when needed.

A status of 400 or higher is recorded for review. A status of 0 means WordPress could not obtain an HTTP response, which can happen because of network, DNS, firewall, TLS, or remote-server restrictions. Administrators should review reported items before changing content.

= External requests and privacy =

During a scan, your WordPress site sends HTTP requests directly to the URLs already present in your published content. Those URLs may point to third-party websites. The destination server can receive normal request information such as your server IP address and the plugin user-agent string.

The plugin does not send scan results, site content, or personal data to a service operated by the plugin author.

== Installation ==

1. Upload the `ahmadraza-link-health-monitor` folder to `/wp-content/plugins/`, or install the ZIP from Plugins > Add Plugin > Upload Plugin.
2. Activate **VVertex Link Health Monitor** from the Plugins screen.
3. Open **Link Health > General** to adjust batch size and request timeout if needed.
4. Open **Link Health > Scan Report** and select **Run Scan Now**.
5. Optionally configure recurring scans under **Link Health > Automation** and email summaries under **Link Health > Email**.

== Frequently Asked Questions ==

= Does the plugin modify broken links automatically? =

No. It reports items for administrator review and does not rewrite post content.

= What does HTTP status 0 mean? =

It means WordPress did not receive a usable HTTP response. This can be caused by DNS failures, timeouts, TLS problems, firewall rules, private or unsafe URLs, or restrictions on the destination server. Review the URL manually before deciding whether it is broken.

= Can it check images? =

Yes. The scanner checks URLs found in `img` elements as well as links found in `a` elements.

= Does it disable SSL verification? =

No. The plugin relies on WordPress safe HTTP request functions and does not disable TLS certificate verification.

= How are large sites scanned? =

Manual and scheduled scans process published content in configurable batches rather than loading every post object into one scan request.

== Screenshots ==

1. General Settings for configuring scan batch size and HTTP request timeout.
2. Email Settings for configuring scheduled report notifications, delivery frequency, and test emails.
3. Broken Link Report for running scans, filtering results, reviewing HTTP status information, and exporting reports to CSV.
4. Automation Settings for scheduling recurring link health scans using WordPress Cron.
5. Scan Logs showing manual scans, automated scans, email events, and errors.

== Changelog ==

= 1.0.4 =
* Added WordPress.org plugin screenshots.
* Improved screenshot documentation in the plugin readme.

= 1.0.3 =
* Improved admin asset loading across plugin screens.
* Improved admin interface spacing and layout.


= 1.0.2 =
* Updated plugin branding to VVertex Link Health Monitor.


= 1.0.1 =
* Renamed the plugin to VVertex Link Health Monitor with a matching directory-ready slug and text domain.
* Updated internal identifiers with a unique plugin prefix.
* Moved admin JavaScript and CSS into properly enqueued files.
* Added translation functions for user-facing PHP strings.
* Added nonce and capability checks to privileged AJAX and admin actions.
* Switched arbitrary URL checks to WordPress safe HTTP functions and retained TLS verification.
* Changed scheduled scans to run in batches.
* Improved settings validation, email handling, URL resolution, and CSV export safety.

= 1.0.0 =
* Initial development version.

== Upgrade Notice ==

= 1.0.1 =
Directory review and security updates for the initial WordPress.org submission.
