WordPress Front End Optimizations

22
WordPress Front-End Optimizations Tips to Speed Up Your Blog Saturday, October 16, 2010

description

My slides from my presentation at WordCamp NYC 2010, Baruch College Vertical Campus

Transcript of WordPress Front End Optimizations

Page 1: WordPress Front End Optimizations

WordPress Front-End Optimizations

Tips to Speed Up Your Blog

Saturday, October 16, 2010

Page 2: WordPress Front End Optimizations

What is the “Front-End”?

HTML

CSS

Images

JavaScript

Media (Audio/Video)

3rd Party APIs

Saturday, October 16, 2010

Page 3: WordPress Front End Optimizations

HTML

Markup / Node structure

Placement of stylesheets / scripts

Images

<meta> tags

DOCTYPE

Micro-formats

Saturday, October 16, 2010

Page 4: WordPress Front End Optimizations

CSSTypography

Colors

reset.css

CSS selectors

Background Images / CSS Sprites

CSS3+ support

IE6 / Browser support

Saturday, October 16, 2010

Page 5: WordPress Front End Optimizations

JavaScriptEvent Binding

3rd Party APIs

AJAX

Form validation

DOM traversing

jQuery

Cookies

Page State / Comet / Long-polling

Saturday, October 16, 2010

Page 6: WordPress Front End Optimizations

Front-End Programming + WordPress =HTML + CSS + Javascript + Media +

PHP + WordPress API

Saturday, October 16, 2010

Page 7: WordPress Front End Optimizations

PHP / WordPress API

Built-in WordPress Functions

WordPress Template Hierarchy

WordPress Media Library

Database Abstraction Layer

WordPress Admin

Site-specific PHP code written by you

Saturday, October 16, 2010

Page 8: WordPress Front End Optimizations

HTML

Semantic

DOCTYPE - specific

Classes vs IDs

Accessible

Shallow node depth

Saturday, October 16, 2010

Page 9: WordPress Front End Optimizations

Node Depth

<div> <div> <div> <div> <div> <div>...

Saturday, October 16, 2010

Page 10: WordPress Front End Optimizations

Better Node Depth

<div class=”wrapper”> <div class=”module”>...</div> <div class=”module”>...</div> <div class=”module”>...</div>

</div>

Saturday, October 16, 2010

Page 11: WordPress Front End Optimizations

Semantic<h1>The Title</h1><p>The content, The content, The content, The content, The content, The content, The content, The content, The content.</p><address>160 West End AveNew York, NY 10023</address>

Saturday, October 16, 2010

Page 12: WordPress Front End Optimizations

CSS

OO approach = classes vs IDs

2 selectors === yay!

shorthand properties === fewer bytes

No proprietary CSS

Use browser hacks sparingly / <body> classes

Saturday, October 16, 2010

Page 13: WordPress Front End Optimizations

CSS selectorsThis works

.module p {...}

.override p {...}

vs

This doesn’t

#module p {...}.override p {...}

Saturday, October 16, 2010

Page 14: WordPress Front End Optimizations

CSS selectors

Overrides follow this rule:IDs, Classes, Elements

#module .module p = 111.module .blue p = 21#wrapper #content span a = 202

Classes make overrides/extending CSS classes a lot easier

Saturday, October 16, 2010

Page 15: WordPress Front End Optimizations

JavaScript

Know what/who your scripts are!

Inspect what your plugins are doing

Combine them!

use JSLint all the time!

Remove unused functions/code

Saturday, October 16, 2010

Page 16: WordPress Front End Optimizations

Media

Video = OGV + MP4, VideoJS

Audio = MP3, JPlayer

Images: PNG > GIF

JPEG (Pictures)

Web Fonts

Saturday, October 16, 2010

Page 17: WordPress Front End Optimizations

YSlow! - HighlightsMake Fewer HTTP Requests

Use a CDN

Add an Expires Header

Gzip Components

Put Stylesheets at the top

Put Scripts at the bottom

Avoid CSS Expressions

Make JS/CSS external

Reduce DNS lookups

Minify Javascript

Avoid Redirects

Remove Duplicate Scripts

Configure ETags

Make AJAX Cache-able

Saturday, October 16, 2010

Page 18: WordPress Front End Optimizations

YSlow! - low-hanging fruitSet Expires headers

Add Deflate rules

Gzip (caching plugin)

Reduce number of DOM elements

use Favicon

Do not scale images/give images dimensions

Cache AJAX requests

Saturday, October 16, 2010

Page 19: WordPress Front End Optimizations

Expires

<FilesMatch “\.gif|jpg|css|js”>ExpiresDefault “access plus 10 years”</FilesMatch>

Saturday, October 16, 2010

Page 20: WordPress Front End Optimizations

Deflate === Gzip

AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE application/x-javascript

Saturday, October 16, 2010

Page 21: WordPress Front End Optimizations

Google Page Speed

Remove Unused CSS

Avoid document.write

Combine CSS/JS

Use image sprites

Minify JS/CSS/HTML

Remove query strings from static resources

Specify UTF-8 early

use efficient CSS selectors

Saturday, October 16, 2010