From 22e050b6001ff911a83b226c5c1eed070e640ce1 Mon Sep 17 00:00:00 2001 From: Stephen Cameron Date: Wed, 29 May 2019 12:19:55 +0200 Subject: [PATCH] Done #2808 @1.5 --- .htaccess | 112 +++++++++++++++++- wp-content/themes/c6/app/setup.php | 21 ++++ .../resources/views/partials/footer.blade.php | 4 + .../resources/views/partials/head.blade.php | 2 +- 4 files changed, 137 insertions(+), 2 deletions(-) diff --git a/.htaccess b/.htaccess index e303c53..721e5dc 100644 --- a/.htaccess +++ b/.htaccess @@ -1,3 +1,113 @@ +# BEGIN Performance Optimisations + +# Use UTF-8 encoding for anything served text/plain or text/html +AddDefaultCharset UTF-8 +# Force UTF-8 for a number of file formats + +AddCharset UTF-8 .atom .css .js .json .rss .vtt .xml + +# FileETag None is not enough for every server. + +Header unset ETag + +# Since we’re sending far-future expires, we don’t need ETags for static content. +# developer.yahoo.com/performance/rules.html#etags +FileETag None + + + +Header set X-Powered-By "WP Rocket/3.3" +Header unset Pragma +Header append Cache-Control "public" +Header unset Last-Modified + + + + +Header unset Pragma +Header append Cache-Control "public" + + + +# Expires headers (for better cache control) + + ExpiresActive on + # Perhaps better to whitelist expires rules? Perhaps. + ExpiresDefault "access plus 1 month" + # cache.appcache needs re-requests in FF 3.6 (thanks Remy ~Introducing HTML5) + ExpiresByType text/cache-manifest "access plus 0 seconds" + # Your document html + ExpiresByType text/html "access plus 0 seconds" + # Data + ExpiresByType text/xml "access plus 0 seconds" + ExpiresByType application/xml "access plus 0 seconds" + ExpiresByType application/json "access plus 0 seconds" + # Feed + ExpiresByType application/rss+xml "access plus 1 hour" + ExpiresByType application/atom+xml "access plus 1 hour" + # Favicon (cannot be renamed) + ExpiresByType image/x-icon "access plus 1 week" + # Media: images, video, audio + ExpiresByType image/gif "access plus 4 months" + ExpiresByType image/png "access plus 4 months" + ExpiresByType image/jpeg "access plus 4 months" + ExpiresByType image/webp "access plus 4 months" + ExpiresByType video/ogg "access plus 1 month" + ExpiresByType audio/ogg "access plus 1 month" + ExpiresByType video/mp4 "access plus 1 month" + ExpiresByType video/webm "access plus 1 month" + # HTC files (css3pie) + ExpiresByType text/x-component "access plus 1 month" + # Webfonts + ExpiresByType application/x-font-ttf "access plus 1 month" + ExpiresByType font/opentype "access plus 1 month" + ExpiresByType application/x-font-woff "access plus 1 month" + ExpiresByType application/x-font-woff2 "access plus 1 month" + ExpiresByType image/svg+xml "access plus 1 month" + ExpiresByType application/vnd.ms-fontobject "access plus 1 month" + # CSS and JavaScript + ExpiresByType text/css "access plus 1 year" + ExpiresByType application/javascript "access plus 1 year" + +# Gzip compression + +# Active compression +SetOutputFilter DEFLATE +# Force deflate for mangled headers + + +SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding +RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding +# Don’t compress images and other uncompressible content +SetEnvIfNoCase Request_URI \ +\.(?:gif|jpe?g|png|rar|zip|exe|flv|mov|wma|mp3|avi|swf|mp?g|mp4|webm|webp|pdf)$ no-gzip dont-vary + + +# Compress all output labeled with one of the following MIME-types + +AddOutputFilterByType DEFLATE application/atom+xml \ + application/javascript \ + application/json \ + application/rss+xml \ + application/vnd.ms-fontobject \ + application/x-font-ttf \ + application/xhtml+xml \ + application/xml \ + font/opentype \ + image/svg+xml \ + image/x-icon \ + text/css \ + text/html \ + text/plain \ + text/x-component \ + text/xml + + +Header append Vary: Accept-Encoding + + + +# END Performance Optimisations # BEGIN WordPress @@ -9,4 +119,4 @@ RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] -# END WordPress \ No newline at end of file +# END WordPress diff --git a/wp-content/themes/c6/app/setup.php b/wp-content/themes/c6/app/setup.php index a6e2e98..4c69780 100644 --- a/wp-content/themes/c6/app/setup.php +++ b/wp-content/themes/c6/app/setup.php @@ -41,6 +41,27 @@ add_action('wp_print_styles', function() { } }); +/** + * Elementor optimisations + * Ref: https://docs.elementor.com/article/286-speed-up-a-slow-site + */ +add_filter( 'elementor/frontend/print_google_fonts', '__return_false' ); +add_action( 'wp_enqueue_scripts', function() { wp_dequeue_style( 'font-awesome' ); }, 50 ); +add_action( 'elementor/frontend/after_enqueue_styles', function () { wp_dequeue_style( 'font-awesome' ); } ); +add_action( 'elementor/frontend/after_enqueue_styles', function() { + if ( is_admin() || current_user_can( 'manage_options' ) ) { + return false; // Don't remove it in the backend + } + wp_dequeue_style( 'elementor-icons' ); +} ); + +/** + * Plugin Optimisations + */ +add_action( 'wp_enqueue_scripts', function() { + wp_dequeue_style('cookie-notice-front'); // We already have all the styles we need in the theme CSS so no need for this +}, 100 ); + /** * Theme assets */ diff --git a/wp-content/themes/c6/resources/views/partials/footer.blade.php b/wp-content/themes/c6/resources/views/partials/footer.blade.php index bbf2f8c..ee8555a 100644 --- a/wp-content/themes/c6/resources/views/partials/footer.blade.php +++ b/wp-content/themes/c6/resources/views/partials/footer.blade.php @@ -32,3 +32,7 @@ + + +{{-- Instant Page - https://instant.page --}} + diff --git a/wp-content/themes/c6/resources/views/partials/head.blade.php b/wp-content/themes/c6/resources/views/partials/head.blade.php index d201224..7ffd244 100644 --- a/wp-content/themes/c6/resources/views/partials/head.blade.php +++ b/wp-content/themes/c6/resources/views/partials/head.blade.php @@ -2,7 +2,7 @@ - + {{-- Google Analytics --}}