SEO techniczne w sklepie sprowadza się do trzech rzeczy: Google ma poprawnie zaindeksować Twoje adresy URL, strona ma mieścić się w progach Core Web Vitals, a struktura ma prowadzić klienta do karty produktu bez zbędnych kliknięć. Optymalizacja szybkości jest częścią tego samego zadania — LCP poniżej 2,5 s, INP poniżej 200 ms i CLS poniżej 0,1, mierzone na telefonie, bo Google indeksuje w trybie mobile-first. W małym sklepie działającym w Bełżcu i okolicach Roztocza liczy się to podwójnie: budżet indeksowania jest mniejszy niż w sieciówce, a ruch w wakacyjne weekendy wybacza najmniej. Poniżej masz kolejność działań, listę najczęstszych błędów i checklistę, którą można przejść jeszcze dziś. Szersze tło zebraliśmy w artykule o SEO technicznym i optymalizacji szybkości w Lublinie.
W sklepie internetowym trzeba rozdzielić trzy obszary, bo najczęściej się je miesza i płaci za to podwójnie.
Google podaje trzy twarde progi: LCP poniżej 2,5 s, INP poniżej 200 ms, CLS poniżej 0,1. Na karcie produktu LCP to zwykle zdjęcie główne albo nagłówek. Jeśli slider wyświetla plik PNG o wadze 1,8 MB, sam ten element zjada cały budżet, zanim wczyta się cokolwiek innego. INP poniżej 200 ms oznacza, że po dotknięciu „Dodaj do koszyka” strona reaguje od razu, a nie po doładowaniu skryptu koszyka. CLS poniżej 0,1 to brak przeskakiwania treści, gdy wczyta się banner promocyjny albo niestandardowa czcionka — inaczej klient na telefonie trafia palcem w zły przycisk. Wszystkie trzy progi mierzy się na telefonie, bo Google indeksuje w trybie mobile-first. Wersja desktopowa jest tylko dodatkiem.
Punkt odniesienia jest więc jeden: telefon klienta z kartą produktu na ekranie. Jeśli prowadzisz sklep w większym mieście, kolejność prac wygląda podobnie — zobacz SEO techniczne i optymalizacja szybkości w Lublinie. Sam sposób pomiaru wskaźników i ich definicje opisuje dokumentacja Web Vitals. Objawy po stronie technicznej widać też w Search Console: wpis „Duplikat, Google wybrał inną wersję kanoniczną” oznacza, że robot uznał Twoją kartę produktu za kopię innego adresu i w wynikach pokazuje ten drugi.
W sieciówce wolna strona to problem wizerunkowy. W sklepie działającym w Bełżcu i okolicach to strata, którą widać w porzuconych koszykach jeszcze tego samego dnia.
Liczby są znane od lat i nadal aktualne. W badaniu Google i SOASTA z 2017 roku wydłużenie ładowania z 1 s do 3 s zwiększało prawdopodobieństwo porzucenia strony o 32%, z 1 s do 5 s — o 90%, a z 1 s do 10 s — o 123%. Akamai podawał z kolei, że każde dodatkowe 100 ms opóźnienia to około 7% mniej konwersji. Różnica między 2 s a 5 s nie jest więc kosmetyczna — to inny sklep z punktu widzenia klienta, który stoi na przystanku w Zwierzyńcu i ma jedną kreskę zasięgu.
Drugi mechanizm jest mniej oczywisty: budżet indeksowania. Google przydziela crawlerowi ograniczoną liczbę żądań dla domeny. Sklep z 600 produktami i 4500 wygenerowanymi adresami (filtry, sortowania, warianty) marnuje część tego limitu na strony, które nigdy nie powinny trafić do indeksu. Każdy wolny URL odpowiadający w 3 s zamiast 300 ms zabiera miejsce adresom, które faktycznie sprzedają.
Do oceny doświadczenia użytkownika Google używa danych polowych z Chrome UX Report, czyli pomiarów z realnych urządzeń, a nie z laboratorium. W PageSpeed Insights zobaczysz dwie sekcje: dane z ostatnich 28 dni i wynik laboratoryjny. Jeśli domena ma mały ruch, dane polowe mogą być niedostępne — wtedy liczy się to, co pokazuje laboratorium, i ten sam zestaw zobaczysz w raporcie Core Web Vitals w Search Console. Po szczegóły zajrzyj do dokumentacji Google Search Central o Core Web Vitals.
Do tego dochodzi sezonowość Roztocza: lipiec, sierpień i weekendy majowe to szczyty ruchu. Wtedy sklep obsługuje najwięcej klientów, a wolne ładowanie boli najbardziej. Jeśli prowadzisz sprzedaż w sąsiedniej gminie, ta sama mechanika dotyczy SEO technicznego i szybkości w Zwierzyńcu.
Ten audyt zrobisz sam w 90 minut, bez płatnych narzędzi. Kolejność ma znaczenie, bo pozwala odsiać rzeczy pilne od kosmetycznych.
0–20 min: PageSpeed Insights i Lighthouse. Wpisz adres karty produktu, nie strony głównej — ona prawie zawsze wypada lepiej. W PageSpeed Insights zostaw zakładkę mobilną i czytaj „Wykryte problemy”, a nie sam wynik 0–100. Potem otwórz Chrome DevTools → zakładka Lighthouse, ustaw urządzenie Mobile i throttling „Symulowane wolne 4G”. Zapisz LCP, Total Blocking Time i CLS.
20–45 min: Search Console. Raport „Core Web Vitals” — sprawdź osobno grupę mobilną i desktopową, bo adresy z problemami mogą się nie pokrywać. Następnie „Indeksowanie stron” i powody wykluczenia: szukaj wpisów „Duplikat, Google wybrał inną wersję kanoniczną”, „Zeskanowane, ale obecnie niezaindeksowane” oraz „Wykryto, ale nie zaindeksowano”. Na końcu „Mapy witryny” — czy liczba przesłanych adresów zgadza się z wykrytymi.
45–90 min: crawl. Darmowy Screaming Frog ma limit 500 adresów, więc przed startem wyklucz w robots.txt koszyk, zamówienie i wyszukiwarkę wewnętrzną, żeby nie zjadały limitu. Z eksportu wypisz: kody 404, soft 404 (strona zwraca 200, ale w treści jest „nie znaleziono”), łańcuchy 301 → 301 → 200, brakujące i zdublowane tytuły oraz opisy, adresy bez tagu canonical.
W polskich sklepach najczęściej znajdziesz trzy rzeczy: adresy filtrów (…?q=, layered navigation w PrestaShop) traktowane jako osobne strony, warianty produktu bez canonicala wskazującego na produkt główny oraz ten sam produkt stojący w kilku kategoriach, czyli zdublowane karty produktu. Wyniki zapisz w jednej tabeli i sortuj po priorytecie:
| Problem | Wpływ | Nakład pracy | Priorytet |
|---|---|---|---|
| 404 po usuniętych produktach | Klient trafia w pustkę, crawl przepala się na błędne adresy | 1–2 h: lista z crawla + przekierowania 301 na kategorię lub produkt zastępczy | Wysoki |
| Adresy filtrów (?q=, layered navigation) jako osobne URL-e | Setki duplikatów, rozmyty budżet indeksowania | 2–4 h: canonical lub noindex dla widoków filtrowanych | Wysoki |
| Warianty produktu bez canonicala | Google sam wybiera wariant i pokazuje go w wynikach | 3–6 h, zależnie od liczby kombinacji | Średni |
| Brakujące lub zdublowane title i meta description | Niższy CTR w wynikach, słabsza trafność zapytań | 2–3 h: szablony w sklepie plus ręczna poprawka dla TOP 20 | Średni |
| Łańcuch przekierowań 301 → 301 → 200 | Wolniejsze ładowanie, rozmyte sygnały dla robota | 1 h: skrócenie do jednego skoku | Niski |
LCP rzadko bierze się z całego sklepu — zwykle to jeden obraz i jeden font. W sklepach, które dostajemy do audytu, elementem LCP jest najczęściej slider na stronie głównej albo pierwsze zdjęcie na karcie produktu. Jeśli nie ma atrybutu fetchpriority=high i nie jest w formacie WebP lub AVIF, samo to dodaje 0,8–1,5 s na łączu mobilnym. Zacznij od DevTools → Performance i ustal, który element jest LCP, zamiast zgadywać.
Fonty: każdy plik WOFF2 ładowany z zewnętrznego CDN to dodatkowe zapytanie DNS, TLS i RTT. Efekt: tekst pojawia się 300–600 ms później. Rozwiązanie to self-hosting fontu, rel=preload dla pliku widocznego nad zagięciem, font-display: swap i fallback z size-adjust, żeby podmiana nie przesuwała tekstu. Same progi i sposób pomiaru znajdziesz w dokumentacji Core Web Vitals na web.dev.
INP psuje się wtedy, gdy główny wątek przeglądarki jest zajęty. W PrestaShop każdy moduł, a w WooCommerce każda wtyczka doładowuje własny JavaScript — suwaki, popupy, czat, GA4, piksel Meta, heatmapy. Zanim zaczniesz optymalizować, policz: DevTools → Coverage pokaże, ile KB JS nie jest w ogóle używane na danej stronie. W sklepach, z którymi pracowaliśmy, schodziło z tego 40–60% kodu.
CLS to najczęściej brak width i height (lub aspect-ratio) przy obrazach oraz baner cookie wstrzykiwany JavaScriptem po załadowaniu strony. Baner obecny w HTML od pierwszego renderu — nawet jeśli wizualnie pojawia się po sekundzie — nie przesuwa layoutu.
Konkret do wdrożenia: WebP/AVIF, srcset z szerokościami 400/800/1200/1600 px, loading=lazy na wszystkim poza obrazem LCP. Uwaga: wtyczki WordPressa potrafią dodać lazy loading także do hero — trzeba je wykluczyć. W PrestaShop rozmiary obrazów ustawia się w Katalog → Obrazy i po zmianie trzeba je odtworzyć, inaczej sklep nadal serwuje stare pliki.
Jak odróżnić wtyczkę winną od niewinnej: kopia staging, ten sam test (PageSpeed w trybie telefonu), wyłączanie po 5 wtyczek i pomiar. Różnica poniżej 50 ms w LCP oznacza, że nie warto się nią zajmować. Podobne audyty robiliśmy dla sklepów z Krasnobrodu i okolic.
| Metryka | Najczęstsza przyczyna | Gdzie to zobaczysz | Szybka naprawa |
|---|---|---|---|
| LCP | Slider lub zdjęcie hero bez priorytetu | DevTools → Performance, PageSpeed | WebP/AVIF, preload, fetchpriority=high, bez lazy loading |
| LCP | Font z zewnętrznego CDN bez preload | DevTools → Network, filtr Font | Self-hosting WOFF2, preload, font-display: swap |
| INP | Nadmiar modułów i wtyczek ładujących JS | DevTools → Coverage, PageSpeed | Usunięcie nieużywanego JS, odroczenie czatu i analityki |
| CLS | Baner cookie i obrazy bez wymiarów | DevTools → Performance, Layout Shift Regions | Baner w HTML, width/height lub aspect-ratio |
TTFB jest częścią LCP, o której zapomina większość poradników. LCP to czas oczekiwania na pierwszy bajt plus pobranie obrazu i render. Jeśli TTFB wynosi 1,2 s, na resztę zostaje 1,3 s — i choćbyś miał najlepiej skompresowane zdjęcia, w próg 2,5 s nie wejdziesz. Orientacyjnie TTFB poniżej 0,8 s to dobry punkt startu; nie jest to osobna metryka rankingowa, ale bezpośrednio wpływa na LCP.
Co podnosi TTFB: brak cache strony (każde wejście generuje HTML od zera), wolne zapytania do bazy (brak indeksów, tysiące wariantów produktów), przeładowany hosting współdzielony, na którym obok Ciebie stoi kilkaset stron.
Sygnały, że czas na VPS: TTFB rośnie dwukrotnie między 18:00 a 21:00, hosting pokazuje limity procesów (nproc lub EP w CloudLinux), nie masz dostępu do php.ini, Redisa, OPcache ani logów wolnych zapytań. Ale uwaga: sama zmiana hostingu nie naprawi 4-megabajtowych zdjęć i dziesięciu skryptów zewnętrznych. VPS z 1 vCPU i 1 GB RAM bez konfiguracji bywa wolniejszy niż dobry hosting współdzielony. Kolejność jest zawsze ta sama: najpierw obrazy i skrypty, potem serwer. Podobne przejścia prowadziliśmy dla firm z Biłgoraja oraz Lublina.
| Kryterium | Tani hosting współdzielony | VPS (2 vCPU / 4 GB RAM) |
|---|---|---|
| TTFB w godzinach szczytu | Potrafi skoczyć do 1,5–3 s | Zwykle stabilny, 0,2–0,6 s przy działającym cache |
| OPcache, Redis | Często niedostępne lub wyłączone | Pełna konfiguracja po Twojej stronie |
| php.ini, Brotli, HTTP/3 | Brak dostępu | Konfigurowalne |
| Nakład pracy | Zero — działa od razu | Trzeba pilnować aktualizacji i cache |
| Kiedy ma sens | Sklep do ok. 2–3 tys. wizyt miesięcznie | Sklep z ruchem sezonowym i setkami produktów |
Mapa strony XML to punkt wyjścia, nie formalność. W PrestaShop generuje ją moduł (w nowszych wersjach wbudowany), w WooCommerce — Yoast lub Rank Math (sitemap_index.xml). Sprawdź dwie rzeczy: czy w mapie nie ma adresów z parametrami i czy liczba URL-i zgadza się z liczbą stron, które faktycznie chcesz mieć w indeksie. Zgłoś mapę w Search Console → Mapy witryny i wróć do niej po dwóch tygodniach.
robots.txt: najczęstszy błąd, jaki widzimy, to Disallow: /modules/, /themes/, /wp-content/ albo /wp-includes/ skopiowane z poradnika. Blokujesz wtedy CSS i JS — Google renderuje stronę bez stylów i widzi coś innego niż klient. Sprawdź w Search Console → test robots.txt oraz w narzędziu sprawdzania adresu URL, czy nie ma zablokowanych zasobów.
Canonicale: produkt z wariantami nie powinien mieć osobnego canonicala dla każdej kombinacji — wskazujesz główny adres produktu. Parametry kampanii (utm_*, gclid, fbclid) nie tworzą nowych stron: canonical prowadzi do wersji bez parametrów.
Filtry fasetowe: każda kombinacja filtrów to nowy URL. Przy 20 atrybutach robią się z tego tysiące adresów, które zjadają budżet indeksowania. Dla filtrów bez popytu stosuj noindex, follow — a nie Disallow w robots.txt, bo wtedy Google w ogóle nie zobaczy znacznika noindex. Dla filtrów, które ludzie faktycznie wpisują w Google, buduje się osobną stronę lądową z własnym opisem.
Paginacja: canonical każdej podstrony wskazuje samą siebie. Wskazanie wszystkich na stronę pierwszą to najczęstszy błąd — dalsze strony przestają być traktowane jako wartościowa zawartość.
Dane strukturalne: Product z Offer (price, priceCurrency, availability), BreadcrumbList i Organization. Pełną listę typów obsługiwanych przez Google znajdziesz w galerii danych strukturalnych. Typowy błąd to cena w znaczniku niezgodna z ceną po promocji. Porównania takich wdrożeń opisujemy przy sklepach ze Zwierzyńca i Józefowa.
Jak sprawdzić, czy strona jest faktycznie zaindeksowana: wpisz w Google site:twojadomena.pl nazwa-produktu, a w Search Console użyj sprawdzania adresu URL — komunikat „Adres URL jest w Google” z datą to fakt, „Zgłoszono” to tylko kolejka. Raport Indeksowanie → Strony pokaże różnicę między „Zaindeksowano” a „Odkryto – obecnie nieindeksowano”.
| Objaw w Search Console | Prawdopodobna przyczyna | Co poprawić |
|---|---|---|
| Zablokowane zasoby na stronie | robots.txt blokuje CSS lub JS | Usuń Disallow dla /modules/, /themes/, /wp-content/ |
| Duplikat — Google wybrał inną stronę kanoniczną | Brak canonicala lub canonical wskazuje stronę główną | Self-canonical dla produktu i dla paginacji |
| Odkryto – obecnie nieindeksowano | Filtry bez noindex, tysiące adresów | noindex, follow dla kombinacji filtrów |
| Nieprawidłowy element Product | Cena lub dostępność niezgodna ze stroną | Popraw Offer i zweryfikuj w Rich Results Test |
Wizytówka w Google to dla sklepu w Bełżcu często pierwszy kontakt z klientem — jeszcze przed wejściem na stronę. Ustawienia, które realnie ważą na widoczności:
Adres, godziny i telefon warto dodatkowo opisać w danych strukturalnych obsługiwanych przez Google — typ LocalBusiness dla firmy, Product z ceną i dostępnością dla kart produktów. Google potrafi pokazać je bezpośrednio w wynikach.
Drugi element to strony lokalne. Nie robimy osobnego adresu dla każdej wsi w gminie — powstają wtedy powielone teksty, które Google traktuje jak jeden dokument. Strona lokalna ma sens, gdy masz dla niej co najmniej cztery konkretne treści: punkt odbioru lub czas dojazdu, zdjęcia z miejsca, zakres obsługi i realne pytania klientów. Zapytanie z nazwą miejscowości łączymy z produktem, nie z samym SEO: inna jest intencja pod „… Józefów”, a inna pod „… Krasnobród”, i tę różnicę widać w treści, nie w podmienionej nazwie. Do istniejących materiałów linkujemy wewnętrznie — teksty o SEO technicznym i optymalizacji szybkości w Biłgoraju oraz o Józefowie mają inne przykłady i nie warto ich dublować.
Trzeci filar to szybkość. Klient w Bełżcu szuka z telefonu, w terenie, często na jednym–dwóch kreskach zasięgu. W takich warunkach LCP zależy przede wszystkim od wagi obrazka w pierwszym ekranie i liczby skryptów w sekcji head. Progi są znane: LCP poniżej 2,5 s, INP poniżej 200 ms, CLS poniżej 0,1. Każde 100 kB w obrazie hero to odczuwalne opóźnienie na wolnym łączu.
| Pole w wizytówce | Co wpisać | Najczęstszy błąd |
|---|---|---|
| Kategoria główna | Dokładnie to, co sprzedajesz | Kategoria „branżowa” bez związku z asortymentem |
| Godziny | Z podziałem na sezon | Inne godziny niż na stronie i w stopce |
| Obszar działania | Bełżec + gminy sąsiednie | Adres punktu, gdy klient nie przyjeżdża |
| Zdjęcia | 10–15 realnych, z miejsca | Wyłącznie zdjęcia stockowe |
Punkt wyjścia jest jeden: zapisz stan na dziś. Bez zrzutu danych z Search Console po dwóch miesiącach nie odróżnisz realnej poprawy od sezonu.
Co obserwować w Search Console:
Terminy. Pierwsze efekty techniczne — spadek liczby błędów indeksowania, wejście nowych adresów do indeksu, krótszy czas odpowiedzi serwera — widać zwykle po 2–4 tygodniach. Ruch i pozycje ruszają po 4–12 tygodniach, a przy zapytaniach z realną konkurencją 3–6 miesięcy to norma, nie porażka. Osobne materiały pokazują ten sam mechanizm na innych rynkach: Frampol i Krasnobród.
Sezon. Tydzień do tygodnia nie mówi nic, bo na Roztoczu wakacyjny weekend potrafi dać kilkukrotnie więcej wejść niż środowy wtorek w listopadzie. Porównuj rok do roku, te same tygodnie i te same zapytania — inaczej „spadek o 30%” po wakacjach wygląda jak katastrofa, choć jest powrotem do normalności.
Ostatnia pułapka: wynik z narzędzia to nie dane terenowe. Lighthouse i PageSpeed Insights mierzą w laboratorium, na jednym urządzeniu, z zimnym cache. Raport w Search Console i dane CrUX pokazują 28-dniowe wyniki od prawdziwych użytkowników — a ci mają wtyczki, starsze telefony i słabsze łącze. Rozbieżność 20–30 punktów między labem a terenem jest normalna. Kieruj się terenem: zasady Core Web Vitals w wynikach wyszukiwania. Jeśli po wdrożeniu poprawiasz lab, a teren stoi w miejscu, sprawdź, czy nowe szablony i cache nie działają tylko dla zalogowanych.
| Wskaźnik | Gdzie sprawdzać | Realistyczny horyzont |
|---|---|---|
| Błędy indeksowania, czas odpowiedzi | Search Console: Indeksowanie, Mapy witryn | 2–4 tygodnie |
| Liczba adresów URL w indeksie | Search Console: Indeksowanie → Strony | 2–8 tygodni |
| Wyświetlenia, kliknięcia, średnia pozycja | Search Console: Skuteczność, porównanie rok do roku | 4–12 tygodni |
| Core Web Vitals (dane terenowe) | Raport CWV w Search Console, CrUX | 28 dni po wdrożeniu |
Nie publikujemy sztywnego cennika, bo zakres zależy od stanu sklepu — ale widełki godzinowe podajemy, żebyś wiedział, z czym się mierzysz. Stawka jest ustalana przed startem i nie zmienia się w trakcie prac.
Własne moduły zamiast kolejnych wtyczek. Płatna wtyczka za 25 zł miesięcznie to 300 zł rocznie, a w małym sklepie zwykle zbiera się ich dwie–trzy. Moduł pisany pod konkretny problem to 3–6 h pracy, jednorazowo, bez subskrypcji i bez zależności od zewnętrznego autora. Warunek: moduł robi jedną rzecz i nie dubluje mechanizmów, które PrestaShop ma w rdzeniu. Zanim napiszemy nowy, sprawdzamy dokumentację deweloperską PrestaShop, czy odpowiedni hook już nie istnieje.
Opieka po wdrożeniu. W zakresie: aktualizacje PrestaShop, modułów i wersji PHP, kopie zapasowe (baza codziennie, pliki tygodniowo, raz na kwartał test odtworzenia na środowisku testowym), monitoring dostępności co minutę z alertem SMS oraz jasne SLA — reakcja do 4 h w dni robocze, naprawa awarii krytycznej do 24 h. Zlecenie prowadzi deweloper, który je wdraża; nie ma pośrednika, który przekazuje zadanie dalej i wraca z pytaniami po trzech dniach. Jeśli sklep działa poza Bełżcem — wdrożenia dla Lublina i regionu albo mniejsze sklepy w Zwierzyńcu — schemat pracy jest taki sam.
| Etap | Zakres | Czas | Co dostajesz |
|---|---|---|---|
| Audyt | Crawl, logi, Search Console, PageSpeed, dane strukturalne | 8–16 h | Lista zadań z priorytetami i szacunkiem godzin |
| Wdrożenie | Przekierowania, szablony, obrazy, cache, moduły | 16–40 h | Wdrożone poprawki i raport przed/po |
| Opieka | CWV, indeks, dostępność, drobne poprawki | 2–4 h miesięcznie | Comiesięczny raport i reakcja zgodnie z SLA |
Optymalizacja szybkości bez pomiaru punktu startowego
Jak wykryć: Brak zapisanych wyników LCP, INP i CLS z PageSpeed Insights w trybie mobilnym oraz z raportu Core Web Vitals w Search Console przed wdrożeniem zmian.
Jak naprawić: Zrób zrzut ekranu albo eksport wyników dla strony głównej, jednej kategorii i dwóch lub trzech kart produktów. Dopiero potem zmieniaj cokolwiek i porównuj te same adresy URL.
Testowanie tylko na desktopie
Jak wykryć: Wynik mobilny w PageSpeed Insights jest o 30–50 punktów niższy niż desktopowy, a w Search Console grupa adresów URL oznaczona jako mobilna wypada gorzej.
Jak naprawić: Przełącz PageSpeed Insights i Lighthouse na tryb mobilny i przyjmij go jako punkt odniesienia. To telefon klienta decyduje o tym, jak Google ocenia doświadczenie na stronie.
Lazy loading nałożony na obraz LCP
Jak wykryć: W kodzie głównego zdjęcia produktu lub obrazu hero na stronie głównej widnieje atrybut loading równy lazy, a w raporcie LCP elementem jest właśnie ten obraz.
Jak naprawić: Usuń lazy loading z obrazu LCP, dodaj fetchpriority ustawione na high i wczytaj ten obraz wcześnie. Pozostałe zdjęcia poniżej pierwszego ekranu zostaw jako lazy.
Wyłączanie wtyczek i modułów bezpośrednio na produkcji
Jak wykryć: Brak kopii staging, a każda zmiana konfiguracji kończy się krótkim zamknięciem sklepu lub błędami w koszyku.
Jak naprawić: Zrób klon na subdomenie staging z aktualną bazą i wyłączaj po jednym module lub wtyczce, mierząc po każdej zmianie ten sam zestaw wskaźników.
Brak canonicali i kontroli nad adresami URL z parametrami filtrów
Jak wykryć: Crawl zwraca setki albo tysiące adresów URL z parametrami typu filtr, sortowanie czy strona, bez odwołania canonical, a w Search Console rośnie liczba stron wykluczonych.
Jak naprawić: Ustaw canonical na wersję bazową kategorii lub produktu, zdecyduj które kombinacje filtrów mają być indeksowane, a pozostałe oznacz jako noindex. Sprawdź też, czy linkowanie wewnętrzne nie prowadzi do zdublowanych adresów URL.
Traktowanie SEO technicznego jako jednorazowego projektu
Jak wykryć: Po wdrożeniu nikt nie wraca do raportu Core Web Vitals, a po kilku miesiącach i aktualizacji wtyczek wskaźniki znów są w czerwonej strefie.
Jak naprawić: Ustal stały przegląd raz w miesiącu: Core Web Vitals w Search Console, liczba zaindeksowanych adresów URL, nowe błędy 404 i waga strony głównej oraz karty produktu.
SEO techniczne i optymalizacja szybkości to jedno zadanie rozłożone na trzy warstwy: indeksowanie, waga zasobów i serwer. Zacznij od pomiaru na urządzeniu mobilnym, napraw obrazy i canonicale, a dopiero potem bierz się za wtyczki i moduły. W sklepie z Bełżca i okolic Roztocza kolejność ma znaczenie także dlatego, że ruch w wakacje i weekendy jest najbardziej wrażliwy na każdą dodatkową sekundę. Po wdrożeniu wróć do pomiarów po miesiącu — techniczne SEO to nawyk, nie jednorazowa akcja.
Od pomiaru, nie od zmian. Uruchom PageSpeed Insights w trybie mobilnym i przejrzyj raport Core Web Vitals w Search Console. Dopiero mając punkt odniesienia, przejdź do crawl-a i napraw najpierw błędy indeksowania oraz obrazy na karcie produktu.
Nie. Szybkość i poprawność techniczna to warunek wejścia, a nie gwarancja pozycji. Google wprost pisze, że liczy się przede wszystkim treść tworzona dla ludzi, więc bez sensownego opisu produktu i użytecznej kategorii same sekundy nie wystarczą.
Podstawowy przegląd opisaną wyżej checklistą zamyka się w około 90 minutach dla sklepu o kilkuset adresach URL. Pełniejszy audyt z analizą logów serwera i weryfikacją wdrożeń to praca na kilka dni.
Jeśli hosting współdzielony generuje wysoki czas odpowiedzi serwera i nie daje dostępu do cache obiektowego ani sensownej konfiguracji PHP, przeniesienie na VPS bywa tańsze niż dokładanie kolejnych wtyczek maskujących problem. Decyzję warto podjąć po pomiarze czasu odpowiedzi, a nie na wyczucie.
Nie ma tu jednej odpowiedzi. Wynik zależy od liczby modułów i wtyczek, jakości szablonu i konfiguracji serwera. Ten sam sklep na tym samym hostingu może być szybki w obu platformach, jeśli nie dociążysz go dodatkami i zostawisz włączone cache.
PageSpeed Insights pokazuje obok danych laboratoryjnych również dane terenowe z Chrome UX Report, czyli realne pomiary użytkowników z ostatnich 28 dni. Search Console korzysta z tego samego źródła, ale grupuje adresy URL po szablonach, więc pojedynczy pomiar i raport zbiorczy mogą się różnić.
Szkodzą wtedy, gdy generują setki adresów URL bez canonicala i bez decyzji, które z nich mają być indeksowane. Rozwiązaniem nie jest wyłączenie filtrów, tylko uporządkowanie kanonikali, oznaczenie wybranych kombinacji jako noindex i poprawa linkowania wewnętrznego.
Jeśli chcesz przejść przez tę checklistę z kimś, kto robi to na co dzień, odezwij się do DropDigital. Sprawdzimy Twoją stronę, wskażemy, co daje największy zwrot przy najmniejszym nakładzie, i pokażemy różnicę na liczbach — bez zobowiązania. Przydatne mogą być też nasze materiały dla okolicznych firm, np. SEO techniczne i optymalizacja szybkości w Biłgoraju.