W internecie możemy spotkać się z wieloma stwierdzeniami, że strony oparte o cms Drupal 7 potrafią ładować się wyjątkowo długo. I taka jest prawda. Drupal 7 oferuje nam od groma możliwości w postaci dodatkowych rozszerzeń, lecz każde z nich powoduje dłuższe ładowanie się strony. Na szczeście nie musimy z nich rezygnować ? wystarczy uporządkować to co mamy za pomocą odpowiednich narzędzi i procedur.
Jakie czynności należy wykonać przed uruchomieniem strony?
-
Wyłączenie i odinstalowanie nieużywanych modułów ? w fazie produkcji często rezygnujemy z modułów, które zainstalowaliśmy i nie zdajemy sobie sprawy, że ich obecność może spowalniać nam naszą stronę. Większość modułów tworzy dodatkowe wpisy do bazy danych zwiększając jej objętość, co powoduje wydłużenie czasu zapytań. Każdy nieużywany moduł należy wyłączyć, a następnie odinstalować (jeżeli tylko wyłączymy moduł, jego funkcjonalność będzie niedostępna, ale zmiany w bazie danych dalej będą widoczne). Dobrym nawykiem jest również oszczędzanie miejsca na serwerze, nieużywane moduły po odinstalowaniu możemy usunąć z folderu modules.
-
Optymalizacja bazy danych ? warto skorzystać z modułu OptimizeDB. Zoptymalizuje on wszystkie tabele i wyświetli ich aktualną wielkość. Należy pamiętać o czyszczeniu pamięci podręcznej. Moduł ten umożliwia to również za pomocą Crona.
-
Korzystanie z pamięci podręcznej ? nie ma sensu za każdym razem ładować na nowo wszystkich plików na stronie przy każdym jej przeładowaniu. Wartym na uwagę jest moduł Boost, którego poprawna konfiguracja skompresuje pliki html, xml, ajax, css i javascript. Wykorzysta także pamięć podręczną przeglądarki.
-
Włączenie pamięci podręcznej dla bloków ? treści przechowywane w blokach warto umieścić w pamięci podręcznej, aby przeglądarka nie musiała ich ładować z każdym odświeżeniem strony internetowej. Opcję tę możemy włączyć w panelu administracyjnym wchodząc w menu Configuration/Development/Performance. Ustawiamy także przechowywanie stron w pamięci podręcznej dla anonimowych użytkowników.
-
Kompresja plików css, js i html ? pliki te najlepiej przechowywać w postaci skompresowanej. Usuwa to z nich wszystkie nadmiarowe niepotrzebne znaki typu spacje, tabulatory czy komentarze. Pliki te są mniejsze o około 20% i tracą na czytelności. Wiele edytorów z których korzystają programiści mają wbudowaną opcję kompresji plików i takie pliki możemy deklarować na stronie. Służą do tego również zewnętrzne moduły Drupala takie jak Minify (pozwala na kompresję plików html i js) oraz bardziej rozbudowany Advanced CSS/JS Aggregation, nad którym trzeba spędzić więcej czasu, lecz uzyskane efekty będą na pewno bardzo zadawalające. Należy dążyć do tego, aby podczas ładowania strony internetowej ładował się tylko jeden plik js i jeden css. Czasami jest to trudne do osiągnięcia, lecz jak najbardziej możliwe. Pliki również można połączyć za pomocą modułu Advanced CSS/JS Aggregation.
-
Kompresja plików graficznych ? dobrym nawykiem jest wcześniejsza kompresja plików graficznych przed wrzuceniem ich na stronę internetową. Zastanówmy się nad rozdzielczością grafiki, jaka jest nam potrzebna i ograniczmy się do niej zamiast wrzucać większy plik skalowany przez css. Grafiki z przezroczystym tłem zapisujmy formacie PNG, zdjęcia w formacie JPG o większej kompresji. Możemy użyć zewnętrznych programów instalowanych na komputerze do bezstratnej kompresji plików. Korzystajmy również z grafik wektorowych w formacie svg, który również możemy skompresować.
Po zastosowaniu się do powyższych zaleceń czas ładowania się strony powinien się znacznie skrócić. Oczywiście mogą mieć też na niego wpływ inne rzeczy. Jeżeli wiele modułów na stronie jest pisanych przez nas samych i korzystają one ze skomplikowanych zapytań do bazy danych ? warto je przeanalizować i jeżeli jest taka możliwość ? zoptymalizować. Również warto przeanalizować parametry serwera. Jeżeli nie wiemy czy wszystko ładuje się tak jak powinno, warto skorzystać z google speed test, który wyświetli szczegółowy raport na temat witryny.