{"id":280163,"date":"2026-03-05T13:06:19","date_gmt":"2026-03-05T13:06:19","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/content-pruning\/"},"modified":"2026-03-18T16:13:22","modified_gmt":"2026-03-18T16:13:22","slug":"rc2i-content-pruning","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/rc2i-content-pruning\/","author":23267004,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.9","stable_tag":"1.0.9","tested":"6.9.4","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"Rc2i Content Pruning","header_author":"Baptiste REY - Rc2i.net","header_description":"Complete content pruning and optimization tool for WordPress. Analyze page traffic, identify underperforming content, manage outbound and internal links, check broken links, and make informed decisions to improve your SEO.","assets_banners_color":"9b89c4","last_updated":"2026-03-18 16:13:22","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/rc2i.net\/","header_plugin_uri":"https:\/\/seopilote.fr\/addons","header_author_uri":"https:\/\/rc2i.net\/","rating":0,"author_block_rating":0,"active_installs":100,"downloads":579,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.8":{"tag":"1.0.8","author":"baptisterey","date":"2026-03-18 15:52:47"},"1.0.9":{"tag":"1.0.9","author":"baptisterey","date":"2026-03-18 16:13:22"}},"upgrade_notice":{"1.0.9":"<p>New Content Pruning tab to identify pages with zero traffic, with incoming\/outgoing\/external link analysis and orphan page detection. Meta fields exclusion\/cleanup in Settings. Bug fix for internal links.<\/p>","1.0.8":"<p>Major update: Simplified Google connection. No Google Cloud project needed. Improved security.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3475730,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3475845,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3475845,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.8","1.0.9"],"block_files":[],"assets_screenshots":{"screenshot-1.jpeg":{"filename":"screenshot-1.jpeg","revision":3475730,"resolution":"1","location":"assets","locale":""},"screenshot-2.jpeg":{"filename":"screenshot-2.jpeg","revision":3475730,"resolution":"2","location":"assets","locale":""},"screenshot-3.jpeg":{"filename":"screenshot-3.jpeg","revision":3475730,"resolution":"3","location":"assets","locale":""},"screenshot-4.jpeg":{"filename":"screenshot-4.jpeg","revision":3475730,"resolution":"4","location":"assets","locale":""},"screenshot-5.jpeg":{"filename":"screenshot-5.jpeg","revision":3475730,"resolution":"5","location":"assets","locale":""}},"screenshots":{"1":"<strong>Outbound Links (Externes)<\/strong> \u2014 Scan all external links, check HTTP status codes, and bulk-delete broken links","2":"<strong>Internal Links (Sortants)<\/strong> \u2014 Visualize your internal linking structure and find pages with no outgoing links","3":"<strong>Incoming Links (Entrants)<\/strong> \u2014 Detect orphan pages that receive zero internal links","4":"<strong>Page Traffic<\/strong> \u2014 Google Search Console data with impressions, clicks, CTR, and keywords per page","5":"<strong>Content Pruning<\/strong> \u2014 Identify pages with zero traffic, with incoming\/outgoing\/external link counts and detail popups","6":"<strong>Settings<\/strong> \u2014 Configure domain exclusions and Google Search Console connection"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[257176,46987,6681,175,186],"plugin_category":[55],"plugin_contributors":[257177],"plugin_business_model":[],"class_list":["post-280163","plugin","type-plugin","status-publish","hentry","plugin_tags-content-pruning","plugin_tags-google-search-console","plugin_tags-internal-links","plugin_tags-links","plugin_tags-seo","plugin_category-seo-and-marketing","plugin_contributors-baptisterey","plugin_committers-baptisterey"],"banners":{"banner":"https:\/\/ps.w.org\/rc2i-content-pruning\/assets\/banner-772x250.png?rev=3475845","banner_2x":"https:\/\/ps.w.org\/rc2i-content-pruning\/assets\/banner-1544x500.png?rev=3475845","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/rc2i-content-pruning\/assets\/icon-256x256.png?rev=3475730","icon_2x":"https:\/\/ps.w.org\/rc2i-content-pruning\/assets\/icon-256x256.png?rev=3475730","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/rc2i-content-pruning\/assets\/screenshot-1.jpeg?rev=3475730","caption":"<strong>Outbound Links (Externes)<\/strong> \u2014 Scan all external links, check HTTP status codes, and bulk-delete broken links"},{"src":"https:\/\/ps.w.org\/rc2i-content-pruning\/assets\/screenshot-2.jpeg?rev=3475730","caption":"<strong>Internal Links (Sortants)<\/strong> \u2014 Visualize your internal linking structure and find pages with no outgoing links"},{"src":"https:\/\/ps.w.org\/rc2i-content-pruning\/assets\/screenshot-3.jpeg?rev=3475730","caption":"<strong>Incoming Links (Entrants)<\/strong> \u2014 Detect orphan pages that receive zero internal links"},{"src":"https:\/\/ps.w.org\/rc2i-content-pruning\/assets\/screenshot-4.jpeg?rev=3475730","caption":"<strong>Page Traffic<\/strong> \u2014 Google Search Console data with impressions, clicks, CTR, and keywords per page"},{"src":"https:\/\/ps.w.org\/rc2i-content-pruning\/assets\/screenshot-5.jpeg?rev=3475730","caption":"<strong>Content Pruning<\/strong> \u2014 Identify pages with zero traffic, with incoming\/outgoing\/external link counts and detail popups"}],"raw_content":"<!--section=description-->\n<p><strong>Rc2i Content Pruning<\/strong> is the all-in-one WordPress plugin to <strong>audit, clean up, and optimize your content for better SEO<\/strong>. Stop guessing which pages to keep, update, or remove \u2014 let the data decide.<\/p>\n\n<p><a href=\"https:\/\/seopilote.fr\/addons\">Documentation &amp; Getting Started<\/a> | <a href=\"https:\/\/wordpress.org\/support\/plugin\/rc2i-content-pruning\/\">Support<\/a> | <a href=\"https:\/\/rc2i.net\/\">Website<\/a><\/p>\n\n<h4>Why Content Pruning?<\/h4>\n\n<p>Over time, every WordPress site accumulates underperforming pages, broken links, and orphan content that drag down your SEO. Content pruning helps you:<\/p>\n\n<ul>\n<li><strong>Improve crawl budget<\/strong> \u2014 search engines focus on your best content<\/li>\n<li><strong>Boost rankings<\/strong> \u2014 removing or consolidating weak pages strengthens your domain<\/li>\n<li><strong>Fix broken links<\/strong> \u2014 stop losing link juice and frustrating visitors<\/li>\n<li><strong>Strengthen internal linking<\/strong> \u2014 make sure every page is discoverable<\/li>\n<\/ul>\n\n<h4>Key Features<\/h4>\n\n<p><strong>Outbound Links Scanner (External\/Externes)<\/strong><\/p>\n\n<ul>\n<li>Automatic scan of all outbound links across your site<\/li>\n<li>HTTP status verification (200, 301, 404, 500, etc.)<\/li>\n<li>One-click bulk deletion of broken links<\/li>\n<li>Inline link editing (URL, anchor text, target, nofollow)<\/li>\n<li>Purge and full rescan<\/li>\n<li>Domain exclusion list (YouTube, social networks, etc.)<\/li>\n<li>External = links to websites outside your domain<\/li>\n<\/ul>\n\n<p><strong>Internal Links Analysis (Outgoing\/Sortants)<\/strong><\/p>\n\n<ul>\n<li>Complete map of your internal linking structure<\/li>\n<li>Detection of pages with no outgoing internal links (pages that don't distribute link juice)<\/li>\n<li>Internal link count per page with detail popup<\/li>\n<li>Outgoing = links this page sends to other pages on your site<\/li>\n<\/ul>\n\n<p><strong>Incoming Links &amp; Orphan Pages (Entrants)<\/strong><\/p>\n\n<ul>\n<li>Identify orphan pages (no internal links pointing to them)<\/li>\n<li>Incoming link statistics per page with detail popup showing source pages<\/li>\n<li>Visual page distribution chart<\/li>\n<li>Incoming = links from other pages on your site pointing to this page<\/li>\n<\/ul>\n\n<p><strong>Page Traffic (Google Search Console)<\/strong><\/p>\n\n<ul>\n<li>One-click Google Search Console integration \u2014 no Google Cloud project needed<\/li>\n<li>View impressions, clicks, CTR, and average position per page<\/li>\n<li>See Search Console keywords for each page<\/li>\n<li>Find pages with zero impressions<\/li>\n<li>Delete underperforming pages with automatic 301 redirect<\/li>\n<\/ul>\n\n<p><strong>Additional Tools<\/strong><\/p>\n\n<ul>\n<li>Article debug \u2014 detailed link analysis of any single article<\/li>\n<li>Bulk comment deletion<\/li>\n<li>301 redirect manager<\/li>\n<\/ul>\n\n<h4>Google Search Console Integration<\/h4>\n\n<p>Connect to Google Search Console in one click via secure OAuth 2.0. No Google Cloud project or API key required \u2014 the plugin handles everything for you in Simple mode. Advanced users can provide their own credentials if preferred.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to external services to retrieve traffic and search data for your website. All connections require explicit user consent through OAuth 2.0 authentication.<\/p>\n\n<h4>OAuth Relay Server<\/h4>\n\n<ul>\n<li><strong>What it is:<\/strong> A relay server operated by Rc2i (hosted at seopilote.fr) that handles Google OAuth authentication on behalf of the plugin<\/li>\n<li><strong>What it's used for:<\/strong> Securely managing the OAuth 2.0 flow so users don't need to create a Google Cloud project. The relay exchanges authorization codes for access tokens using credentials stored server-side.<\/li>\n<li><strong>Data sent:<\/strong> OAuth authorization code, exchange tokens<\/li>\n<li><strong>Data NOT sent:<\/strong> The relay never receives your Google Search Console data. All API data calls are made directly from your WordPress site to Google.<\/li>\n<li><strong>When:<\/strong> When you click \"Connect to Google\" in the plugin settings<\/li>\n<li><strong>Service URL:<\/strong> https:\/\/seopilote.fr\/<\/li>\n<li><strong>Privacy Policy:<\/strong> https:\/\/seopilote.fr\/politique-confidentialite<\/li>\n<li><strong>Terms of Service:<\/strong> https:\/\/rc2i.net\/<\/li>\n<\/ul>\n\n<h4>Google OAuth 2.0<\/h4>\n\n<ul>\n<li><strong>What it is:<\/strong> Google's authentication service<\/li>\n<li><strong>What it's used for:<\/strong> Authenticating users to access Google Search Console API<\/li>\n<li><strong>Data sent:<\/strong> Authorization code, client credentials (Client ID)<\/li>\n<li><strong>When:<\/strong> When you click \"Connect to Google\" in the plugin settings<\/li>\n<li><strong>Privacy Policy:<\/strong> https:\/\/policies.google.com\/privacy<\/li>\n<li><strong>Terms of Service:<\/strong> https:\/\/policies.google.com\/terms<\/li>\n<\/ul>\n\n<h4>Google Search Console API<\/h4>\n\n<ul>\n<li><strong>What it is:<\/strong> Google's API for accessing Search Console data<\/li>\n<li><strong>What it's used for:<\/strong> Retrieving search impressions, clicks, CTR, position data, and keywords for your pages<\/li>\n<li><strong>Data sent:<\/strong> Your website URL, date ranges for data queries<\/li>\n<li><strong>When:<\/strong> When you click \"Synchronize traffic data\" in the Traffic tab<\/li>\n<li><strong>API Documentation:<\/strong> https:\/\/developers.google.com\/webmaster-tools<\/li>\n<li><strong>Privacy Policy:<\/strong> https:\/\/policies.google.com\/privacy<\/li>\n<li><strong>Terms of Service:<\/strong> https:\/\/developers.google.com\/terms<\/li>\n<\/ul>\n\n<p><strong>Important:<\/strong> The plugin does not send any data to Google without your explicit consent and authentication. In Advanced mode, you can provide your own Google Cloud credentials instead of using the relay server.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Go to <strong>Plugins &gt; Add New<\/strong> in your WordPress dashboard<\/li>\n<li>Search for <strong>\"Rc2i Content Pruning\"<\/strong><\/li>\n<li>Click <strong>Install Now<\/strong>, then <strong>Activate<\/strong><\/li>\n<li>A new <strong>\"Content Pruning\"<\/strong> menu appears in your admin sidebar<\/li>\n<li>Start by scanning your outbound links from the first tab<\/li>\n<li>(Optional) Go to <strong>Settings<\/strong> and click <strong>\"Connect to Google\"<\/strong> to enable traffic analysis<\/li>\n<\/ol>\n\n<p>For detailed setup instructions, visit the <a href=\"https:\/\/seopilote.fr\/addons\">documentation<\/a>.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20the%20plugin%20work%20without%20google%20connection%3F\"><h3>Does the plugin work without Google connection?<\/h3><\/dt>\n<dd><p>Yes. The outbound links, internal links, and incoming links features all work without any Google configuration. The Google connection is only required for the \"Page Traffic\" tab.<\/p><\/dd>\n<dt id=\"what%20types%20of%20content%20are%20scanned%3F\"><h3>What types of content are scanned?<\/h3><\/dt>\n<dd><p>The plugin scans all published <strong>posts<\/strong> and <strong>pages<\/strong>. Content in meta fields (custom fields) is also analyzed to find links that may be rendered by your theme or page builder.<\/p><\/dd>\n<dt id=\"how%20do%20i%20exclude%20certain%20domains%20from%20the%20scan%3F\"><h3>How do I exclude certain domains from the scan?<\/h3><\/dt>\n<dd><p>Go to the <strong>Settings<\/strong> tab and add domains to the exclusion list (one per line). Common exclusions include youtube.com, facebook.com, twitter.com, linkedin.com, etc.<\/p><\/dd>\n<dt id=\"does%20deleting%20a%20page%20create%20a%20redirect%3F\"><h3>Does deleting a page create a redirect?<\/h3><\/dt>\n<dd><p>Yes. When you delete a page from the \"Page Traffic\" tab, the plugin automatically moves it to trash and creates a <strong>301 redirect<\/strong> to a URL of your choice (home page by default). This preserves any existing link equity.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20slow%20down%20my%20site%3F\"><h3>Does the plugin slow down my site?<\/h3><\/dt>\n<dd><p>No. The plugin runs <strong>exclusively in the WordPress admin area<\/strong>. It does not load any scripts, styles, or database queries on the front-end of your site. The only front-end component is the 301 redirect handler, which is extremely lightweight.<\/p><\/dd>\n<dt id=\"how%20long%20does%20the%20link%20scan%20take%3F\"><h3>How long does the link scan take?<\/h3><\/dt>\n<dd><p>It depends on the number of pages and links on your site. The scan runs in batches via AJAX to avoid timeouts. A site with 500 pages typically completes in a few minutes.<\/p><\/dd>\n<dt id=\"is%20my%20google%20data%20safe%3F\"><h3>Is my Google data safe?<\/h3><\/dt>\n<dd><p>Yes. The plugin uses OAuth 2.0 with a secure relay server. Your Google Search Console data is fetched <strong>directly<\/strong> from your WordPress site to Google \u2014 the relay server only handles authentication tokens, never your actual data. See the External Services section for full details.<\/p><\/dd>\n<dt id=\"can%20i%20use%20my%20own%20google%20api%20credentials%3F\"><h3>Can I use my own Google API credentials?<\/h3><\/dt>\n<dd><p>Yes. Switch to <strong>Advanced mode<\/strong> in the Settings tab and enter your own Client ID and Client Secret from a Google Cloud project. This bypasses the relay server entirely.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>New Content Pruning tab: dedicated view showing only pages with zero traffic (0 impressions)<\/li>\n<li>Content Pruning table includes Incoming (Entrants), Outgoing (Sortants), and External (Externes) link counts with detail popups<\/li>\n<li>Orphan page detection directly in Content Pruning tab (pages with 0 incoming links)<\/li>\n<li>Orphan pages button in Incoming Links tab for quick filtering<\/li>\n<li>Warning message recommending a minimum 90-day GSC analysis period for reliable results<\/li>\n<li>Meta fields management: exclude or permanently delete custom fields from scanning (Settings tab)<\/li>\n<li>In-tab documentation explaining link column terminology<\/li>\n<li>Fixed internal link resolution bug (wp_parse_url typo)<\/li>\n<li>Added translation support (load_plugin_textdomain)<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Simplified Google OAuth flow (no Google Cloud project needed)<\/li>\n<li>Secure OAuth relay server for credential management<\/li>\n<li>Removed Google Analytics 4 dependency (Search Console only)<\/li>\n<li>Improved security: Client Secret stored server-side only<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Improved 301 redirect management<\/li>\n<li>Minor bug fixes<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Added Incoming Links tab<\/li>\n<li>Orphan page detection<\/li>\n<li>Page distribution chart<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Search Console keywords per page<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Added HTTP status verification<\/li>\n<li>Bulk deletion of broken links<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Added internal link scanning<\/li>\n<li>Interface improvements<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Added domain exclusion<\/li>\n<li>Article debug<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Outbound link scanning<\/li>\n<li>Google Search Console integration<\/li>\n<\/ul>","raw_excerpt":"Analyze outbound &amp; internal links, detect orphan pages, find broken links, and identify low-traffic content with Google Search Console.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/280163","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=280163"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/baptisterey"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=280163"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=280163"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=280163"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=280163"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=280163"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=280163"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}