{"id":371643,"date":"2026-09-28T06:44:01","date_gmt":"2026-09-28T06:44:01","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/nimble-operations\/"},"modified":"2026-09-28T06:43:25","modified_gmt":"2026-09-28T06:43:25","slug":"nimble-operations","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/nimble-operations\/","author":23555215,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.17","stable_tag":"1.0.17","tested":"7.1.2","requires":"6.6","requires_php":"8.1","requires_plugins":null,"header_name":"Nimble Operations","header_author":"NimblePlugins","header_description":"Lightweight WordPress operations platform for monitoring, diagnostics, incidents, maintenance and reporting.","assets_banners_color":"486f7e","last_updated":"2026-09-28 06:43:25","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/nimbleplugins.com\/operations\/","header_author_uri":"https:\/\/nimbleplugins.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":50,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.17":{"tag":"1.0.17","author":"nimbleplugin","date":"2026-09-28 06:43:25","revision":3716409}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3718727,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3718727,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3718727,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3718727,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.17"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3716408,"resolution":"1","location":"assets","locale":"","width":1383,"height":887},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3716408,"resolution":"2","location":"assets","locale":"","width":1379,"height":885},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3716408,"resolution":"3","location":"assets","locale":"","width":1388,"height":883},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3716408,"resolution":"4","location":"assets","locale":"","width":1382,"height":883},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3716408,"resolution":"5","location":"assets","locale":"","width":1378,"height":880},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3716408,"resolution":"6","location":"assets","locale":"","width":1375,"height":880},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3716408,"resolution":"7","location":"assets","locale":"","width":1385,"height":884}},"screenshots":{"1":"The health dashboard: priorities, score and the state of every check on one screen.","2":"Monitoring: all local checks with severity, risk and confidence.","3":"An incident with its history, rechecks and practical resolution guidance.","4":"Technical diagnostics for the runtime, database and storage boundaries.","5":"The audit timeline of what Operations did and when.","6":"Settings: retention, housekeeping and uninstall behaviour.","7":"The same dashboard in light mode. The theme is each user's own choice and is part of the free plugin."}},"plugin_section":[],"plugin_tags":[23519,5603,247,600,151481],"plugin_category":[54],"plugin_contributors":[279560],"plugin_business_model":[],"class_list":["post-371643","plugin","type-plugin","status-publish","hentry","plugin_tags-diagnostics","plugin_tags-monitoring","plugin_tags-performance","plugin_tags-security","plugin_tags-site-health","plugin_category-security-and-spam-protection","plugin_contributors-nimbleplugin","plugin_committers-nimbleplugin"],"banners":{"banner":"https:\/\/ps.w.org\/nimble-operations\/assets\/banner-772x250.png?rev=3718727","banner_2x":"https:\/\/ps.w.org\/nimble-operations\/assets\/banner-1544x500.png?rev=3718727","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/nimble-operations\/assets\/icon-128x128.png?rev=3718727","icon_2x":"https:\/\/ps.w.org\/nimble-operations\/assets\/icon-256x256.png?rev=3718727","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/nimble-operations\/assets\/screenshot-1.png?rev=3716408","caption":"The health dashboard: priorities, score and the state of every check on one screen."},{"src":"https:\/\/ps.w.org\/nimble-operations\/assets\/screenshot-2.png?rev=3716408","caption":"Monitoring: all local checks with severity, risk and confidence."},{"src":"https:\/\/ps.w.org\/nimble-operations\/assets\/screenshot-3.png?rev=3716408","caption":"An incident with its history, rechecks and practical resolution guidance."},{"src":"https:\/\/ps.w.org\/nimble-operations\/assets\/screenshot-4.png?rev=3716408","caption":"Technical diagnostics for the runtime, database and storage boundaries."},{"src":"https:\/\/ps.w.org\/nimble-operations\/assets\/screenshot-5.png?rev=3716408","caption":"The audit timeline of what Operations did and when."},{"src":"https:\/\/ps.w.org\/nimble-operations\/assets\/screenshot-6.png?rev=3716408","caption":"Settings: retention, housekeeping and uninstall behaviour."},{"src":"https:\/\/ps.w.org\/nimble-operations\/assets\/screenshot-7.png?rev=3716408","caption":"The same dashboard in light mode. The theme is each user's own choice and is part of the free plugin."}],"raw_content":"<!--section=description-->\n<p>Nimble Operations gives administrators one focused place to understand WordPress health, investigate incidents and document operational work.<\/p>\n\n<p>The plugin works on its own, requires no account and keeps monitoring data inside WordPress.<\/p>\n\n<h4>What is included<\/h4>\n\n<ul>\n<li>A clear health dashboard with priorities and status signals.<\/li>\n<li>47 local checks across WordPress, PHP, security, database, performance, operations and WooCommerce.<\/li>\n<li>A lightweight Site Speed gauge based on anonymous requests to your own public home page.<\/li>\n<li>Incident lifecycle, history, rechecks and practical resolution guidance.<\/li>\n<li>Technical diagnostics, audit timeline and JSON\/CSV reports.<\/li>\n<li>Retention controls, scheduled housekeeping and optional uninstall cleanup.<\/li>\n<li>Fully translatable interface. Danish is included, and the plugin follows the site or per-user WordPress language.<\/li>\n<li>Per-user dark and light appearance modes.<\/li>\n<li>No frontend scripts, styles, tracking pixels or public-site credits.<\/li>\n<\/ul>\n\n<h4>Safety and privacy<\/h4>\n\n<p>Scanning is read-only. The maintenance actions that do change something \u2014 clearing expired transients and running one overdue cron event \u2014 are listed with a preflight, need the Operations capability, and ask for an explicit confirmation before they run. Nothing happens on its own.<\/p>\n\n<p>Monitoring is local. The plugin does not send telemetry, customer content, database rows, credentials or scan results to NimblePlugins.<\/p>\n\n<h3>External services<\/h3>\n\n<p>Nimble Operations does not contact NimblePlugins at all.<\/p>\n\n<p>Site Speed checks make anonymous HTTP requests only to the site's own public home URL. They do not use a third-party speed or analytics service.<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>Nimble Operations does not track visitors or administrators and does not send operational telemetry. Reports and incidents may contain technical information about the WordPress installation, so access is protected by Operations capabilities and normal WordPress authentication.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install Nimble Operations from the WordPress plugin directory.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Complete the optional three-step Easy Setup, or choose <strong>Skip for now<\/strong>.<\/li>\n<li>Run the first scan and review the dashboard priorities.<\/li>\n<li>Adjust retention and appearance from <strong>Operations \u2192 Settings<\/strong>. The interface language follows WordPress, so set it under Settings \u2192 General or per user under Users \u2192 Profile.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20nimble%20operations%20change%20my%20website%20automatically%3F\"><h3>Does Nimble Operations change my website automatically?<\/h3><\/dt>\n<dd><p>No. Scans are read-only, and the two maintenance actions that write something run only when you tick the confirmation and press the button yourself.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20add%20anything%20to%20the%20frontend%3F\"><h3>Does the plugin add anything to the frontend?<\/h3><\/dt>\n<dd><p>No. Nimble Operations loads no frontend assets and adds no public credits or links.<\/p><\/dd>\n<dt id=\"where%20is%20monitoring%20data%20stored%3F\"><h3>Where is monitoring data stored?<\/h3><\/dt>\n<dd><p>Operational data is stored in plugin-owned tables and options in your WordPress database. It is not sent to a NimblePlugins monitoring service.<\/p><\/dd>\n<dt id=\"can%20i%20remove%20all%20plugin%20data%20on%20uninstall%3F\"><h3>Can I remove all plugin data on uninstall?<\/h3><\/dt>\n<dd><p>Yes. Enable <strong>Delete plugin data on uninstall<\/strong> in Settings before deleting the plugin. The default is to preserve data so an accidental uninstall does not erase operational history.<\/p><\/dd>\n<dt id=\"which%20languages%20are%20available%3F\"><h3>Which languages are available?<\/h3><\/dt>\n<dd><p>The interface is fully translatable and follows your WordPress language, both the site setting and the per-user setting under Users \u2192 Profile. Danish is included; other languages can be contributed through translate.wordpress.org.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.17<\/h4>\n\n<ul>\n<li>Removes the site read-only lock. The two maintenance actions that change something, clearing expired transients and running one overdue cron event, now run for anyone with the Operations capability, behind the same preflight and explicit confirmation as before.<\/li>\n<li>Removes the frozen free-baseline option, its signature check and the diagnostics row that reported it.<\/li>\n<li>Removes the build-variant marker and the rows and REST fields that reported it.<\/li>\n<li>The section order no longer reserves places for sections this plugin does not provide.<\/li>\n<li>Removes styling for screens that are not part of this plugin.<\/li>\n<li>Setup and the dashboard describe what this plugin does, without referring to an add-on.<\/li>\n<\/ul>\n\n<h4>1.0.16<\/h4>\n\n<ul>\n<li>Links, redirects and filter forms inside Operations carry a view nonce, and filters and notices are only read after it is verified. Form handlers verify their action nonce inside the same helper that reads the submitted values.<\/li>\n<li>The debug-log check finds the web root with get_home_path() and the log file from PHP's own error_log setting; drop-ins are detected through get_dropins().<\/li>\n<li>One prefix family: the setup class is Inhab_Operations_Onboarding, the script data object is inhabOperations, and the unused NimblePlugins constant and class aliases are removed.<\/li>\n<\/ul>\n\n<h4>1.0.15<\/h4>\n\n<ul>\n<li>The plugin and author URIs are no longer the same address. The plugin now points at its own page; the author link stays on nimbleplugins.com.<\/li>\n<\/ul>\n\n<h4>1.0.14<\/h4>\n\n<ul>\n<li>English is now the plugin's own language and its default. It no longer changes because an administrator's WordPress profile is set to something else, which is how a screen could show English navigation above Danish incident text. Danish and \"follow WordPress\" remain available under Settings.<\/li>\n<li>Fixed three places that kept light colours in the dark theme: the locked maintenance card, which painted itself almost white and hid its own heading, the status pill, and the two notices.<\/li>\n<\/ul>\n\n<h4>1.0.13<\/h4>\n\n<ul>\n<li>wp-admin\/includes\/upgrade.php is now loaded immediately before dbDelta() rather than at the top of the method. The file was always used, but a review tool that looks for the call right after the include cannot see that across a hundred and fifty lines of table definitions.<\/li>\n<\/ul>\n\n<h4>1.0.12<\/h4>\n\n<ul>\n<li>Removes the Operations Pro licence client, the licence screen and all licence storage from the free plugin. Licensing now lives entirely in the commercial Pro add-on; nothing in the free plugin is gated, checked or limited.<\/li>\n<li>The Pro sections are shown when the Pro add-on registers them, rather than being filtered by an entitlement check inside the free plugin.<\/li>\n<li>Easy Setup asks the add-on whether scheduled monitoring is available instead of asking about a licence.<\/li>\n<li>Uninstall still clears any licence options left behind by an earlier version.<\/li>\n<li>Requires Operations Pro 0.6.0 or newer if the Pro add-on is installed.<\/li>\n<\/ul>\n\n<h4>1.0.11<\/h4>\n\n<ul>\n<li>Renames four filters from nimble_operations_* to nimbleplugins_operations_*, matching the prefix the rest of the plugin already uses. These four were only ever used inside this plugin, so nothing external depends on them.<\/li>\n<li>Clears the remaining Plugin Check warnings.<\/li>\n<\/ul>\n\n<h4>1.0.10<\/h4>\n\n<ul>\n<li>The whole interface is now properly internationalised. 61 hardcoded English\/Danish string pairs and 175 untranslated strings were converted to standard WordPress translation functions, taking the translatable surface from 92 strings to 297.<\/li>\n<li>Removes the plugin's own language setting. The interface follows the WordPress site language and the per-user language under Users &gt; Profile, like the rest of the admin.<\/li>\n<li>Stops shipping compiled translations. Danish now comes from translate.wordpress.org, where it cannot drift out of step with the code.<\/li>\n<li>The licence screen no longer presents an unreleased add-on as a missing one, and the key field appears only once Operations Pro is installed.<\/li>\n<li>Corrects the Contributors username.<\/li>\n<\/ul>\n\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>Replaces the placeholder mark with the real Nimble logo across the plugin, in the\nproduct's own colour so the WordPress admin menu stays readable when several\nNimble plugins are installed side by side.<\/li>\n<li>No behaviour change.<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Replaces the generic WordPress scan-complete notice with a compact Operations status component.<\/li>\n<li>Keeps the confirmation visually consistent in dark and light mode, responsive on small screens and keyboard accessible.<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Adds a three-step Easy Setup for first-time users with an explicit Skip option.<\/li>\n<li>Lets administrators define the site context, choose monitoring defaults and start the first read-only scan.<\/li>\n<li>Keeps WordPress visibility, wp-config.php and third-party plugin settings unchanged unless the administrator acts in the owning system.<\/li>\n<li>Shows detected optional Nimble and cache integrations without treating missing products as issues.<\/li>\n<li>Makes Easy Setup available again from Operations Settings without resetting operational history.<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Adds an explicit expected search-visibility policy for production, staging and private sites.<\/li>\n<li>Treats an intentionally discouraged staging\/private site as informational and non-scoring while keeping the state visible.<\/li>\n<li>Reopens the issue if the live WordPress visibility later drifts from the selected expectation.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Expands page-cache diagnostics from the WP_CACHE flag to configuration, drop-in, provider and response-header evidence.<\/li>\n<li>Exposes a bounded cache-diagnostics contract for Operations Pro without reading cache contents or provider configuration.<\/li>\n<li>Keeps cache diagnostics informational and the public Free package site-state read-only.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Replaces absolute post-revision thresholds with a site-size-aware evaluation.<\/li>\n<li>Treats a finite WP_POST_REVISIONS cap of up to 50 revisions per content item as managed and non-scoring.<\/li>\n<li>Evaluates revisions per revision-enabled content item together with revision storage footprint when no conservative finite cap is active.<\/li>\n<li>Keeps historical revision cleanup optional unless the database footprint is genuinely disproportionate.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Reclassifies large post-revision counts as medium-priority database hygiene instead of a high-severity operational incident.<\/li>\n<li>Keeps the existing revision thresholds and remediation guidance while aligning the health-score deduction with the actual risk.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First public WordPress.org release.<\/li>\n<li>Adds the complete 47-check monitoring baseline, Site Speed gauge, incidents, reports, diagnostics and operational timeline.<\/li>\n<li>Adds a full-width responsive administration interface with per-user dark and light modes.<\/li>\n<li>Keeps the public distribution site-state read-only and free of frontend assets or telemetry.<\/li>\n<li>Moves internal test and site-specific Pro entitlements out of the public Free package.<\/li>\n<li>Aligns the public text domain and release metadata with the requested <code>nimble-operations<\/code> WordPress.org slug.<\/li>\n<\/ul>\n\n<p>Earlier development milestones are listed in <code>changelog.txt<\/code>.<\/p>","raw_excerpt":"Monitor WordPress health, performance and incidents from one lightweight, privacy-conscious operations dashboard.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/371643","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=371643"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/nimbleplugin"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=371643"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=371643"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=371643"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=371643"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=371643"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=371643"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}