Един сериозен недостатък на WordPress и други подобни системи с отворен код е, че се допълват от страшно много хора. Като прибавим plugin-и и темплейти, сайта може да стане доста тежък и труден за оптимизиране. Миналата седмица споменах в Twitter, че използвам един доста прост скрипт, който намалява поне размера на ресурсите. Специално за WordPress може да използват доста добавки за кеширане на страниците и gzip-ване на скриптовете. Проблемът им обаче е, че не работят с всички темплейти.
Скрипта, който написах, е алтернативно решение. Използвам го както за блога ми, така и за Lipsva.com, Crime.bg и FairElection.eu. Той открива всички js и css файлове в сайта и ги gzip-ва. Който не знае – това е зипване или архивиране. Така размерът им се намалява с между 60 и 80%, а от там и общия размер на данните, които посетителите ви трябва да свалят, за да видя сайта. Другата част от работата се върши от .htaccess файла, който се поставя в основната папка на сайта. Той добавя различни настройки, които указват на браузъра на посетителите да пазят тези файлове по-дълго, за да не се налага да ги обновяват често. Същото се прави и за снимките, така че при всяко следващо посещение ще се ускори както скоростта на сайта, така и ще се намали трафика ви.
Двата файла може да свалите от тук. Сложете файла в основната папка или в подпапка. Има четири настройки. Първата е тайна дума, която да подавате, за да пуснете архиватора. Това е проста форма на сигурност. Втората е дали да архивира HTML страници. Това е препоръчително, ако те са статични, а не се генерират автоматично. Третата настройка е пътя към основната папка. Това ще е нещо от типа „/home/ime_na_saita„. Ако не я знаете, сложете „.“ или „..“, ако сте сложили скрипта в подпапка. Последната настройка е в кои подпапки да се търси за JS, CSS и HTML страници. Тук може да изброите местата където е темата ви, споделени скритове и прочие. Другият файл .htaccess трябва да копирате в основната папка, за да важи за целя сайт. Ако вече имате такъв файл, добавете съдържанието на този в края на вече съществуващия.
За да се създаде архивирането, извикайте скрипта с кода, който сте задали. Например „http://adresa_na_saita.com/pack.php?code=sekretno„. Ще се отпечатат всички архивирани файлове, заедно с това колко е намален общия им размер. Когато правите промени по сайта си (уточнение), ще трябва да го извикате пак, за да се генерира архива, като ще се gzip-нат само обновените файлове. С добавен аргумент „force“ като „pack.php?code=sekretno&force“ ще регенерирате всички наново.
Ако вече използвате добавки за кеширане трябва да сте внимателни обаче. Възможно е този скрипт да си пречи с тях. Затова направете резервно копие на вече съществуващия .htaccess, за да може да го възстановите, ако има проблеми. Хубавото на този скрипт е, че не прави промени по самите скриптове, а създава архивни копия до тях. Всеки път, когато някой отвори сайта ви, .htaccess правилата го пренасочват към gzip-натите копия. При снимките към се добавя правило, че важат за следващите 6 месеца и браузъра на посетителите не трябва да ги сваля за този период.
Ето и малко статистика. В случая с Crime.bg, общия размер на файловете беше намален с 77%. При FairElections.eu – 80%. Тези две платформи работят с платформата Ushahidi, където има система за кеширане, но не и на скриптове и стилове. Така сайтовете се ускориха като време за зареждане с поне 50%. При този блог направих и други оптимизации, които намалиха размера на файловете с 90% и го ускориха почти 2.5 пъти. Ако разбирате от PHP и сте уверени да променяте темата си, ето три стъпки как да го направите и вие:
Това са няколко от най-основние идеи. Най-важното е, че каквито и промени да правите, бъдете сигурни, че сте направили резервно копие на сайта и може да го възстановите при проблем. Ако имате още такива идеи, ще се радвам да ги споделите.
Благодаря! Ще го тествам, защото подобно нещо е от изключителна полза на такива като мен с нулеви знания за кодиране. Прав си, че има много добавки за кеширане, но няма читава именно за js и css. Пробвах прехваления minify и резултата беше покачване два пъти на времето на зареждане…
Само един въпрос: Под „промени“ имаш предвид, че след всеки пост трябва да се вика скрипта или ако е правена промяна в дизайна?
@Борис – не, ще трябва да го уточня горе. Става дума само за промени в самите JS и CSS файлове – примерно като правиш промени по външния вид на страницата или инсталираш добавки, които имат JS и CSS файлове. Тогава само трябва да се включва отново пакетиращия скрипт.
Други трикове са:
Намаляване на броя на js файловете и css файловете. Ползване на CDN, т.е. всеки статичен елемент по възможност идва от различен сървър и така броя заявки към единичен съръвър намалява. Този блог има 19 js файла и 5 css-a, който могат да се обединят. В htaccessa expires headers- Yahoo слагат дати след 10 години и при нужда за обновяване сменят името на файл. Както и ETag-овете за статичните компоненти. Общо взето много може да се говори по темата… 🙂
Ох, това ми е нужно – целият скрипт и т.н. – но нищо не разбирам от настройки… И явно ще го карам така 🙁
На мен даде следната грешка.
Parse error: syntax error, unexpected T_BOOLEAN_OR, expecting ‘,’ or ‘)’ in /home/elpak/public_html/ime-na-sajt/pack.php on line 4
Как може да се поправи?
Намерих бъг в скрипта. Свали последната версия от същия линк горе
дали този скрипт ще направи конфликт с кеширащи плъгини като W3 Total Cache, WP Super Cache?
Да, възможно е и мисля, че съм го споменал горе. Използвам ги само за самостоятелни сайтове, за да мога лесно да ги компресирам.
На първо място да питам дали всичко е наред по файловете и работят ли още?
И на второ място – ако използвам за кеширане плъгина Hyper Cache Extended дали може да има проблеми. Естествено питам само ако имаш информация. Иначе прочетох, че е вероятно да има конфликт между двата 🙂
Даде ми грешка
Parse error: syntax error, unexpected ‘{‘ in /home/simmods/public_html/pack.php on line 4
Как може да се оправи