Speed Optimisation on WordPress

Speed Optimisation on WordPress

The speed optimisation on word press depends on multiple factors we will discuss them here

1- Reduce External Script Request

This can be done by locally including css from same server as of website

NOTE: you will have to download and keep fonts in same folder as the fonts are relative to CSS on CDN

Preferred Code Below

/**
 * Enqueue scripts and styles.
 */
function mccq_scripts() {
	wp_enqueue_style( 'mccq-style', get_stylesheet_uri(), array(), _S_VERSION );
	wp_style_add_data( 'mccq-style', 'rtl', 'replace' );

	wp_enqueue_style( 'mccq-slick',      get_template_directory_uri() . '/css/slick.css');
	wp_enqueue_style( 'mccq-slick-theme',get_template_directory_uri() . '/css/slick-theme.css');
	wp_enqueue_style( 'mccq-aos',        get_template_directory_uri() . '/css/aos.css');
	// Template Main CSS File
	wp_enqueue_style( 'mccq-style-css',  get_template_directory_uri() . '/app/css/style.css');

	// JS - Vendor js Files
	wp_deregister_script('jquery');
	wp_enqueue_script( 'jquery',          get_template_directory_uri() . '/js/jquery.min.js');
	wp_enqueue_script( 'mccq-slick',      get_template_directory_uri() . '/js/slick.min.js', array('jquery') , '', true);
	wp_enqueue_script( 'jquery-validate', get_template_directory_uri() . '/js/jquery.validate.min.js',array('jquery') , '', true );

	wp_enqueue_script( 'developer-js',    get_template_directory_uri() . '/js/developer.js', array('jquery'), true );

	wp_enqueue_script( 'mccq-aos',        get_template_directory_uri() . '/js/aos.js');

	wp_enqueue_script( 'mccq-main-js',    get_template_directory_uri() . '/js/main.js',array('jquery'),'' , true);


	$quote_data = array(
				'siteurl' 	=> site_url(),
				'adminurl' 	=> admin_url(),
				'ajaxurl' 	=> admin_url( 'admin-ajax.php' ),
				'templateurl'=> get_template_directory_uri()
	);
	wp_localize_script( 'developer-js', 'quote_obj', $quote_data );
	
}
add_action( 'wp_enqueue_scripts', 'mccq_scripts' );

Previous Code acting as Render Blocking Payload due to external CDN inclusion

screen115

2- Defer Parsing of JS

/*Defer Parsing of JS*/

if ( ! is_admin() ) {
function defer_parsing_of_js ( $url ) {
    if ( FALSE === strpos( $url, '.js' ) ) return $url;
    if ( strpos( $url, 'jquery.min.js' ) || strpos( $url, 'aos.js' ) ) return $url;
    return "$url' defer='defer";
}
add_filter( 'clean_url', 'defer_parsing_of_js', 11, 1 );
}

3- Use Mod Deflate


AddType x-font/woff .woff
AddType x-font/ttf .ttf
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-font-ttf
AddOutputFilterByType DEFLATE x-font/ttf
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
AddOutputFilterByType DEFLATE font/opentype font/ttf font/eot font/otf

4- Use Mod Expires


	
	AddType application/font-woff2 .woff2
	AddType application/x-font-opentype .otf
	ExpiresActive On
	ExpiresDefault A0
	ExpiresByType video/webm A10368000
	ExpiresByType video/ogg A10368000
	ExpiresByType video/mp4 A10368000
	ExpiresByType image/webp A10368000
	ExpiresByType image/gif A10368000
	ExpiresByType image/png A10368000
	ExpiresByType image/jpg A10368000
	ExpiresByType image/jpeg A10368000
	ExpiresByType image/ico A10368000
	ExpiresByType image/svg+xml A10368000
	ExpiresByType text/css A10368000
	ExpiresByType text/javascript A10368000
	ExpiresByType application/javascript A10368000
	ExpiresByType application/x-javascript A10368000
	ExpiresByType application/font-woff2 A10368000
	ExpiresByType application/x-font-opentype A10368000
	ExpiresByType application/x-font-truetype A10368000
	

  ExpiresActive On

 # Images
  ExpiresByType image/jpeg "access plus 1 year"
  ExpiresByType image/gif "access plus 1 year"
  ExpiresByType image/png "access plus 1 year"
  ExpiresByType image/webp "access plus 1 year"
  ExpiresByType image/svg+xml "access plus 1 year"
  ExpiresByType image/x-icon "access plus 1 year"

  # Video
  ExpiresByType video/webm "access plus 1 year"
  ExpiresByType video/mp4 "access plus 1 year"
  ExpiresByType video/mpeg "access plus 1 year"

  # Fonts
  ExpiresByType font/ttf "access plus 1 year"
  ExpiresByType font/otf "access plus 1 year"
  ExpiresByType font/woff "access plus 1 year"
  ExpiresByType font/woff2 "access plus 1 year"
  ExpiresByType application/font-woff "access plus 1 year"

  # CSS, JavaScript
  ExpiresByType text/css "access plus 1 month"
  ExpiresByType text/javascript "access plus 1 month"
  ExpiresByType application/javascript "access plus 1 month"

  # Others
  ExpiresByType application/pdf "access plus 1 month"
  ExpiresByType image/vnd.microsoft.icon "access plus 1 year"

5- Use Mod Headers


AddDefaultCharset UTF-8

FileETag None
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Mon, 29 Oct 1923 20:30:00 GMT"

6- Reduce Theme Lookup Path

Declare path of theme in wp-config.php

define('TEMPLATEPATH', '/nas/content/live/bribow67/wp-content/themes/ca2020_dev');
define('STYLESHEETPATH', '/nas/content/live/bribow67/wp-content/themes/ca2020_dev'); 

7- Declare Some Variables in wp-config.php

define( 'COOKIE_DOMAIN', 'www.consumeracquisition.com' );
define( 'COMPRESS_CSS', true );
define( 'COMPRESS_SCRIPTS', true );
define( 'ENFORCE_GZIP', true );     
define( 'ENABLE_CACHE', true);  
define( 'WP_MEMORY_LIMIT', '1024M');

8- DNS Prefetch

/*Add DNS Prefetch*/
function consumer_dns_prefetch() {
echo '



 
 
 
 
 
 
 
 
   
   
   
   
   
   








';
}
add_action('wp_head', 'consumer_dns_prefetch', 0);
/*End Add DNS Prefetch*/

Leave a Reply

Your email address will not be published. Required fields are marked *