{"id":264974,"date":"2026-01-05T23:12:00","date_gmt":"2026-01-05T23:12:00","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/optistate\/"},"modified":"2026-06-21T09:55:47","modified_gmt":"2026-06-21T09:55:47","slug":"optistate","status":"publish","type":"plugin","link":"https:\/\/es-cr.wordpress.org\/plugins\/optistate\/","author":23410914,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.4.1","stable_tag":"1.4.1","tested":"7.0","requires":"5.5","requires_php":"7.4","requires_plugins":null,"header_name":"Optimal State","header_author":"Luke Garrison","header_description":"Complete WordPress database optimization, backup, and performance enhancement suite with advanced caching and automation features.","assets_banners_color":"224566","last_updated":"2026-06-21 09:55:47","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/spiritualseek.com\/wp-content\/uploads\/2025\/11\/WP_Optimal_State_PRO_User_Manual.html","header_author_uri":"https:\/\/spiritualseek.com\/wp-content\/uploads\/2025\/11\/WP_Optimal_State_PRO_User_Manual.html","rating":5,"author_block_rating":0,"active_installs":20,"downloads":2438,"num_ratings":4,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.9":{"tag":"1.1.9","author":"lukegarry","date":"2026-06-21 09:55:47"},"1.2.0":{"tag":"1.2.0","author":"lukegarry","date":"2026-06-21 09:55:47"},"1.2.1":{"tag":"1.2.1","author":"lukegarry","date":"2026-06-21 09:55:47"},"1.2.2":{"tag":"1.2.2","author":"lukegarry","date":"2026-06-21 09:55:47"},"1.3.0":{"tag":"1.3.0","author":"lukegarry","date":"2026-06-21 09:55:47"},"1.3.1":{"tag":"1.3.1","author":"lukegarry","date":"2026-06-21 09:55:47"},"1.3.2":{"tag":"1.3.2","author":"lukegarry","date":"2026-06-21 09:55:47"},"1.3.3":{"tag":"1.3.3","author":"lukegarry","date":"2026-06-21 09:55:47"},"1.4.0":{"tag":"1.4.0","author":"lukegarry","date":"2026-06-21 09:55:47"},"1.4.1":{"tag":"1.4.1","author":"lukegarry","date":"2026-06-21 09:55:47"}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":4},"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3433110,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3578773,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3580487,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"landingPage\":\"\\\/wp-admin\\\/admin.php?page=optistate\",\"preferredVersions\":{\"php\":\"8.2\",\"wp\":\"latest\"},\"phpExtensionBundles\":[\"kitchen-sink\"],\"features\":{\"networking\":true},\"steps\":[{\"step\":\"login\",\"username\":\"admin\",\"password\":\"password\"},{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"optistate\"},\"options\":{\"activate\":true}},{\"step\":\"wp-cli\",\"command\":\"wp post generate --count=50 --post_type=post --post_status=publish\"},{\"step\":\"wp-cli\",\"command\":\"wp post generate --count=20 --post_type=page --post_status=publish\"},{\"step\":\"wp-cli\",\"command\":\"wp post generate --count=60 --post_type=post --post_status=draft\"},{\"step\":\"wp-cli\",\"command\":\"wp comment generate --count=80 --post_id=1\"},{\"step\":\"runPHP\",\"code\":\"<?php\\nrequire '\\\/wordpress\\\/wp-load.php';\\nglobal $wpdb;\\n\\n\\\/\\\/ === TRASHED POSTS ===\\nfor ($i = 0; $i < 80; $i++) {\\n    $id = wp_insert_post(array('post_type' => 'post', 'post_status' => 'draft', 'post_title' => 'Trash Post ' . $i));\\n    wp_trash_post($id);\\n}\\nfor ($i = 0; $i < 40; $i++) {\\n    $id = wp_insert_post(array('post_type' => 'page', 'post_status' => 'draft', 'post_title' => 'Trash Page ' . $i));\\n    wp_trash_post($id);\\n}\\n\\n\\\/\\\/ === AUTO DRAFTS ===\\nfor ($i = 0; $i < 150; $i++) {\\n    wp_insert_post(array('post_type' => 'post', 'post_status' => 'inherit', 'post_title' => 'Auto Draft ' . $i));\\n}\\n\\n\\\/\\\/ === POST REVISIONS (30 posts x 15 revisions = 450) ===\\nfor ($p = 0; $p < 30; $p++) {\\n    $id = wp_insert_post(array('post_type' => 'post', 'post_status' => 'publish', 'post_title' => 'Revision Post ' . $p, 'post_content' => 'original'));\\n    for ($r = 1; $r <= 15; $r++) {\\n        wp_update_post(array('ID' => $id, 'post_content' => 'Edit ' . $r . ' of post ' . $p));\\n    }\\n}\\n\\n\\\/\\\/ === SPAM COMMENTS ===\\nfor ($i = 0; $i < 120; $i++) {\\n    wp_insert_comment(array(\\n        'comment_post_ID'      => 2,\\n        'comment_content'      => 'Spam comment ' . $i,\\n        'comment_approved'     => 'spam',\\n        'comment_type'         => '',\\n        'comment_author'       => 'Spambot ' . $i,\\n        'comment_author_email' => 'spam' . $i . '@fakespam.com'\\n    ));\\n}\\n\\n\\\/\\\/ === TRASHED COMMENTS ===\\nfor ($i = 0; $i < 80; $i++) {\\n    $cid = wp_insert_comment(array(\\n        'comment_post_ID'      => 2,\\n        'comment_content'      => 'Trashed comment ' . $i,\\n        'comment_approved'     => 1,\\n        'comment_author'       => 'Trash Author ' . $i,\\n        'comment_author_email' => 'trash' . $i . '@example.com'\\n    ));\\n    wp_trash_comment($cid);\\n}\\n\\n\\\/\\\/ === UNAPPROVED COMMENTS ===\\nfor ($i = 0; $i < 90; $i++) {\\n    wp_insert_comment(array(\\n        'comment_post_ID'      => 3,\\n        'comment_content'      => 'Pending comment ' . $i,\\n        'comment_approved'     => 0,\\n        'comment_author'       => 'Pending User ' . $i,\\n        'comment_author_email' => 'pending' . $i . '@example.com'\\n    ));\\n}\\n\\n\\\/\\\/ === PINGBACKS ===\\nfor ($i = 0; $i < 60; $i++) {\\n    wp_insert_comment(array(\\n        'comment_post_ID'    => 1,\\n        'comment_content'    => 'Pingback from site ' . $i,\\n        'comment_approved'   => 1,\\n        'comment_type'       => 'pingback',\\n        'comment_author'     => 'Pingback ' . $i,\\n        'comment_author_url' => 'http:\\\/\\\/ping-' . $i . '.example.com'\\n    ));\\n}\\n\\n\\\/\\\/ === TRACKBACKS ===\\nfor ($i = 0; $i < 60; $i++) {\\n    wp_insert_comment(array(\\n        'comment_post_ID'    => 1,\\n        'comment_content'    => 'Trackback from site ' . $i,\\n        'comment_approved'   => 1,\\n        'comment_type'       => 'trackback',\\n        'comment_author'     => 'Trackback ' . $i,\\n        'comment_author_url' => 'http:\\\/\\\/track-' . $i . '.example.com'\\n    ));\\n}\\n\\n\\\/\\\/ === ORPHANED POST META ===\\nfor ($i = 0; $i < 300; $i++) {\\n    $wpdb->insert($wpdb->postmeta, array(\\n        'post_id'    => 99000 + $i,\\n        'meta_key'   => '_orphaned_postmeta_' . $i,\\n        'meta_value' => 'orphaned_value_' . $i\\n    ));\\n}\\n\\n\\\/\\\/ === DUPLICATE POST META (80 keys x 3 dupes each) ===\\nfor ($i = 0; $i < 80; $i++) {\\n    for ($d = 0; $d < 3; $d++) {\\n        $wpdb->insert($wpdb->postmeta, array(\\n            'post_id'    => 1,\\n            'meta_key'   => '_dup_postmeta_' . $i,\\n            'meta_value' => 'dup_val_' . $i\\n        ));\\n    }\\n}\\n\\n\\\/\\\/ === ORPHANED COMMENT META ===\\nfor ($i = 0; $i < 150; $i++) {\\n    $wpdb->insert($wpdb->commentmeta, array(\\n        'comment_id' => 99000 + $i,\\n        'meta_key'   => '_orphaned_commentmeta_' . $i,\\n        'meta_value' => 'orphaned_cm_' . $i\\n    ));\\n}\\n\\n\\\/\\\/ === DUPLICATE COMMENT META (60 keys x 3 dupes each) ===\\nfor ($i = 0; $i < 60; $i++) {\\n    for ($d = 0; $d < 3; $d++) {\\n        $wpdb->insert($wpdb->commentmeta, array(\\n            'comment_id' => 1,\\n            'meta_key'   => '_dup_commentmeta_' . $i,\\n            'meta_value' => 'dup_cm_val_' . $i\\n        ));\\n    }\\n}\\n\\n\\\/\\\/ === ORPHANED USER META ===\\nfor ($i = 0; $i < 100; $i++) {\\n    $wpdb->insert($wpdb->usermeta, array(\\n        'user_id'    => 99000 + $i,\\n        'meta_key'   => '_orphaned_usermeta_' . $i,\\n        'meta_value' => 'orphaned_um_' . $i\\n    ));\\n}\\n\\n\\\/\\\/ === DUPLICATE USER META (50 keys x 3 dupes each) ===\\nfor ($i = 0; $i < 50; $i++) {\\n    for ($d = 0; $d < 3; $d++) {\\n        $wpdb->insert($wpdb->usermeta, array(\\n            'user_id'    => 1,\\n            'meta_key'   => '_dup_usermeta_' . $i,\\n            'meta_value' => 'dup_um_val_' . $i\\n        ));\\n    }\\n}\\n\\n\\\/\\\/ === DUPLICATE TERM META (50 keys x 3 dupes each) ===\\nfor ($i = 0; $i < 50; $i++) {\\n    for ($d = 0; $d < 3; $d++) {\\n        $wpdb->insert($wpdb->termmeta, array(\\n            'term_id'    => 1,\\n            'meta_key'   => '_dup_termmeta_' . $i,\\n            'meta_value' => 'dup_tm_val_' . $i\\n        ));\\n    }\\n}\\n\\n\\\/\\\/ === ORPHANED TERM RELATIONSHIPS ===\\nfor ($i = 0; $i < 100; $i++) {\\n    $wpdb->insert($wpdb->term_relationships, array(\\n        'object_id'        => 88000 + $i,\\n        'term_taxonomy_id' => 1\\n    ));\\n}\\n\\n\\\/\\\/ === EXPIRED TRANSIENTS (200 pairs) ===\\nfor ($i = 0; $i < 200; $i++) {\\n    $wpdb->insert($wpdb->options, array(\\n        'option_name'  => '_transient_timeout_expired_' . $i,\\n        'option_value' => time() - 86400,\\n        'autoload'     => 'no'\\n    ));\\n    $wpdb->insert($wpdb->options, array(\\n        'option_name'  => '_transient_expired_' . $i,\\n        'option_value' => str_repeat('cached_junk_', 20),\\n        'autoload'     => 'no'\\n    ));\\n}\\n\\n\\\/\\\/ === EXPIRED SITE TRANSIENTS (100 pairs) ===\\nfor ($i = 0; $i < 100; $i++) {\\n    $wpdb->insert($wpdb->options, array(\\n        'option_name'  => '_site_transient_timeout_expired_' . $i,\\n        'option_value' => time() - 86400,\\n        'autoload'     => 'no'\\n    ));\\n    $wpdb->insert($wpdb->options, array(\\n        'option_name'  => '_site_transient_expired_' . $i,\\n        'option_value' => str_repeat('site_cached_junk_', 20),\\n        'autoload'     => 'no'\\n    ));\\n}\\n\\n\\\/\\\/ =================================================================\\n\\\/\\\/ NEW: LARGE AUTOLOADED OPTIONS THAT WILL BE DETECTED\\n\\\/\\\/ =================================================================\\n\\n\\\/\\\/ 300KB \\u2013 triggers the >200KB rule (not settings, not cache, just big)\\n$wpdb->insert($wpdb->options, array(\\n    'option_name'  => 'big_autoload_300k',\\n    'option_value' => str_repeat('Z', 300 * 1024),\\n    'autoload'     => 'yes'\\n));\\n\\n\\\/\\\/ 60KB with 'cache' in the name \\u2013 triggers the >50KB + cache indicator rule\\n$wpdb->insert($wpdb->options, array(\\n    'option_name'  => 'big_cache_60k',\\n    'option_value' => str_repeat('Y', 60 * 1024),\\n    'autoload'     => 'yes'\\n));\\n\\n\\\/\\\/ Also keep a 200KB exact to show it's NOT optimized (as a control)\\n$wpdb->insert($wpdb->options, array(\\n    'option_name'  => 'big_autoload_200k_exact',\\n    'option_value' => str_repeat('X', 200 * 1024),\\n    'autoload'     => 'yes'\\n));\\n\\n\\\/\\\/ =================================================================\\n\\\/\\\/ NEW: EMBED CACHE (oEmbed posts)\\n\\\/\\\/ =================================================================\\nfor ($i = 0; $i < 120; $i++) {\\n    $url = 'https:\\\/\\\/www.youtube.com\\\/watch?v=demo' . $i;\\n    $cache_key = md5($url);\\n    wp_insert_post(array(\\n        'post_type'    => 'oembed_cache',\\n        'post_status'  => 'publish',\\n        'post_title'   => $cache_key,\\n        'post_name'    => $cache_key,\\n        'post_content' => '<iframe width=560 height=315 src=https:\\\/\\\/www.youtube.com\\\/embed\\\/demo' . $i . '><\\\/iframe>',\\n        'post_date'    => date('Y-m-d H:i:s', time() - (86400 * 90))\\n    ));\\n}\\nfor ($i = 0; $i < 60; $i++) {\\n    $url = 'https:\\\/\\\/vimeo.com\\\/demo' . $i;\\n    $cache_key = md5($url);\\n    wp_insert_post(array(\\n        'post_type'    => 'oembed_cache',\\n        'post_status'  => 'publish',\\n        'post_title'   => $cache_key,\\n        'post_name'    => $cache_key,\\n        'post_content' => '<iframe src=https:\\\/\\\/player.vimeo.com\\\/video\\\/demo' . $i . '><\\\/iframe>',\\n        'post_date'    => date('Y-m-d H:i:s', time() - (86400 * 120))\\n    ));\\n}\\n\\n\\\/\\\/ =================================================================\\n\\\/\\\/ NEW: EMPTY TAXONOMIES\\n\\\/\\\/ =================================================================\\nfor ($i = 0; $i < 80; $i++) {\\n    $term = wp_insert_term('Empty Tag ' . $i, 'post_tag');\\n    if (!is_wp_error($term)) {\\n        $wpdb->update(\\n            $wpdb->term_taxonomy,\\n            array('count' => 0),\\n            array('term_taxonomy_id' => $term['term_taxonomy_id'])\\n        );\\n    }\\n}\\nfor ($i = 0; $i < 40; $i++) {\\n    $term = wp_insert_term('Empty Category ' . $i, 'category');\\n    if (!is_wp_error($term)) {\\n        $wpdb->update(\\n            $wpdb->term_taxonomy,\\n            array('count' => 0),\\n            array('term_taxonomy_id' => $term['term_taxonomy_id'])\\n        );\\n    }\\n}\\n\\n\\\/\\\/ === OPTIMIZE TABLES to show overhead in plugin dashboard ===\\nforeach (array($wpdb->posts, $wpdb->postmeta, $wpdb->options, $wpdb->comments, $wpdb->commentmeta, $wpdb->usermeta, $wpdb->termmeta, $wpdb->term_relationships, $wpdb->terms, $wpdb->term_taxonomy) as $t) {\\n    $wpdb->query('OPTIMIZE TABLE ' . $t);\\n}\\n\\nupdate_option('optistate_demo_ready', true);\\necho 'Seed complete.';\\n\"}]}"}},"all_blocks":[],"tagged_versions":["1.1.9","1.2.0","1.2.1","1.2.2","1.3.0","1.3.1","1.3.2","1.3.3","1.4.0","1.4.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3433133,"resolution":"1","location":"assets","locale":"","width":1300,"height":825},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3433110,"resolution":"10","location":"assets","locale":"","width":1300,"height":825},"screenshot-11.png":{"filename":"screenshot-11.png","revision":3433110,"resolution":"11","location":"assets","locale":"","width":1652,"height":823},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3433110,"resolution":"2","location":"assets","locale":"","width":1300,"height":819},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3433110,"resolution":"3","location":"assets","locale":"","width":1300,"height":808},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3433110,"resolution":"4","location":"assets","locale":"","width":1300,"height":816},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3433110,"resolution":"5","location":"assets","locale":"","width":1300,"height":772},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3433110,"resolution":"6","location":"assets","locale":"","width":1300,"height":794},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3433110,"resolution":"7","location":"assets","locale":"","width":1300,"height":822},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3433110,"resolution":"8","location":"assets","locale":"","width":1300,"height":717},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3433110,"resolution":"9","location":"assets","locale":"","width":1300,"height":817}},"screenshots":{"1":"Database Backup &amp; Restore Operations","2":"Dashboard Overview - Health score gauge and quick analysis","3":"Database Statistics - Visual charts and detailed metrics","4":"Cleanup Interface - Itemized cleanup options with counts","5":"Performance Metrics (Google PageSpeed Insights)","6":"Advanced Database Operations - Defragmentation, Repair, Optimize Autoloaded Data","7":"Database Search &amp; Replace utility - Replace any string in your database","8":"Database Structure Analysis - Detailed information on databases and tables","9":"Performance Features - Toggle-based performance enhancements","10":"Automation Settings - Schedule configuration interface","11":"User Manual with detailed descriptions and explanations of each feature"}},"plugin_section":[],"plugin_tags":[151,146,17806,187,247],"plugin_category":[52,54,59],"plugin_contributors":[253375],"plugin_business_model":[],"class_list":["post-264974","plugin","type-plugin","status-publish","hentry","plugin_tags-backup","plugin_tags-cache","plugin_tags-database-cleanup","plugin_tags-optimization","plugin_tags-performance","plugin_category-performance","plugin_category-security-and-spam-protection","plugin_category-utilities-and-tools","plugin_contributors-lukegarry","plugin_committers-lukegarry"],"banners":{"banner":"https:\/\/ps.w.org\/optistate\/assets\/banner-772x250.png?rev=3578773","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/optistate\/assets\/icon-256x256.png?rev=3433110","icon_2x":"https:\/\/ps.w.org\/optistate\/assets\/icon-256x256.png?rev=3433110","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/optistate\/assets\/screenshot-1.png?rev=3433133","caption":"Database Backup &amp; Restore Operations"},{"src":"https:\/\/ps.w.org\/optistate\/assets\/screenshot-2.png?rev=3433110","caption":"Dashboard Overview - Health score gauge and quick analysis"},{"src":"https:\/\/ps.w.org\/optistate\/assets\/screenshot-3.png?rev=3433110","caption":"Database Statistics - Visual charts and detailed metrics"},{"src":"https:\/\/ps.w.org\/optistate\/assets\/screenshot-4.png?rev=3433110","caption":"Cleanup Interface - Itemized cleanup options with counts"},{"src":"https:\/\/ps.w.org\/optistate\/assets\/screenshot-5.png?rev=3433110","caption":"Performance Metrics (Google PageSpeed Insights)"},{"src":"https:\/\/ps.w.org\/optistate\/assets\/screenshot-6.png?rev=3433110","caption":"Advanced Database Operations - Defragmentation, Repair, Optimize Autoloaded Data"},{"src":"https:\/\/ps.w.org\/optistate\/assets\/screenshot-7.png?rev=3433110","caption":"Database Search &amp; Replace utility - Replace any string in your database"},{"src":"https:\/\/ps.w.org\/optistate\/assets\/screenshot-8.png?rev=3433110","caption":"Database Structure Analysis - Detailed information on databases and tables"},{"src":"https:\/\/ps.w.org\/optistate\/assets\/screenshot-9.png?rev=3433110","caption":"Performance Features - Toggle-based performance enhancements"},{"src":"https:\/\/ps.w.org\/optistate\/assets\/screenshot-10.png?rev=3433110","caption":"Automation Settings - Schedule configuration interface"},{"src":"https:\/\/ps.w.org\/optistate\/assets\/screenshot-11.png?rev=3433110","caption":"User Manual with detailed descriptions and explanations of each feature"}],"raw_content":"<!--section=description-->\n<p><strong>Optimal State<\/strong> is a complete performance suite that does it all: database optimization, automated backups, page caching, brute force protection, 2FA, search &amp; replace, and advanced cleanup. All in one lightweight plugin.<\/p>\n\n<p><strong>Why pay for 4-6 separate plugins?<\/strong> Optimal State replaces WP Rocket, UpdraftPlus, WP\u2011Optimize, Perfmatters, Better Search Replace, Loginizer and more \u2014 saving you money, reducing conflicts, and simplifying your workflow.<\/p>\n\n<p><a href=\"https:\/\/spiritualseek.com\/wp-content\/uploads\/2025\/11\/optistate-preview.html\"><strong>\u25b6 Live Interactive Demo<\/strong><\/a> | <a href=\"https:\/\/spiritualseek.com\/wp-content\/uploads\/2025\/11\/WP_Optimal_State_PRO_User_Manual.html\"><strong>\ud83d\udcd5 User Manual<\/strong><\/a><\/p>\n\n<p>[youtube https:\/\/youtu.be\/LrsOICyAB-U]<\/p>\n\n<h4>What Makes Optimal State Different?<\/h4>\n\n<p><strong>\ud83d\ude80 All\u2011in\u2011One, Not a Collection of Features<\/strong>\nUnlike plugins that bolt on random features, Optimal State is engineered as a unified performance system. Every component works together, not against each other.<\/p>\n\n<p><strong>\ud83d\udcb0 Replace 6+ Premium Plugins<\/strong>\nStop paying for multiple subscriptions. Get everything you need in one plugin:<\/p>\n\n<ul>\n<li><strong>UpdraftPlus<\/strong> \u2192 Database backup &amp; restore (with safety rollback)<\/li>\n<li><strong>WP Rocket<\/strong> \u2192 Page caching, browser caching, performance tweaks<\/li>\n<li><strong>WP\u2011Optimize<\/strong> \u2192 Database cleanup, table optimization, autoload optimization<\/li>\n<li><strong>Better Search Replace<\/strong> \u2192 Serialization\u2011safe search &amp; replace<\/li>\n<li><strong>Perfmatters<\/strong> \u2192 Heartbeat control, emoji removal, header cleanup<\/li>\n<li><strong>Loginizer<\/strong> \u2192 Brute force protection, IP blocking<\/li>\n<li><strong>Plus<\/strong> \u2192 2FA, legacy plugin scanner, integrity scanner, index manager<\/li>\n<\/ul>\n\n<p><strong>\ud83d\udd2c Built on Real Database Science<\/strong>\nOur proprietary health scoring algorithm (0\u2013100) analyzes 3 key areas: Performance (40%), Cleanliness (35%), and Efficiency (25%). It tells you exactly what to fix and when.<\/p>\n\n<p><strong>\ud83d\udee1\ufe0f Enterprise\u2011Grade Safety<\/strong>\nEvery destructive operation includes:\n- Automatic safety backup\n- Emergency rollback system\n- Zero\u2011downtime restore (temp table swap)\n- Database validation before restore\n- Maintenance mode during critical ops<\/p>\n\n<h4>What You Can Do With Optimal State<\/h4>\n\n<p><strong>\ud83d\uddc4\ufe0f Database Optimization<\/strong>\n- One\u2011click optimization cleans 20 types of database bloat in seconds\n- Real\u2011time health score (0\u2011100) shows your database condition at a glance\n- Table defragmentation recovers wasted disk space\n- Autoload optimization speeds up every page load (critical for TTFB)\n- Table repair fixes corrupted tables automatically\n- Legacy plugin scanner removes ghost data from uninstalled plugins\n- Delete unused tables safely (with protection for active plugins)<\/p>\n\n<p><strong>\ud83d\udcbe Backup &amp; Restore<\/strong>\n- Create GZIP\u2011compressed database backups with integrity checksums\n- Restore any backup with automatic safety rollback\n- Keep up to 10 backups with automatic rotation\n- Upload and restore external backups (up to 5GB)\n- Zero\u2011downtime restore using temporary table technology\n- Protected backup directory prevents unauthorized access<\/p>\n\n<p><strong>\u26a1 Caching System<\/strong>\n- Server\u2011side page caching delivers lightning\u2011fast HTML\n- Browser caching with automatic .htaccess rules (Apache)\n- Database query caching for Redis\/Memcached\n- Mobile\u2011specific cache for separate mobile layouts\n- Smart cache preload from sitemap\n- GDPR\u2011compliant cookie detection (supports 20+ consent plugins)\n- Intelligent auto\u2011purge on content updates<\/p>\n\n<p><strong>\ud83d\udd0d Search &amp; Replace<\/strong>\n- Serialization\u2011safe \u2014 handles PHP serialized data correctly\n- Dry run mode previews all changes before execution\n- Table\u2011specific operations for targeted updates\n- Partial or whole\u2011word matching\n- Essential for domain migrations<\/p>\n\n<p><strong>\ud83c\udf9b\ufe0f Performance Features<\/strong>\n- Bad bot blocker blocks resource\u2011hungry crawlers\n- Font loading optimization eliminates render\u2011blocking fonts\n- Lazy load images and iframes\n- Heartbeat API control reduces server load by 60%+\n- Post revisions limit (save 30\u201150% database space)\n- Trash auto\u2011empty after X days\n- Disable XML\u2011RPC (block brute force attacks)\n- Remove emoji scripts (save 12KB per page)\n- Clean WordPress headers (hide version, RSD, WLW, shortlinks)<\/p>\n\n<p><strong>\ud83d\udcca Analytics &amp; Monitoring<\/strong>\n- PageSpeed Insights integration (Core Web Vitals)\n- Performance metrics dashboard\n- Detailed database statistics\n- Activity log (last 250 operations)\n- Track optimization impact over time<\/p>\n\n<p><strong>\u23f0 Automation<\/strong>\n- Schedule daily, weekly, or monthly optimization\n- Email notifications with detailed reports\n- Custom time selection (run during low traffic)\n- Combined backup + cleanup operations<\/p>\n\n<p><strong>\ud83d\udd12 Security<\/strong>\n- Emergency rollback on restore failure\n- Maintenance mode during critical operations\n- Database validation before restore\n- User access control (restrict plugin to specific admins)\n- Settings export\/import\n- Brute force protection for login page\n- IP number blocker (block entire site access)\n- Two\u2011Factor Authentication (2FA)<\/p>\n\n<h4>Perfect For<\/h4>\n\n<p><strong>\ud83d\uded2 E\u2011commerce Stores<\/strong> \u2013 WooCommerce session cleanup, Action Scheduler optimization, order transient removal, product index optimization<\/p>\n\n<p><strong>\ud83d\udcdd High\u2011Traffic Blogs<\/strong> \u2013 Revision control, comment spam removal, transient cleanup, cache preload<\/p>\n\n<p><strong>\ud83c\udfe2 Agencies &amp; Developers<\/strong> \u2013 Staging\/production migrations, bulk cleanup, settings export\/import<\/p>\n\n<p><strong>\ud83d\udd12 Membership Sites<\/strong> \u2013 User metadata optimization, scheduled maintenance, login protection<\/p>\n\n<p><strong>\ud83c\udf10 Any WordPress Site<\/strong> \u2013 Slow admin, bloated database, poor performance, or security concerns<\/p>\n\n<h4>Replaces These Popular Plugins<\/h4>\n\n<ul>\n<li><strong>UpdraftPlus<\/strong> \u2192 Backup &amp; Restore<\/li>\n<li><strong>WP Rocket<\/strong> \u2192 Caching &amp; Performance<\/li>\n<li><strong>WP Super Cache<\/strong> \u2192 Page Caching<\/li>\n<li><strong>WP-Optimize<\/strong> \u2192 Database Cleanup<\/li>\n<li><strong>Better Search Replace<\/strong> \u2192 Database Search &amp; Replace<\/li>\n<li><strong>Perfmatters<\/strong> \u2192 Performance Optimization<\/li>\n<li><strong>Heartbeat Control<\/strong> \u2192 Heartbeat Management<\/li>\n<li><strong>WP Revisions Control<\/strong> \u2192 Revision Limits<\/li>\n<li><strong>Clearfy<\/strong> \u2192 Performance Tweaks<\/li>\n<li><strong>Advanced Database Cleaner<\/strong> \u2192 Deep Database Cleanup<\/li>\n<li><strong>Autoptimize<\/strong> \u2192 Performance Features<\/li>\n<li><strong>Loginizer<\/strong> \u2192 Login Page Protection<\/li>\n<\/ul>\n\n<h4>What Makes Optimal State Different?<\/h4>\n\n<p><strong>Unlike WP-Optimize<\/strong>: We include professional backup\/restore and advanced caching\u2014not just basic cleanup.<\/p>\n\n<p><strong>Unlike UpdraftPlus<\/strong>: We optimize your database for performance, not just backup. Backups are 40-60% smaller due to optimization.<\/p>\n\n<p><strong>Unlike WP Rocket<\/strong>: We tackle the root cause (database bloat) instead of just caching around the problem. Combined approach = better results.<\/p>\n\n<p><strong>Unlike Perfmatters<\/strong>: We provide complete database management, automated backups, and intelligent cleanup\u2014not just toggle switches.<\/p>\n\n<p><strong>Unlike Loginizer<\/strong>: We provide a user-friendly, straightforward control panel that requires no technical expertise.<\/p>\n\n<p><strong>The Optimal State Advantage<\/strong>: One plugin, one interface, one optimization strategy. No conflicts, no compatibility issues, no subscription fatigue.<\/p>\n\n<h4>Technical Specifications<\/h4>\n\n<ul>\n<li><strong>Minimum Requirements<\/strong>: WordPress 5.5+, PHP 7.4+<\/li>\n<li><strong>Tested Up To<\/strong>: WordPress 7.0<\/li>\n<li><strong>Server Compatibility<\/strong>: Shared hosting, VPS, dedicated, cloud (AWS, DigitalOcean, etc.)<\/li>\n<li><strong>Hosting Compatibility<\/strong>: Bluehost, SiteGround, WP Engine, Kinsta, Cloudways, all major hosts<\/li>\n<li><strong>Multisite<\/strong>: Not currently supported<\/li>\n<li><strong>Database Support<\/strong>: MySQL 5.6+, MariaDB 10.1+<\/li>\n<li><strong>Cache Support<\/strong>: Redis, Memcached, APCu compatible<\/li>\n<\/ul>\n\n<h3>External Services and Resources<\/h3>\n\n<p>Optimal State utilizes the following third-party services and open-source libraries to enhance functionality and user experience:<\/p>\n\n<ul>\n<li><p><strong>Google PageSpeed Insights API<\/strong> \u2013 Performance measurement tool that analyzes web page content and generates suggestions to make that page faster.\nThe plugin's PageSpeed integration uses this API to fetch and display Core Web Vitals metrics and optimization opportunities.\nWhen you use the PageSpeed feature, your site URL is sent to Google's servers for analysis.\nUse of this API is subject to Google's Terms of Service and Privacy Policy.<\/p>\n\n<ul>\n<li>API Documentation: https:\/\/developers.google.com\/speed\/docs\/insights\/v5\/get-started<\/li>\n<li>Terms of Service: https:\/\/developers.google.com\/terms<\/li>\n<li>Privacy Policy: https:\/\/policies.google.com\/privacy<\/li>\n<\/ul><\/li>\n<li><p><strong>GTranslate Widget<\/strong> \u2013 Website translation service that provides automatic language translation functionality.\nThe plugin loads the GTranslate popup widget from cdn.gtranslate.net to enable multi-language support in the admin interface.\nWhen the widget is loaded, it may connect to GTranslate's servers to provide translation services.\nUse of this service is subject to GTranslate's Terms of Service and Privacy Policy.<\/p>\n\n<ul>\n<li>Service Website: https:\/\/gtranslate.io\/<\/li>\n<li>Terms of Service: https:\/\/gtranslate.io\/terms-and-conditions<\/li>\n<li>Privacy Policy: https:\/\/gtranslate.io\/privacy-policy<\/li>\n<\/ul><\/li>\n<\/ul>\n\n<p>Note: The PageSpeed Insights feature is optional and only activates when you manually request a performance analysis. No data is sent to external services without your explicit action.<\/p>\n\n<h3>Credits<\/h3>\n\n<ul>\n<li>Developed by Luke Garrison<\/li>\n<li>Icons by Dashicons (WordPress Core)<\/li>\n<li>Performance metrics based on Google PageSpeed Insights<\/li>\n<\/ul>\n\n<p><strong>Contributing<\/strong>: Interested in contributing to Optimal State? Feature requests, bug reports, and code contributions are welcome. Visit our support page for contribution guidelines.<\/p>\n\n<h3>Support and Documentation<\/h3>\n\n<h4>Getting Help<\/h4>\n\n<ul>\n<li><strong>User Manual<\/strong>: Comprehensive documentation built into the plugin (user manual included)<\/li>\n<li><strong>FAQ Section<\/strong>: Common questions answered in detail<\/li>\n<li><strong>Live Demo<\/strong>: Interactive preview to explore features before installation<\/li>\n<li><strong>Email Support<\/strong>: Priority support for Pro version users<\/li>\n<\/ul>\n\n<h4>Useful Links<\/h4>\n\n<ul>\n<li><a href=\"https:\/\/spiritualseek.com\/wp-content\/uploads\/2025\/11\/optistate-preview.html\">Live Interactive Demo<\/a><\/li>\n<li><a href=\"https:\/\/payhip.com\/optistate\/contact\">Support Page<\/a><\/li>\n<li><a href=\"https:\/\/spiritualseek.com\/wp-content\/uploads\/2025\/11\/WP_Optimal_State_PRO_User_Manual.html\">User Manual<\/a><\/li>\n<\/ul>\n\n<h4>Feature Requests<\/h4>\n\n<p>We actively develop Optimal State based on user feedback. If you have a feature request or enhancement idea, please contact us through the support page. Many current features were implemented based on user suggestions.<\/p>\n\n<!--section=installation-->\n<h4>Automatic Installation (Recommended)<\/h4>\n\n<ol>\n<li>Log into your WordPress dashboard<\/li>\n<li>Navigate to <strong>Plugins \u2192 Add New<\/strong><\/li>\n<li>Search for \"<strong>Optimal State<\/strong>\" or \"<strong>optistate<\/strong>\"<\/li>\n<li>Click \"<strong>Install Now<\/strong>\" on the Optimal State plugin card<\/li>\n<li>Click \"<strong>Activate<\/strong>\" after installation completes<\/li>\n<li>Access <strong>Optimal State<\/strong> from your WordPress admin menu<\/li>\n<\/ol>\n\n<h4>Manual Installation<\/h4>\n\n<ol>\n<li>Download <code>optistate.zip<\/code> from WordPress.org<\/li>\n<li>Log into your WordPress dashboard<\/li>\n<li>Go to <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong><\/li>\n<li>Choose the <code>optistate.zip<\/code> file<\/li>\n<li>Click \"<strong>Install Now<\/strong>\" then \"<strong>Activate<\/strong>\"<\/li>\n<li>Access <strong>Optimal State<\/strong> from your admin menu<\/li>\n<\/ol>\n\n<h4>First-Time Setup<\/h4>\n\n<ol>\n<li>Navigate to <strong>Optimal State<\/strong> in your admin menu<\/li>\n<li>Review the <strong>Dashboard<\/strong> to see your current database health score<\/li>\n<li>Check <strong>Statistics<\/strong> to identify optimization opportunities<\/li>\n<li>Create your first backup in the <strong>Backups<\/strong> tab<\/li>\n<li>Run <strong>One-Click Optimization<\/strong> from the <strong>Optimize<\/strong> tab<\/li>\n<li>Review the <strong>User Manual<\/strong> tab for detailed feature explanations<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20optimal%20state%20safe%20to%20use%20on%20production%20sites%3F\"><h3>Is Optimal State safe to use on production sites?<\/h3><\/dt>\n<dd><p>Yes. The plugin includes multiple safety mechanisms:\n- Automatic safety backup before restore operations\n- Emergency rollback if anything goes wrong\n- Dry run mode for search &amp; replace\n- Zero\u2011downtime restore using temp table swap\n- Database validation before restore\n- Confirmation dialogs for destructive actions<\/p><\/dd>\n<dt id=\"how%20does%20the%20emergency%20rollback%20work%20during%20a%20restore%3F\"><h3>How does the emergency rollback work during a restore?<\/h3><\/dt>\n<dd><p>When you restore a backup, Optimal State first creates a safety backup of your current database. Then it uses a temporary table system: restored data goes into temporary tables first, validation is performed, and only after success are the tables atomically swapped (renamed) into place. If anything fails during the process \u2013 server crash, timeout, data corruption \u2013 the plugin automatically rolls back to the safety backup and puts your site back in maintenance\u2011free mode. This is handled by the <code>OPTISTATE_Restore_Engine<\/code> which uses MySQL atomic rename operations to ensure zero data loss. Even if the restore fails mid\u2011way, your original tables remain untouched with an <code>optistate_old_<\/code> prefix, ready for manual recovery.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20a%20restore%20process%20gets%20stuck%20or%20times%20out%3F\"><h3>What happens if a restore process gets stuck or times out?<\/h3><\/dt>\n<dd><p>Optimal State uses a chunked restore system that processes large SQL files in manageable pieces. Each chunk runs within a set time limit and commits its changes. If a chunk times out, the system simply reschedules the next chunk to continue where it left off. The temporary table approach means that partial data never affects your live site. If the process gets completely stuck (e.g., server restarts), you can safely deactivate and reactivate the plugin \u2013 it will automatically detect the stalled restore and clean up any temporary tables. You'll also see a \"Restore stuck?\" notice with clear instructions on how to abort safely.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20a%20restore%20fails%3F\"><h3>What happens if a restore fails?<\/h3><\/dt>\n<dd><p>The system uses temporary table swap technology:\n1. Data goes into temporary tables first\n2. Validation check before going live\n3. Atomic swap (old \u2192 backup, temp \u2192 live)\n4. Emergency rollback if anything fails\n5. Original tables remain untouched with <code>optistate_old_<\/code> prefix<\/p><\/dd>\n<dt id=\"can%20the%20plugin%20handle%20very%20large%20databases%3F\"><h3>Can the plugin handle very large databases?<\/h3><\/dt>\n<dd><p>Absolutely. Optimal State is built with large\u2011database scenarios in mind:<\/p>\n\n<ul>\n<li><strong>Backups<\/strong> are created in chunks, not all at once, so memory limits are never exhausted. The system adapts batch sizes based on your server's memory and execution time (<code>OPTISTATE_Backup_Engine::get_adaptive_batch_limit<\/code>).<\/li>\n<li><strong>Restores<\/strong> are also chunked; each chunk processes a limited number of SQL statements and commits them, preventing timeouts. For very large files, decompression is performed in streaming mode, reading and writing in small blocks.<\/li>\n<li><strong>Cleanups<\/strong> use batch deletes (e.g., <code>DELETE ... LIMIT 2000<\/code>) with transaction commits between batches, so they don't lock tables for long periods.<\/li>\n<li>The Process Store (<code>OPTISTATE_Process_Store<\/code>) manages long\u2011running tasks using advisory locks and expiration, ensuring that background workers don't collide and that stale jobs are cleaned up.<\/li>\n<\/ul>\n\n<p>Databases up to several gigabytes are fully supported. For extremely large sites (10GB+), we recommend using the Pro version which includes additional optimizations for large\u2011scale operations.<\/p><\/dd>\n<dt id=\"will%20this%20plugin%20conflict%20with%20my%20caching%20plugin%3F\"><h3>Will this plugin conflict with my caching plugin?<\/h3><\/dt>\n<dd><p><strong>Compatible:<\/strong> Redis\/Memcached, Cloudflare, BunnyCDN\n<strong>May conflict:<\/strong> WP Rocket, WP Super Cache, W3 Total Cache, Swift Performance<\/p>\n\n<p>If you already use a caching plugin, simply disable Optimal State's caching features (Server\u2011Side Page Caching and Browser Caching) and use it for database optimization, backups, and security features.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20woocommerce%3F\"><h3>Does this work with WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. Optimal State includes specialized WooCommerce optimization:\n- Expired session cleanup (<code>clean_woocommerce_bloat<\/code> removes expired sessions and transients)\n- Action Scheduler log purging (removes completed, failed, canceled actions)\n- Order transient removal\n- Smart cache invalidation on order updates\n- Product index optimization (Pro)<\/p>\n\n<p>Many WooCommerce stores see dramatic performance improvements after cleanup, especially if you have thousands of products or orders.<\/p><\/dd>\n<dt id=\"can%20i%20migrate%20my%20site%20to%20a%20new%20domain%20with%20this%3F\"><h3>Can I migrate my site to a new domain with this?<\/h3><\/dt>\n<dd><p>Yes. Use the workflow:\n1. Create backup on old site\n2. Download the .sql.gz file\n3. Install WordPress on new domain\n4. Install Optimal State\n5. Upload &amp; restore the backup\n6. Use Search &amp; Replace to update URLs (it handles serialized data correctly)\n7. Clear all caches<\/p>\n\n<p>The Search &amp; Replace feature includes a \"Dry Run\" mode so you can preview all changes before applying them.<\/p><\/dd>\n<dt id=\"what%20data%20does%20the%20cleanup%20remove%3F\"><h3>What data does the cleanup remove?<\/h3><\/dt>\n<dd><p>20 types including: post revisions, auto\u2011drafts, spam comments, trashed comments, trashed posts, orphaned postmeta, orphaned commentmeta, orphaned usermeta, orphaned term relationships, duplicate postmeta, duplicate commentmeta, pingbacks, trackbacks, expired transients, all transients, action scheduler logs, oEmbed cache, WooCommerce sessions, empty taxonomies, and WooCommerce bloat.<\/p><\/dd>\n<dt id=\"how%20much%20space%20can%20i%20save%3F\"><h3>How much space can I save?<\/h3><\/dt>\n<dd><ul>\n<li>New sites (&lt;6 months): 5\u201115%<\/li>\n<li>Medium sites (1\u20113 years): 15\u201135%<\/li>\n<li>Neglected sites (3+ years): 40\u201170%<\/li>\n<\/ul><\/dd>\n<dt id=\"does%20this%20work%20on%20managed%20wordpress%20hosting%3F\"><h3>Does this work on managed WordPress hosting?<\/h3><\/dt>\n<dd><p>Yes, with some platform\u2011specific notes:<\/p>\n\n<p><strong>Full compatibility:<\/strong> SiteGround, Bluehost, HostGator, DreamHost, A2 Hosting, InMotion, most cPanel hosts<\/p>\n\n<p><strong>Database features only (disable page caching):<\/strong> WP Engine, Kinsta, Flywheel (use platform caching)<\/p><\/dd>\n<dt id=\"how%20does%20the%20page%20caching%20handle%20gdpr%2Fcookie%20consent%3F\"><h3>How does the page caching handle GDPR\/cookie consent?<\/h3><\/dt>\n<dd><p>Optimal State's server\u2011side caching automatically detects consent cookies from 20+ popular cookie plugins (CookieYes, Complianz, Cookie Notice, Borlabs, Real Cookie Banner, OneTrust, iubenda, etc.). Users <strong>with<\/strong> consent cookies see cached pages (fast). Users <strong>without<\/strong> consent cookies see fresh pages (privacy\u2011safe). You can also add custom consent cookie names if your site uses a less common solution. This is all handled by the <code>OPTISTATE_Server_Caching<\/code> class, which parses cookie headers and checks against known patterns.<\/p><\/dd>\n<dt id=\"can%20i%20schedule%20automatic%20optimization%3F\"><h3>Can I schedule automatic optimization?<\/h3><\/dt>\n<dd><p>Yes (Pro feature). You can schedule daily, weekly, or monthly optimization at any time (e.g., 2 AM). The system will create a backup, perform a full cleanup, and send you an email report. You can also choose \"Backup Only\" mode if you want to skip the cleanup part.<\/p><\/dd>\n<dt id=\"what%20is%20the%20autoload%20optimization%20feature%20and%20is%20it%20safe%3F\"><h3>What is the Autoload Optimization feature and is it safe?<\/h3><\/dt>\n<dd><p>Autoloaded options are database entries that WordPress loads on every single page request. If these become too large (over 800KB), they significantly slow down your Time To First Byte (TTFB). Optimal State scans for large options that aren't essential and safely changes their autoload setting to \"no\". The feature automatically creates a backup of the original autoload status, so you can restore it instantly if anything breaks. The backup is stored in the <code>optistate_core_data<\/code> table and can be restored with a single click from the Advanced Tools panel.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20support%20two%E2%80%91factor%20authentication%3F\"><h3>Does the plugin support Two\u2011Factor Authentication?<\/h3><\/dt>\n<dd><p>Yes. Optimal State includes full TOTP\u2011based 2FA (time\u2011based one\u2011time passwords) compatible with Google Authenticator, Authy, and other apps. Each user can enable it from their profile page. The system generates backup codes that can be used if you lose access to your authenticator app. This is handled by the <code>OPTISTATE_TwoFactor<\/code> class, which uses secure encryption for secrets and hash\u2011based verification for backup codes.<\/p><\/dd>\n<dt id=\"how%20does%20the%20ip%20number%20blocker%20work%3F\"><h3>How does the IP Number Blocker work?<\/h3><\/dt>\n<dd><p>The IP Blocker allows you to deny access to your entire site to specific IP addresses or CIDR ranges. Blocked IPs receive a 403 Forbidden response. You can block IPv4 and IPv6 addresses, as well as network ranges (e.g., <code>192.168.1.0\/24<\/code>). The block list is stored in the database and enforced via PHP (not just .htaccess), so it works on any server environment, including Nginx. The plugin also prevents you from accidentally blocking your own IP by warning you if your current IP is in the list.<\/p><\/dd>\n<dt id=\"can%20i%20restrict%20plugin%20access%20to%20only%20certain%20administrators%3F\"><h3>Can I restrict plugin access to only certain administrators?<\/h3><\/dt>\n<dd><p>Yes. In the Settings tab, you can select which administrator accounts are allowed to use Optimal State. If no users are selected, all administrators have access. This is useful for agencies or large teams where you want to limit who can perform database\u2011sensitive operations. The access control is enforced on every admin page and AJAX request.<\/p><\/dd>\n<dt id=\"what%20support%20is%20available%3F\"><h3>What support is available?<\/h3><\/dt>\n<dd><p><strong>Free version:<\/strong> WordPress.org forums, built\u2011in user manual\n<strong>Pro version:<\/strong> Priority email support, advanced troubleshooting, migration guidance<\/p><\/dd>\n<dt id=\"is%20my%20data%20sent%20to%20external%20servers%3F\"><h3>Is my data sent to external servers?<\/h3><\/dt>\n<dd><p>No. All operations run locally on your server. The only exceptions are:\n- <strong>PageSpeed Insights<\/strong> \u2013 Only when you manually click \"Run Audit\", your site URL is sent to Google's API. This never happens automatically.\n- <strong>GTranslate widget<\/strong> \u2013 A translation widget loads from cdn.gtranslate.net to help non\u2011English speakers (cosmetic only, doesn't affect functionality).<\/p>\n\n<p>No usage statistics, analytics, or telemetry are collected.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.4.1 - June 2026<\/h4>\n\n<ul>\n<li>New security feature: Two-Factor Authentication (2FA).<\/li>\n<li>Added System Info section in the Dashboard tab.<\/li>\n<li>Added Trash (Recover Deleted Folders) to the Legacy Plugin Data Scanner tool.<\/li>\n<li>Added backup-and-restore capability to the Optimize Autoloaded Options tool.<\/li>\n<li>Implemented several improvements and refinements for improved efficiency and reliability.<\/li>\n<\/ul>\n\n<h4>1.4.0 - June 2026<\/h4>\n\n<ul>\n<li>Implemented the 'IP Number Blocker' feature in addition to the 'Login Page Protection'.<\/li>\n<li>Resolved a minor JavaScript issue affecting the save buttons.<\/li>\n<li>Added a new setting to the server-side caching feature (Minify HTML before caching).<\/li>\n<li>Improved the Query Caching feature for better performance and reliability.<\/li>\n<li>Removed configuration and logging files from uploads\/optistate-settings\/ folder and moved them to a dedicated database table.<\/li>\n<li>Increased the replacement speed of the Database Search &amp; Replace tool.<\/li>\n<li>Slightly increased the database statistics load speed.<\/li>\n<li>Added more details to the One-Click Optimization interface.<\/li>\n<\/ul>\n\n<h4>1.3.3 - June 2026<\/h4>\n\n<ul>\n<li>Main class \"class-optistate.php\" split into two additional classes.<\/li>\n<li>Toast notification system enhanced for better accessibility and readability.<\/li>\n<li>Added a \"Refresh Items\" button to the One-Click Optimization feature.<\/li>\n<li>Improved database backup and restore system compatibility, now covering 99.5% of websites.<\/li>\n<li>Enhanced memory management of the database restore process to minimize errors on low-performance servers.<\/li>\n<li>Adjusted some settings in the database cleanup functions for faster and more reliable operation.<\/li>\n<li>Updated XML-RPC Interface disabling to prevent error messages in the error log file. <\/li>\n<li>Database Query Caching system optimized for higher reliability and improved performance.<\/li>\n<li>Adjusted the \"Optimize All Tables\" feature to ensure maximum stability on slow servers as well.<\/li>\n<li>Various minor adjustments to ensure full security across all operations on all compatible WordPress and PHP versions.<\/li>\n<\/ul>\n\n<h4>1.3.2 - June 2026<\/h4>\n\n<ul>\n<li>Optimal State becomes completely free starting on June 3, 2026. <\/li>\n<li>Enjoy full access to all the advanced features free of charge!<\/li>\n<\/ul>\n\n<h4>1.3.1 - June 2026<\/h4>\n\n<ul>\n<li>Tested with WordPress 7.x for full compatibility.<\/li>\n<li>Tested on PHP 8.5 for full compatibility.<\/li>\n<li>Fixed a minor issue with date formatting.<\/li>\n<li>Fixed the vertical alignment of the dashicons inside the buttons.<\/li>\n<li>Fixed the \"restore completed\" admin notice displaying an incorrect elapsed time on some sites.<\/li>\n<li>Fixed autoloaded options size being undercounted on WordPress 6.6+ sites. <\/li>\n<\/ul>\n\n<h4>1.3.0 - March 2026<\/h4>\n\n<ul>\n<li>Updated the server-side caching feature to improve the performance and reliability of the cache preloading and cache purging functionalities.<\/li>\n<li>Improved the reliability of the Legacy Plugin Data Scanner to minimize false positives. <\/li>\n<li>Added two performance features: Removal of 1. Feed Links (RSS &amp; Atom) and 2. Post Relational Links.<\/li>\n<li>Powered up the Database Query Caching feature by adding two extra settings and optimizing how things work.<\/li>\n<li>Added validation of security headers via external link to the Browser Caching feature.<\/li>\n<li>Added several new recommendations to the Health Score Database tool.<\/li>\n<li>Added several new recommendations to the Performance Metrics (PageSpeed) tool.<\/li>\n<li>Implemented an additional security check in the database table deletion function within the Database Structure Analysis tool.<\/li>\n<li>Refined the Login Page Protection tool to increase its efficiency and reduce its impact on website performance.<\/li>\n<li>Completely redesigned the main plugin class (class-optistate.php), optimizing a dozen areas for greater efficiency and improved compatibility.<\/li>\n<\/ul>\n\n<h4>1.2.2 - February 2026<\/h4>\n\n<ul>\n<li>The JavaScript code has been completely rewritten for better efficiency and reliability.<\/li>\n<li>Improved Legacy Plugin Data Scanner for deeper scanning.<\/li>\n<li>Expanded the database of plugins and themes detected by Legacy Plugin Data Scanner.<\/li>\n<li>Improved the scan depth of the Database Search &amp; Replace functionality.<\/li>\n<li>Fixed a bug in the database statistics retrieval that caused an error when refreshing.<\/li>\n<li>Optimized the integration of Performance Metrics (PageSpeed) for faster and more accurate reporting.<\/li>\n<li>Expanded the capabilities of the Database Structure Analysis tool, which now displays plugin\/theme names alongside their corresponding database table names.<\/li>\n<li>The Bad Bot Blocker tool has been upgraded and now works perfectly and efficiently on Nginx servers as well.<\/li>\n<li>The Login Page Protection tool has been revised to increase its efficiency against massive brute force attacks, while still being completely reliable.<\/li>\n<li>The user manual has been updated, expanded, and is now more user-friendly.<\/li>\n<\/ul>\n\n<h4>1.2.1 - February 2026<\/h4>\n\n<p><strong>New Feature: Legacy Plugin Data Scanner<\/strong>\n* Detects data left behind by plugins\/themes you have uninstalled\n* Includes accurate security measures to avoid false positives\n* The most powerful and comprehensive tool available in this category\n<strong>Database Restore System Refinements:<\/strong>\n* Full disabling on WordPress Multisite installations\n* Enhanced efficiency of several core functions\n* Increased protection against SQL injection vulnerabilities\n* Added detailed how-to instructions for stuck restore processes\n* Compatibility with phpMyAdmin exports increased to 100%\n* Optimized server resource management to minimize errors and crashes\n<strong>Security &amp; Performance Improvements:<\/strong>\n* Refined login page protection against brute force attacks\n* Minimized memory and CPU waste during massive attack scenarios\n* Improved security and behavior of cleanup operations related to:\n  - WooCommerce data\n  - Duplicate post meta\n  - Duplicate comment meta\n<strong>Enhanced Analytics &amp; Features:<\/strong>\n* Improved accuracy of database statistics\n* Enhanced efficiency of database queries for statistical retrieval\n* Added new performance feature: <strong>Font Loading Optimization<\/strong>\n* Improved efficiency and reliability of Bad Bot Blocker on Nginx servers\n<strong>Documentation Updates:<\/strong>\n* Expanded user manual with new sections\n* Updated existing documentation for better user-friendliness\n* Enhanced clarity for technical operations<\/p>\n\n<h4>1.2.0 - January 2026<\/h4>\n\n<ul>\n<li>Modal Confirmations: Added user-friendly confirmation dialogs for all critical database operations including Create Backup, One-Click Optimization, Table Defragmentation, Repair Corrupted Tables, Optimize Autoloaded Data, and all cleanup operations (both detailed and targeted). Each modal displays operation-specific details and item counts to ensure informed decisions before execution.<\/li>\n<li>Print &amp; Export: New functionality to print the manual or export it as a PDF for offline reference.<\/li>\n<li>Navigation Enhancements: Integrated a \"Back to Top\" smooth-scroll button and a detailed Table of Contents for easier navigation of technical sections.<\/li>\n<li>Persistent Tabs: The interface now uses sessionStorage in admin.js to remember your last active tab, ensuring you stay where you left off after a page refresh.<\/li>\n<li>Preview Branding: Updated the header section with new \"Preview\" and \"Free Version\" badges for better version clarity.<\/li>\n<li>Enhanced Modal Styling: Improved modal dialog appearance with better typography, spacing, and close button functionality for a more polished user experience.<\/li>\n<li>Expanded Sanitization: Updated optistate.php with more robust sanitization for cache settings, including specific handling for cache_lifetime and query_handling.<\/li>\n<li>Optimized Asset Loading: Modified admin.js to use passive scroll listeners, improving the responsiveness of the admin dashboard.<\/li>\n<li>Code Refactoring: Migrated inline CSS styles from admin-interface.php to admin.css to improve performance and code maintainability.<\/li>\n<li>Safety Features: All destructive operations now require explicit confirmation with clear warnings about permanent data deletion and backup recommendations where appropriate.<\/li>\n<\/ul>\n\n<h4>1.1.9 - January 2026<\/h4>\n\n<ul>\n<li>Added comprehensive user manual with detailed feature explanations<\/li>\n<li>Expanded cleanup operations to 20 distinct types<\/li>\n<li>Improved performance metrics display with Core Web Vitals<\/li>\n<li>Enhanced toast notification system with detailed operation results<\/li>\n<li>Replaced remote Font Awesome dependency with local Dashicons for faster loading<\/li>\n<li>Localized Chart.js library to eliminate CDN dependency and improve privacy<\/li>\n<li>Optimized database query efficiency for faster health score calculations<\/li>\n<li>Fixed minor UI inconsistencies in mobile responsive design<\/li>\n<li>Updated security recommendations based on WordPress 6.9 best practices<\/li>\n<\/ul>\n\n<h4>1.1.8 - November 2025<\/h4>\n\n<ul>\n<li>Added settings export\/import functionality for configuration backup and migration<\/li>\n<li>Enhanced PageSpeed Insights integration with detailed Core Web Vitals breakdown<\/li>\n<li>Improved database structure analysis with index optimization recommendations<\/li>\n<li>Fixed edge case where cache statistics displayed incorrect numbers<\/li>\n<li>Updated security hardening recommendations for WordPress 6.8<\/li>\n<li>Optimized backup compression algorithm for 15-20% smaller file sizes<\/li>\n<\/ul>\n\n<h4>1.1.7 - October 2025<\/h4>\n\n<ul>\n<li>Added specialized WooCommerce optimization targets (sessions, Action Scheduler, transients)<\/li>\n<li>Enhanced caching configuration with mobile-specific options and GDPR cookie support<\/li>\n<li>Improved automation scheduling interface with custom time selection<\/li>\n<li>Added comprehensive activity logging for all optimization operations (last 150 actions)<\/li>\n<li>Implemented smart cache invalidation on WooCommerce order updates<\/li>\n<li>Fixed compatibility issue with WooCommerce 8.5+ database structure<\/li>\n<li>Performance improvements in cleanup operation speed (30% faster)<\/li>\n<\/ul>\n\n<h4>1.1.6 - July 2025<\/h4>\n\n<ul>\n<li>Core database optimization features: 14 cleanup types, table optimization<\/li>\n<li>Basic server-side and browser caching implementation<\/li>\n<li>Security hardening tools: XML-RPC disable, emoji removal, header cleanup<\/li>\n<li>Automated backup system with GZIP compression<\/li>\n<li>Health score algorithm and visual dashboard<\/li>\n<li>Performance features: lazy load, heartbeat control, revision limits<\/li>\n<\/ul>","raw_excerpt":"One plugin to optimize, backup, secure, and speed up your WordPress site. Replaces 4+ plugins.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/es-cr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/264974","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/es-cr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/es-cr.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/es-cr.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=264974"}],"author":[{"embeddable":true,"href":"https:\/\/es-cr.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/lukegarry"}],"wp:attachment":[{"href":"https:\/\/es-cr.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=264974"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/es-cr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=264974"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/es-cr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=264974"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/es-cr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=264974"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/es-cr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=264974"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/es-cr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=264974"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}