I was thinking the other day: Why do we add caching services in front of apache, when apache already supports caching? For low memory systems, we can just enable mod_cache, which can cache PHP scripts.
For example, I spent several minutes trying to make my wordpress site as slow as possible by adding as many of the worst reviewed social-media-share plugins that I could find, woocommerce, many products, yoast, and jetpack. The end result is nearly a two second load time.

oh gosh i love floating share bars
In order to test load times, I’m curling the site from the server. This eliminates network latency and provides an accurate page load time as follows:
Without apache’s mod_cache (~ 1.66s load time):
[email protected] [/etc/apache2/conf.d/userdata/std/2/myawes12/myawesomevps.com]# i=0; while [ $i -lt 5 ]; do time -p curl -A “test” “http://myawesomevps.com/wordpress/” > /dev/null; sleep 1; i=$[$i+1]; done 2>&1 | grep real | awk ‘{print $2}’ | awk ‘{avg += ($1 – avg) / NR;} END {print “Average: ” avg “s”;}’
Average: 1.844s
[email protected] [/etc/apache2/conf.d/userdata/std/2/myawes12/myawesomevps.com]# i=0; while [ $i -lt 5 ]; do time -p curl -A “test” “http://myawesomevps.com/wordpress/” > /dev/null; sleep 1; i=$[$i+1]; done 2>&1 | grep real | awk ‘{print $2}’ | awk ‘{avg += ($1 – avg) / NR;} END {print “Average: ” avg “s”;}’
Average: 1.524s
[email protected] [/etc/apache2/conf.d/userdata/std/2/myawes12/myawesomevps.com]# i=0; while [ $i -lt 5 ]; do time -p curl -A “test” “http://myawesomevps.com/wordpress/” > /dev/null; sleep 1; i=$[$i+1]; done 2>&1 | grep real | awk ‘{print $2}’ | awk ‘{avg += ($1 – avg) / NR;} END {print “Average: ” avg “s”;}’
Average: 1.736s
[email protected] [/etc/apache2/conf.d/userdata/std/2/myawes12/myawesomevps.com]# i=0; while [ $i -lt 5 ]; do time -p curl -A “test” “http://myawesomevps.com/wordpress/” > /dev/null; sleep 1; i=$[$i+1]; done 2>&1 | grep real | awk ‘{print $2}’ | awk ‘{avg += ($1 – avg) / NR;} END {print “Average: ” avg “s”;}’
Average: 1.702s
[email protected] [/etc/apache2/conf.d/userdata/std/2/myawes12/myawesomevps.com]# i=0; while [ $i -lt 5 ]; do time -p curl -A “test” “http://myawesomevps.com/wordpress/” > /dev/null; sleep 1; i=$[$i+1]; done 2>&1 | grep real | awk ‘{print $2}’ | awk ‘{avg += ($1 – avg) / NR;} END {print “Average: ” avg “s”;}’
Average: 1.486s
With apache’s mod_cache (.13s):
[email protected] [/etc/apache2/conf.d/userdata/std/2/myawes12/myawesomevps.com]# i=0; while [ $i -lt 5 ]; do time -p curl -A “test” “http://myawesomevps.com/wordpress/” > /dev/null; sleep 1; i=$[$i+1]; done 2>&1 | grep real | awk ‘{print $2}’ | awk ‘{avg += ($1 – avg) / NR;} END {print “Average: ” avg “s”;}’
Average: 0.13s
[email protected] [/etc/apache2/conf.d/userdata/std/2/myawes12/myawesomevps.com]# i=0; while [ $i -lt 5 ]; do time -p curl -A “test” “http://myawesomevps.com/wordpress/” > /dev/null; sleep 1; i=$[$i+1]; done 2>&1 | grep real | awk ‘{print $2}’ | awk ‘{avg += ($1 – avg) / NR;} END {print “Average: ” avg “s”;}’
Average: 0.13s
[email protected] [/etc/apache2/conf.d/userdata/std/2/myawes12/myawesomevps.com]# i=0; while [ $i -lt 5 ]; do time -p curl -A “test” “http://myawesomevps.com/wordpress/” > /dev/null; sleep 1; i=$[$i+1]; done 2>&1 | grep real | awk ‘{print $2}’ | awk ‘{avg += ($1 – avg) / NR;} END {print “Average: ” avg “s”;}’
Average: 0.13s
[email protected] [/etc/apache2/conf.d/userdata/std/2/myawes12/myawesomevps.com]# i=0; while [ $i -lt 5 ]; do time -p curl -A “test” “http://myawesomevps.com/wordpress/” > /dev/null; sleep 1; i=$[$i+1]; done 2>&1 | grep real | awk ‘{print $2}’ | awk ‘{avg += ($1 – avg) / NR;} END {print “Average: ” avg “s”;}’
Average: 0.13s
[email protected] [/etc/apache2/conf.d/userdata/std/2/myawes12/myawesomevps.com]# i=0; while [ $i -lt 5 ]; do time -p curl -A “test” “http://myawesomevps.com/wordpress/” > /dev/null; sleep 1; i=$[$i+1]; done 2>&1 | grep real | awk ‘{print $2}’ | awk ‘{avg += ($1 – avg) / NR;} END {print “Average: ” avg “s”;}’
Average: 0.13s
Exciting!