Optymalizacja szybkości dla stron opartych o drupala 7

Kategoria: 

Szybkość działania strony często jest kluczowym czynnikiem wpływającym na to czy ktoś pozostanie na naszej stronie w celu dokonania  zakupu, wysłania formularza czy ogólnie czy przeczyta naszą treść. Jeśli strona ładuje się zbyt długo jest duże prawdopodobieństwo że użytkownik zamknie stronę bo nie chce mu się zbyt długo czekać na jej otwarcie. Jeśli nawet nasza strona wczyta się i użytkownik zainteresuje się naszą stroną to kolejna walka z wczytywaniem spowoduje frustracje i szybkie zamknięcie.  

Szybkość wczytywania się strony jest również czynnikiem wpływającym na pozycję strony w wynikach wyszukiwania. Google premiuje strony przyjazne użytkownikowi, a strona jest wtedy przyjazna gdy min.  można się po niej szybko poruszać. Podobnie sprawa się ma z wersją mobilną strony. Im strona szybsza tym użytkownik będący na komórce lub tablecie szybciej znajdzie interesujące go informacje i  nie będzie klikać ciągle odśwież ze zdenerwowania.

Jest wiele czynników które wpływają na szybkość działania strony opartej o cms drupal w wersji 7. Są to czynniki związane i z samym sposobem stworzenia strony, ale także z jej użytkowaniem. Wykonanie kilku podstawowych zabiegów wymienionych w tym artykule może znacząco wpłynąć na szybkość działania każdej strony drupalowej. 

Optymalizacja zdjęć 

Warto zwrócić uwagę na wielkość wrzucanych na stronę zdjęć. Nie można dopuścić do tego by zdjęcia na danej stronie ważyły zbyt dużo. Dobrą praktyką jest optymalizacja zdjęć przed ich publikacją. Można stracić na jakości zdjęcia niewiele, ale zyskać można zdecydowaną poprawę szybkości strony w szczególności gdy na podstronie mamy bardzo dużo zdjęć. Ważne również jest odpowiednie przycinanie zdjęć na stronie przy użyciu styli obrazków.  Do optymalizacji zdjęć można użyć  np. narzędzia Pngoptimizer 

Dodatkowo można stronę wyposażyć w tzw. lazy loading czyli dogrywanie zdjęć w momencie ich pojawiania się w widoku strony. Skorzystać można tutaj z modułu  Image Lazyloader 

Drupal cache 

Ważne jest, aby podczas publikowania na serwerze strony, włączyć domyślne cachowania drupala. Sam temat był już poruszany pod tym linkiem. Pamiętajmy o włączeniu cachowawnia plików js i css co spowoduje łączenie tych plików w jeden dla każdego typu. Możemy również skorzystać z dodatkowego modułu do cachowania plików -  Advanced CSS/JS Aggregation 

Dodatkowe systemy cachujące 

Gdy mamy dużą stronę, a dodatkowo posiadamy na tyle umiejętności możemy zawsze dodać do strony dodatkowe systemy cachujące takie jak np.:

Te dodatkowe mechanizmy znacząco przyspieszą naszą stronę, gdyż każdy widok strony będzie cachowany do pliku html, dzięki czemu nie będzie trzeba wykonywać wielu zapytań do bazy, każdorazowo gdy będziemy chcieli odświeżyć daną podstronę. Dodatkowo jeśli korzystamy z viewsów pamiętajmy że w standardzie viewsy posiadają cachowanie, tylko jest ono domyślnie wyłączone i zawsze można je włączyć. Dodatkowo możemy skorzystać z modułu drupalowego jak np views content cache. Dodatkowymi opcjami z których możemy skorzystać to instalacja APC przyspieszający php na serwerze, a także możemy włączyć kompresje gzip w pliku htaccess. Włączenie kompresji gzip jest dość mocno oceniania przez narzędzie Pagespeed googla, więc warto je dodać.

Aktualizacja drupala i modułów 

Warto posiadać aktualny rdzeń drupala jak i samych modułów, ponieważ wpływa to nie tylko na bezpieczeństwo strony, ale także na szybkość działania, ponieważ nowe wersje modułów po seriach testów są optymalizowane pod względem wydajności i ich zainstalowanie wyeliminuje nie potrzebne zapytania do bazy czy nie potrzebne pętle, które są w stanie "zabić" każdy serwer. 

Wyłączenie niepotrzebnych modułów 

Jeśli testowaliśmy wiele modułów pamiętajmy by je odinstalowywać jeśli z nich nie korzystamy. Dodatkowo możemy wyłączyć nie używane moduły takie jak np devel, views ui, rules ui itd.  

Wykonanie powyższych pięciu kroków może znacząco wpłynąć na szybkość działania strony. Przedstawiony tutaj zestaw czynności jest pewnym standardowym, który można wykorzystać na wszystkich stronach. Prócz podstawowych rozwiązań jest wiele innych zaawansowanych czynności, które można wykonać by przyspieszyć stronę, począwszy od optymalizacji szablonów, własnych modułów, a kończąc na dużej przebudowie całej strony, jeśli np. zostało użyte bardzo dużo ciężkich modułów. Czasem napisanie prostego moduły może być zdecydowanie lepszym rozwiązaniem niż korzystanie z wielkich gotowych rozwiązań.