=== 404Zen – Broken Link Fixer & Monitor ===
Contributors: sslzen
Tags: broken link checker, link fixer, 404 monitor, dead links, link scanner
Requires at least: 5.8
Tested up to: 7.0
Requires PHP: 7.2
Stable tag: 1.0.2
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Fast, private broken link checker that runs on your server. Find and fix dead links, 404 errors and redirect chains. No cloud. No account.

== Description ==

**404Zen is a fast, private broken link checker — it runs on your server, respects your server, and never sends your data anywhere.**

Broken links frustrate visitors and hurt your SEO. 404Zen scans every post and page for dead links, 404 errors, broken images and redirect chains, then lets you fix each one in seconds — without opening the post editor.

= No cloud. No account. =

All scanning happens on your own server. There is no scanning service, no account signup, no API key and no usage limits. Your content and your link data never leave your site.

= Built to be light on your server =

The #1 complaint about broken link checkers is server load. 404Zen was designed around that problem:

* Links are checked in **small background batches** (50 URLs per run by default) via WP-Cron.
* 404Zen **watches your server load** and automatically pauses scanning when the server is busy.
* It pauses between every request, uses lightweight HEAD requests where possible, and stops each run after a strict time budget.
* **Pick your scan frequency** — hourly, twice daily, daily or weekly.
* Batch size, request timeout and the load threshold are all configurable.

= Find problems =

* **404s and dead links** — internal and external
* **Broken images** — missing files and dead hotlinks
* **Timeouts and unreachable hosts**
* **Redirect chains** — links that bounce through 2+ redirects before landing

= Fix them in seconds =

From one sortable dashboard you can:

* **Edit a URL inline** — the post content is updated for you
* **Unlink** — remove the link but keep the anchor text
* **Dismiss** — ignore false positives permanently
* **Recheck** — verify a fix immediately
* Use **bulk actions** to process many links at once

= Stay informed =

A **weekly email digest** (toggleable) summarizes newly found broken links, so you hear about problems even when you are not in the dashboard.

= 404Zen Pro =

Need more? 404Zen Pro adds:

* **Auto-redirect rules** — send visitors from a broken URL to a working page automatically (301/302, applied only to requests that would 404)
* **CSV export** of all scan results
* **Multisite support**

= Why 404Zen? =

* **Fast** — batched, deduplicated URL checking; each URL is checked once per cycle no matter how many posts link to it.
* **Private** — a link scanner that needs a cloud account is a link scanner that ships your content off-site. 404Zen doesn't.
* **Respectful** — scanning throttles itself and never competes with your visitors.

== External services ==

404Zen makes two kinds of outbound HTTP requests, and nothing else:

**1. Checking your own links.** During a scan, your server requests each URL found in your content (via the WordPress HTTP API) to see whether it still works. These requests go to whatever sites your posts link to; they carry no personal data — only the URL being checked and a User-Agent header identifying the plugin and your site. This is the plugin's core function and only happens when scans run.

**2. Freemius (licensing and checkout).** The plugin bundles the [Freemius](https://freemius.com) SDK, used solely for licensing, checkout and license management if you choose to upgrade to Pro. It runs in anonymous mode: no data is transmitted to Freemius on activation or during normal use — a connection is only made when you interact with the upgrade, checkout or license screens. See the [Freemius Terms of Service](https://freemius.com/terms/) and [Freemius Privacy Policy](https://freemius.com/privacy/).

== Installation ==

1. Install and activate 404Zen through the Plugins screen, or upload the ZIP via Plugins → Add New → Upload.
2. The first scan starts automatically in the background within a few minutes.
3. Visit **404Zen** in your admin menu to see results, or click **Scan now** to start immediately.
4. Adjust batch size, exclusions and the email digest under **404Zen → Settings**.

== Frequently Asked Questions ==

= Does 404Zen send my data to a third-party service? =

There is no account to create and no scanning service — all link checking runs on your own server using the WordPress HTTP API. The bundled Freemius SDK (used for Pro licensing and checkout) sends nothing unless you interact with the upgrade, checkout or license screens. See the External services section for details.

= Will it slow down my site? =

No. Checks run in small background batches via WP-Cron, pause between requests, and stop after a short time budget. 404Zen also monitors your server's load average and skips its run entirely while the server is busy.

= What counts as a broken link? =

HTTP status 400 and above (404, 410, 500, …), connection failures, DNS errors and timeouts. Links that pass through two or more redirects are flagged separately as redirect chains.

= Does it check images? =

Yes. Image sources (`<img src>`) are checked the same way as links. You can turn this off in Settings.

= Can I exclude certain URLs or post types? =

Yes. Settings lets you exclude any post type and any URL pattern (simple substring match, one per line).

= How do I fix a broken link? =

Right from the dashboard: edit the URL inline, unlink it (keeping the text), or dismiss it if it is a false positive. You never have to open the post editor.

= Does it work with WP-Cron disabled? =

If you have disabled WP-Cron and use a real cron job that calls `wp-cron.php`, 404Zen works normally. Without any cron at all, scans run opportunistically on page visits like every WP-Cron task.

= Is 404Zen compatible with multisite? =

The free version works on individual sites of a network. Network-wide management is part of 404Zen Pro.

== Screenshots ==

1. The broken links dashboard — every issue in one sortable table with inline fix actions.
2. Inline URL editing — fix a broken link without opening the post editor.
3. A scan in progress — stat cards update live as background batches complete.
4. Settings: scan frequency, batch size and what to check, with exclusions.
5. Server protection (load-aware pausing, timeouts) and the weekly email digest.
6. 404Zen Pro: auto-redirects, CSV export and multisite.

== Changelog ==

= 1.0.2 =
* Prefixed the admin menu slug (`404zen` → `lgbf-404zen`) so it no longer collides with generic global identifiers.

= 1.0.1 =
* Renamed to 404Zen – Broken Link Fixer & Monitor.
* Scan frequency (hourly, twice daily, daily, weekly) is now available to everyone.
* Added an External services disclosure to this readme.

= 1.0.0 =
* Initial release: background link scanner, broken links dashboard with inline fixes, weekly email digest.

== Upgrade Notice ==

= 1.0.2 =
Internal admin menu slug is now prefixed for WordPress.org compliance.

= 1.0.1 =
Plugin renamed to 404Zen; scan frequency now free for all installs.

= 1.0.0 =
Initial release.
