{"id":162113,"date":"2022-09-12T17:51:22","date_gmt":"2022-09-12T17:51:22","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/optimize-more\/"},"modified":"2024-02-20T17:11:23","modified_gmt":"2024-02-20T17:11:23","slug":"optimize-more","status":"publish","type":"plugin","link":"https:\/\/kk.wordpress.org\/plugins\/optimize-more\/","author":20183415,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.0.3","stable_tag":"2.0.3","tested":"6.4.8","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Optimize More!","header_author":"Arya Dhiratara","header_description":"A DIY WordPress Page Speed Optimization Pack. Optimize CSS\/JS Delivery: Load CSS Asynchronously, Delay CSS\/JS until User Interaction, Preload Critical CSS\/JS, and Remove Unused CSS\/JS Files.","assets_banners_color":"fafafa","last_updated":"2024-02-20 17:11:23","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/dhiratara.com\/","rating":5,"author_block_rating":0,"active_installs":200,"downloads":12300,"num_ratings":9,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"aryadhiratara","date":"2022-09-12 17:55:47"},"1.0.1":{"tag":"1.0.1","author":"aryadhiratara","date":"2022-10-07 06:57:40"},"1.0.2":{"tag":"1.0.2","author":"aryadhiratara","date":"2022-10-07 07:19:44"},"1.0.3":{"tag":"1.0.3","author":"aryadhiratara","date":"2022-10-07 07:32:34"},"1.0.4":{"tag":"1.0.4","author":"aryadhiratara","date":"2022-12-07 07:11:03"},"1.0.5":{"tag":"1.0.5","author":"aryadhiratara","date":"2022-12-16 06:07:22"},"1.0.6":{"tag":"1.0.6","author":"aryadhiratara","date":"2023-02-06 13:49:17"},"1.0.7":{"tag":"1.0.7","author":"aryadhiratara","date":"2023-02-14 08:37:47"},"1.0.8":{"tag":"1.0.8","author":"aryadhiratara","date":"2023-02-14 17:53:21"},"1.0.9":{"tag":"1.0.9","author":"aryadhiratara","date":"2023-05-22 04:39:15"},"1.1.0":{"tag":"1.1.0","author":"aryadhiratara","date":"2023-05-22 15:41:28"},"1.1.1":{"tag":"1.1.1","author":"aryadhiratara","date":"2023-06-28 17:01:27"},"2.0.0":{"tag":"2.0.0","author":"aryadhiratara","date":"2023-12-31 17:58:47"},"2.0.1":{"tag":"2.0.1","author":"aryadhiratara","date":"2024-01-22 06:55:05"},"2.0.2":{"tag":"2.0.2","author":"aryadhiratara","date":"2024-02-05 09:39:41"},"2.0.3":{"tag":"2.0.3","author":"aryadhiratara","date":"2024-02-20 17:11:23"}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":9},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":2864943,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":2864943,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":2865281,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":2865281,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.0.2","1.0.3","1.0.4","1.0.5","1.0.6","1.0.7","1.0.8","1.0.9","1.1.0","1.1.1","2.0.0","2.0.1","2.0.2","2.0.3"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3015986,"resolution":"1","location":"assets","locale":""},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3015986,"resolution":"2","location":"assets","locale":""},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3015986,"resolution":"3","location":"assets","locale":""},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3015986,"resolution":"4","location":"assets","locale":""},"screenshot-5.jpg":{"filename":"screenshot-5.jpg","revision":3015986,"resolution":"5","location":"assets","locale":""},"screenshot-6.jpg":{"filename":"screenshot-6.jpg","revision":3015986,"resolution":"6","location":"assets","locale":""}},"screenshots":{"1":"Async \/ Defer Tab \u2014 Load CSS files asynchronously and Defer JavaScript files","2":"Delay Tab \u2014 Delay CSS and JavaScript files until User Interactions","3":"Preload Tab \u2014 Preload CSS, JavaScript, and Font files","4":"Remove Tab \u2014 Remove (unused) CSS and JavaScript fies","5":"Inline Tab \u2014 Inline CSS and JavaScript fies","6":"Miscellaneous Tab"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[187460,356,229,1731,1452],"plugin_category":[52,59],"plugin_contributors":[206792],"plugin_business_model":[],"class_list":["post-162113","plugin","type-plugin","status-publish","hentry","plugin_tags-core-web-vitals","plugin_tags-css","plugin_tags-javascript","plugin_tags-js","plugin_tags-optimize","plugin_category-performance","plugin_category-utilities-and-tools","plugin_contributors-aryadhiratara","plugin_committers-aryadhiratara"],"banners":{"banner":"https:\/\/ps.w.org\/optimize-more\/assets\/banner-772x250.png?rev=2865281","banner_2x":"https:\/\/ps.w.org\/optimize-more\/assets\/banner-1544x500.png?rev=2865281","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/optimize-more\/assets\/icon-128x128.png?rev=2864943","icon_2x":"https:\/\/ps.w.org\/optimize-more\/assets\/icon-256x256.png?rev=2864943","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/optimize-more\/assets\/screenshot-1.jpg?rev=3015986","caption":"Async \/ Defer Tab \u2014 Load CSS files asynchronously and Defer JavaScript files"},{"src":"https:\/\/ps.w.org\/optimize-more\/assets\/screenshot-2.jpg?rev=3015986","caption":"Delay Tab \u2014 Delay CSS and JavaScript files until User Interactions"},{"src":"https:\/\/ps.w.org\/optimize-more\/assets\/screenshot-3.jpg?rev=3015986","caption":"Preload Tab \u2014 Preload CSS, JavaScript, and Font files"},{"src":"https:\/\/ps.w.org\/optimize-more\/assets\/screenshot-4.jpg?rev=3015986","caption":"Remove Tab \u2014 Remove (unused) CSS and JavaScript fies"},{"src":"https:\/\/ps.w.org\/optimize-more\/assets\/screenshot-5.jpg?rev=3015986","caption":"Inline Tab \u2014 Inline CSS and JavaScript fies"},{"src":"https:\/\/ps.w.org\/optimize-more\/assets\/screenshot-6.jpg?rev=3015986","caption":"Miscellaneous Tab"}],"raw_content":"<!--section=description-->\n<p><strong>A 'Do It Yourself' WordPress Page Speed Optimization Pack.<\/strong><\/p>\n\n<p><em>Optimizing web pages is really just about controlling how assets are delivered.<\/em><\/p>\n\n<p><strong>Optimize your site further. Load faster on GTmetrix, Get better scores on Google Page Speed Insight.<\/strong><\/p>\n\n<p>Control your CSS &amp; JavaScripts Delivery: Load CSS Asynchronously, Delay CSS &amp; JavaScript until User Interaction, Remove Unused CSS &amp; JavaScript Files, Preload Critical CSS &amp; JavaScript, Defer JavaScripts, and more.<\/p>\n\n<p>You can choose each CSS &amp; JavaScripts individually and what type of execution is required per each post types.<\/p>\n\n<p>This plugin inspired by the mighty <a href=\"https:\/\/wordpress.org\/plugins\/flying-scripts\/\">Flying Scripts<\/a> from Gijo Varghese. Using HTML Dom Parser to manipulate your page's HTML, so we can simply use the keyword of the assets to target them.<\/p>\n\n<h3>Main Features<\/h3>\n\n<ul>\n<li><p><strong>Load CSS Asynchronously<\/strong> \u2014 load any CSS file(s) asynchronously on selected post\/page types.<\/p><\/li>\n<li><p><strong>Delay CSS and JavaScripts until User Interaction<\/strong> \u2014 delay any CSS\/JavaScripts load until user interaction on selected post\/page types. \n<em>Note<\/em>:<\/p>\n\n<ul>\n<li><em>By default, the delay JavaScripts and CSS features are configured to user interaction based. You can change that using filter.<\/em><\/li>\n<li><em>If you prefer to use 'exclusions', you can simply delay all JavaScripts using \"<code>.js<\/code>\" keywords, and use provided filter to exclude specific JavaScripts.<\/em><\/li>\n<\/ul><\/li>\n<li><p><strong>Defer JavaScripts<\/strong> \u2014 defer loading any JavaScript file(s) on selected post\/page types.<\/p><\/li>\n<li><p><strong>Advance Defer JavaScripts<\/strong> \u2014 hold any JavaScript file(s) load until everything else has been loaded. Adapted from the legendary <strong>varvy's defer JavaScripts<\/strong> method <em>*recommended for defer loading 3rd party scripts like ads, pixels, and trackers<\/em><\/p><\/li>\n<li><p><strong>Preload Critical CSS, JavaScripts, and Font Files<\/strong> \u2014 preload any critical CSS\/JavaScript\/Font file(s) on selected post\/page types.<\/p><\/li>\n<li><p><strong>Inline CSS and JavaScript Files<\/strong> \u2014 inline any critical CSS\/JavaScript file(s) on selected post\/page types. <em>*warning: Inlining multiple \/ large files might slow down your site's performance. Enabling this without using a caching system is generally not recommended.<\/em><\/p><\/li>\n<li><p><strong>Remove Unused CSS and JavaScripts Files<\/strong> \u2014 remove any unused CSS\/JavaScripts file(s) on selected post\/page types.<\/p><\/li>\n<\/ul>\n\n<p><strong>Use case<\/strong>:<\/p>\n\n<ul>\n<li>Have CSS files that are only be used in the below the fold area? Delay them.<\/li>\n<li>Have JavaScripts files that are not required in initial page rendering? Delay them.<\/li>\n<li>Have CSS files that are used in the above the fold area? Preload them.<\/li>\n<li>Have JavaScripts files such as jQuery that are needed to be load since the beginning? Preload them.<\/li>\n<li>Have CSS files that are critical for above the fold area? Inline them.<\/li>\n<li>Need to remove \"Eliminate Render Blocking Resources\" warnings on Google Page Speed Insights? Async, Defer, Inline, or Preload them.<\/li>\n<\/ul>\n\n<h3>Other Features<\/h3>\n\n<ul>\n<li><p><strong>Load Gutenberg CSS conditionally<\/strong> \u2014 This feature will make the combined CSS (wp-block-library) removed and your page <strong>will only load the CSS of each block<\/strong> that you use on the page (and only if you use one of the core blocks!). Each CSS of the core blocks will only get enqueued when the block gets rendered on a page. This will save you from worrying if you still need to use the native Gutenberg core blocks in some of your pages.\n<em>Note: the inline \"global-styles\" will also only load if you use one of the core blocks when you combine this feature with the <strong>Remove FSE Global Styles<\/strong> feature<\/em>.<\/p><\/li>\n<li><p><strong>Remove FSE Global Styles<\/strong> \u2014 Remove WP \"global-styles-inline-css\". <em>Note: this will still conditionally loaded if you enable <strong>Load Gutenberg CSS conditionally<\/strong> feature<\/em>.<\/p><\/li>\n<li><p><strong>Remove SVG Duotone Filter<\/strong>.<\/p><\/li>\n<li><p><strong>Filter Google Fonts<\/strong> \u2014 Filter the Google Font Characters to use most common characters only. In most font families, this will significantly reduce the font file size.  <em>*remember to use the web-safe font that is most similar to the font you are using as the font family fallback or <strong>you can simply modify the default character using the provided filter<\/strong><\/em>.<\/p><\/li>\n<li><p><strong>Combined Google Fonts<\/strong> \u2014 Combine google fonts css into one single line <em>*only works for google font url(s) that are using the latest Google Font API (css2)<\/em>.<\/p><\/li>\n<li><p><strong>Select Font Display<\/strong> \u2014 Choose the best google fonts' font-display strategy for your website.<\/p><\/li>\n<li><p><strong>Remove Passive Listener Warnings<\/strong> \u2014 Remove the \"Does not use passive listeners to improve scrolling performance\" warning on Google PageSpeed Insights<\/p><\/li>\n<li><p><strong>Prefetch Pages<\/strong> \u2014 Prefetch in view links so visitors can switch pages (<em>more<\/em>) instantly. <em>*based on Gijo's <a href=\"https:\/\/wordpress.org\/plugins\/flying-pages\/\">Flying Pages<\/a><\/em><\/p><\/li>\n<li><p><strong>Optimize WC Cart Fragments<\/strong> \u2014 Disable WC Cart Fragments, only when it's empty. <em>*based on Optimocha's (Bar\u0131\u015f \u00dcnver) <a href=\"https:\/\/wordpress.org\/plugins\/disable-cart-fragments\/\">Disable Cart Fragments<\/a><\/em><\/p><\/li>\n<li><p><strong>Remove WooCommerce Blocks CSS<\/strong>.<\/p><\/li>\n<li><p><strong>Disable jQuery Migrate<\/strong>.<\/p><\/li>\n<li><p><strong>Disable WP Embeds<\/strong>.<\/p><\/li>\n<li><p><strong>Disable WP Emojis<\/strong>.<\/p><\/li>\n<li><p><strong>Lazyload, Preload, and More<\/strong> \u2014 Add Lazyload, Preload, and More features. This is a non JavaScript version of <a href=\"https:\/\/wordpress.org\/plugins\/lazyload-preload-and-more\/\">Lazyload, preload, and more<\/a>. *lazyload applied for images\/iframes tag only. if you need to lazyload css background images, use the <a href=\"https:\/\/wordpress.org\/plugins\/lazyload-preload-and-more\/\">Lazyload, preload, and more<\/a> plugin instead.<\/p>\n\n<ul>\n<li>Control your images and iframes delivery<\/li>\n<li>Automatically preload featured images<\/li>\n<li>Add images dimensions (also able to add SVG images dimensions)<\/li>\n<\/ul><\/li>\n<\/ul>\n\n<p>&nbsp;\nA simple tutorial of how to use this plugin: <a href=\"https:\/\/dhiratara.me\/how-to\/use-optimize-more\/\">How to use Optmize More Plugin<\/a> (Indonesian Version: <a href=\"https:\/\/thinkdigital.co.id\/wordpress\/plugin\/optimize-more\/\">Cara mempercepat loading WordPress dengan plugin Optimize More<\/a>).<\/p>\n\n<p>Big thanks to Gijo Varghese, without his codes in Flying Scripts, I can never be able to build this plugin. Thanks Gijo! :)<\/p>\n\n<h3>Credits<\/h3>\n\n<ul>\n<li><strong>Gijo Varghese<\/strong> for his codes in Flying Scripts and Flying Pages<\/li>\n<li><strong>Bar\u0131\u015f \u00dcnver<\/strong> for his codes in Disable Cart Fragments<\/li>\n<\/ul>\n\n<h3>Disclaimer<\/h3>\n\n<ul>\n<li><p>This plugin should works well with any caching plugins.<\/p><\/li>\n<li><p>This plugin only adds 1 extra row to your database. And it will self delete upon uninstallation.<\/p><\/li>\n<li><p>I built this plugin to optimize my Clients' site. And I can get a very good scores even before activating my caching plugin.<\/p><\/li>\n<\/ul>\n\n<h3>Available Filters<\/h3>\n\n<h3>To change the delay configuration:<\/h3>\n\n<p>By default, the delay JavaScripts and CSS are configured to user interaction based. But you can change that using filter:<\/p>\n\n<p><em>For delay CSS, e.g.:<\/em><\/p>\n\n<pre><code>add_filter( 'om_delay_css_time', function($om_delay_css_time) {\n    return '3*1000';\n} );\n<\/code><\/pre>\n\n<p><em>For delay JavaScripts, e.g.:<\/em><\/p>\n\n<pre><code>add_filter( 'om_delay_css_time', function($om_delay_css_time) {\n    return '3*1000';\n} );\n<\/code><\/pre>\n\n<p>or if you want to change it for specific page only:<\/p>\n\n<p><em>For delay CSS, e.g.:<\/em><\/p>\n\n<pre><code>add_filter( 'om_delay_css_time', function($om_delay_css_time) {\n    if (is_front_page()) {\n        return '3*1000';\n    }\n    else {\n        return $om_delay_css_time;\n    }\n} );\n<\/code><\/pre>\n\n<p><em>For delay JavaScripts e.g.:<\/em><\/p>\n\n<pre><code>add_filter( 'om_delay_js_time', function($om_delay_js_time) {\n    if (is_front_page()) {\n        return '3*1000';\n    }\n    else {\n        return $om_delay_js_time;\n    }\n} );\n<\/code><\/pre>\n\n<h3>To use Exclusions instead of Inclusions<\/h3>\n\n<p>If you prefer to use 'exclusions' method, simply delay all JavaScript files using \"<code>.js<\/code>\" keyword, and use the provided filters to exclude specific JavaScript files:<\/p>\n\n<p>Example filter to add exclude list for the whole site (general):<\/p>\n\n<pre><code>add_filter('delay_js_exclude_list_default', function($exclusion_list) {\n    $exclusion_list[] = 'jquery-core';\n    $exclusion_list[] = 'js-cookie';\n    $exclusion_list[] = 'wc-add-to-cart-js';\n    return $exclusion_list;\n});\n<\/code><\/pre>\n\n<p>Example filter to add exclude list for Homepage option:<\/p>\n\n<pre><code>add_filter('delay_js_exclude_list_front_page', function($exclusion_list) {\n    $exclusion_list[] = 'jquery';\n    $exclusion_list[] = 'custom-js';\n    return $exclusion_list;\n});\n<\/code><\/pre>\n\n<p>Example filter to add exclude list for Custom Page option:<\/p>\n\n<pre><code>add_filter('delay_js_exclude_list_pages', function($exclusion_list) {\n    $exclusion_list[] = 'jquery';\n    $exclusion_list[] = 'another-js';\n    return $exclusion_list;\n});\n<\/code><\/pre>\n\n<p>Example filter to add exclude list for Archives option:<\/p>\n\n<pre><code>add_filter('delay_js_exclude_list_archives', function($exclusion_list) {\n    $exclusion_list[] = 'jquery';\n    $exclusion_list[] = 'another-js';\n    return $exclusion_list;\n});\n<\/code><\/pre>\n\n<p>Example filter to add exclude list for Singular option:<\/p>\n\n<pre><code>add_filter('delay_js_exclude_list_singular', function($exclusion_list) {\n    $exclusion_list[] = 'jquery';\n    $exclusion_list[] = 'another-js';\n    return $exclusion_list;\n});\n<\/code><\/pre>\n\n<p>Example filter to add exclude list for WooCommerce Products option:<\/p>\n\n<pre><code>add_filter('delay_js_exclude_list_wc_product', function($exclusion_list) {\n    $exclusion_list[] = 'jquery';\n    $exclusion_list[] = 'another-js';\n    return $exclusion_list;\n});\n<\/code><\/pre>\n\n<p>Example filter to add exclude list for WooCommerce Archives option:<\/p>\n\n<pre><code>add_filter('delay_js_exclude_list_wc_archives', function($exclusion_list) {\n    $exclusion_list[] = 'jquery';\n    $exclusion_list[] = 'another-js';\n    return $exclusion_list;\n});\n<\/code><\/pre>\n\n<h3>To modify the Filter Google Font Characters<\/h3>\n\n<p>By default, this feature filtered the Google Font Characters to only use:<\/p>\n\n<pre><code>1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz%20!&amp;\"#$%\\'()*+,-.\/:;&lt;=&gt;?@[\\\\]^_`{|}~%26\u2264\u2265\u00b1\u221a$\u20ac\u00a3\u00a5\u2022\u00a9\u00ae\u2122\n<\/code><\/pre>\n\n<p>You can modify the characters using this filter:<\/p>\n\n<p>Example filter to add some extra characters:<\/p>\n\n<pre><code>add_filter('font_characters', function ($fontCharacters) {\n    \/\/ Modify the characters as needed\n    $fontCharacters .= '\u00e9\u00e8\u00ea\u00f1';\n    return $fontCharacters;\n});\n<\/code><\/pre>\n\n<p>Example filter to fully use your preferred characters:<\/p>\n\n<pre><code>add_filter('font_characters', function ($fontCharacters) {\n    \/\/ Modify the characters as needed\n    $fontCharacters = '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz%20!\"#$%\\'()*+,-.\/:;';\n    return $fontCharacters;\n});\n<\/code><\/pre>\n\n<p><em>*note the 'dot' difference<\/em><\/p>\n\n<h3>Lazy Load, Preload, and more filters<\/h3>\n\n<p>Example filter to add extra lazyload exclude list:<\/p>\n\n<pre><code>add_filter( 'opm_exclude_lazy_class', function($opm_exclude_lazy_class) {\n    return array( \n        'my-logo', 'my-hero-img', 'exclude-lazy'\n    );\n} );\n<\/code><\/pre>\n\n<p>Example filter to change the image sizes for preload featured image:<\/p>\n\n<pre><code>add_filter( 'opm_featured_image_size', function($image_size, $post) {\n    if ( is_singular( 'post' ) ) { return 'large'; }\n    elseif ( is_singular( 'product' ) ) { return 'full'; }\n    else { return $image_size; }\n}, 10, 2 );\n<\/code><\/pre>\n\n<p>&nbsp;<\/p>\n\n<h3>Need Help?<\/h3>\n\n<p>Still having trouble to speed up your site and need someone to do that for you? Try my <strong><a href=\"https:\/\/dhiratara.me\/services\/speed-optimization\/\">WordPress Speed Optimization Service<\/a><\/strong>.<\/p>\n\n<p>&nbsp;<\/p>\n\n<h3>Check out my other plugins:<\/h3>\n\n<ul>\n<li><strong><a href=\"https:\/\/wordpress.org\/plugins\/optimize-more-images\/\">Optimize More! Images<\/a><\/strong>\nA simple yet powerfull image, iframe, and video optimization plugin.<\/li>\n<li><strong><a href=\"https:\/\/wordpress.org\/plugins\/lazyload-preload-and-more\/\">Lazyload, Preload, and more!<\/a><\/strong>\nA simplified version of <strong>Optimize More! Images<\/strong>. This tiny little plugin (around 14kb zipped) is able to do what <strong>Optimize More! Images<\/strong> can do but without UI for settings (you can customize the default settings using filters).<\/li>\n<li><strong><a href=\"https:\/\/wordpress.org\/plugins\/animate-on-scroll\/\">Animate on Scroll<\/a><\/strong>\nAnimate any Elements on scroll using the popular AOS JS library simply by adding class names.<\/li>\n<li><strong><a href=\"https:\/\/wordpress.org\/plugins\/shop-extra\/\">Shop Extra - WooCommerce Extras<\/a><\/strong>\nA lightweight plugin to enhance your WooCommerce &amp; Business site. Floating WhatsApp Chat Widget, WhatsApp Order Button for WooCommerce, Hide\/Disable WooCommerce Elements, WooCommerce Strings Translations, add Extra Product Tabs, add Date Picker to products, limit order quantity, add Custom Option to Checkout Page, Add Edit Order features to Checkout page, and many more.<\/li>\n<li><strong><a href=\"https:\/\/wordpress.org\/plugins\/image-video-lightbox\/\">Image &amp; Video Lightbox<\/a><\/strong><\/li>\n<\/ul>\n\n<p>&nbsp;<\/p>\n\n<!--section=installation-->\n<h4>From within WordPress<\/h4>\n\n<ol>\n<li>Visit <code>Plugins &gt; Add New<\/code><\/li>\n<li>Search for <code>Optimize More<\/code> or <code>Arya Dhiratara<\/code><\/li>\n<li>Activate Optimize More from your Plugins page<\/li>\n<li>Find Optimize More in your sidebar menu to configure settings<\/li>\n<\/ol>\n\n<h4>Manually<\/h4>\n\n<ol>\n<li>Download the plugin using the download link in this WordPress plugins repository<\/li>\n<li>Upload <code>optimize-more<\/code> folder to your <code>\/wp-content\/plugins\/<\/code> directory<\/li>\n<li>Activate Optimize More plugin from your Plugins page<\/li>\n<li>Find Optimize More in your sidebar menu to configure settings<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='how%20to%20target%20the%20css%2Fjavascripts%20file%28s%29%3F'><h3>How to target the CSS\/JavaScripts file(s)?<\/h3><\/dt>\n<dd><p>Use keywords: this can be the CSS ID, filename, or even the folder name (\/folder-name\/) if you want to target all CSS from some specific plugin.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.0.3<\/h4>\n\n<ul>\n<li>Fix can't enter (add new line) inside the text area in some browser<\/li>\n<\/ul>\n\n<h4>2.0.2<\/h4>\n\n<ul>\n<li>Change \"Add display=swap\" feature to \"Select Font Display Options\". You can now choose the best font-display strategy for your website.<\/li>\n<li>Refactoring \"Filter Google Fonts\" feature. Hopefully, this will solve any issues with google fonts url that have multiple font families.<\/li>\n<li>[new] Add Lazyload, Preload, and More features. This is a non JavaScript version of <a href=\"https:\/\/wordpress.org\/plugins\/lazyload-preload-and-more\/\">Lazyload, preload, and more<\/a>.\n\n<ul>\n<li>Control your images and iframes delivery<\/li>\n<li>Automatically preload featured images<\/li>\n<li>Add images dimensions (also able to add SVG images dimensions)<\/li>\n<\/ul><\/li>\n<\/ul>\n\n<h4>2.0.1<\/h4>\n\n<ul>\n<li>Exclude \"data:image\" from minification in \"Inline CSS\" minifier function.<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<p>Complete refactor of the plugin's code.\nBump to version 2.0 to mark the refactored version of this plugin and future debugging.<\/p>\n\n<p>Reasons:<\/p>\n\n<ul>\n<li>To align the structure and features with the full version of this plugin (which I use to optimize my clients' sites) to make both plugins easier to maintain. This WP repo version now has 99% of the features of the full version.<\/li>\n<li>Change the conditional tags to simplified the logic and for better grouping. (for example, \"Shop\" and \"Product Category Page\" are now merged in \"WooCommerce Archives\". Non-WooCommerce Archives now can be targeted by \"Archives\" fields. \"Single Post\" is now changed to \"Singular\" and targets all singular except pages to make the plugin able to target single custom post type.<\/li>\n<li>Change and simplified the options name for better consistency.\n<em>note, with this changes:<\/em>\n\n<ul>\n<li><em>existing users will get<\/em> \"undefined some_options ....\" <em>warning if you set WP_DEBUG to true in wp-config. it's normal, and will be gone when new settings saved.<\/em><\/li>\n<li><em>make sure to make a notes of your previous settings.<\/em><\/li>\n<\/ul><\/li>\n<li>Use <em>namespace<\/em> in order to be more aligned with WordPress coding standard<\/li>\n<\/ul>\n\n<p>With these changes, for existing users, it would be best to treat it as a fresh installation.<\/p>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Fix undefined variable error in wc product category codes<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Add <strong>Remove Passive Listener Warnings<\/strong> feature - Remove the \"Does not use passive listeners to improve scrolling performance\" warning on Google PageSpeed Insights<\/li>\n<\/ul>\n\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>Add <strong>Advance Defer JavaScripts<\/strong> feature - hold JavaScripts load until everything else has been loaded. Adapted from the legendary <strong>varvy's defer JavaScripts<\/strong> method <em>*recommended for defer loading 3rd party scripts like ads, pixels, and trackers<\/em><\/li>\n<li>Add <strong>Defer JavaScripts<\/strong> feature - selectively defer loading JavaScript file(s) on selected post\/page types.<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Fix some minor bugs in the new Load each core blocks CSS conditionally feature.<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li><p><strong>New!<\/strong> Added a new function for the Remove Gutenberg CSS feature (in the extra tab). This new function will make the combined CSS removed and your page will only load the CSS of each block you use on the page (and only if you use one of the core blocks!). So the description now changes to \"<strong>Load each core blocks CSS conditionally<\/strong>\".\nThis will save you from worrying if you still need to use the native Gutenberg core blocks in some of your pages. Just like the previous function, the CSS will not load at all if you don't use any of the core blocks in your pages. \nIf there's any of the core blocks used, this will also load a small 'wp-includes\/css\/dist\/block-library\/common.css' file, which contains generic styles like the default colors definitions, basic styles for text alignments, and styles for the .screen-reader-text class.<\/p><\/li>\n<li><p>Add extra information to the plugin description about my other plugins.<\/p><\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Fix undefined variable warning on PHP 8.2, as reported by Nate (@goseongguy). Thank you!<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Added extra conditional tags for <strong>Custom Pages<\/strong> so it also targets the blog archive, per @sermalefico's request<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Compatibility check with WordPress 6.1.1<\/li>\n<li>Exclude WooCommerce <code>My Account<\/code> page from delay JavaScripts and delay css feature<\/li>\n<li>Change plugin banner<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Bump version to 1.0.3 to push 1.0.2 updates<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Prevent custom pages targeting from executing anything on WooCommerce Cart, Checkout, and other WooCommerce Endpoint pages<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Some changes<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"A DIY WordPress Page Speed Optimization Pack. Optimize CSS &amp; JavaScripts Delivery: Load CSS Asynchronously, Delay CSS &amp; JavaScripts until User &hellip;","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/162113","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=162113"}],"author":[{"embeddable":true,"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/aryadhiratara"}],"wp:attachment":[{"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=162113"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=162113"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=162113"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=162113"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=162113"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=162113"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}