Оптимизация сайта на MODX Revolution

Следите за временем генерации страницы

Добавьте в футер такую конструкцию:

 <!-- Время генерации страницы: [^t^]</br> Время парсинга: [^p^]</br> Время выполнения запросов: [^qt^]</br> Всего запросов: [^q^]</br> Источник: [^s^]</br> Память: [[!mem]]</br> --> 

Она будет показывать вам общее время генерации страницы. Если страница генерируется больше 1 секунды (или если обновить страницу, а время генерации больше 0,5 секунды), это плохо. Если советы выше не помогли, то читаем советы ниже про кеширование. Снипет mem:

 return round(memory_get_usage()/1024/1024, 4)." Mb"; 

Кеширование целых блоков.

Зачастую некоторые блоки сайта одинаковые (новости, баннеры, панели сбоку), что бы постоянно не генерировать эти блоки создадим новый снипет kech:

 $cache_key = "chunk_".$name; $output = $modx-&gt;cacheManager-&gt;get($cache_key); if (empty($output)) { $output = $modx-&gt;getChunk($name, $scriptProperties); $modx-&gt;cacheManager-&gt;set($cache_key,$output); } return $output; 

После этого заменим вызов чанков нашим сниппетом:

 [[$header]] <!-- → --> [[chunk? &amp;name=`header`]] [[$footer]] <!-- → --> [[chunk? &amp;name=`footer`]] 

Использование кеша браузера

Чтобы браузер сохранял уже загружаемые ресурсы (JS, изображения, вебшрифты) нужно в htaccess файле указать время хранения этих файлов. Вставьте в ваш .htaccess следующий код:

 <ifmodule mod_expires.c=""> ExpiresActive on # Perhaps better to whitelist expires rules? Perhaps. ExpiresDefault "access plus 1 month" # cache.appcache needs re-requests in FF 3.6 (thx Remy ~Introducing HTML5) ExpiresByType text/cache-manifest "access plus 0 seconds" # your document html ExpiresByType text/html "access plus 0 seconds" # data ExpiresByType text/xml "access plus 0 seconds" ExpiresByType application/xml "access plus 0 seconds" ExpiresByType application/json "access plus 0 seconds" # rss feed ExpiresByType application/rss+xml "access plus 1 hour" # favicon (cannot be renamed) ExpiresByType image/x-icon "access plus 1 week" # media: images, video, audio ExpiresByType image/gif "access plus 1 month" ExpiresByType image/png "access plus 1 month" ExpiresByType image/jpg "access plus 1 month" ExpiresByType image/jpeg "access plus 1 month" ExpiresByType video/ogg "access plus 1 month" ExpiresByType audio/ogg "access plus 1 month" ExpiresByType video/mp4 "access plus 1 month" ExpiresByType video/webm "access plus 1 month" # webfonts ExpiresByType font/truetype "access plus 1 month" ExpiresByType font/opentype "access plus 1 month" ExpiresByType font/woff "access plus 1 month" ExpiresByType image/svg+xml "access plus 1 month" ExpiresByType application/vnd.ms-fontobject "access plus 1 month" # css and javascript ExpiresByType text/css "access plus 2 months" ExpiresByType application/javascript "access plus 2 months" ExpiresByType text/javascript "access plus 2 months" </ifmodule> 
Комментарии ()
    Ваш email не будет опубликован. Обязательные поля отмечени символом *