Gentoo Way Linux, Gentoo, Kubuntu, Ubuntu, Debian … компилируем всё!

27Июл/10Off

WordPress — WEBO Site SpeedUp vs WP Super Cache

Попалась статейка на хабре про новую версию WEBO Site Speed Up и как выяснилось имеется версия и для WordPress-а - стало интересно т.к. сам пользуюсь WP Super Cache. Решил их сравнить.

Сравнил давно, выложить результаты время нашлось только сейчас.

Для сравнения результатов оптимизации были использованы следующие инструменты:

Тестируемая версия WEBO Site SpeedUp - 1.2.1
Тестируемая версия WP Super Cache - 0.9.9.3
Тестируемый блог - этот 🙂

Т.к. loadimpact используется с бесплатными возможностями были выключены все счётчики и вся реклама т.к. при превышении лимита loadimpact не даёт тестировать если есть ресурсы (картинки, скрипты), запрашиваемые с других сайтов, а т.к. тестировал я несколько раз то лимиты были исчерпаны и пришлось ждать пока они восстановятся и проводить тест уже без внешних ресурсов.

При помощи YSlow также производились замеры размера страницы и скорости загрузки.

Сначала представлю сводную таблицу результатов и подведу итог, а уже если будут интересны подробности то их можно прочитать ниже:

Чистый сайтWEBO Site SpeedUpWP Super Cache
Размер страницы, КБ143.2161.2143.3
Рейтинг webo.in708270
Рейтинг webo.in, интегральный736573
Page Speed Score828386
YSlow Score869686
Среднее время загрузки (YSlow), секунд2.692.861.91
Самый быстрый по версии Loadimpact312
Цена, рублей0499-1999 (~120 тугриков в день на SaaS версии)0

Исходя из сравнительного тестирования можно сделать вывод что WP Super Cache лучший и это так и есть, почти. Он подходит больше для «домашнего использования» т.к. бесплатный и механизм кеширования действительно позволяет выдержать довольно сильный наплыв посетителей.
Однако для серьёзных блогов я бы использовал WEBO т.к. у него огромное количество всевозможных настроек и оптимизаций которые позволят выжать из блога больше чем WP SP, например мне не удалось протестировать CDN и распределение данных по хостам за неимением оных.

Тестирование

Чистый блог

Сначала был протестирован чистый блог, получилась такая картина:
Рейтинг webo.in: 70/100, интегральный: 73/100
Рейтинг Page Speed: 82/100
Рейтинг YSlow: Overall performance score 86 Ruleset applied: Small Site or Blog
Результаты Loadimpact в целом получились предсказумыми, однако я не думал что сайт доживёт до конца тестирования, повезло 🙂
Табличка с замерами YSlow:

Размер страницы, КБСкорость загрузки, секунд
143.22.62
143.22.569
143.22.631
143.23.09
143.22.604

WEBO Site SpeedUp

Правила nginx:

if ($http_accept_encoding ~* deflate)                                                                                                                                                                                                        
{                                                                                                                                                                                                                                            
set $wssenc .df;                                                                                                                                                                                                                            
}                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                             
if ($http_accept_encoding ~* gzip)                                                                                                                                                                                                          
{                                                                                                                                                                                                                                            
set $wssenc .gz;                                                                                                                                                                                                                            
}                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                             
if ($http_user_agent ~ "MSIE 6")                                                                                                                                                                                                            
{                                                                                                                                                                                                                                            
set $wssbr .ie6;                                                                                                                                                                                                                            
}                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                             
if ($http_user_agent ~ "MSIE 7")                                                                                                                                                                                                            
{                                                                                                                                                                                                                                            
set $wssbr .ie7;                                                                                                                                                                                                                            
}                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                             
if ($http_user_agent ~ "MSIE 8")                                                                                                                                                                                                            
{                                                                                                                                                                                                                                            
set $wssbr .ie8;                                                                                                                                                                                                                            
}                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                             
if ($http_user_agent ~ "Android|BlackBerry|HTC|iPhone|iPod|LG|MOT|Mobile|NetFront|Nokia|Opera Mini|Palm|PPC|SAMSUNG|Smartphone|SonyEricsson|Symbian|UP.Browser|webOS")                                                                      
{                                                                                                                                                                                                                                            
set $wssbr .ma;                                                                                                                                                                                                                              
}                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                             
if ($request_method != POST)                                                                                                                                                                                                                
{                                                                                                                                                                                                                                            
set $cache_file_name $document_root/wp-content/plugins/webo-site-speedup/cache$request_uri/index$wssbr.html$wssenc;                                                                                                                          
}                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                             
if (-f $cache_file_name)                                                                                                                                                                                                                    
{                                                                                                                                                                                                                                            
rewrite (.*) /wp-content/plugins/webo-site-speedup/cache$1/index$wssbr.html$wssenc break;                                                                                                                                                    
}

Рейтинг webo.in: 82/100, интегральный: 65/100
Рейтинг Page Speed: 83/100
Рейтинг YSlow: Overall performance score 96 Ruleset applied: Small Site or Blog
Результаты Loadimpact - очень не плохо, даже замечательно - почти горизонтальный график. 2 секунды тоже радуют.
Табличка с замерами YSlow:

Размер странички, КБСкорость загрузки, секунд
161.22.552
161.22.925
161.23.511
161.22.607
161.22.681

WP Super Cache

Правила nginx:

if (-f $request_filename) {
        break;
}

set $supercache_file '';
set $supercache_uri $request_uri;

if ($request_method = POST) {
       set $supercache_uri '';
}

if ($query_string) {
       set $supercache_uri '';
}

if ($http_cookie ~* "comment_author_|wordpress|wp-postpass_" ) {
       set $supercache_uri '';
}

if ($supercache_uri ~ ^(.+)$) {
       set $supercache_file /wp-content/cache/supercache/$http_host/$1index.html;
}

if (-f $document_root$supercache_file) {
       rewrite ^(.*)$ $supercache_file break;
}

Рейтинг webo.in: 70/100, интегральный: 73/100
Рейтинг Page Speed: 86/100
Рейтинг YSlow: Overall performance score 86 Ruleset applied: Small Site or Blog
Результаты Loadimpact - тоже не плохо, небольшое увеличение времени загрузки в конце но в целом отлично.
Табличка с замерами YSlow:

Размер странички, КБСкорость загрузки, секунд
143.31.863
143.32.099
143.31.996
143.31.792
143.31.795

Во всех тестах были активны следующие правила nginx:

    # Static files                                                                                                                                                                                                                          
    location ~* \.(jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf)$ {                                                                                                                              
        access_log      off;                                                                                                                                                                                                                
        log_not_found   off;                                                                                                                                                                                                                
        expires         max;                                                                                                                                                                                                                
        add_header Vary User-Agent;                                                                                                                                                                                                          
        add_header Vary Accept-Encoding;                                                                                                                                                                                                    
        add_header Cache-Control public;                                                                                                                                                                                                    
    }                                                                                                                                                                                                                                        
                                                                                                                                                                                                                                             
    # Static files                                                                                                                                                                                                                          
    location ~* \.(css|js)$ {                                                                                                                                                                                                                
        access_log      off;                                                                                                                                                                                                                
        log_not_found   off;                                                                                                                                                                                                                
        expires         max;                                                                                                                                                                                                                
        add_header Vary User-Agent;                                                                                                                                                                                                          
        add_header Vary Accept-Encoding;                                                                                                                                                                                                    
        add_header Cache-Control private;                                                                                                                                                                                                    
    }

Скриншоты результатов Loadimpact, на всякий случай:

Share