{"id":370698,"date":"2026-09-22T00:53:17","date_gmt":"2026-09-22T00:53:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/crawlcompass\/"},"modified":"2026-09-22T00:52:56","modified_gmt":"2026-09-22T00:52:56","slug":"site-diagnostics-and-redirects","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/site-diagnostics-and-redirects\/","author":23551521,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.5.4","stable_tag":"2.5.4","tested":"7.1.2","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"Site Diagnostics and Redirects","header_author":"BostonDeveloper","header_description":"Crawl diagnostics and redirect governance: loopback crawl for broken\/orphan pages, regex redirects with hit telemetry, a live 404 monitor with one-click fixes, permalink-change auto-redirects, and CSV import\/export.","assets_banners_color":"","last_updated":"2026-09-22 00:52:56","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":40,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.5.4":{"tag":"2.5.4","author":"bostondeveloper","date":"2026-09-22 00:52:56","revision":3706465}},"upgrade_notice":[],"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.5.4"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[14279,12510,14280,727,186],"plugin_category":[55],"plugin_contributors":[280634],"plugin_business_model":[],"class_list":["post-370698","plugin","type-plugin","status-publish","hentry","plugin_tags-broken-links","plugin_tags-crawl","plugin_tags-link-checker","plugin_tags-redirect","plugin_tags-seo","plugin_category-seo-and-marketing","plugin_contributors-bostondeveloper","plugin_committers-bostondeveloper"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/site-diagnostics-and-redirects.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Site Diagnostics and Redirects watches two things other plugins treat separately: your redirects and your crawl health. Everything in this package works out of the box - there are no locked features, no trial periods, and no required external accounts.<\/p>\n\n<ul>\n<li>Redirect governance: stores redirect rules, then analyzes them for conflicts (duplicate sources), loops (A-&gt;B-&gt;A), chains (3+ hops, with hop count and final target), and invalid rules (missing slash, self-redirect, bad status code). One click collapses every chain so each source points straight at its final target. Conflicted sources are excluded from analysis until you resolve them.<\/li>\n<li>Crawl diagnostics: on demand, loopback-crawls your published posts and pages, builds a status histogram, and lists broken URLs (4xx\/5xx), orphan pages (no internal link points to them), and redirecting URLs.<\/li>\n<li>Redirects actually serve on the front end, after chain collapse, so a chain never costs your visitors extra hops.<\/li>\n<li>Regex redirects: mark any rule as a regular expression and use $1-style backreferences in the target, so one rule can move an entire section (e.g. \/blog\/(\\d+) -&gt; \/posts\/$1).<\/li>\n<li>Hit telemetry: every rule shows its hit count and last-hit date, so stale rules are easy to retire.<\/li>\n<li>404 monitor: every miss is logged with referrer, count, and last-seen, and each row has a one-click \"redirect it\" action.<\/li>\n<li>404 pattern suggestions: groups similar 404s into one regex rule you can apply with a click.<\/li>\n<li>Permalink guard: rename a published post or page and the plugin automatically adds a 301 from the old URL.<\/li>\n<li>Scheduled crawl: a weekly or daily WP-Cron crawl compares against the previous run and raises a dashboard notice (and optional email to a recipient you choose) when NEW broken URLs appear.<\/li>\n<li>External link checks: bounded, cached HEAD checks on the outbound links found in your latest crawl (up to 20 per run).<\/li>\n<li>Import\/export: Redirection-compatible CSV plus JSON, both ways, with a diff preview before any import is written.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code> or install through the Plugins screen.<\/li>\n<li>Activate Site Diagnostics and Redirects.<\/li>\n<li>Open Site Diagnostics and Redirects in the admin sidebar.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20crawl%20external%20sites%3F\"><h3>Does it crawl external sites?<\/h3><\/dt>\n<dd><p>No. It loopback-crawls your own published content, which is the crawl you are responsible for. The external link check only HEAD-requests the outbound URLs already found on your own pages.<\/p><\/dd>\n<dt id=\"is%20any%20feature%20locked%20behind%20an%20account%20or%20license%3F\"><h3>Is any feature locked behind an account or license?<\/h3><\/dt>\n<dd><p>No. Every feature in this package is fully unlocked.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20a%20conflicted%20redirect%3F\"><h3>What happens to a conflicted redirect?<\/h3><\/dt>\n<dd><p>Both copies are flagged and the pair is excluded from chain\/loop analysis until you delete one.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.5.4<\/h4>\n\n<ul>\n<li>Renamed to Site Diagnostics and Redirects per the wordpress.org review (new slug and text domain site-diagnostics-and-redirects).<\/li>\n<\/ul>\n\n<h4>2.5.3<\/h4>\n\n<ul>\n<li>Renamed to BostonDeveloper SEO Crawl Compass (new slug and text domain).<\/li>\n<li>Every included local feature is now fully unlocked: daily crawl cadence, custom alert recipient, import diff preview, 404 pattern suggestions, and external link checks all work out of the box.<\/li>\n<li>Screen styles moved out of inline markup into an enqueued stylesheet.<\/li>\n<li>Import textarea input is sanitized before parsing.<\/li>\n<li>Unique prefixes (crawlcompass_) on all hooks, functions, and classes.<\/li>\n<li>Requires PHP 8.0.<\/li>\n<\/ul>\n\n<h4>2.4.0<\/h4>\n\n<ul>\n<li>Regex redirects with $1-style backreferences, validated on save.<\/li>\n<li>Hit telemetry per rule (hits + last hit) in the rules table.<\/li>\n<li>404 monitor with referrer\/count\/last-seen and one-click redirect creation.<\/li>\n<li>Automatic old-&gt;new 301 when a published slug changes.<\/li>\n<li>Weekly scheduled crawl with new-broken-URL dashboard notice and optional admin email.<\/li>\n<li>CSV (Redirection-compatible) and JSON import\/export.<\/li>\n<li>Subdirectory-install safe matching; Plugin Check clean; tested on WordPress 7.1.<\/li>\n<\/ul>\n\n<h4>2.3.1<\/h4>\n\n<ul>\n<li>Redirect governance: conflict, loop, chain, and invalid-rule analysis; one-click chain collapse.<\/li>\n<li>Crawl diagnostics: status histogram, broken\/orphan\/redirecting reports.<\/li>\n<li>Front-end redirect serving with collapsed chains.<\/li>\n<\/ul>","raw_excerpt":"Crawl diagnostics, regex redirects with hit tracking, a 404 monitor with one-click fixes, auto-redirects on permalink changes, and CSV import\/export.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/370698","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=370698"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/bostondeveloper"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=370698"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=370698"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=370698"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=370698"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=370698"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=370698"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}