Czy Twój e-commerce traci przez złe zarządzanie sesjami? 3 ciche błędy
Kiedy ostatnio sprawdzałeś, jak Twój sklep obsługuje sesje? Pewnie dawno – bo to temat, który zwykle zostawiamy developerom i serwerom. Ale prawda jest taka, że złe zarządzanie sesjami to jedna z najczęstszych, a jednocześnie najmniej oczywistych przyczyn spadku konwersji w e-commerce. Klient dodaje produkt do koszyka, po chwili wraca – a koszyk pusty. Albo loguje się, a po przejściu na podstronę musi logować się ponownie. Brzmi znajomo?
W tym artykule pokażę Ci trzy błędy, które widzę w audytach e-commerce – i które realnie kosztują sprzedaż. Nie będę sypał teoriami, tylko konkretnymi przykładami z życia wziętymi.
1. Niewłaściwy czas życia sesji – za krótko i za długo
Wydaje się banalne, ale większość sklepów ustawia domyślny czas sesji z configa frameworka (np. 20 minut w PHP). I to jest błąd. Dlaczego? Bo Twój klient może przerwać zakupy, żeby sprawdzić rozmiar w domu, skonsultować się z partnerem lub po prostu zadzwonić do Ciebie. Jeśli sesja wygaśnie – stracił koszyk, a Ty straciłeś szansę na finalizację transakcji.
Z drugiej strony, zbyt długi czas sesji (np. kilka godzin) to ryzyko bezpieczeństwa i obciążenie serwera. Dla sklepu z dużą ilością użytkowników oznacza to więcej rekordów w bazie, wolniejsze zapytania i wyższe rachunki za hosting.
Przykład z audytu: Klient z branży modowej miał ustawiony czas sesji na 15 minut. Średni czas spędzony na stronie wynosił 11 minut, ale aż 40% użytkowników wracało po dłuższej przerwie – i znajdowało pusty koszyk. Po zmianie czasu na 60 minut współczynnik porzuconych koszyków spadł o 12%.
Co robić?
- Przeanalizuj zachowanie użytkowników w Google Analytics: jaki jest średni czas spędzony na stronie, ile czasu mija między wejściem na stronę produktu a finalizacją zamówienia.
- Ustaw czas sesji na 30-60 minut, ale pamiętaj o odświeżaniu czasu przy każdej aktywności użytkownika.
- Rozważ zapamiętywanie koszyka za pomocą localStorage (po zalogowaniu) – wtedy sesja nie jest kluczowa.
2. Zapominanie o współdzieleniu sesji między subdomenami
Twój sklep działa na mainshop.pl, ale masz też bloga na blog.mainshop.pl, a system płatności na checkout.mainshop.pl? Jeśli nie skonfigurujesz poprawnego współdzielenia sesji, użytkownik zaloguje się na jednej subdomenie, a na drugiej będzie traktowany jako anonim.
Efekt: Klient dodaje produkt do koszyka na stronie głównej, przechodzi do płatności na checkout – i koszyk znika. Albo loguje się na blogu, wraca do sklepu i musi logować się ponownie.
Przykład z życia: Znany polski sklep z elektroniką miał osobne subdomeny dla kategorii (np. laptopy.sklep.pl). Po dostawieniu subdomeny dla promocji okazało się, że sesje nie są współdzielone. Klienci dodawali produkty do koszyka na jednej subdomenie, a po przejściu na drugą koszyk był pusty. Pomimo świetnej optymalizacji wydajności, konwersja spadała o 5%.
Co robić?
- Ustaw domenę i ścieżkę dla ciasteczka sesji na poziomie głównej domeny (np. .mainshop.pl) z odpowiednim atrybutem SameSite.
- Sprawdź, czy wszystkie subdomeny korzystają z tej samej domeny dla sesji.
- Używaj wspólnego backendu lub centralnego magazynu sesji (Redis, baza danych) dla wszystkich subdomen.
3. Brak mechanizmu odświeżania sesji przy kluczowych akcjach
Większość systemów odświeża sesję tylko przy ładowaniu strony. Ale co jeśli użytkownik doda produkt do koszyka przez AJAX, a potem przez 20 minut ogląda inne produkty? Sesja nie zostanie odświeżona i wygaśnie po 20 minutach od jej rozpoczęcia, a nie od ostatniej aktywności.
Efekt: Klient spędza czas na przeglądaniu, dodaje kilka produktów, a gdy chce przejść do kasy – sesja wygasła. Koszyk znika, a on myśli, że to błąd sklepu i odchodzi.
Przykład z audytu: Sklep z wyposażeniem wnętrz miał problem z wysokim współczynnikiem odrzuceń przy finalizacji zamówienia. Okazało się, że sesje były odświeżane tylko przy pełnym przeładowaniu strony. Użytkownicy korzystający z filtrowania AJAX lub dodawania produktów przez modale nie odświeżali sesji. Po zmianie, by każde żądanie AJAX odświeżało czas sesji, współczynnik porzuconych koszyków spadł o 18%.
Co robić?
- Po każdej istotnej akcji (dodanie do koszyka, zmiana ilości, logowanie, wybór opcji wysyłki) wysyłaj żądanie odświeżenia sesji.
- Rozważ użycie techniki „heartbeat” – co kilka minut wysyłaj ciche żądanie do serwera, aby sesja była żywa.
- Monitoruj czas życia sesji w logach i porównuj z aktywnością użytkownika.
Podsumowanie
Złe zarządzanie sesjami to cichy zabójca konwersji. Nie widać go gołym okiem, ale jego skutki są realne: puste koszyki, wielokrotne logowanie, frustracja użytkowników. Firmy wydają tysiące na optymalizację szybkości ładowania, UX i SEO, a zapominają o podstawach – o tym, jak sesje wpływają na doświadczenie zakupowe.
Przejrzyj swój sklep:
- Sprawdź czas życia sesji i dopasuj go do zachowań klientów.
- Upewnij się, że sesje są współdzielone między wszystkimi subdomenami.
- Zadbaj o odświeżanie sesji przy interakcjach AJAX.
Jeśli nie masz pewności, czy Twój system dobrze zarządza sesjami – poproś o audyt. Często wystarczy kilka poprawek w konfiguracji, aby odzyskać utraconą sprzedaż.
W JurskiTech.pl regularnie znajdujemy takie „ciche błędy”, które kosztują naszych klientów realne pieniądze. Bo czasem to nie brak fancy funkcji, ale zaniedbane detale decydują o sukcesie w e-commerce.


