SEO techniczne i optymalizacja szybkości w Krasnobrodzie to nie jeden wskaźnik w PageSpeed, ale pięć osobnych obszarów: crawl, indeksacja, renderowanie, Core Web Vitals i wąskie gardła po stronie serwera. Sklep z Krasnobrodu nie konkuruje wyłącznie z okolicznymi firmami — w wynikach wyszukiwania stoi obok sklepów z Lublina, Zamościa i całej Polski, więc liczy się to samo: czy Google zaindeksuje właściwe adresy i czy strona odpowiada w akceptowalnym czasie. Ten tekst zbiera część organizacyjną: kolejność działań, sposoby pomiaru i najczęstsze pułapki. Bez obietnic typu „dwa razy szybciej w tydzień” — najpierw pomiar, potem decyzja.

Co dokładnie oznacza SEO techniczne i optymalizacja szybkości w sklepie?

SEO techniczne to zestaw decyzji, które przesądzają, czy Google w ogóle zobaczy Twoje produkty. W praktyce pięć elementów: crawl – czy bot wchodzi na stronę i czy nie blokuje go robots.txt lub reguła w .htaccess; indeksacja – czy adres trafia do indeksu; renderowanie – czy Google widzi treść doklejaną przez JavaScript; kanibalizacja – czy dwie podstrony nie walczą o tę samą frazę; oraz canonical i sitemap – czy wskazujesz wersję kanoniczną i czy sitemap.xml jest aktualna. Szybkość to osobny obszar, choć częściowo na te elementy wpływa.

Core Web Vitals to trzy metryki liczone z realnych danych użytkowników, nie z jednego testu: LCP poniżej 2,5 s, INP poniżej 200 ms, CLS poniżej 0,1. Google ocenia je w 75. percentylu – trzy czwarte wizyt musi mieścić się w progu. Metodykę opisuje dokumentacja Web Vitals na web.dev.

Rozdziel dwie szybkości, bo mieszanie ich kończy się przepalonym budżetem. TTFB to czas, po jakim serwer zwraca pierwszy bajt HTML – zależy od hostingu, PHP, cache i bazy. Renderowanie to czas, po którym przeglądarka zbuduje DOM i pobierze CSS, JavaScript oraz obrazy. Sklep może mieć TTFB 180 ms i LCP 4,6 s, jeśli zdjęcie hero waży 900 kB i nie ma podanych wymiarów. Optymalizacja serwera nic wtedy nie da.

Sklep z Krasnobrodu na frazę „buty trekkingowe męskie” stoi w wynikach obok sklepów z Lublina, Zamościa i Warszawy. Lokalność działa głównie w Mapach Google i zapytaniach typu „sklep w Krasnobrodzie”. Reszta to zwykła rywalizacja o wydajność i czysty indeks. Kolejność działań dla mniejszych miejscowości opisaliśmy przy okazji audytu dla SEO technicznego i optymalizacji szybkości w Zwierzyńcu.

Kolejność ma znaczenie. Jeśli 30% kart produktów nie jest zaindeksowanych, podniesienie LCP z 3,0 do 2,4 s zmieni niewiele – klient nie wejdzie na stronę, której nie ma w wynikach. Najpierw indeksacja, potem szybkość. Wyjątek stanowią kampanie płatne: tam tempo ładowania wpływa na koszt kliknięcia od pierwszego dnia, niezależnie od stanu indeksu.

MetrykaPrógCo mierzyTypowa przyczyna przekroczenia
LCPponiżej 2,5 sCzas do wyświetlenia największego elementu w oknieCiężki obraz hero bez kompresji, wolny TTFB, brak cache
INPponiżej 200 msOpóźnienie reakcji na klik lub dotykZbyt dużo JavaScriptu, długie zadania na głównym wątku
CLSponiżej 0,1Przesuwanie się układu w trakcie ładowaniaObrazy bez wymiarów, banery i fonty wstawiane po renderze
TTFBponiżej 0,8 sCzas odpowiedzi serwera na pierwszy bajt HTMLBrak OPcache i Redis, wolne zapytania MySQL, shared hosting

Od czego zacząć w Krasnobrodzie: 7-punktowy audyt przed wdrożeniem

Audyt robisz przed wdrożeniem, nie po. Poniższą listę przechodzi się w 2–3 dni i nie wymaga zmian w kodzie.

  1. Google Search Console. Raport „Szybkość” (Core Web Vitals dla mobile i desktop) oraz sekcja „Indeksowanie stron”: błędy 404, statusy „Wykryta, obecnie nieindeksowana” i „Zaindeksowana, mimo że nie wybrano kanonicznej”. Sprawdź sitemap.xml – 12 000 adresów przy sklepie z 800 produktami oznacza duplikaty z filtrów.
  2. PageSpeed Insights i Lighthouse. PSI uruchom osobno dla mobile i desktop na trzech typach adresów: strona główna, kategoria, karta produktu. Lighthouse odpal lokalnie w Chrome bez rozszerzeń i w trybie incognito – traktuj jako uzupełnienie danych polowych.
  3. WebPageTest i GTmetrix. Wodospad ładowania, TTFB, kolejność requestów. Ustaw lokalizację Frankfurt, profil 4G, trzy przebiegi. Porównaj „First View” z „Repeat View” – drugi pokazuje, ile realnie daje cache przeglądarki.
  4. Logi serwera i zużycie CPU/RAM. To źródło prawdy. access log z $request_time pokaże czas generowania PHP, a nie tylko odczucie z przeglądarki. Szukaj odpowiedzi 5xx, kodów 499 i requestów powyżej 3 s. W panelu hostingu zobacz wykres CPU w godzinach szczytu.
  5. Hosting. Shared, VPS czy serwer dedykowany? Sprawdź limity PHP, MySQL i liczbę równoczesnych procesów. Plan shared z limitem 20 procesów PHP padnie, gdy 40 osób trzyma coś w koszyku.
  6. Pomiar przed zmianami. Zapisz baseline: LCP, INP, CLS, TTFB i czas pełnego załadowania – z datą, godziną, wersją szablonu i listą wtyczek. Bez tego nie udowodnisz efektu.
  7. Priorytetyzacja. Najpierw to, co blokuje indeksację i kampanie płatne: 404 w kategoriach, canonical, wydajność stron kierujących z Google Ads. Dopiero potem drobne optymalizacje, jak kompresja zdjęć na blogu.

Jeśli nie chcesz przechodzić tego samodzielnie, stały zakres czynności zebraliśmy w opisie utrzymania i opieki technicznej sklepów w Krasnobrodzie. Progi przydatne przy punkcie piątym są w tabeli obok, a interpretację pomiarów opisuje dokumentacja Core Web Vitals w Google Search Central.

ParametrWartość, którą warto miećGdzie sprawdzisz
memory_limit PHP256 MB lub więcejphpinfo() albo panel hostingu
max_execution_time60 s (importy, eksporty, generowanie sitemapy)panel hostingu, plik .user.ini
max_connections MySQLminimum 2× liczba równoczesnych użytkownikówSHOW VARIABLES LIKE 'max_connections'
Równoczesne procesy PHPzapas 2× wobec szczytu ruchupanel hostingu, wykresy zużycia
TTFB z logówponiżej 0,8 s w 75. percentyluaccess log z $request_time

Core Web Vitals w PrestaShop i WooCommerce – co realnie poprawia LCP, INP i CLS

Każda z trzech metryk poprawia się na innej warstwie, dlatego wrzucanie ich do jednego worka „przyspieszymy stronę” kończy się pracą bez efektu.

LCP. Kompresja do WebP lub AVIF – przy zdjęciach produktowych 1200 px szerokości i 100–150 kB to zdrowy cel. Konwersja istniejącej biblioteki to osobny krok, sam plugin nie odchudzi starych plików. Lazy loading dodawaj tylko poza pierwszym ekranem (loading="lazy"), nigdy na obraz hero. Dla hero ustaw fetchpriority="high" i preload. W PrestaShop slidery potrafią ładować pięć zdjęć hero naraz – zostaw jedno.

INP. Ogranicz JavaScript firm trzecich: każdy czat, heatmapa i pixel to zwykle 100–300 kB i zadania na głównym wątku. Rozbij długie zadania (setTimeout, requestIdleCallback), a niekrytyczne skrypty ładuj z defer lub po zdarzeniu load. W DevTools → Performance sprawdź listę „Long tasks”, w Lighthouse raport „Reduce JavaScript execution time”.

CLS. Zarezerwuj miejsce na obrazy (width/height lub aspect-ratio), banery i pasek cookie. Font: font-display: swap plus preload plików użytych w nagłówku. Reklam i bannerów nie wstawiaj nad treścią bez zdefiniowanej wysokości kontenera.

PrestaShop. Ciężkie moduły zostawiające hooki na każdej podstronie, szablony z czasów 1.6/1.7, brak OPcache (opcache.enable=1, opcache.memory_consumption=128–256 MB) i brak Redis dla cache. Filtry i paginacja generują tysiące adresów z parametrami – dla kombinacji filtrów ustaw canonical na kategorię bazową i noindex. Punkt odniesienia dla zmian w kodzie znajdziesz w dokumentacji PrestaShop dla deweloperów.

WooCommerce. Bloat wtyczek, zapytania meta_query po wp_postmeta bez indeksów, żądanie wc-ajax=get_refreshed_fragments odpalane na każdej stronie oraz niepotrzebne jQuery na podstronach poza sklepem. Typowe problemy i kolejność wdrożenia opisujemy w materiale o wdrożeniach i optymalizacji WooCommerce w Krasnobrodzie. Efekt mierz przed i po w PageSpeed Insights, Lighthouse i WebPageTest – trzy przebiegi, ta sama lokalizacja i profil, do porównania bierz medianę.

MetrykaPrestaShopWooCommerceCo robisz w pierwszej kolejności
LCPSlider z kilkoma zdjęciami hero, stare szablonyCiężkie zdjęcia produktowe, brak konwersji do WebPKompresja biblioteki, preload i fetchpriority na hero
INPModuły dokładające skrypty do każdego hookaWtyczki z zewnętrznymi skryptami, jQueryAudyt skryptów third-party, defer, rozbicie długich zadań
CLSBanery i moduły promocyjne wstawiane po renderzeCookie bar i komunikaty AJAX bez rezerwy miejscaWymiary obrazów, aspect-ratio, font-display: swap

Najczęstsze pułapki szybkościowe w małych sklepach (i jak je wykryć)

Najczęstszy powód wolnego TTFB w małych sklepach to shared hosting bez OPcache i bez Redis. PHP parsuje ten sam kod od zera przy każdym żądaniu, a sesje i cache obiektowy trafiają na dysk. Efekt: TTFB 800–2500 ms, gdy w sklepie jest jednocześnie kilka osób. Zanim ktokolwiek dotknie szablonu, wejdź w phpinfo() i sprawdź dwie sekcje: OPcache (czy włączony, czy memory_consumption ma co najmniej 128 MB, czy opcache.validate_timestamps nie wymusza sprawdzania plików przy każdym żądaniu) oraz obecność rozszerzenia redis.

Druga pułapka to wtyczki i moduły robiące to samo. W WooCommerce typowy zestaw to trzy wtyczki cache, dwie minifikujące CSS i dwie od lazy loadingu. W PrestaShop kilka modułów SEO nadpisujących te same meta tagi. Dublowanie funkcji to podwójne zapytania do bazy i konflikty w kolejności wykonywania.

Wykrywanie: Lighthouse daje punkt startowy, ale nie pokazuje rozkładu w czasie. Network w DevTools pokazuje, co realnie się ładuje i w jakiej kolejności. W WordPress dochodzi Query Monitor – widać zapytania, hooki i wtyczkę, która je generuje. W MySQL włącz slow query log z long_query_time = 0,5 s i sprawdź, które zapytania wracają najczęściej.

I pułapka kosztująca najwięcej czasu: cache. Włączenie agresywnego cache ścina czas odpowiedzi o połowę, ale ukrywa problem. Baza, brakujące indeksy i wolny serwer zostają. Test po wdrożeniu cache jest prosty: wyczyść go i zmierz żądanie do niezakeszowanego koszyka lub strony produktu – tam cache zwykle nie działa. To część prac, którą obejmuje miesięczna opieka techniczna nad sklepem.

PułapkaTypowy objawCzym wykryć
Shared hosting bez OPcache/RedisTTFB 800–2500 msphpinfo(), logi serwera
Dublujące się wtyczki i modułyPodwójne zapytania, konflikty JSQuery Monitor, liczba zapytań
PNG 2–5 MB zamiast WebPLCP ponad 4 s na 4GNetwork w DevTools, sortowanie po Size
Brak CDNWysoki TTFB u klientów spoza regionuTest z kilku lokalizacji
Skrypty zewnętrzneINP powyżej 200 msLighthouse, zakładka Performance

SEO techniczne: indeksacja, struktura i dane strukturalne dla sklepu

Zacznij od robots.txt i sitemap.xml. W robots.txt sprawdź, czy nie ma przypadkowego Disallow: / lub blokady na /wp-content/, /modules/ czy /js/ – klasyczny efekt „tymczasowej blokady na czas prac”. Sitemapę zgłoś w Google Search Console i patrz nie na liczbę zgłoszonych adresów, ale na raporty „Zaindeksowane” i „Wykluczone”.

Canonicale, paginacja i facety to miejsce, w którym sklepy generują tysiące duplikatów. Kombinacja filtrów (?kolor=czerwony&rozmiar=l&sort=cena) tworzy adresy, które Google może potraktować jako osobne strony. Praktyka: dla pustych i wielokrotnych kombinacji filtrów ustaw noindex, dla głównej strony kategorii zostaw canonical. Google nie używa już rel=next/prev do łączenia paginacji, więc liczy się to, czy kolejne strony mają sensowną treść i nie konkurują z kategorią główną.

Struktura URL: krótka, bez /index.php i bez parametrów sesyjnych. Breadcrumbs na kategorii i produkcie zgodne ze strukturą linków, nie tylko wizualne.

Dane strukturalne: Product, Offer, BreadcrumbList, Organization. Bez nich tracisz szansę na rozszerzone wyniki, a przy błędach w Offer (brak priceCurrency, cena z VAT niezgodna z feedem) fragment bywa oznaczany jako nieprawidłowy. Pełna lista obsługiwanych typów jest w dokumentacji Google dotyczącej danych strukturalnych.

Błędy 404, przekierowania 301 i łańcuchy: przekierowanie A→B→C spowalnia i rozmywa sygnały. Po zmianie platformy przejrzyj stare adresy produktów i kategorii osobno. Warianty produktów i stany magazynowe też wymagają decyzji – każdy wariant jako osobny URL to skok liczby adresów, a „niedostępny” musi zgadzać się z tym, co pokazujesz w Schema.

Kontekst lokalny działa jako uzupełnienie widoczności: sklep z Krasnobrodu bywa porównywany z ofertą z okolic, więc osobne strony wdrożeniowe dla SEO technicznego i optymalizacji szybkości w Zwierzyńcu oraz SEO technicznego i optymalizacji szybkości w Szczebrzeszynie porządkują ruch z sąsiednich miejscowości i linkują do właściwych kategorii.

Koszt i czas: ile trwa optymalizacja szybkości i SEO technicznego w MŚP?

Audyt techniczny to zwykle 20–40 godzin. Wchodzi w to analiza logów, crawl, sprawdzenie Core Web Vitals na realnych urządzeniach, audyt indeksacji i lista zadań z priorytetami. Przy 200 produktach i jednej integracji płatności bliżej 20 godzin, przy 5000 SKU, kilku językach i połączeniu z ERP – bliżej 40.

Wdrożenie optymalizacji: 40–100 godzin dla typowego sklepu PrestaShop lub WooCommerce. Różnicę robi zakres – czy zmieniamy tylko konfigurację (OPcache, Redis, CDN, kompresja obrazów, kolejność skryptów), czy także szablon, zapytania i zbędne moduły. Samo przeniesienie sklepu z shared hostingu na serwer z OPcache i Redis to często kilka godzin pracy, a bywa największą pojedynczą zmianą w TTFB. Zakres takich prac i kolejność wdrożenia opisujemy przy okazji wdrożeń i optymalizacji WooCommerce w Krasnobrodzie.

Miesięczna opieka techniczna: 5–15 godzin. Monitoring dostępności i czasu odpowiedzi, backupy z testem odtworzenia, aktualizacje rdzenia i wtyczek, szybkie poprawki po zmianach w sklepie.

Czynniki podnoszące koszt: własny szablon z modyfikacjami, liczba wtyczek, model B2B (ceny zależne od logowania blokują pełny cache stron), integracje ERP i wielojęzyczność. Własny moduł zamiast płatnej wtyczki ma sens wtedy, gdy wtyczka ma roczną subskrypcję, a wykorzystujesz z niej 20% funkcji – wtedy prosty moduł bywa tańszy w utrzymaniu i lżejszy. Nie ma sensu, gdy potrzebujesz wsparcia zewnętrznego i częstych aktualizacji.

Wycena z liczby godzin jest uczciwsza niż stały cennik bez rozpoznania: dwie strony o podobnej liczbie produktów mogą różnić się dwukrotnie czasem wdrożenia przez jeden stary moduł albo niestandardowy szablon.

EtapTypowy zakresCo wpływa na wycenę
Audyt techniczny20–40 hLiczba produktów, integracje, liczba wtyczek
Wdrożenie optymalizacji40–100 hWłasny szablon, B2B, ERP, wielojęzyczność
Opieka miesięczna5–15 hMonitoring, backupy, aktualizacje, poprawki

Hosting, CDN i serwer w Polsce – na co zwrócić uwagę przy sklepie z Krasnobrodu

Zanim ruszysz motyw i moduły, ustal, na czym sklep faktycznie stoi. PrestaShop: Zaawansowane → Informacje (wersja PHP i MySQL). WordPress: Narzędzia → Zdrowie witryny albo plik phpinfo. Zapisz to z datą – za trzy miesiące nikt nie odtworzy punktu wyjścia z pamięci.

Shared hosting kontra VPS. Shared wystarcza do momentu, w którym zaczyna brakować zasobów. Sygnały, że czas na zmianę: błędy 502 i 504 przy zapisie produktu, przekroczony limit procesów PHP, throttling CPU widoczny w DirectAdmin lub cPanel, TTFB powyżej 800 ms przy pustym koszyku. Wtedy VPS z 4 vCPU, 8 GB RAM i dyskiem NVMe to rozsądny start dla sklepu z 1000–5000 SKU.

W umowie z administratorem zapisz konkret: dostępność 99,9% (około 43 minut przestoju miesięcznie), czas reakcji do 1 h w godzinach 8–18, RTO 4 h, RPO 24 h. Bez tych liczb „reagujemy szybko” nic nie znaczy, gdy koszyk pada w środku sezonu. Sposób budowy cache i modułów opisuje dokumentacja dla deweloperów PrestaShop.

ElementShared hostingVPS
Limit procesów PHPkilka–kilkanaście, wspólne z innymi kontamikonfigurowany, np. 20–40
CPUthrottling przy skoku ruchuprzydzielone vCPU, przewidywalny
Pamięć na OPcache i Redisbrak lub 64–128 MB8 GB RAM, OPcache 256 MB i Redis
Koszt miesięczny20–100 zł150–500 zł
Kiedy wybieraćkatalog do ~1000 SKU, stały ruchintegracje, duży katalog, sezonowe skoki

Checklista wdrożeniowa krok po kroku (do wydruku)

Checklista działa tylko wtedy, gdy zapiszesz stan przed zmianami. Bez baseline nie udowodnisz, że cokolwiek się poprawiło – ani sobie, ani klientowi.

  1. Pomiar baseline. PageSpeed Insights dla mobile i desktop (LCP, INP, CLS), TTFB, liczba zaindeksowanych adresów w GSC, błędy w logach z ostatnich 7 dni, lista modułów i wtyczek z wersjami, wersja PHP i bazy. Wszystko do jednego arkusza z datą.
  2. Kolejność działań. Serwer → cache → baza → frontend → obrazy → JS → SEO techniczne. Odwrotna kolejność to strata czasu: kompresja obrazków na serwerze z TTFB 1,2 s nic nie da, bo wąskie gardło zostaje tam, gdzie było.
  3. Walidacja po każdym etapie. Powtórz PageSpeed, sprawdź GSC, przejrzyj logi, wykonaj testowe zamówienie do końca, z płatnością. Jeden etap – jedna walidacja, nie siedem zmian na raz.
  4. Test na kopii. Staging na subdomenie z Basic Auth i noindex, osobna baza i osobny plik konfiguracyjny. Produkcja dopiero, gdy staging przejdzie cały koszyk.
  5. 28 dni monitoringu. Raport Core Web Vitals w GSC aktualizuje się z opóźnieniem, a dane z pola (CrUX) to średnia z 28 dni. Wcześniej zobaczysz szum, nie efekt. Podstawy pomiaru opisuje web.dev – Web Vitals.

Ten sam schemat stosujemy dla sąsiednich miejscowości: SEO techniczne i optymalizacja szybkości w Zwierzyńcu oraz SEO techniczne i optymalizacja szybkości w Szczebrzeszynie – różni się ruch i konkurencja, nie kolejność działań.

EtapCo robimyJak walidujemy
SerwerPHP 8.2+, OPcache, HTTP/2, RedisTTFB, logi serwera, phpinfo
Cachecache pełnostronicowy z wykluczeniem koszykatest koszyka i logowania klienta
Bazaslow query log, indeksy, czyszczenie tabelczas zapytań, log MySQL
ObrazyWebP lub AVIF, srcset, lazy loadingwaga strony, PageSpeed
JSdefer, usunięcie zbędnych bibliotekINP, konsola przeglądarki
SEO technicznerobots.txt, sitemap, canonicalGSC, raport indeksacji

Kiedy robić to samemu, a kiedy oddać do DropDigital?

Podział wynika z liczby ruchomych części, nie z rozmiaru firmy.

Zrobisz to sam, jeśli masz katalog do około 200–300 produktów, jeden motyw, kilka wtyczek i brak integracji z systemem magazynowym. Realny zakres: kompresja obrazów do WebP, lazy loading, włączenie cache (LiteSpeed Cache lub WP Rocket w WooCommerce, wbudowany cache i CCC w PrestaShop), poprawa robots.txt i mapy XML, podłączenie GSC. Marketingowiec domknie to w kilka dni, bez dostępu do SSH.

Potrzebujesz dewelopera, gdy przenosisz sklep z shared hostingu na VPS, piszesz niestandardowy moduł, baza ma zapytania powyżej 1 s i trzeba przejrzeć slow query log oraz indeksy, albo wdrażasz integracje InPost, DPD i DHL z generowaniem etykiet i aktualizacją statusów po webhookach. To nie są zadania „na wtyczkę z marketplace”.

Opieka po wdrożeniu to nie tylko aktualizacje. Konkretnie: aktualizacje PrestaShop/WooCommerce i wtyczek raz w miesiącu, test na staging przed produkcją, monitoring uptime, backupy z testem odtworzenia, SLA na reakcję. Zakres opisaliśmy w utrzymanie i opieka techniczna sklepów Krasnobród – co obejmuje.

Praca bezpośrednio z deweloperem, bez pośredników, skraca drogę przy awarii. Jedna osoba zna serwer, moduły i historię zmian, więc diagnoza nie zaczyna się od zera. Przy koszyku, który nie działa w piątek wieczorem, to różnica kilku godzin.

Do rozmowy przygotuj: dostęp do GSC (właściciel lub pełne uprawnienia, nie tylko podgląd), dane do hostingu i panelu, SSH lub dane bazy, listę wtyczek z wersjami, wersję PHP i MySQL, dwa–trzy pomiary PageSpeed oraz informację, co ostatnio było zmieniane. To skraca wycenę z tygodnia do jednego dnia.

SytuacjaSamodzielnieZ deweloperem
Katalog 200–300 SKU, brak integracjitaknie
Migracja z shared hostingu na VPSnietak
Integracje InPost, DPD, DHLnietak
Zapytania do bazy powyżej 1 snietak
Kompresja obrazów i lazy loadingtaknie
Aktualizacje PrestaShop/WooCommercena staging, bez SLAz monitoringiem i SLA

Najczęstsze błędy i jak je wykryć

Uznanie włączenia cache za zakończoną optymalizację. Cache maskuje wolne zapytania MySQL i przeciążony serwer, ale ich nie naprawia — przy pierwszym wejściu lub po wyczyszczeniu cache strona nadal się dławi.

Jak wykryć: Wyłącz cache na środowisku testowym i zmierz TTFB oraz czas pełnego załadowania. Porównaj z wynikiem na włączonym cache. Jeśli różnica jest kilkukrotna, problem jest w bazie lub hostingu, nie w warstwie cache.

Jak naprawić: Uruchom wolne zapytania MySQL w logach (slow query log) albo Query Monitor w WordPress, dodaj brakujące indeksy, włącz OPcache i Redis, dopiero potem wracaj do cache stron.

Wprowadzanie zmian bez pomiaru stanu wyjściowego. Po dwóch tygodniach nikt nie pamięta, jaki był LCP i TTFB przed optymalizacją, więc nie da się ocenić, czy któraś zmiana pomogła.

Jak wykryć: Brak zapisanych wyników z PageSpeed Insights, Lighthouse i WebPageTest z datą sprzed zmian.

Jak naprawić: Zapisz baseline: LCP, INP, CLS, TTFB i czas pełnego załadowania dla strony głównej, kategorii i karty produktu — osobno mobile i desktop. Trzymaj to w jednym arkuszu.

Nieoptymalizowane zdjęcia produktowe. Pliki PNG po 2–5 MB zamiast WebP w granicach 100–200 KB to najczęstsza pojedyncza przyczyna wolnego LCP w małych sklepach.

Jak wykryć: W Lighthouse sprawdź sekcję z potencjalnymi oszczędnościami rozmiaru obrazów, a w zakładce Network posortuj zasoby po rozmiarze i sprawdź, czy obraz hero waży więcej niż kilkaset kilobajtów.

Jak naprawić: Przekonwertuj zdjęcia do WebP lub AVIF, ustaw sensowne wymiary wyświetlania, dodaj lazy loading wszędzie poza pierwszym ekranem i nadaj priorytet ładowania obrazowi hero.

Hosting shared bez OPcache i Redis, przyjęty jako oczywistość, bo „taki był w pakiecie”. To najczęstsze źródło wolnego TTFB, którego nie da się nadgonić żadną wtyczką.

Jak wykryć: Sprawdź w panelu hostingu, czy OPcache i Redis są dostępne i włączone. Zmierz TTFB dla niecache'owanej strony w WebPageTest — powyżej 600 ms przy pustym cache to sygnał ostrzegawczy.

Jak naprawić: Włącz OPcache i Redis, jeśli hosting pozwala; jeśli nie pozwala, zaplanuj przeniesienie na VPS albo hosting z limitami PHP i MySQL podanymi wprost w umowie.

Dublowanie funkcji przez moduły i wtyczki. Trzy wtyczki do galerii, dwie do koszyka, dodatkowo moduł do tego samego, co robi już motyw.

Jak wykryć: Wypisz listę wtyczek lub modułów i przy każdej odpowiedz jednym zdaniem, za co odpowiada. Jeśli odpowiedzi się pokrywają, masz duplikat. W WordPress pomoże Query Monitor, w PrestaShop profilowanie zapytań z panelu deweloperskiego.

Jak naprawić: Wyłącz jeden z duplikatów na środowisku testowym i sprawdź, czy funkcja nadal działa. Usuwaj dopiero po potwierdzeniu, że nic nie zniknęło z widoku klienta.

Zewnętrzne skrypty ładowane od razu: czat, piksele, mapy, reklamy, wtyczki social media. Każdy z nich wpływa na INP i potrafi całkowicie zablokować interakcję na telefonie.

Jak wykryć: W zakładce Network odfiltruj domeny zewnętrzne i sprawdź, ile zasobów ładuje się przed pierwszym wyrenderowaniem treści. W Lighthouse sprawdź czas blokowania wątku głównego.

Jak naprawić: Opóźnij ładowanie skryptów niekrytycznych (czat, mapa, pixel) do momentu interakcji lub do czasu po załadowaniu strony. Zostaw w krytycznej ścieżce tylko to, bez czego koszyk nie działa.

Zmiana motywu lub szablonu jako pierwszy krok optymalizacji, jeszcze przed diagnozą. To najdroższy sposób rozwiązywania problemu, którego źródłem jest serwer lub baza.

Jak wykryć: Jeśli przy pustym cache TTFB jest wysoki, a serwer pokazuje wysokie zużycie CPU lub RAM, problem nie leży w szablonie.

Jak naprawić: Najpierw audyt serwera, bazy i logów, potem warstwa prezentacji. Zmiana szablonu dopiero wtedy, gdy pomiary wykażą, że renderowanie frontendu jest realnym wąskim gardłem.

Lista kontrolna do odklikania

Podsumowanie

Kolejność jest tu ważniejsza niż liczba narzędzi: najpierw pomiar baseline, potem diagnoza serwera i bazy, na końcu optymalizacja frontendu. W większości małych sklepów wąskim gardłem okazuje się TTFB i zbyt duże zdjęcia produktowe, a nie szablon. Dopóki indeksacja jest zablokowana, poprawa szybkości nie przełoży się na ruch ani sprzedaż. Zacznij od jednego arkusza z liczbami i wracaj do niego po każdej zmianie.

Najczęściej zadawane pytania

Czym różni się SEO techniczne od optymalizacji szybkości sklepu?

Optymalizacja szybkości dotyczy czasu: LCP, INP, CLS, TTFB, wagi zasobów i wydajności serwera. SEO techniczne to szerszy zakres — crawl, indeksacja, renderowanie, canonical, kanibalizacja, sitemap, dane strukturalne i kontrola tego, co Google widzi w wynikach. Szybkość bywa częścią SEO technicznego, ale sam wysoki wynik w PageSpeed nie naprawi strony wykluczonej z indeksu.

Ile czasu zajmuje audyt techniczny małego sklepu?

Sam pomiar baseline i przegląd Search Console to zwykle kilka godzin. Pełny audyt z analizą logów serwera, wolnych zapytań i wtyczek to praca na kilka dni, bo część danych trzeba zebrać z okresu szczytowego ruchu. Wdrożenie poprawek jest osobnym etapem i zależy od tego, co wyjdzie w diagnostyce.

Czy wynik w PageSpeed Insights przekłada się bezpośrednio na sprzedaż?

Nie wprost. Google opisuje Core Web Vitals jako jeden z sygnałów w dokumentacji Search Central, ale nie jako gwarancję wzrostu pozycji. W praktyce szybkość wpływa na konwersję głównie przez czas do pierwszego wyświetlenia treści i opóźnienia reakcji na klik. Jeśli natomiast sklep ma zablokowaną indeksację, poprawa szybkości nie przyniesie widocznego efektu w ruchu.

Czy sklep w Krasnobrodzie naprawdę konkuruje z całym rynkiem e-commerce?

Tak, w wynikach wyszukiwania lokalizacja nie daje automatycznego pierwszeństwa. Jeśli ktoś szuka konkretnego produktu, zobaczy sklepy z całej Polski, chyba że zapytanie jest wyraźnie lokalne. Dlatego warto zadbać o frazy i strony związane z obsługiwanym obszarem, a techniczne podstawy traktować tak samo poważnie jak sklep z dużego miasta.

Od czego zacząć, jeśli mam ograniczony budżet?

Od pomiaru i od tego, co blokuje indeksację lub płatne kampanie: błędów 404, przypadkowego noindex, koszyka i ładowania karty produktu na telefonie. To zwykle najtańsze poprawki o największym efekcie. Optymalizacja obrazów i konfiguracja OPcache oraz Redis to kolejny krok. Zmiana szablonu czy motywu powinna być ostatnia, nie pierwsza.

Jak mierzyć efekt zmian, żeby nie oszukiwać sam siebie?

Zapisz baseline przed zmianami i porównuj te same adresy, ten sam typ urządzenia i tę samą lokalizację serwera. Pomocne są definicje Web Vitals jako wspólny punkt odniesienia oraz Google Search Console do obserwacji danych z realnych wejść. Pamiętaj, że wyniki laboratoryjne i dane użytkowników mogą się różnić — jedno mierzy potencjał, drugie rzeczywistość.

Czy dane strukturalne i sitemap to nadal aktualny temat?

Tak. Dane strukturalne obsługiwane przez Google pomagają w prezentacji produktów i ofert w wynikach, a sitemap przyspiesza wykrywanie nowych adresów. Nie zastąpią jednak poprawnej indeksacji — najpierw trzeba mieć czysty profil adresów, potem wzbogacać go o znaczniki.

Jeśli nie masz czasu na przekopywanie logów i Search Console, możemy zacząć od audytu i uporządkowania priorytetów — zobacz zakres utrzymania i opieki technicznej sklepów w Krasnobrodzie. Dla sklepów na WooCommerce mamy też osobny zakres wdrożeń i optymalizacji.

Źródła i materiały