Drupal vs WordPress: Jakie są różnice i który jest lepszy?
Pod względem popularności WordPress nie ma sobie równych. Śmiało można założyć, że co trzecia strona internetowa działa pod kontrolą tego systemu. Jest tak popularny, że zaczął być wykorzystywany do wszystkiego. Od blogów poprzez fora aż po sklepy internetowe. Drupal jest znacznie mniej popularny, ale również chętnie wykorzystywany do różnego rodzaju stron. Zatem co łączy oba systemy, a co je różni? Kiedy powinniśmy wybrać Drupala, a kiedy WordPressa?
Drupal vs WordPress - bezpieczeństwo
Prawdopodobnie każdy z nas słyszał o jakimś spektakularnym ataku hakerskim na stronę rządową lub inny popularny serwis. Jednak takie spersonalizowane ataki wbrew pozorom zdarzają się rzadko. Dużo częściej hakerzy wolą działać masowo, dzięki czemu zwiększają swoje szanse oraz potencjalny zysk. Gotowe skrypty przemierzają sieć Internet w poszukiwaniu stron, których CMS-y nie są na bieżąco aktualizowane i tym samym zawierają znane luki bezpieczeństwa. Popularność WordPressa siłą rzeczy naraża go na ataki - po prostu w Internecie jest więcej stron z nieaktualizowanym WordPressem niż Drupalem.
Luki
Jak już wspomniałem, hakerzy zazwyczaj korzystają ze znanych luk bezpieczeństwa, które w kolejnych wersjach zostały już załatane. Korzystając z serwisu Exploit Database, sprawdziłem, ile takich luk można znaleźć dla obu systemów. W przypadku Drupala było ich 40, natomiast dla WordPressa…1249. Jak widać, z przyczyn czysto ekonomicznych, bardziej opłaca się atakować WordPressa. Dlatego pamiętajcie, aby zawsze na bieżąco aktualizować swoje CMS-y. Jeśli macie z tym problem, lub nie wiecie jak to zrobić, nasz zespół PHP deweloperów zrobi to za was.
Między innymi właśnie z powodu wysokiego poziomu bezpieczeństwa tak wiele rządowych stron oraz innych ważnych serwisów (London.gov.uk, New York State, Australian Government) jest opartych na Drupalu. Na bezpieczeństwie zależy im tak bardzo, że chętnie przekazują niemałe kwoty na dalszy rozwój tego systemu.
System szablonów
Jednak to nie wszystko. Sama konstrukcja WordPressa może powodować luki w bezpieczeństwie. Brak systemu szablonów (ang. template engine) powoduje, że na programistę spada obowiązek pilnowania, aby wszystkie dynamiczne elementy strony (np. komentarze dodawane przez innych użytkowników pod artykułem) były oczyszczone ze wszystkich niechcianych elementów (takich jak np. tagi wykorzystywane do ataków XSS). Drupal, podobnie jak Symfony oraz wiele innych frameworków, domyślnie korzysta z Twiga, najbardziej popularnego systemu szablonów dla języka PHP. Zapewnia on bardzo wysokie bezpieczeństwo oraz pozwala zachować porządek w kodzie. System ten automatycznie usuwa wszelkie niepożądane i potencjalnie niebezpieczne tagi. Używanie template engine jest od wielu lat standardem i jego brak w WordPressie to ogromna bolączka.
Dane wrażliwe
Bardzo często w przypadku większych serwisów zachodzi potrzeba przechowywania danych na serwerze, które będą dostępne tylko dla określonej grupy osób. Takie pliki zawierają często wrażliwe dane i powinny być szczególnie chronione. Drupal domyślnie zapewnia taką funkcjonalność i udziela dostępu do tego typu plików tylko użytkownikom, którym nadano odpowiednie uprawnienia. Niestety w przypadku WordPressa sprawa wygląda zupełnie inaczej. Wszystkie wysłane pliki przechowywane są w katalogu /wp-content/uploads/[ROK]/[MIESIĄC]. To powoduje, że każdy kto ma podstawową wiedzę o WordPressie oraz odrobinę szczęścia może uzyskać nieautoryzowany dostęp do plików. Boleśnie przekonał się o tym niedawno serwis lekarzonline.eu. Dane medyczne pacjentów były przechowywane w domyślnym katalogu bez żadnej kontroli dostępu.
Koszt
Koszt wdrożenia strony internetowej jest dla wielu klientów decydującym kryterium. W przypadku WordPressa czasami do tego celu nie trzeba nawet zatrudniać programisty. Dzięki takim wtyczkom jak Elementor czy Visual Composer z powodzeniem możemy sami “wyklikać” wygląd poszczególnych stron, nie mając absolutnie żadnej wiedzy programistycznej. Dodatkowo wiele hostingów ma w swojej ofercie darmową instalację WordPressa na serwerze. Zatem jeśli dysponujemy odpowiednią ilością czasu, możemy zrobić wszystko sami, minimalnym kosztem.
Niektóre hostingi, jak np. cyber_Folks, oferują darmową instalację Drupala. Mimo tego dalsze wdrożenie będzie wymagało wiedzy programistycznej. Dla osób nietechnicznych może to być przeszkodą nie do pokonania. Co prawda i w tym CMS-ie zaczynają się pojawiać kreatory stron internetowych takie jak Droopler, dzięki któremu wiele rzeczy można wyklikać i jednocześnie znacznie obniżyć koszt wdrożenia, jednak nadal ciężko mu konkurować na tym polu z WordPressem.
Dalszy rozwój gotowej strony
Niestety w przypadku WordPressa dalszy rozwój jest bardzo problematyczny. Po prostu brakuje mu wielu narzędzi, które by to ułatwiały, a dodatkowo sama architektura WordPressa bardzo to komplikuje. System ten nie rozdziela w żaden sposób danych konfiguracyjnych, układu oraz treści. Problem jest szczególnie widoczny, jeśli na stronie stale dodawane są nowe treści (np. wpisy na blogu). Spójrzmy na konkretny przykład. Programista chcący wprowadzić nowe funkcjonalności, pracuje nad stroną lokalnie. W tym czasie ktoś inny dodaje nowe treści do strony, która jest dostępna w internecie. Kończy się to tym, że wersja lokalna może i ma nowe funkcjonalności, ale brakuje jej treści, które zostały dodane w tym czasie przez inną osobę. W efekcie mamy dwie różne wersje strony, które bardzo ciężko jest ze sobą scalić.
Dzięki posiadaniu narzędzi do synchronizacji konfiguracji, Drupal całkowicie rozwiązuje ten problem. Podczas pracy w środowisku lokalnym programista może wszelkie zmiany w konfiguracji wyeksportować do plików, a następnie wgrać na docelowej stronie bez obawy o naruszenie jej treści. Co więcej, proces ten można zautomatyzować, co pozwala znacznie zaoszczędzić czas.
Wydajność i szybkość
Czasy kiedy w oczekiwaniu na załadowanie strony internetowej można było spokojnie zaparzyć sobie kawę, wyprowadzić psa na spacer i ugotować obiad dla całej rodziny, już dawno minęły. Obecnie każda kolejna sekunda oczekiwania na otwarcie strony drastycznie zwiększa ryzyko, że odwiedzający opuści nasz serwis. Dlatego tak ważne jest zadbanie o wydajność. WordPress, mimo że brakuje mu wbudowanych mechanizmów cachowania, radzi sobie z tym całkiem nieźle, jeżeli mówimy o małej stronie, nie zawierającej zbyt wiele treści. Problem pojawia się jednak, kiedy strona posiada dużo treści lub odwiedza ją wiele osób w tym samym czasie. Głównie z powodu struktury bazy danych tego CMS-a bardziej złożone kwerendy potrafią niekiedy trwać kilka sekund. Może to się wydawać niewiele, jednak w przypadku stron internetowych jest to bardzo zły wynik.
W tej konkurencji Drupal wypada dużo lepiej. Od początku tworzony był z myślą o dużej wydajności oraz pracy przy znacznym obciążeniu. Zwiększony ruch nie spowoduje spowolnienia działania strony na Drupalu. Dodatkowo wbudowane mechanizmy cachowania oraz agregacji plików, pozwalają przyspieszyć czas ładowania strony oraz zaoszczędzić transfer danych.
Dostępność wtyczek lub modułów
Ten akapit można by streścić w jednym zdaniu: dla Drupala istnieje blisko 50 tysięcy modułów, dla WordPressa 10 tysięcy więcej wtyczek. Jednak oprócz przedstawienia suchych liczb, warto omówić jeszcze dwie kwestie - łatwość instalacji oraz sposób działania.
Instalacja
Oba CMS-y posiadają własne repozytorium, z którego można pobrać wtyczki i rozszerzenia. W przypadku WordPressa wystarczą trzy kliknięcia, aby je zainstalować i nie wymaga to absolutnie żadnej wiedzy programistycznej. WordPress sam pobierze wymagane pliki i umieści je w odpowiednim katalogu na serwerze. W Dupalu proces ten jest tylko trochę trudniejszy. Wcześniej pobrany plik ZIP z modułem należy samemu wgrać za pomocą panelu administracyjnego.
Działanie
Wiele wtyczek do WordPressa dostarcza rozwiązania, które są gotowe do użycia zaraz po instalacji. Za pomocą kilku kliknięć możemy stworzyć formularz kontaktowy czy kompletny system mailingowy z newsletterem. Moduły dostępne dla Drupala zazwyczaj działają inaczej. Przeważnie nie dostarczają gotowych rozwiązań, które można wdrożyć samemu w przeciągu kilku minut. Zamiast tego dostarczają narzędzia, dzięki którym to programista dokonuje końcowego wdrożenia. Takie rozwiązanie daje większą swobodę w wykorzystaniu modułów, ale zwiększa koszty wdrożenia.
Przyjazność w użytkowaniu
Jak już wcześniej wspomniałem, w WordPressie wiele rzeczy można skonfigurować za pomocą kilku kliknięć, co jest jego ogromną zaletą. Sam panel administracyjny jest intuicyjny i przyjazny, nie tylko w porównaniu z Drupalem, lecz także z innymi CMS-ami jak Joomla czy PrestaShop. Dodatkowo dzięki swojej ogromnej popularności, w razie problemów w internecie możemy znaleźć całą masę poradników. Co prawda wraz z WordPressem 5.0 domyślny edytor treści został zastąpiony Guttenbergiem, który moim zdaniem robi więcej złego niż dobrego, ale nadal inne CMS-y są daleko w tyle w tej kwestii.
Panel administracyjny w WordPressie. Źródło: Kinsta
Interfejs Drupala już na pierwszy rzut oka wygląda mniej przyjaźnie, trochę jak z poprzedniej epoki. Całe szczęście twórcy mają tego świadomość i intensywnie pracują nad skórkami Claro oraz Gin, dzięki którym panel administracyjny wygląda znacznie lepiej, oferując nawet ciemny motyw, który ostatnio stał się bardzo popularny. Nadal jednak należy pamiętać, że Drupal to bardzo rozbudowany CMS. Nauka jego obsługi zajmie znacznie więcej czasu, a mnogość opcji i ustawień może z początku przytłoczyć.
Panel administracyjny w Drupalu. Źródło: InMotion Hosting
Panel konfiguracyjny w Drupalu ze skórką Claro. Zródło: Drupal.org
Drupal vs WordPress - który system jest lepszy?
Na to pytanie nie ma jednoznacznej odpowiedzi. Wszystko zależy od tego, do czego będzie służyć dana strona czy też serwis internetowy. To tak jak z doborem odpowiednich butów - jedne lepiej się sprawdzą do biegania, a inne do chodzenia w deszczu.
WordPress jest bardzo dobrym CMS-em i znakomicie sprawdza się w przypadku małych stron lub sklepów internetowych, pracujących pod niedużym obciążeniem. Niestety w ostatnim czasie zaczął być używany bezrefleksyjnie do każdego typu stron internetowych. Wiele osób uważa go za rozwiązanie wszelkich problemów i wierzy, że ich strona będzie działać dobrze tylko dlatego, że jest oparta na tym CMS-ie. Jest to błędne założenie, które w przyszłości może takie osoby drogo kosztować.
Z drugiej strony Drupal jest bardzo rozbudowany i oferuje znacznie większe możliwości. Znakomicie sprawdzi się, jeśli zależy nam na bezpieczeństwie i dużej wydajności. Jednocześnie mnogość opcji może okazać się z początku problemem, szczególnie jeśli wcześniej nigdy nie korzystaliśmy z tego CMS-a. W takim przypadku bardzo pomocny będzie, wspomniany już wcześniej, Droopler - darmowa dystrybucja Drupala, oferująca wiele gotowych komponentów, dzięki którym można stworzyć stronę internetową bez kodowania.