WordPress - оптимизация на скоростта

madseason

Active Member
Бих искал да нахвърляме някои идеи за оптимизиране на WordPress. Много се е писало из темите във форума и има страхотни идеи. Желанието ми е да се съберат в нещо като ръководство. За това започвам темата, като ще я рамкирам под формата на някаква статия. В последствие няма лошо, да се превърне в дискусия.

КАК ДА УСКОРИМ НАШИЯТ WORDPRESS САЙТ

Да си представим, че сайта ни представлява къща. Какво е важно за една къща? Ами ако сайта ни е една потъваща къща? Дали бихме тръгнали да мием прозорците, за да я стабилизираме? Не. Важното за една къща е стабилната основа. Изграждайки стабилна основа, ние можем спокойно да развиваме интериора и екстериора. Ако къщата ни е WordPress сайт, основите отново се оказват изключително важни. За това, първото нещо с което започваме изграждането на нашия WP-сайт е:
1. Качествен и бърз хостинг

До тук добре, но част от базата е и скелто, носещите стени и колони, покрива. За това е изключително важно, да си изберем:
2. Подходяща тема.
Не ни трябва тема, накичена с дрънкулки и звуци, анимации и хиляди ненужни неща. Трябва ни стабилна и бърза тема, по възможност респонзив.

От тук насетне започва работата с добавянето на контента, надграждането с екстри (плъгини, къстъм функционалност, редизайн). Работата ни спори и за няколко месеца сме изградили една чудесна кооперация със стабилни основи и фасада, насъбрали сме си посетители, пишем интересни неща. Както се казва направили сме си едно уютно местенце. Само че от многото багаж, започваме да се разминаваме трудно по коридорите. Всеки бърза да види картините по стените, да разгледа съкровищата в мазето, да се запише, че е ни е посетил музея, а другият път ще доведе и приятели. Е, стана тъпканица, нали?! Нещо трябва да се направи. WP-сайтчето ни се задъхва да обслужва хилядите посетители дневно. Трудно му е да задоволява всичките необходими нужди на посетителите. Изстрелват се заявки наляво-надясно, но започва едно чакане, като за тройка кебапчета вечер в крайбрежен ресторант в Несебър. Кофти!
Да викаме майсторите и да видим какво може да се направи.

3. Редуциране на трафик от сайта.
Най-модерното решение е да използваме CDN (Content Delivery Network). Напоследък се появиха и free CDN-сървъри, които позволяват да качим при тях някои често зареждани файлове: JavaScript, CSS, картинки, клипове. Тези сървъри разполагат с интересни възможности за анализ и решения за оптимизиране и кеширане на статични файлове.
Бих ви препоръчал, да използвате платени CDN-и, но всеки си решава според бюджета. Един от популярните free CDN-и е CloudFlare. Попрочетете, разгледайте, тествайте и ако ви хареса - ползвайте.

4. Идентифициране на проблемни или забавящи времето на зареждане плъгини
За решаване на този проблем има много полезни добавки. Аз ви препоръчвам да започнете с плъгина за диагностика P3 (Plugin Performance Profiler). Този инструмент ще ви покаже детайлна картина на всички плъгини, които забавят WP-сайта ви.

5. Компресиране на съдържанието
Използването на GZip-компресията намаля драстично трансфера на данни между сървъра и браузъра на клиента. В общи линии сървъра изпраща zip-компресирани данни до клиента, а браузъра използва същия алгоритъм, за да ги разархивира и рендне.
Можете да прочетете тази интересна статия, която ще ви обясни, как да "активирате" Gzip (Deflate) компресията на данни:
http://www.feedthebot.com/pagespeed/enable-compression.html

6. Компресиране на изображенията
Не бива да пренебрегвате оптимизирането на изображенията. Няма значение, дали използвате png или jpg. Старайте се винаги да компресирате до някакви приемливо ниво без загуба на информация - lossless. Аз лично използвам компресиране около 86% за jpg. Предполагам и при вас често се налага качване на изображения от телефона или от външни потребители. В такъв случай също има варианти за компресиране на изображенията. Можете да използвате плъгините за WP - WP Smush.it или Imsanity, който ще ви помогне и за преоразмеряването на изображенията.

7. Кеширане на информацията
През сайта си можете да казвате на браузъра на потребителя колко често да кешира дадени файлове или цели страници. Естествено има и плъгин - WP Super Cache, а може и ръчно чрез .htaccess. Кеширането на данните е нож с две остриета. Колкото може да ви помогне, два пъти повече може да ви навреди, ако не внимавате какво и как кеширате.

8. Почистване на базата данни от боклука
Най-лесно е да се направи с плъгин - WP-Optimize

9. Компресиране на CSS и JavaScript файловете
Можете да го направите ръчно. В общи линии се прави изтриване на шпациите и новите редове. За WP можете да използвате плъгин - Better WordPress Minify. Ако използвате CSS-framework, като Boostrap или Foundation, тогава можете да изтеглите компресирани версии на CSS и JS. За jQuery също.

10. Изключване на Pingbacks and Trackbacks
За да комуникира с други блогове, WP ви предлага тези инструменти, които понякога могат да забавят доста времето на зареждане. Ако мислите, че нямате чак такава нужда от тях, просто ги изключете от "Discussion" -> "Settings".

11. Преместете целия CSS в началото и всички JS в края на страниците
Най-добре е обработката на контента с JS да става след като потребителят е заредил цялата страница. От друга страна браузъра няма да рендне нищо, докато не зареди целия CSS. Това е просто правило, което върши добра работа. Винаги го използвайте, когато започвате нов проект.

12. Използвайте "Header set Connection keep-alive"
Ако потребителите ви свалят много файлове от сайта ви, тази опция може да ви помогне, ако сложите текста в кавичките в .htaccess файла.

13. Заменете PHP с HTML там където е възможно
Няма нужда целия HTML да се принти от PHP. Ако мислите, че можете да използвате тази техника, и имате голямо количество HTML-код, набутан в PHP, го използвайте.

Тези няколко идеи съвсем не изчерпват темата с оптимизирането на WordPress сайтовете. Има вероятно още стотици хитрини, които могат да помогнат. Ще се радвам да споделите какво ползвате.
За писането на текста са използвани и преведени пасажи от Web Geek сайтове.
 
Последно редактирано:
От: WordPress - оптимизация на скоростта

Полезна информация. Трябва също да се каже, че оптимизирането е доста индивидуален процес, който зависи от много фактори, включително системата на сайта, плъгини, хостинг, съдържание, посещения и т.н.

По отношение на точката относно темата на сайта (обикновено Wordpress), забелязвам една тенденция да се избират точно накичени теми, с разни анимации, ефекти, слайдове, паралакси, огромни снимки и един тон екстри, които всъщност са ненужни. Аз лично вляза ли в такъв сайт, затварям го след 3 секунди. Факт е обаче, че като ми поръчват да правя сайт, обикновено си харесват точно такъв тип, понеже бил привличал окото.

Половината от точките могат да влязат в темата за кеширането и по-специално W3 Total Cache, който има повече настройки от Wp Super Cache.
 
От: WordPress - оптимизация на скоростта

Най-добрата тема, оле най-добрата тема! Определено ще се "поуча" от повечето неща, благодаря!
 
От: WordPress - оптимизация на скоростта

Izvunzemen - не виждам за какво хвалиш тази тема, след като е поредната такава тема, също така е написана неграмотно (пълна е с правописни грешки, които затрудняват четенето), също така има и виждам други грешки в описанието.

Примерно - бих препоръчал в никакъв случай да не се използват кеширащи плъгини, вече има доста добри хостинги, които ако ползвате, ще забравите, че съществуват кеширащите плъгини. А колкото до оптимизацията на изображенията - това важи само за някой, който качва снимка директно от телефон, фотоапарат. А това за мен е кощунствено, даже идиотско - да качиш снимка от няколко мегабайта и после сайта бил бавен! :cry:
 
От: WordPress - оптимизация на скоростта

Izvunzemen - не виждам за какво хвалиш тази тема, след като е поредната такава тема, също така е написана неграмотно (пълна е с правописни грешки, които затрудняват четенето), също така има и виждам други грешки в описанието.

Примерно - бих препоръчал в никакъв случай да не се използват кеширащи плъгини, вече има доста добри хостинги, които ако ползвате, ще забравите, че съществуват кеширащите плъгини. А колкото до оптимизацията на изображенията - това важи само за някой, който качва снимка директно от телефон, фотоапарат. А това за мен е кощунствено, даже идиотско - да качиш снимка от няколко мегабайта и после сайта бил бавен! :cry:
Странник, благодаря за критиката! Ще ми особено полезно, ако ми покажеш правописните грешки, както и грешките в описанието. Намерих 2 правописни, които оправих. Недолюбвам неграмотността и съм силно критичен към себе си в това отношение. Възможно е и да съм допуснал някои пропуски.
Ще е особено гот, да се дадат и линкове към други подобни теми.
 
От: WordPress - оптимизация на скоростта

Izvunzemen - не виждам за какво хвалиш тази тема, след като е поредната такава тема, също така е написана неграмотно (пълна е с правописни грешки, които затрудняват четенето), също така има и виждам други грешки в описанието.

Примерно - бих препоръчал в никакъв случай да не се използват кеширащи плъгини, вече има доста добри хостинги, които ако ползвате, ще забравите, че съществуват кеширащите плъгини. А колкото до оптимизацията на изображенията - това важи само за някой, който качва снимка директно от телефон, фотоапарат. А това за мен е кощунствено, даже идиотско - да качиш снимка от няколко мегабайта и после сайта бил бавен! :cry:

Обясни малко повече защо да не ползваме в никакъв случай кеширащи плъгини? И кои са тези доста добри хостинги, с които ще забравим за кеширащите плъгини? Аз все още не съм намерил такъв, ако не говорим разбира се за някакви супер скъпи планове. И колкото и да е добър хостинга, смятам че с кеширане сайтът винаги ще е по-бърз и лек, каквото и да си говорим. Не вярвам да има голям сайт, който да не ползва кеширане.
 
От: WordPress - оптимизация на скоростта

Кеширането е важно и полезно, но наистина трябва да се настрои много внимателно. Най-добри резултати имам с ползването на memcached.

Колкото до оптимизацията - аз не използвам plugins които променят кода, изходния код на всичките ми сайтове е изчистен и под пълен мой контрол. Никакви коментари, добавки, ненужни добавяния на .js и .css файлове във всяка страница, въпреки че се ползва само в една и т.н. По този начин постигам почти максимални оценки от сайтовете за оценка на скоростта.
 
@ Странникът аз съм от хостингите на който може да се мине без кеширащ плъгин заради варниш кеша и въпреки всичко препоръчва да се ползват... ефекта е добър....

https://wordpress.org/plugins/w3-total-cache/

Recommended by web hosts like: Page.ly, Synthesis, DreamHost, MediaTemple, Go Daddy, Host Gator and countless more.

Trusted by countless companies like: AT&T, stevesouders.com, mattcutts.com, mashable.com, smashingmagazine.com, makeuseof.com, yoast.com, kiss925.com, pearsonified.com, lockergnome.com, johnchow.com, ilovetypography.com, webdesignerdepot.com, css-tricks.com and tens of thousands of others.

Mashable's 34 million monthly unique visitors and 14 million social media followers - тези могат да си позволят на каквото си искат да хостват ама ползват...


това което може да постигне с w3-total от начинаещ на опитен програмист ще му отнеме два дни да ти го напише и при ъпдейти може да се наложи да се добави наново

http://mwpcloud.com/what-is-possible-with-the-new-mwpcloud-com-wordpress-hosting-platform/

без w3 total този АААААА резултат не се постига
 
Последно редактирано от модератор:
Re: От: WordPress - оптимизация на скоростта

Кеширането е важно и полезно, но наистина трябва да се настрои много внимателно. Най-добри резултати имам с ползването на memcached.

Колкото до оптимизацията - аз не използвам plugins които променят кода, изходния код на всичките ми сайтове е изчистен и под пълен мой контрол. Никакви коментари, добавки, ненужни добавяния на .js и .css файлове във всяка страница, въпреки че се ползва само в една и т.н. По този начин постигам почти максимални оценки от сайтовете за оценка на скоростта.

Ако се ползва паметта на APC / APCu или Xcache е гарантирано по бързо от memcached... мемкешъд е винги през tcp socket и винаги ще има овърхед спрямо локалния ... на хостинг със fcgi ли си и ако да пробвай да добаваши няко опкод аклесератор и да го ползваш както сторидж за кеша...

А високия резултат на тестове е нож с две остриета - не става дума за wordpress но тази джумал с комбиниран джава скрипт и цсс въпреки високия резултат на тестове страниците циклеха по две секунди...

http://www.predpriemach.com/showthread.php?t=53576
 
От: WordPress - оптимизация на скоростта

Ето едно просто ръководство, което показва как да се активира CDN (в конкретният случай CloudFlare) и какви настройки е добре да се направят:
CloudFlare CDN Tutorial
 
От: Re: От: WordPress - оптимизация на скоростта

Ако се ползва паметта на APC / APCu или Xcache е гарантирано по бързо от memcached... мемкешъд е винги през tcp socket и винаги ще има овърхед спрямо локалния ... на хостинг със fcgi ли си и ако да пробвай да добаваши няко опкод аклесератор и да го ползваш както сторидж за кеша...

А високия резултат на тестове е нож с две остриета - не става дума за wordpress но тази джумал с комбиниран джава скрипт и цсс въпреки високия резултат на тестове страниците циклеха по две секунди...

http://www.predpriemach.com/showthread.php?t=53576

Напълно си прав за сайтовете за тестове :) Ползвам ги по-скоро за по-лесно намиране на очевидни пропуски, другото си е реални тестове. Да не говорим за някои безумни съвети за оптимизация ("Намалете качеството на картинките с 50% и ще е супер, спрете да ползвате .js и резултата ще се подобри").

Идеята за Xcache ми допада, но дали се съчетава лесно и стабилно с Wordpress като memcached на споделен хостинг?
 
На клауд линукс хостинги с cagefs твоят xcache /апц /апцу си е само твой и си ползва твоята заделена памет :)

общо взето представлява слагане на една отметка повече в php selector

картинка на опциите http://www.predpriemach.com/showthread.php?t=51882&p=560777&viewfull=1#post560777

Аз бих ползва php 5.5 което е най бързо бих активирал zendopcache за акселератор и бих включил apcu което е точно дата паметта на апц ако някой държи да е паметта а не от харда - от харда също не е зле - зависи от хостинга
 
От: WordPress - оптимизация на скоростта

Здравейте колеги,

моето лично мнение е че можем да минем и без кеширащ плъгин, и че те повече вредят отколкото помагат. Специално от W3 Total Cache съм си патил, защото на един голям сайт с рецепти беше генерирал огромен брой inodes и от хостинга ни побъркаха да надграждаме към по-скъп план.

Щом ми отне към 2 пълни дни постоянно триене през ftp за да ги разкарам, представете си за какво иде реч. На всичкото отгоре дори като го изтриеш през админ панела, някой от файловете му остават и продължава да си генерира inodes. Едвам съм се отървал от него.

Препоръката ми е много да внимавате и да премислите преди да прибегнете до кеширащ плъгин.

Относно CDN да се ползва за БГ сайт не знам дали има смисъл.

Имам и следното питане:

Кой от двата плъгина за lossless компресиране на изображения е по-добър - WP Smush или Еwww image optimizer и защо?

Мерси
 
От: WordPress - оптимизация на скоростта

моето лично мнение е че можем да минем и без кеширащ плъгин, и че те повече вредят отколкото помагат. Специално от W3 Total Cache съм си патил, защото на един голям сайт с рецепти беше генерирал огромен брой inodes и от хостинга ни побъркаха да надграждаме към по-скъп план.
Защо си го пуснал да кешира на диска? Ако хостинга ти не поддържа memcached - сменяй хостинга.

Щом ми отне към 2 пълни дни постоянно триене през ftp за да ги разкарам, представете си за какво иде реч. На всичкото отгоре дори като го изтриеш през админ панела, някой от файловете му остават и продължава да си генерира inodes. Едвам съм се отървал от него.
Пак си е лично твой проблема, че си трил през фтп.
rm -R ?

Кой от двата плъгина за lossless компресиране на изображения е по-добър - WP Smush или Еwww image optimizer и защо?
Мерси
Яху спряха SmushIt сървиса отдавна. Сега WPMUDev предлагат платена версия, която компресира на техни сървъри.
 
От: WordPress - оптимизация на скоростта

Torbalan Trolski, първите 2 забележки са градивни. Не съм се замислил толкова върху темата, но все пак трябва да се внимава с тези плъгини.

Относно Wp smush, да четох го това. Но сега тествам безплатната му версия и дава вид че компресира нещо. Тествах с едно изображение, смалило го е от 143kb на 127kb без видима загуба на качеството :)
 
Последно редактирано:
Re: От: WordPress - оптимизация на скоростта

Защо си го пуснал да кешира на диска? Ако хостинга ти не поддържа memcached - сменяй хостинга.

Не съм съгласен за мемкешъд , той е огромна дупка за сигурността при шеърд услуга.... Това което съм виждал като масово решение всички ползват един мемкешъд сървър... само при един хостинг съм виждал да си има дедикейтед порт за всеки отделен клиент и пак зложелател който споделя шеърд ипто може да се конектне към чуждия мемкешъд като налучка порта и да свали нещо чуствително ....

По доброто решение е хостинга да подържа APC / или APCu кеш паметта ако се ползва с друг опкод кешър, (както съм писал по горе за в3 тотал)
Предимставата са че :

1. Конекцията на сокета винаги е по-бърза от конекцията на порта или ...APCu e по-бърз от Memcached ...
2. Тъй като работи APC / APCu с правата на съответния потребител само той има достъп до кеша и изтичане на информация или инжектирането и е невъзможно по този вектор

за другото съм съгласен ...

а за триенето правете го през файл мениджъра става за секунди
 
От: WordPress - оптимизация на скоростта

http://www.webpagetest.org/result/150427_9B_NA9/

Една тестова инсталация на вп, на споделен хостинг със cpanel инсталирани много неща.Но cdn не мога да го накарам да се ползва явно не знам как.
 
От: WordPress - оптимизация на скоростта

Направен тест с pagespeed, според вас това много ли е зле?!

Mobile
56 / 100

Desktop
83 / 100
 
От: WordPress - оптимизация на скоростта

Направен тест с pagespeed, според вас това много ли е зле?!

Mobile
56 / 100

Desktop
83 / 100
За мобилни е зле, десктоп от 80 нагоре го приемам за минимум.
 

Горе