{"id":399046,"date":"2026-11-10T18:16:22","date_gmt":"2026-11-10T18:16:22","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/404-seo-guardian\/"},"modified":"2026-11-10T18:15:49","modified_gmt":"2026-11-10T18:15:49","slug":"digsil-404-seo-guardian","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/digsil-404-seo-guardian\/","author":23599447,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.3","stable_tag":"1.1.3","tested":"7.1.4","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Digsil 404 SEO Guardian","header_author":"Murad Ali Shah","header_description":"Detects 404 URLs (including deleted articles), suggests the SEO-safe fix (301 to the same\/related article or 410 Gone) following Google Search Central guidance, and applies it with one click.","last_updated":"2026-11-10 18:15:49","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/digsil.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":66,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.3":{"tag":"1.1.3","author":"digsil","date":"2026-11-10 18:15:49","revision":3795006}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3795503,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3795503,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3795503,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3795503,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.3"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[932,905,14279,727,186],"plugin_category":[55],"plugin_contributors":[291908],"plugin_business_model":[],"class_list":["post-399046","plugin","type-plugin","status-publish","hentry","plugin_tags-932","plugin_tags-905","plugin_tags-broken-links","plugin_tags-redirect","plugin_tags-seo","plugin_category-seo-and-marketing","plugin_contributors-digsil","plugin_committers-digsil"],"banners":{"banner":"https:\/\/ps.w.org\/digsil-404-seo-guardian\/assets\/banner-772x250.png?rev=3795503","banner_2x":"https:\/\/ps.w.org\/digsil-404-seo-guardian\/assets\/banner-1544x500.png?rev=3795503","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/digsil-404-seo-guardian\/assets\/icon-128x128.png?rev=3795503","icon_2x":"https:\/\/ps.w.org\/digsil-404-seo-guardian\/assets\/icon-256x256.png?rev=3795503","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Digsil 404 SEO Guardian is more than a redirect manager. It is a decision assistant for broken URLs: it separates the few 404s that matter from the noise, and for each one it recommends the response Google's documentation calls correct, a 301 to an equivalent page or a 410 Gone.<\/p>\n\n<p>A typical 404 log is mostly junk: code fragments, missing script files, scanner probes. A typical fix is a blanket redirect to the homepage, which Google treats as a soft 404. This plugin is built to avoid both.<\/p>\n\n<h4>How it is different<\/h4>\n\n<ul>\n<li><strong>Junk is classified, not just logged.<\/strong> Each new 404 is checked against 19 patterns (code fragments, CSS selectors, minified-JS tokens, MIME types, script\/style\/font files, scanner probes, relative-link garbage under real posts and more). Junk goes to its own list with the reason shown, so real broken pages are not buried.<\/li>\n<li><strong>Real pages are ranked by evidence.<\/strong> URLs that look like articles are listed first, ranked by signals: a deleted article, Googlebot hits, links from other sites.<\/li>\n<li><strong>Deleted articles are caught before anyone hits them.<\/strong> When you trash, delete or unpublish a published post, its live URL is recorded at that moment, with its title, so you can decide what happens to it before Google or a visitor reaches a 404.<\/li>\n<li><strong>Each URL gets a recommendation, not just a text box.<\/strong> One click on \"Redirect\" shows the same article at a new URL (same slug or a slug WordPress remembers as renamed), related articles and topic archives with a match score, or \"410 Gone\" when nothing equivalent exists.<\/li>\n<li><strong>Targets are proven before a rule is saved.<\/strong> The target is checked with WordPress itself (posts, pages, custom post types, terms, authors, archives) and stored in its canonical form, so there are no redirects to missing pages and no trailing-slash chains.<\/li>\n<li><strong>A working page can never be hijacked.<\/strong> Rules only act on URLs that currently return 404, and targets must be on your own site.<\/li>\n<\/ul>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>404 log with a hit counter, a Googlebot hit counter and the referring page (no IP addresses, no user agents stored).<\/li>\n<li>Filters for likely real, other open, fixed, ignored and junk URLs, with search and sorting.<\/li>\n<li>Redirect loops are blocked and existing chains are flattened when a new rule is added.<\/li>\n<li>Homepage redirects are possible but need explicit confirmation.<\/li>\n<li>Manual redirect rules (301, 302, 410) in a separate Redirects screen.<\/li>\n<li>\"SEO Guide\" screen with the decision rules and links to Google Search Central.<\/li>\n<li>Modern admin interface with light, dark and automatic theme, fully responsive and keyboard accessible.<\/li>\n<li>Search Console import: upload the \"Not found (404)\" CSV from Google Search Console (nothing is connected to Google; the file is parsed in memory) so URLs Google already knows are broken rank first. A live check asks your own site what each URL returns now.<\/li>\n<li>Redirect health check: finds loops, chains, redirects to removed pages, homepage targets and rules that no longer run. One-click fixes; a local-only check also runs weekly.<\/li>\n<li>Export for server or CDN: nginx map rules, Apache RedirectMatch lines or a Cloudflare Bulk Redirects CSV. Entries that cannot be written safely are skipped, never guessed.<\/li>\n<li>Impact report: daily counters of served redirects and 410 responses for the last 30 days (no visitor data).<\/li>\n<li>Notice right after you trash or unpublish an article, with a direct link to choose its redirect.<\/li>\n<li>Automatic log retention cleanup and row caps that protect your database from scanner floods.<\/li>\n<\/ul>\n\n<h4>Privacy<\/h4>\n\n<p>The plugin stores the path of URLs that return 404, hit counters, daily redirect counters (kept for 90 days) and, optionally, the referring page without its query string. If you import a Search Console CSV, the URL paths, click and impression counts and last-crawl dates from that file are stored; the file itself is not kept. It does not store IP addresses, user agents or cookies, and it does not contact any external service (the live check only sends a request to your own site). A suggested text is added to Settings &gt; Privacy.<\/p>\n\n<h4>Security<\/h4>\n\n<p>Capability checks (manage_options) and nonces on every action, prepared SQL statements, escaped output, sanitized input, same-host redirect targets, log size caps and automatic retention cleanup.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin through Plugins &gt; Add New &gt; Upload Plugin, or install it from the plugin directory.<\/li>\n<li>Activate it from the Plugins screen.<\/li>\n<li>Go to Tools &gt; Digsil 404 SEO Guardian. New 404s appear automatically as visitors and search engines hit them.<\/li>\n<li>Click \"Redirect\" next to a broken URL and apply the suggested fix.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"should%20i%20redirect%20every%20404%20to%20my%20homepage%3F\"><h3>Should I redirect every 404 to my homepage?<\/h3><\/dt>\n<dd><p>No. Google treats irrelevant homepage redirects as soft 404s and passes no ranking signals. Redirect only to the same or a closely related page; otherwise let the URL return 410 Gone. The plugin follows this rule by default.<\/p><\/dd>\n<dt id=\"why%20are%20so%20many%20of%20my%20404s%20listed%20as%20%22junk%22%3F\"><h3>Why are so many of my 404s listed as \"Junk\"?<\/h3><\/dt>\n<dd><p>Bots and broken scripts request many URLs that never existed (code fragments, missing .js files, scanner probes). Google says these 404s are normal and need no fix. If a real section of your site is filtered by mistake, add it under Settings &gt; \"Never treat as junk\".<\/p><\/dd>\n<dt id=\"can%20a%20redirect%20rule%20take%20over%20a%20page%20that%20works%3F\"><h3>Can a redirect rule take over a page that works?<\/h3><\/dt>\n<dd><p>No. Rules are only applied when the requested URL returns 404. If you publish a page at that address again, the page wins.<\/p><\/dd>\n<dt id=\"does%20it%20slow%20down%20my%20site%3F\"><h3>Does it slow down my site?<\/h3><\/dt>\n<dd><p>The plugin only runs extra code on requests that already return 404, plus one lightweight check when a post is trashed or deleted. Normal page views are not affected.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20data%20when%20i%20delete%20the%20plugin%3F\"><h3>What happens to my data when I delete the plugin?<\/h3><\/dt>\n<dd><p>By default the log and redirect rules are kept, so reinstalling does not lose your redirects. Enable \"Delete all plugin data on uninstall\" in Settings to remove everything.<\/p><\/dd>\n<dt id=\"does%20it%20work%20on%20multisite%3F\"><h3>Does it work on multisite?<\/h3><\/dt>\n<dd><p>Yes. Each site has its own log, rules and settings.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>Renamed to \"Digsil 404 SEO Guardian\" (slug digsil-404-seo-guardian) so the name is distinctive. No change in behavior or data.<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>New: Search Console CSV import with live verification against your own site.<\/li>\n<li>New: Redirect health check (loops, chains, dead targets, homepage targets) with one-click fixes and a weekly local check.<\/li>\n<li>New: export of redirect rules for nginx, Apache and Cloudflare Bulk Redirects.<\/li>\n<li>New: 30-day impact report and a notice with a direct redirect link right after an article is removed.<\/li>\n<li>Fix: a 410 rule is no longer overridden by WordPress core's \"guess a similar post\" redirect.<\/li>\n<li>Fix: the Search Console live check no longer removes URLs that answer 200 without a real WordPress page (soft 404) or that redirect to the homepage.<\/li>\n<li>Fix: URLs containing an encoded # or ? are checked at the correct address.<\/li>\n<li>Fix: a large Search Console import stops before PHP's time limit and can be continued by importing the same file again.<\/li>\n<li>Fix: \"Point to final page\" never creates a homepage redirect without confirmation.<\/li>\n<li>Database upgrade (version 3) runs automatically: new columns on the log table and a small statistics table.<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Plugin author is now listed as Murad Ali Shah.<\/li>\n<li>Readme: new \"How it is different\" section describing the junk classifier, evidence ranking, deleted-article capture, recommendations and target verification.<\/li>\n<li>No change to code behavior.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Plugin Check: the 404 log query now uses fixed SQL text; filter, search and sort values are passed only as placeholders.<\/li>\n<li>Plugin Check: removed suppress_filters from the same-slug lookup.<\/li>\n<li>Plugin Check: nonce note for the read-only Redirects page number.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Tested with WordPress 7.1. Requires WordPress 6.2 or newer.<\/li>\n<li>Text domain changed to digsil-404-seo-guardian to match the plugin slug.<\/li>\n<li>Security hardening: identifier placeholders in all SQL queries, explicit nonce and capability checks in every handler, SVG icons passed through wp_kses, theme script printed with wp_print_inline_script_tag().<\/li>\n<li>The self-check request for redirect targets now always verifies SSL.<\/li>\n<li>Fix: a deleted article whose URL already had a redirect rule was shown as \"open\" instead of \"fixed\".<\/li>\n<li>Fix: on multisite, uninstall now removes the data of every site that opted in.<\/li>\n<li>Redirect type labels are now translatable.<\/li>\n<li>Readme: installation steps and FAQ.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Redesigned admin interface in a modern SaaS style: app shell with header and tabs, KPI cards, filter segments, signal badges, slide-over \"Fix this broken URL\" drawer, toasts, empty states.<\/li>\n<li>Light, dark and automatic theme (no flash on load); fully responsive down to phone width; RTL-safe; keyboard focus rings, focus trap in the drawer and reduced-motion support.<\/li>\n<li>No change to redirect, logging or security behavior.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>New: junk filter. Code fragments, CSS selectors, minified-JS tokens, MIME types, script\/style\/font files, scanner probes and relative-link garbage are moved to a separate \"Junk\" list. URLs that look like real pages (\"Likely real\") are shown first, ranked by signals (deleted article, Googlebot, linked from elsewhere).<\/li>\n<li>New: \"Not junk\" button, allow-list setting, \"indexed?\" Google check link per URL.<\/li>\n<li>Fix: a redirect to a target that does not exist could be saved when the server blocked the plugin's self-check (firewall \/ Cloudflare). Targets are now proven with WordPress itself (posts, pages, custom post types, categories, tags, authors, archives); if that is impossible the redirect is refused unless \"Skip verification\" is ticked.<\/li>\n<li>Fix: targets are stored in their canonical form, so visitors never hit a second trailing-slash redirect.<\/li>\n<li>Database upgrade runs automatically and classifies existing log rows.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fix: redirect chains are now really flattened (trailing-slash mismatch).<\/li>\n<li>Fix: targets with a query string (e.g. \/?p=12) were treated as the homepage; plain-permalink sites are now supported (404s logged, rules matched).<\/li>\n<li>Fix: the plugin's own target-verification request no longer creates a fake 404 log entry.<\/li>\n<li>Improve: drafts \/ private \/ pending (unpublished) articles and direct status changes are now remembered, not only trashing.<\/li>\n<li>Harden: admin JS only offers preview links on exactly the site's own origin.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Find 404 URLs, including deleted articles, and fix them the way Google recommends: a 301 to the same or a related article, or 410 Gone.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/399046","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=399046"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/digsil"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=399046"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=399046"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=399046"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=399046"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=399046"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=399046"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}