YSlow анализира уеб-страници и ви казва какво е положението им, спрямо правилата за добрата производителност на сайтовете дефинирани от Yahoo. Колкото по-висок е коефициента, толкова по-бързо се зарежда сайта ви. Днес стартирах от YSlow 37, a сега съм на 90. Ето няколко трика:
Анализът става на базата на няколко критерия, който няма да изреждам, но вие веднага ще видите, след като си инсталирате разширението с което да видите вашия показател, ако вече го нямате.
1. Как да добавим Expires header
Във .htacess файла на сайта сложете следния код:
ExpiresActive On
ExpiresByType text/html "A7200"
ExpiresByType text/javascript "A604800"
ExpiresByType text/css "A604800"
ExpiresByType image/x-icon "A31536000"
ExpiresByType image/gif "A604800"
ExpiresByType image/jpg "A604800"
ExpiresByType image/jpeg "A604800"
ExpiresByType image/png "A604800"
Header set Cache-Control "must-revalidate"
2. Как да се справим с Etags
Пак в .htaccess сложете следното:
FileETag none
3. Как да компресираме .css файловете.
Отворете файла и в началото му сложете следното парче код:
<?php
ob_start ("ob_gzhandler");
header("Content-type: text/css; charset: UTF-8");
header("Cache-Control: must-revalidate");
$offset = 60 * 60 ;
$ExpStr = "Expires: " .
gmdate("D, d M Y H:i:s",
time() + $offset) . " GMT";
header($ExpStr);
?>
След което запишете .css файла, като .php файл и използвайте него вместо .css
Как да видя моя статус?
За да можете да видите вашия YSlow коефициент, трябва да имате Firefox и инсталирани разширенията Firebug и YSlow.
След като ги инсталирате, ще можете да проверите за колко време се зарежда страницата ви и как да подобрите нейната производителност, за да се зарежда по-бързо. Аз успях да сваля от 4 секунди на 0.9 секунди с горните мерки и със съветите на самото разширение.
ох ама съм и аз – да се поправя – А освен „FileEtag none“, ти препоръчвам ”Header unset ETag”, аз ползвам и ънсет за ласт модифайд също, но то не е задължително.
Извинявай за грешките, ако можеш редактирай поста ми. Малко разсеян днес.
Браво Бого! Евала. Сърце не ми даваше да ти направя забележка ама ти се сети. Хубаво е че даваш пояснения така като за начинаещи. За експайърс може да ползваш следният формат който специално на мен ми е по удобен и по юзер френдли:
ExpiresByType image/gif „access plus 10 years“
А тоя мръсен трик за гзип през пхп…. по добре без него че генерира по голямо натоварване и повече грешки в лога (личен опит). Най добре мод гзип към апачето. А освен Егат – ноне ти препоръчвам -„Header unset ETag“, аз ползвам и ънсет за ласт модифайд също но то не е задължително.
Хм, след като си оптимизирах страницата започна да не се обновява в браузера по подразбиране, всеки път трябва да се припомпвам на ctrl+F5.
Имате ли подобни наблюдения?
Бого: аз имам само ftp достъп до cult.bg и не мога сам да си редактирам .htaccess-a, сложно е… най-вероятно ще се откажа :(
@velqn: Май не ти работи .htacess, защото не си личи да има промяна :)
Яко, много тарикатско решение, мерси!
Вкарах в .htaccess нещата, които Бого сподели и компресирах .css-a, определено се усеща разлика. Иначе на точки слабо 54 макс.
Може би не е мястото да коментираме линкове и посещения тук – аз направих грешката, че започнах и аз спирам.
Виждам, че Бого е пуснал линка към поста ми за оптимизацията за YSlow с htaccess и mod_rewrite в блога ми. Надявам се да е полезна!
Марто, толкова са критичен все едно сме ти конкуренция… все пак допринасяме и ние мъничко за популяризирането на сайта ти. Да призная не съм си правил такива експерименти с преименуването, затова ми е интересно мнението на Бого, а вече и твоето. За компресорите съм дал линк към „папката“, защото там са няколко. С това не искам да си популяризирам сайта, в момента се популяризира друг. Ако си спомняш, когато говорихме беше на 200 посетители дневно, а беше скоро. Предложението ми за сътрудничество е в сила, то си пише и на сайта – приемат се предложения.
Бого, съжалявам за офтопика.
[…] малко четах в блога на Богомил темата за оптимизация за YSlow. Общо взето повечето от тези неща ги използвам и […]
Много неприятно, че няма опция за редакция на постовете.
След втори прочит забелязах, че в предния ми пост е останал едно неприятно неудоточнение: критиката за поставянето на линкове е към „уеб дизайн“.
Употребата на „ExpiresByType text/php “стойност”“ е абсолютно нелогично, освен ако не използваш разширението .php вместо .html ;)
Разбирам, че искаш да рекламираш сайта си – все пак си обещал на посетителите си астрономически растеж този месец, но нека уважаваме труда на всички и даваме линкове към истинския източник;) Конкретно за css компресорите имам предвид.
Богомиле, има един, според мен, много по-добър начин за автоматично компресиране на css файловете. Пак се използва htaccess, но и mod_rewrite и един много просто скрипт. Обещавам тези дни да седна и да го публикувам в четлив вариант. Само ще спомена, че удобството му се крие в това, че не е нужно да се променят разширението или каквото и да е по самите css файлове.
Най-невероятното е, че наистина работи доста по-добре от кеша на CMS-ите, въпреки че при мен е включен на всички сайтове. Какво мислиш обаче за сайтове подобни на http://3rdnews.info/ , които се обновяват на доста по-малко от стойността цитирана от тебе – text/html „A7200“ – 20 min x60 sec = 7200.
Ще тествам със стойност 5 минути – 300, тъй като на практика на всеки 5 минути на сайта влизат 2 до 10 новини. Няма да е зле да кажеш мнението си и за идеята:
ExpiresByType text/php „стойност“
YSlow е най-ценен при по-тежки javascript приложения.
При изпълнението на JS код браузърите правят много голям компромис към стриктността на кода. Това създава много лоши навици у разработчиците и съответно всички свикват да пишат гаден код, защото все пак той работи. Само дето работи бавно.
Полезничко, мерси. За компресирането на CSS файловете върши работа още и най-обикновен компресор, прави се еднократно и наистина работи. Примери за няколко CSS компресора тук: http://3dwebdesign.org/component/option,com_weblinks/catid,26/Itemid,55/
Много други неща вършат също работа, като някои от тях пише тук: 14 правила за бързо зареждащи се файлове: http://3dwebdesign.org/component/option,com_weblinks/catid,15/Itemid,55/