How to Speed Up Your Joomla Website

Post on 17-May-2015

33.570 views 2 download

Tags:

description

A presentation by SiteGround Performance Guru on how to optimize your Joomla website and make it more than 100 times faster. The topic covers various tips and tricks including: Joomla backend optimizations Template and extensions tips Caching methods and useful plugins CDN Options Recommended server settings

Transcript of How to Speed Up Your Joomla Website

HOW TO SPEED UP YOUR JOOMLA SITE?

Daniel Kanchev Performance Guru

Before We Begin – Who’s That Guy Daniel?

ü  7+ years of Joomla! experience

ü  4 years with SiteGround

ü  Love travelling the world

ü  Addicted to extreme sports

ü  Site speed affects your Google Rankings!

ü  Keep readers/customers happy & paying

ü  Be able to handle more visitors

ü  Go green and save $$$ from servers

WHY BOTHER DOING IT?

Faster Joomla = Optimizations

KEEP CALM

IT’S NOT

ROCKET SCIENCE

ü  Keep your Joomla! updated

ü  Choose extensions wisely

ü  Deactivate unused extensions, upgrade used

ü  Simplify your templates as much as possible

GENERAL GUIDELINES

Simple Front Page Is Better

ü  Fancy stuff – only if you really need it

ü  Remove unnecessary large images

ü  Use fewer internal/external links – add sitemap

ü  Avoid loading content from remote servers

APPLICATION LEVEL OPTIMIZATIONS

Enable Compression

ü  Natively supported by Joomla! – no extensions needed

ü  Requires mod_gzip/deflate to be enabled on the server

Site

Global Configuration

Server

Enable Joomla! Cache

ü  Enable the “System – Cache” plugin

Recommended Cache Settings

Site

Global Configuration

System

Cache Settings

Some .htaccess Magic

ü  Get the code: http://goo.gl/ze09B

ü  How it works: - Etag – Tells browsers that an image/unit does not need to be reloaded

- Expires Headers – Set different expiration dates for various file types

- AddOutputFilterByType DEFLATE – minifies the compiled HTML source code

Some .htaccess Magic

ü  The code:

FileETag MTime Size AddOutputFilterByType DEFLATE text/html text/css application/javascript ExpiresActive On ExpiresDefault "now plus 1 hour" ExpiresByType text/css "now plus 1 week“ ExpiresByType application/javascript "now plus 1 week" ExpiresByType application/x-javascript "now plus 1 week”

More Optimizations: Images, CSS & JS

ü  Resize images – never upload 2560x1600 pictures

ü  Smush your images

ü  Minify and combine CSS and JS files

ü  Use image sprites

Sounds Nice, How Do I Begin?

ü  Use smush.it

ü  Photoshop/Fireworks

ü  Joomla! Extensions

Some Highly Rated Extensions

ü  JCH Optimize – Combines JS and CSS, Combines images in sprites, Minify and Compress

ü  Jbetolo – same as above but + CDN support ü  JotCache – improves the Joomla! built in Core

Cache ü Cache Cleaner – easily clean the cache from the

Joomla! admin panel

JCH Optimize

ü  Enable the “System – JCH Optimize” plugin

JCH Optimize Settings

Google mod_pagespeed

ü  An open-source Apache module - compress, combine and cache

ü  Needs to be installed/configured by a System Administrator ü  Available on SiteGround servers

Check How’s Your Website Doing

ü  Google Page Speed Insights - http://goo.gl/zPkxx

ü  YSlow - http://goo.gl/qIios

ü  GTmetrix - http://gtmetrix.com/

Some Results – Default Joomla!

No Optimizations

Cache/ Compression

.htaccess rules

JCH

Page Load Time 1.61s 1.49s 1.32s 1.02s

Total Page Size 563KB 162KB 162KB 151KB

Number of Requests 35 35 35 19

Page Speed Grade F (41%) B (65%) B (87%) A (91%)

YSlow Grade C (70%) B (66%) B (86%) A (92%)

SERVER LEVEL OPTIMIZATIONS

Use CDN

YOUR VISITORS LOCATION MATTERS!

CDN Features

ü  CDN will make your website faster

ü  CDN will help avoid unneeded I/O on your hard drives

ü  CDN will appeal to both Google and your visitors

Software Tweaks

ü  Use fast and secure PHP like FastCGI ü  Move PHP binaries to RAM ü  Move TMP to RAM ü  Move MySQL to a separate hard drive: RAID & SSD ü  Enable MySQL query cache ü  Use TMPFS for MySQL’s tmpdir

Opcode/Object Caching

ü  FastCGI + APC PHP extension

ü  Memcached and PHP/MySQL

ü  eAccelerator 

Joomla Interaction with Your Database

ü  First request goes to the database server

Object Caching

ü  First request goes to the database server

ü  Objects are also stored in Memcached

Object Caching

ü  All consecutive requests are forwarded to the Memcached server

How PHP works

¤  Scanning

¤  Lexing

¤  Parsing

¤ Compilation

¤  Opcode

¤ Execution

¤ Opcode ¤ Execution

PHP Opcode Caching

Reverse Proxy Servers

Reverse Proxy Servers

Reverse Proxy Servers

Reverse Proxy Servers

ü  Custom PHP/MySQL configuration

ü  Memcached/PHP APC

ü  Joomla! friendly reverse proxy setup

Our Own Solution: The SUPERCACHER

Final Results: Joomla + VirtueMart

No Optimizations

Application Level Optimizations

Server Level Optimizations

Page Load Time 5.22s 3.49s 1.09s

Total Page Size 1.89MB 0.67MB 0.67MB

Number of Requests 76 28 28

Page Speed Grade F (41%) B (85%) A (92%)

YSlow Grade C (70%) B (84%) A (94%)

Some Key Takes

ü Speed optimization is a process – do it regularly

ü Always test!

ü Choose a well optimized host

QUESTIONS TIME

Want a piece of the cake?

70% OFF discount WWW.SITEGROUND.COM/WEBINAR

THANK YOU!

Daniel Kanchev daniel.k@siteground.com