{"id":349510,"date":"2026-08-15T00:24:17","date_gmt":"2026-08-15T00:24:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/indexsweep\/"},"modified":"2026-08-15T00:23:50","modified_gmt":"2026-08-15T00:23:50","slug":"indexsweep","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/indexsweep\/","author":23543165,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.1","stable_tag":"0.1.1","tested":"7.0.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"IndexSweep","header_author":"Cuyava","header_description":"Find the junk URLs wasting your crawl budget, fix them in one click with full rollback, and catch decaying content before it costs you rankings.","assets_banners_color":"296058","last_updated":"2026-08-15 00:23:50","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/cuyava.com\/indexsweep","header_author_uri":"https:\/\/cuyava.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":41,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.1":{"tag":"0.1.1","author":"cuyava","date":"2026-08-15 00:23:50"}},"upgrade_notice":{"0.1.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3648070,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3648070,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3648070,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3648070,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3648070,"resolution":"1","location":"assets","locale":"","width":1440,"height":960},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3648070,"resolution":"2","location":"assets","locale":"","width":1440,"height":1207},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3648070,"resolution":"3","location":"assets","locale":"","width":1440,"height":1666}},"screenshots":{"1":"Audit tab \u2014 configuration scan and content-link scan showing junk sources the site exposes.","2":"GSC Import tab \u2014 a Search Console export classified against the pattern library, with recommended actions.","3":"Rules &amp; Log tab \u2014 one-click pattern fixes, active reversible rules with hit counts, and the change log."}},"plugin_section":[],"plugin_tags":[209544,6364,727,127115,186],"plugin_category":[55],"plugin_contributors":[275768],"plugin_business_model":[],"class_list":["post-349510","plugin","type-plugin","status-publish","hentry","plugin_tags-crawl-budget","plugin_tags-noindex","plugin_tags-redirect","plugin_tags-search-console","plugin_tags-seo","plugin_category-seo-and-marketing","plugin_contributors-cuyava","plugin_committers-cuyava"],"banners":{"banner":"https:\/\/ps.w.org\/indexsweep\/assets\/banner-772x250.png?rev=3648070","banner_2x":"https:\/\/ps.w.org\/indexsweep\/assets\/banner-1544x500.png?rev=3648070","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/indexsweep\/assets\/icon-128x128.png?rev=3648070","icon_2x":"https:\/\/ps.w.org\/indexsweep\/assets\/icon-256x256.png?rev=3648070","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/indexsweep\/assets\/screenshot-1.png?rev=3648070","caption":"Audit tab \u2014 configuration scan and content-link scan showing junk sources the site exposes."},{"src":"https:\/\/ps.w.org\/indexsweep\/assets\/screenshot-2.png?rev=3648070","caption":"GSC Import tab \u2014 a Search Console export classified against the pattern library, with recommended actions."},{"src":"https:\/\/ps.w.org\/indexsweep\/assets\/screenshot-3.png?rev=3648070","caption":"Rules &amp; Log tab \u2014 one-click pattern fixes, active reversible rules with hit counts, and the change log."}],"raw_content":"<!--section=description-->\n<p>Your Google Search Console \"Page indexing\" report is full of URLs that were crawled but not indexed \u2014 and most of them are junk your site never meant to publish: feed URLs, parameter variants, malformed-link artifacts, leftover ad-tech and redirect-plugin endpoints.<\/p>\n\n<p>Your SEO plugin shows you index status. <strong>IndexSweep fixes it<\/strong>:<\/p>\n\n<ul>\n<li><strong>Audit<\/strong> \u2014 a configuration scan of the junk sources your site exposes right now, plus a content-link scan that finds the <em>sources<\/em> of junk URLs (like malformed relative links minting ghost pages) inside your posts.<\/li>\n<li><strong>GSC Import<\/strong> \u2014 upload your Search Console export; every URL is classified against a pattern library of real-world junk, with a plain-English explanation and a recommended action. Nothing leaves your server.<\/li>\n<li><strong>One-click fixes<\/strong> \u2014 apply reversible rules: 410 Gone, X-Robots-Tag noindex, or clean-URL redirects. No .htaccess edits, no file changes.<\/li>\n<li><strong>Full rollback<\/strong> \u2014 every rule is one click to remove; every change is logged with hit counts.<\/li>\n<\/ul>\n\n<p><strong>Safety first.<\/strong> A resolvable page can never be served a 410 \u2014 every destructive rule passes a safety check against your real permalinks, pagination, and archives before it acts. IndexSweep also respects your SEO plugin (Yoast, Rank Math, All in One SEO) \u2014 it never duplicates or overrides their settings.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate through the WordPress plugins screen, or upload the <code>indexsweep<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Go to <strong>Tools \u2192 IndexSweep<\/strong>.<\/li>\n<li>Run the configuration audit, then export your \"Page indexing\" report from Google Search Console (Indexing \u2192 Pages \u2192 open a reason \u2192 Export) and upload the CSV in the <strong>GSC Import<\/strong> tab.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"will%20this%20break%20my%20site%3F\"><h3>Will this break my site?<\/h3><\/dt>\n<dd><p>Every fix is a reversible request-time rule with a full change log. A safety check prevents 410s on any URL that resolves to real content \u2014 posts, pages, pagination, date and term archives. Nothing edits your files.<\/p><\/dd>\n<dt id=\"do%20i%20need%20a%20google%20account%20or%20api%20access%3F\"><h3>Do I need a Google account or API access?<\/h3><\/dt>\n<dd><p>No. IndexSweep works entirely from the CSV export you download from Search Console yourself. No OAuth, no API keys, no Google connection.<\/p><\/dd>\n<dt id=\"does%20this%20send%20my%20data%20anywhere%3F\"><h3>Does this send my data anywhere?<\/h3><\/dt>\n<dd><p>No. CSV analysis happens entirely on your server. IndexSweep makes no external requests at all.<\/p><\/dd>\n<dt id=\"what%20if%20i%20have%20yoast%20%2F%20rank%20math%20%2F%20all%20in%20one%20seo%3F\"><h3>What if I have Yoast \/ Rank Math \/ All in One SEO?<\/h3><\/dt>\n<dd><p>Keep it. IndexSweep detects your SEO plugin and stays out of its way \u2014 it only handles junk-URL remediation, which SEO plugins don't do.<\/p><\/dd>\n<dt id=\"how%20do%20i%20undo%20a%20fix%3F\"><h3>How do I undo a fix?<\/h3><\/dt>\n<dd><p>Tools \u2192 IndexSweep \u2192 Rules &amp; Log \u2192 Roll back. The rule is removed immediately; the change log entry is kept for your records.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.1<\/h4>\n\n<ul>\n<li>The 410 response now uses the native WordPress error page (wp_die) instead of a custom HTML template, and the filterable message is escaped on output.<\/li>\n<li>Admin styles and the select-all script are now static files loaded with wp_enqueue_style\/wp_enqueue_script (no inline style or script attributes).<\/li>\n<li>Fixed: a clean-URL redirect for a malformed \"\/\/post-slug\/\" URL now resolves to the canonical article instead of the site home page.<\/li>\n<li>The affiliate\/redirect-endpoints pattern is now clearly marked advisory: its paths (\/go\/, \/refer\/, \/recommends\/) can also be real pages, so it is offered as a robots.txt suggestion instead of a site-wide rule that could noindex live content.<\/li>\n<li>Fixed: fixing a link now unwraps only the reported anchor, even when the same link appears more than once in the post.<\/li>\n<li>Fixed: array-style query parameters (?filter[]=red) survive a clean-URL redirect instead of being emptied.<\/li>\n<li>Fixed: \"Restore original link\" is now refused after a link has already been restored, preventing a rare content-corruption case.<\/li>\n<li>Safety: deep single-post pagination (\/slug\/100\/) is now protected from the numeric-suffix redirect; the hit counter only counts requests a rule actually acts on.<\/li>\n<li>Fixed: fixing or restoring a link no longer strips literal backslashes from the rest of the post (code snippets, Windows paths).<\/li>\n<li>Fixed: an inapplicable rule no longer stops later rules from acting on the same request, while any rule vetoed by a safety check still shields the page from all remaining rules.<\/li>\n<li>Safety: term-archive protection now works regardless of language\/term filters and matches non-ASCII archive slugs in either encoded or decoded form.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release: configuration audit, content-link scan, GSC CSV analyzer with junk-pattern library, reversible fix engine (410 \/ noindex \/ clean redirect), hit counting, change log with one-click rollback.<\/li>\n<\/ul>","raw_excerpt":"Find the junk URLs wasting your crawl budget, fix them in one click, roll back anything. The fixer for &quot;Crawled - currently not indexed&quot;.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/349510","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=349510"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/cuyava"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=349510"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=349510"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=349510"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=349510"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=349510"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=349510"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}