{"id":360253,"date":"2026-09-02T13:32:17","date_gmt":"2026-09-02T13:32:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/usageray\/"},"modified":"2026-09-03T21:55:26","modified_gmt":"2026-09-03T21:55:26","slug":"usageray","status":"publish","type":"plugin","link":"https:\/\/sq.wordpress.org\/plugins\/usageray\/","author":23556479,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.2.0","stable_tag":"0.2.0","tested":"7.1","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"UsageRay","header_author":"Dagemawi Alemayehu","header_description":"Find blocks, shortcodes, widgets, and custom post type content that depend on an installed plugin.","assets_banners_color":"2f83b9","last_updated":"2026-09-03 21:55:26","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":87,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.0":{"tag":"0.1.0","author":"dagemawi409","date":"2026-09-02 13:32:04","revision":3678091},"0.1.1":{"tag":"0.1.1","author":"dagemawi409","date":"2026-09-02 21:32:33","revision":3678695},"0.1.2":{"tag":"0.1.2","author":"dagemawi409","date":"2026-09-02 22:21:10","revision":3678737},"0.2.0":{"tag":"0.2.0","author":"dagemawi409","date":"2026-09-03 21:55:26","revision":3680445}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3678737,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3678737,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3678737,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3678737,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3678737,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.0","0.1.1","0.1.2","0.2.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3678737,"resolution":"1","location":"assets","locale":"","width":1710,"height":812},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3678737,"resolution":"2","location":"assets","locale":"","width":1710,"height":812},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3678737,"resolution":"3","location":"assets","locale":"","width":1710,"height":868},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3680445,"resolution":"4","location":"assets","locale":"","width":1710,"height":1250},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3680445,"resolution":"5","location":"assets","locale":"","width":1710,"height":2181},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3680445,"resolution":"6","location":"assets","locale":"","width":1710,"height":1036}},"screenshots":{"1":"Choose any installed plugin and start a read-only usage scan.","2":"Review the evidence summary and open matching content directly from the results.","3":"Start a scan directly from the Find usage link on the Installed Plugins screen.","4":"Audit all installed plugins from one dashboard, then filter and expand the evidence.","5":"Review evidence and risk before deactivating one active plugin.","6":"Review several selected plugins together, including dependency warnings, before WordPress deactivates them."}},"plugin_section":[],"plugin_tags":[4121,3786,276117,357,255756],"plugin_category":[43],"plugin_contributors":[278875],"plugin_business_model":[],"class_list":["post-360253","plugin","type-plugin","status-publish","hentry","plugin_tags-blocks","plugin_tags-cleanup","plugin_tags-plugin-usage","plugin_tags-shortcodes","plugin_tags-unused-plugins","plugin_category-customization","plugin_contributors-dagemawi409","plugin_committers-dagemawi409"],"banners":{"banner":"https:\/\/ps.w.org\/usageray\/assets\/banner-772x250.png?rev=3678737","banner_2x":"https:\/\/ps.w.org\/usageray\/assets\/banner-1544x500.png?rev=3678737","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/usageray\/assets\/icon.svg?rev=3678737","icon":"https:\/\/ps.w.org\/usageray\/assets\/icon.svg?rev=3678737","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/usageray\/assets\/screenshot-1.png?rev=3678737","caption":"Choose any installed plugin and start a read-only usage scan."},{"src":"https:\/\/ps.w.org\/usageray\/assets\/screenshot-2.png?rev=3678737","caption":"Review the evidence summary and open matching content directly from the results."},{"src":"https:\/\/ps.w.org\/usageray\/assets\/screenshot-3.png?rev=3678737","caption":"Start a scan directly from the Find usage link on the Installed Plugins screen."},{"src":"https:\/\/ps.w.org\/usageray\/assets\/screenshot-4.png?rev=3680445","caption":"Audit all installed plugins from one dashboard, then filter and expand the evidence."},{"src":"https:\/\/ps.w.org\/usageray\/assets\/screenshot-5.png?rev=3680445","caption":"Review evidence and risk before deactivating one active plugin."},{"src":"https:\/\/ps.w.org\/usageray\/assets\/screenshot-6.png?rev=3680445","caption":"Review several selected plugins together, including dependency warnings, before WordPress deactivates them."}],"raw_content":"<!--section=description-->\n<p>Before deactivating a plugin, UsageRay audits every installed plugin from one dashboard or runs a focused scan for one or several selected plugins. Deactivation Preflight routes individual Deactivate links and the \u201cReview deactivation with UsageRay\u201d bulk action through a risk review, shows evidence and direct edit links, and requires a separate explicit choice before handing the normal deactivation request back to WordPress.<\/p>\n\n<p>The site-wide audit scans content and post metadata once for all discovered plugin components. Work is split into small batches with visible progress, cancellation, and automatic resume after a page reload. Search and status filters help administrators focus on the results that need attention, while expandable evidence explains what was detected and why.<\/p>\n\n<p>UsageRay separates visible dependency evidence from stored footprint. An old option or metadata key is reported for review, but it is not treated as proof that a plugin is actively used. Inactive plugins become cleanup candidates only when UsageRay can attribute supported components and finds neither visible usage nor stored footprint. A candidate still requires manual confirmation.<\/p>\n\n<p>Watch the short UsageRay overview:<\/p>\n\n<p>https:\/\/www.youtube.com\/watch?v=TWtoWhgtr2w<\/p>\n\n<p>The video narration is AI-generated.<\/p>\n\n<p>Use UsageRay when you are cleaning up an old site, replacing a page builder or form plugin, or checking whether a plugin still supports visible content.<\/p>\n\n<p>UsageRay checks:<\/p>\n\n<ul>\n<li>Individual plugin deactivation links, with a cautious High, Medium, or Unknown preflight assessment.<\/li>\n<li>Selected-plugin bulk preflights, with separate risks, combined evidence, and declared Requires Plugins relationships.<\/li>\n<li>Gutenberg blocks declared or registered by the selected plugin.<\/li>\n<li>Shortcodes registered by the selected plugin or declared literally in its source.<\/li>\n<li>Active legacy widgets registered by the selected plugin.<\/li>\n<li>Content stored in custom post types declared literally by the selected plugin.<\/li>\n<li>Reusable blocks, Site Editor templates and template parts containing detected blocks or shortcodes.<\/li>\n<li>Classic and block navigation records that reference attributed custom post types.<\/li>\n<li>Plugin-associated post metadata keys and option names. Option values are never read.<\/li>\n<li>Known signals for Elementor, WooCommerce, ACF, Contact Form 7, WPForms, Gravity Forms, Formidable Forms, Ninja Forms, Yoast SEO, Rank Math, All in One SEO, and The Events Calendar.<\/li>\n<\/ul>\n\n<p>Completed site-wide audits can be downloaded as CSV or JSON for client handoff and further review.<\/p>\n\n<p>Results link directly to matching content when WordPress provides an edit screen.<\/p>\n\n<p>UsageRay does not deactivate, delete, or modify plugins or site content. A result of \"no visible usage detected\" does not prove that a plugin is unnecessary. Security, caching, SEO, backups, integrations, and other background functionality may leave no visible content evidence.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>usageray<\/code> directory to <code>\/wp-content\/plugins\/<\/code> or install the ZIP in WordPress.<\/li>\n<li>Activate UsageRay.<\/li>\n<li>Open Tools &gt; UsageRay, or click \"Find usage\" beside an installed plugin.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20tell%20me%20that%20another%20plugin%20is%20safe%20to%20delete%3F\"><h3>Does this plugin tell me that another plugin is safe to delete?<\/h3><\/dt>\n<dd><p>No. It reports evidence and uncertainty. It never claims that absence of visible usage makes deletion safe.<\/p><\/dd>\n<dt id=\"does%20it%20change%20my%20content%3F\"><h3>Does it change my content?<\/h3><\/dt>\n<dd><p>No. UsageRay is read-only.<\/p><\/dd>\n<dt id=\"does%20usageray%20deactivate%20plugins%20automatically%3F\"><h3>Does UsageRay deactivate plugins automatically?<\/h3><\/dt>\n<dd><p>No. Opening an individual or bulk Deactivation Preflight never changes plugin state. Only after an administrator explicitly confirms does UsageRay submit the reviewed action to WordPress's normal nonce-protected deactivation handler.<\/p><\/dd>\n<dt id=\"how%20do%20i%20review%20several%20plugins%20before%20deactivation%3F\"><h3>How do I review several plugins before deactivation?<\/h3><\/dt>\n<dd><p>On the Installed Plugins screen, select the active plugins, choose \u201cReview deactivation with UsageRay\u201d from Bulk actions, and select Apply. UsageRay scans only that selection and presents a separate risk and evidence panel for every plugin.<\/p><\/dd>\n<dt id=\"can%20i%20stop%20or%20resume%20an%20audit%3F\"><h3>Can I stop or resume an audit?<\/h3><\/dt>\n<dd><p>Yes. You can cancel a site-wide audit or Deactivation Preflight while it is running. If the page reloads during an unfinished audit, UsageRay resumes it automatically. Temporary audit data expires after one hour.<\/p><\/dd>\n<dt id=\"why%20did%20a%20deactivation%20preflight%20open%20immediately%3F\"><h3>Why did a Deactivation Preflight open immediately?<\/h3><\/dt>\n<dd><p>UsageRay reuses a completed preflight for up to 10 minutes when you select Deactivate again for the same plugin. The result says when it was completed and provides a \"Run a fresh preflight\" link.<\/p><\/dd>\n<dt id=\"does%20usageray%20read%20private%20option%20values%3F\"><h3>Does UsageRay read private option values?<\/h3><\/dt>\n<dd><p>No. Generic option inspection reads option names only. Post metadata values are not retained or exported. The ACF adapter performs a database-side field-reference prefix comparison and returns only counts and content locations.<\/p><\/dd>\n<dt id=\"what%20is%20a%20cleanup%20candidate%3F\"><h3>What is a cleanup candidate?<\/h3><\/dt>\n<dd><p>It is an inactive plugin with attributable supported components, no detected visible usage, and no detected stored footprint. This narrows manual cleanup work; it is not a claim that deletion is safe.<\/p><\/dd>\n<dt id=\"what%20is%20included%20in%20exports%3F\"><h3>What is included in exports?<\/h3><\/dt>\n<dd><p>CSV and JSON exports contain plugin status, cautious guidance, component names, evidence counts, matching content locations, and edit links. They do not contain post content, metadata values, option values, or filesystem paths.<\/p><\/dd>\n<dt id=\"can%20it%20inspect%20inactive%20plugins%3F\"><h3>Can it inspect inactive plugins?<\/h3><\/dt>\n<dd><p>It can find literal shortcode and custom post type registrations and block.json metadata in many inactive plugins. Runtime-only or dynamically registered components may require the plugin to be active.<\/p><\/dd>\n<dt id=\"why%20can%20usage%20be%20%22unable%20to%20determine%22%3F\"><h3>Why can usage be \"unable to determine\"?<\/h3><\/dt>\n<dd><p>Some plugins work entirely in the background or register components dynamically. WordPress does not maintain a universal ownership record for all plugin data.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>Added a site-wide dashboard that audits all installed plugins together.<\/li>\n<li>Scans each content batch once against components discovered across every plugin.<\/li>\n<li>Added batched progress, cancellation, and automatic resume after page reloads.<\/li>\n<li>Added result summaries, search and status filters, and expandable evidence explanations.<\/li>\n<li>Added reusable block, Site Editor template, navigation, post-metadata, and option-name evidence.<\/li>\n<li>Added conservative adapters for Elementor, WooCommerce, ACF, The Events Calendar, major form plugins, and major SEO plugins.<\/li>\n<li>Added cleanup-candidate guidance that never claims a plugin is safe to remove.<\/li>\n<li>Added administrator-only CSV and JSON audit reports with spreadsheet-formula protection.<\/li>\n<li>Preserved the focused single-plugin scan and read-only safety model.<\/li>\n<li>Added individual Deactivation Preflight with cautious High, Medium, or Unknown risk assessments.<\/li>\n<li>Added \u201cReview deactivation with UsageRay\u201d for selected plugins in the Installed Plugins bulk-action menu.<\/li>\n<li>Added separate risk summaries, combined evidence, and declared Requires Plugins relationship warnings for bulk reviews.<\/li>\n<li>Added focused, resumable preflight scans and 10-minute reuse of recent completed results.<\/li>\n<li>Kept deactivation behind a separate explicit action handled by WordPress's native nonce-protected workflow.<\/li>\n<\/ul>\n\n<h4>0.1.2<\/h4>\n\n<ul>\n<li>Added a short demonstration video to the plugin page.<\/li>\n<li>Added a third screenshot showing Find usage links on the Installed Plugins screen.<\/li>\n<li>Added a scalable SVG directory icon while retaining PNG fallbacks.<\/li>\n<\/ul>\n\n<h4>0.1.1<\/h4>\n\n<ul>\n<li>Added a custom icon, banner, and real interface screenshots.<\/li>\n<li>Improved the directory description to explain the plugin's purpose more clearly.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial read-only MVP.<\/li>\n<li>Added block, shortcode, widget, and custom post type evidence scanning.<\/li>\n<li>Added Find usage links to the Installed Plugins screen.<\/li>\n<\/ul>","raw_excerpt":"Audit installed plugins for visible usage\u2014blocks, shortcodes, widgets, and custom post types\u2014before you deactivate them.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/360253","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=360253"}],"author":[{"embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/dagemawi409"}],"wp:attachment":[{"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=360253"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=360253"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=360253"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=360253"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=360253"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/sq.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=360253"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}