WordPress nie jest zły – tylko źle zbudowany
Wolny, dziurawy, ciągle się psuje? Zwykle winny nie jest WordPress, tylko page buildery, nadmiar wtyczek i motywy „multipurpose”. Co zmienia własny motyw.
W skrócie: sam WordPress nie jest ani wolny, ani dziurawy. Typowe problemy biorą się prawie zawsze ze sposobu, w jaki strona została zbudowana: page buildery (Elementor, Divi, WPBakery), 30 i więcej wtyczek oraz kupione motywy „multipurpose” z funkcjami, których nikt nie używa. Własny, lekki motyw bez page buildera – z treściami w edytorze blokowym – jest szybki, stabilny i nadal łatwy w obsłudze.
„WordPress jest wolny.” „WordPressa ciągle ktoś hakuje.” „Po każdej aktualizacji coś się sypie.” Słyszę to często. Kiedy jednak zaglądam do takich stron, rzadko znajduję problem w samym WordPressie. Prawie zawsze widzę te same trzy rzeczy: page builder, długą listę wtyczek i motyw z marketplace’u, który ma umieć wszystko.
Skąd zła opinia o WordPressie
1. Page buildery generują mnóstwo balastu
Page builder jest wygodny: przeciągają Państwo elementy na stronę i od razu widzą efekt. Cenę płaci się w kodzie. Każda sekcja jest opakowana w kilka zagnieżdżonych kontenerów, do tego dochodzą własne pliki CSS i JavaScript buildera – często ładowane także tam, gdzie nie są potrzebne. Zwykły nagłówek z akapitem potrafi siedzieć w pięciu czy sześciu poziomach div.
Przeglądarka musi to wszystko pobrać, przetworzyć i wyświetlić. Na szybkim komputerze prawie tego nie widać. Na telefonie przy słabszym zasięgu – już tak. A właśnie tam Google mierzy czas ładowania.
2. Chaos we wtyczkach
Na każdy drobiazg osobna wtyczka: slider, baner cookies, formularz, galeria, popup, dodatki do buildera, jeszcze jedna do czcionek. Szybko robi się z tego 30–40 wtyczek. Każda to obcy kod, który działa przy każdym wejściu na stronę, ładuje własne pliki i wymaga aktualizacji.
Większość luk bezpieczeństwa w instalacjach WordPressa nie siedzi w rdzeniu, tylko we wtyczkach i motywach. Im więcej ich jest, tym większa powierzchnia ataku – zwłaszcza gdy autor danej wtyczki już jej nie rozwija.
3. Motywy i wtyczki „nulled”
Płatne motywy i wtyczki krążą po podejrzanych stronach za darmo, jako tak zwane wersje „nulled”. Usunięto w nich zabezpieczenie licencji – i często dodano złośliwy kod. Takie kopie nie dostają też normalnych aktualizacji. Kiedy czyszczę zhakowaną stronę, taki motyw nierzadko okazuje się furtką.
4. Aktualizacje, które rozwalają układ
Na stronie z page builderem wygląd zależy naraz od trzech rzeczy: od buildera, jego dodatków i motywu. Gdy aktualizacja zmieni strukturę elementów, rozjeżdżają się odstępy, kolumny przeskakują pod siebie albo znikają całe sekcje. Wielu właścicieli odkłada więc aktualizacje ze strachu – i dopiero to naprawdę czyni stronę niebezpieczną.
Co robi inaczej własny motyw
Własny motyw powstaje pod jeden konkretny projekt graficzny. Zawiera tylko kod, którego ta strona potrzebuje – bez modułu slidera, którego nikt nie użyje, bez 600 ikon i dwunastu wariantów nagłówka.
Hierarchia szablonów zamiast klocków
WordPress ma jasny system, który plik wyświetla którą stronę: header.php i footer.php dla nagłówka i stopki, page.php dla stron, single.php dla wpisów, a w razie potrzeby własne szablony, np. page-kontakt.php. Prosty szablon strony wygląda tak:
<?php get_header(); ?>
<main>
<?php while ( have_posts() ) : the_post(); ?>
<h1><?php the_title(); ?></h1>
<?php the_content(); ?>
<?php endwhile; ?>
</main>
<?php get_footer(); ?>
Nagłówek, nawigacja i stopka są na stałe w motywie. Osoba edytująca treści nie przesunie ich przypadkiem.
Rejestrowanie menu i obszarów widżetów
Żeby mogli Państwo mimo to sami zmieniać menu i treści w stopce, motyw definiuje dla nich stałe miejsca:
// functions.php
add_action( 'after_setup_theme', function () {
register_nav_menus( array(
'glowne' => 'Menu główne',
'stopka' => 'Menu w stopce',
) );
} );
add_action( 'widgets_init', function () {
register_sidebar( array(
'name' => 'Stopka – kolumna 1',
'id' => 'stopka-1',
'before_widget' => '<div>',
'after_widget' => '</div>',
) );
} );
W motywie menu wyświetla się potem we właściwym miejscu:
// header.php (fragment)
<?php
wp_nav_menu( array(
'theme_location' => 'glowne',
'container' => 'nav',
) );
?>
Pozycje menu edytują Państwo w panelu w „Wygląd → Menu” (w niemieckim panelu „Design → Menüs”). O wyglądzie decyduje motyw.
theme.json: kolory i czcionki w jednym miejscu
W pliku theme.json motyw określa, jakie kolory i rozmiary czcionek są dostępne w edytorze blokowym. Minimalny przykład:
{
"$schema": "https://schemas.wp.org/trunk/theme.json",
"version": 3,
"settings": {
"color": {
"custom": false,
"customGradient": false,
"defaultPalette": false,
"palette": [
{ "slug": "primary", "color": "#1d3557", "name": "Główny" },
{ "slug": "accent", "color": "#e76f51", "name": "Akcent" }
]
},
"typography": {
"customFontSize": false
}
}
}
Dzięki temu w edytorze widać tylko kolory z identyfikacji wizualnej firmy. Nie da się ustawić dowolnego koloru ani rozmiaru czcionki – strona wygląda spójnie.
Własne bloki i wzorce bloków
Powtarzające się elementy – boks z usługą, sekcja kontaktowa, cytat ze zdjęciem – zapisuje się jako wzorzec bloków (pattern) albo własny blok:
// functions.php
add_action( 'init', function () {
register_block_pattern( 'mojmotyw/usluga', array(
'title' => 'Usługa z przyciskiem',
'content' => '<!-- wp:group -->
<div class="wp-block-group">
<!-- wp:heading {"level":3} --><h3>Nazwa usługi</h3><!-- /wp:heading -->
<!-- wp:paragraph --><p>Krótki opis.</p><!-- /wp:paragraph -->
</div>
<!-- /wp:group -->',
) );
} );
W edytorze wstawia się taki wzorzec jednym kliknięciem i zmienia tylko tekst i zdjęcie. Wygląd zapewnia motyw. Do danych o stałej strukturze – godzin otwarcia, zespołu, realizacji – dobrze sprawdzają się dodatkowo własne pola, np. z Advanced Custom Fields.
Korzyści w praktyce
- Czas ładowania i Core Web Vitals: mniej CSS, mniej JavaScriptu, płytszy HTML. To bezpośrednio wpływa na LCP, INP i CLS – wskaźniki, którymi Google ocenia wygodę użytkownika.
- Bezpieczeństwo: mniej wtyczek to mniej obcego kodu i mniej potencjalnych luk. Kod własnego motywu jest krótki i da się go sprawdzić.
- Spokojne aktualizacje: aktualizacje WordPressa praktycznie nie ruszają układu, bo nie zależy on od buildera. Aktualizacja staje się rutyną, a nie ryzykiem.
- SEO: czysty HTML z sensowną strukturą nagłówków, szybkie ładowanie, brak zbędnego kodu – dobra techniczna podstawa.
- Łatwość utrzymania: inny programista szybko odnajdzie się w lekkim motywie. Przy stronie na builderze musi najpierw rozgryźć, która wtyczka co generuje.
- Brak uzależnienia od licencji: gdy wygaśnie licencja płatnego buildera, nie ma aktualizacji. Kto chce zmienić rozwiązanie, często buduje stronę od nowa, bo treści są zapisane w shortcode’ach albo własnych strukturach buildera. Treści z edytora blokowego to po prostu zwykły WordPress.
Uczciwie: kiedy page builder ma sens
Nie uważam page builderów za zło z zasady. Są sytuacje, w których to rozsądniejszy wybór:
- Budżet jest bardzo mały, a strona ma po prostu szybko ruszyć.
- Chodzi o jedną stronę docelową (landing page) pod akcję, która za kilka tygodni zniknie.
- Chcą Państwo naprawdę sami projektować układy – nie tylko zmieniać teksty – i akceptują za to wolniejsze ładowanie.
Trzeba też powiedzieć wprost: własny motyw na starcie kosztuje więcej niż kupiony motyw z builderem. Trzeba go zaplanować, napisać i przetestować. Zysk widać później – przy opiece, aktualizacjach, szybkości i wtedy, gdy strona ma działać przez lata.
Lista kontrolna: czy Państwa WordPress jest zbudowany „po amatorsku”?
Kilka rzeczy mogą Państwo sprawdzić sami, bez znajomości programowania:
- Kod źródłowy: prawy przycisk myszy na stronie, „Pokaż źródło strony”, potem Ctrl+F. Słowa takie jak
elementor,et_pb(Divi) czyvc_row(WPBakery) zdradzają page builder. - Liczba wtyczek: w panelu w zakładce „Wtyczki” („Plugins”). Ponad 20 aktywnych to sygnał ostrzegawczy, ponad 30 to prawie zawsze za dużo. Proszę zwrócić uwagę także na wyłączone wtyczki, które tylko leżą.
- PageSpeed: proszę wpisać adres strony w PageSpeed Insights i spojrzeć na wynik dla urządzeń mobilnych. Czerwony wynik i uwagi o „nieużywanym JavaScripcie” lub „nieużywanym CSS” są typowe dla stron na builderach.
- Motyw: w „Wygląd → Motywy” widać jego nazwę. Jeśli pochodzi z marketplace’u i reklamuje się „nieograniczonymi układami” albo dziesiątkami dem, strona wozi ze sobą dużo nieużywanego kodu.
- Aktualizacje: czekają od miesięcy, bo nikt nie ma odwagi ich zainstalować? Wtedy strona już teraz jest ryzykiem.
- Pochodzenie licencji: czy wiedzą Państwo, gdzie kupiono motyw i płatne wtyczki? Jeśli nie, może to być wersja „nulled”.
Jeśli zgadzają się trzy punkty lub więcej, warto przyjrzeć się stronie dokładniej.
Co można zrobić teraz
Nie każdą stronę trzeba od razu budować od nowa. Często na początek wystarczy usunąć zbędne wtyczki, porządnie ustawić cache i obrazy oraz wrócić do regularnych aktualizacji. Czy własny motyw się opłaca, zależy od tego, jak długo strona ma działać i jak ważne są dla Państwa szybkość i widoczność w Google.
Jeśli chcą Państwo wiedzieć, w jakim stanie jest strona: w ramach audytu SEO WordPressa za 150 € sprawdzam technikę, czas ładowania i strukturę i mówię, co warto poprawić. Jeśli głównym problemem jest powolność, przebieg prac opisuję na stronie przyspieszenie strony (od 490 €). Regularne aktualizacje, kopie zapasowe i kontrolę przejmuję w ramach opieki nad WordPressem za 129 € miesięcznie. Jak powstaje u mnie własny motyw bez page buildera, opisuję na stronie własny motyw WordPress – przygotuję ofertę pod Państwa projekt i zakres.