Skrócenie czasu odpowiedzi serwera

W sekcji Możliwości w raporcie Lighthouse podawany jest czas odpowiedzi serwera, czyli czas, który upływa od wysłania żądania przez przeglądarkę użytkownika do momentu otrzymania pierwszego bajtu treści strony:

Zrzut ekranu z audytu Lighthouse „Czasy reakcji serwera są krótkie”

Wolny czas reakcji serwera wpływa na wydajność

Ten audyt kończy się niepowodzeniem, gdy przeglądarka czeka na odpowiedź serwera na żądanie głównego dokumentu dłużej niż 600 ms. Użytkownicy nie lubią, gdy strony długo się wczytują. Jedną z możliwych przyczyn długiego wczytywania stron jest powolna reakcja serwera.

Gdy użytkownicy przechodzą do adresu URL w przeglądarce, wysyła ona żądanie sieciowe, aby pobrać te treści. Serwer otrzymuje żądanie i zwraca zawartość strony.

Serwer może potrzebować dużo czasu, aby zwrócić stronę ze wszystkimi treściami, których szukają użytkownicy. Jeśli na przykład użytkownicy przeglądają historię zamówień, serwer musi pobrać historię każdego użytkownika z bazy danych, a następnie wstawić te treści na stronę. Optymalizacja serwera pod kątem jak najszybszego wykonywania takich zadań to jeden ze sposobów na skrócenie czasu oczekiwania użytkowników na wczytanie stron.

Nawet jeśli serwer nie musi wykonywać wielu zadań, opóźnienie sieciowe między klientem a serwerem może powodować długi czas odpowiedzi serwera.

Jak skrócić czas odpowiedzi serwera

Pierwszym krokiem do skrócenia czasu odpowiedzi serwera jest określenie podstawowych zadań koncepcyjnych, które serwer musi wykonać, aby zwrócić zawartość strony, a następnie zmierzenie czasu trwania każdego z tych zadań. Po zidentyfikowaniu najdłuższych zadań poszukaj sposobów na ich przyspieszenie.

Istnieje wiele możliwych przyczyn powolnych odpowiedzi serwera, a co za tym idzie – wiele sposobów na poprawę tej sytuacji:

  • Zoptymalizuj logikę aplikacji serwera, aby szybciej przygotowywać strony. Jeśli używasz platformy serwera, być może w jej dokumentacji znajdziesz odpowiednie wskazówki.
  • Zoptymalizuj sposób, w jaki serwer wysyła zapytania do baz danych, lub przeprowadź migrację do szybszych systemów baz danych.
  • Uaktualnij sprzęt serwera, aby zwiększyć ilość pamięci lub liczbę procesorów.

Używaj sieci CDN, aby zmniejszyć opóźnienie sieci. Jest to szczególnie skuteczne, jeśli dokument można buforować w węźle brzegowym sieci CDN.

Więcej informacji znajdziesz w przewodniku Optymalizacja czasu TTFB.

Wskazówki dotyczące konkretnych stosów

Drupal

Odciąż ruch za pomocą co najmniej 1 modułu buforowania w systemie Drupal takiego jak Internal Page Cache, Internal Dynamic Page CacheBigPipe. Aby jeszcze bardziej skrócić czas odpowiedzi, połącz je z siecią CDN. Na serwerach hostujących należy używać PHP OPcache. Rozważ użycie pamięci podręcznej pamięci RAM (np. Redis lub Memcached), aby skrócić czas zapytań do bazy danych. Na koniec użyj wydajnych motywów, modułów i szybszych serwerów, aby skrócić czas reakcji serwera.

Magento

Skorzystaj z integracji Varnish z Magento.

React

Jeśli renderujesz komponenty React po stronie serwera, proponujemy używanie metod renderToNodeStream() lub renderToStaticNodeStream(), by umożliwić klientowi odbieranie i rozwijanie poszczególnych części kodu zamiast całego naraz.

WordPress

Wybierz lekki motyw (najlepiej motyw blokowy) i wdróż buforowanie pełnych stron lub rozwiązanie do witryn statycznych. Wyłącz niepotrzebne wtyczki, aby zminimalizować obciążenie serwera.

Sugerujemy przejście z hostingu na usługę zarządzaną lub dedykowaną.

Zasoby