How I reduced Page Load Time by 75% - WordPress Optimization(kadavy.net)
kadavy.net
How I reduced Page Load Time by 75% - WordPress Optimization
http://www.kadavy.net/blog/posts/wordpress-optimization-dreamhost-rackspace/
28 comments
I heard that advice about nginx, but was concerned about lack of a mod_rewrite module for smart URL structure. Is there a way to have search-engine-friendly-urls easily with nginx?
Nginx configuration is about as powerful as Apache, and personally easier for me to grok, but you have to be able to get past the lack of documentation.
Here's the configuration file from my new project -- with the domain name removed. I've marked the magic bits that gets you Wordpress pretty URL compatibility. If you're actually asking about more complicated rewrites, those are all possible too -- look at the Nginx rewrite module docs.
http://www.pastie.org/929223
Here's the configuration file from my new project -- with the domain name removed. I've marked the magic bits that gets you Wordpress pretty URL compatibility. If you're actually asking about more complicated rewrites, those are all possible too -- look at the Nginx rewrite module docs.
http://www.pastie.org/929223
That's a much more attractive configuration file than an Apache one.
I see that you're using FastCGI. Something I didn't mention was that I attempted to use FastCGI, but gave up because my memory usage kept snowballing until I had to reboot my server over and over again. I don't know for sure whether it would have made things any faster.
I see that you're using FastCGI. Something I didn't mention was that I attempted to use FastCGI, but gave up because my memory usage kept snowballing until I had to reboot my server over and over again. I don't know for sure whether it would have made things any faster.
Here's the simplest way I've found how to do it. There is also a snippet of Nginx config floating out there for enabling SuperCache (and I assume Total Cache would be easy to implement too). I am able to run 8 FastCGI processes + nginx + MySQL (with InnoDB) on a 256MB VPS, but YMMV. Overall, nginx is awesome.
http://igorpartola.com/web-development/how-to-set-up-nginx-w...
http://igorpartola.com/web-development/how-to-set-up-nginx-w...
Use php-fpm with enginx and you're golden. I ran a website getting millions of requests daily and it worked a treat on a small EC2 instance.
I recently posted about configuring a BSD machine to run Wordpress on nginx, hope it helps.
http://www.bureau14.fr/blogea/index.php/2010/04/setting-up-a...
http://www.bureau14.fr/blogea/index.php/2010/04/setting-up-a...
W3 Total Cache really is a fantastic plug-in. It's significantly reduced my server load, and hasn't caused any problems as far as I can tell.
What an excellent post, and easy enough for someone without tech experience to follow. This will definitely be forwarded to friends wanting to get into the more serious side of web publishing.
Great tips. The most useful one for me is to put images and script files on a subdomain.
Doesn't adding CSS and JavaScript inline hurt your google rank?
Doesn't adding CSS and JavaScript inline hurt your google rank?
>Doesn't adding CSS and JavaScript inline hurt your google rank?
Why would it do that?
Why would it do that?
I think I was confused with mixing content with code. Putting style information in tags seems to be bad but not in the header. Even Google seems to use inline script/style code in the head of their website.
As I talked about in the post, I have some pages that are popular with search engine visitors. They generally come to the page, read, and then leave. I serve CSS and Javascript in <style> and <script> tags on those pages so it's fewer HTTP requests, and loads faster.
Unless someone has a reason I should do otherwise?
UPDATE: From Yahoo: http://developer.yahoo.net/blog/archives/2007/07/rule_8_make...
"The key factor, then, is the frequency with which external JavaScript and CSS components are cached relative to the number of HTML documents requested. This factor, although difficult to quantify, can be gauged using various metrics. If users on your site have multiple page views per session and many of your pages re-use the same scripts and stylesheets, there is a greater potential benefit from cached external files."
Unless someone has a reason I should do otherwise?
UPDATE: From Yahoo: http://developer.yahoo.net/blog/archives/2007/07/rule_8_make...
"The key factor, then, is the frequency with which external JavaScript and CSS components are cached relative to the number of HTML documents requested. This factor, although difficult to quantify, can be gauged using various metrics. If users on your site have multiple page views per session and many of your pages re-use the same scripts and stylesheets, there is a greater potential benefit from cached external files."
I'm not sure about that inline issue - I hadn't heard that. I actually got that advice from Yahoo, I think. The inline Javascript and CSS makes the page load faster, so in theory it would help.
That is true if you have a one page site. Bundling all the JavaScript and HTML in with the CSS means downloading one HTTP resource instead of three. This is good for sites like the "Yahoo Homepage" - basically just one big page, Netvibes, Facebook.
But if you have multiple pages sharing the same styles, yes for once off load times, having the CSS and JavaScript inpage is better, but for a visit of more than one page, having the CSS and JavaScript as separate cacheable resources is far better, since the differences are now the page size of the pure HTML plus images, saving at least the packet sizes needed to transfer the same CSS and JavaScript on each page.
So the major multi-page properties of Yahoo use primarily one external CSS and one external JavaScript file on each property.
But if you have multiple pages sharing the same styles, yes for once off load times, having the CSS and JavaScript inpage is better, but for a visit of more than one page, having the CSS and JavaScript as separate cacheable resources is far better, since the differences are now the page size of the pure HTML plus images, saving at least the packet sizes needed to transfer the same CSS and JavaScript on each page.
So the major multi-page properties of Yahoo use primarily one external CSS and one external JavaScript file on each property.
Thanks for that explanation. Based on what you said, I think I'm approaching it okay. On a few posts that have really high bounce rates, I use the Custom Post Template to serve CSS and JS inline on those pages (amongst other customizations). The rest of the site, I load them from external files.
"A single-user client SHOULD NOT maintain more than 2 connections with any server or proxy". In reality, it is 6 in IE 8, 8 in FF 3.x, Safari and Opera
Thanks for that. I heard something similar but couldn't find records of specifics. I suppose that means that its 6 in Chrome as well.
And of course, there is IE7, which is still what many of my visitors use.
And of course, there is IE7, which is still what many of my visitors use.
What does that actually do? All the description says is that it saves you bandwidth.
The "FAQ" link below the description leads to:
"Chennai Central is a bandwidth saver plugin that makes your wordpress site support conditional GETs by search engine crawlers , feed readers and more."
(followed by more detail about what conditional GETs are, and why they help)
"Chennai Central is a bandwidth saver plugin that makes your wordpress site support conditional GETs by search engine crawlers , feed readers and more."
(followed by more detail about what conditional GETs are, and why they help)
Moving to Xen-based VPS with fast connection from dedicated server. Big deal.
For me it looks much better to rent a dedicated server and divide it into several KVMs and resell them. =)
For me it looks much better to rent a dedicated server and divide it into several KVMs and resell them. =)
I've since switched to nginx and the results have been great under moderate to high traffic, and without the use of any caching plugin.