Dobre SEO to bardzo wiele czynników – ale upraszczając, można je sprowadzić do trzech głównych – optymalizacja, content i linki. Na potrzeby tego tekstu, zajmiemy się wyłącznie pierwszą częścią. Optymalizacja w tym przypadku powinna dotyczyć nie tylko strony, ale i serwera. Bo przecież dopiero praca nad usprawnieniem obu wpłynie na pozycjonowaną stronę najbardziej efektywnie. Więc dziś o Time To First Byte.
O tyle, o ile optymalizacja samej strony jest zwykle w miarę prosta – trochę zmieniamy treści, kod i strukturę serwisu, dodajemy co nieco, windeksowujemy niepotrzebne podstrony itp., to już zajmowanie się resztą wymaga od nas trochę więcej. Często zajmujemy się przyspieszaniem strony, ale najczęściej kończy się to na pagespeedzie. A to, nad czym również warto pracować, to usprawnianie momentu TTFB (time to first byte), czyli czasu potrzebnego aż przeglądarka otrzyma pierwsze sygnały od danego adresu url (klient połączy się ze stroną). Ten parametr ma wpływ na SEO, a jest niezwykle niedoceniany.
Co trzeba zrobić?
Odpowiedź jest prosta – im krótszy czas TTFB, tym lepiej – czyli musimy obniżyć czas potrzebny na wykonanie powyższych czynności.
Od czego zacząć?
Żeby móc mierzyć jakiś efekt, trzeba sprawdzić, jak wygląda to aktualnie. Polecę tu dwa narzędzia:
- https://www.webpagetest.org – kombajn i trochę trzeba czekać, żeby się dopchać do kolejki
- http://www.bytecheck.com – prosta strona z kilkoma statystykami
A jaki jest idealny wynik? Google sugeruje nie więcej niż 200 ms, co jest wynikiem tak niskim, że nie spotkałam się jeszcze ze stroną, która to osiągnęła. Optymalnie więc możemy mówić, że dobry wynik będzie między 200 a 500 ms.
Niższą wartość będą miały strony ze statyczną treścią, których zawartość już znajduje się na serwerze, jako pliki, a nieco wolniejszy TTFB będzie dla stron z contentem dynamicznym, czyli np. nasze WordPressy, ogólnie strony z treściami w bazie danych, czy na szablonach.
Od czego zależy TTFB?
Są to trzy czynniki, które następują po sobie:
- czas potrzebny na wysłanie żądania do sieci przez serwer
- czas potrzebny na przetworzenie tego żądania i przygotowanie odpowiedzi
- czas potrzebny na wysłanie tej odpowiedzi
Jak widać na powyższym zrzucie, mamy 6 kluczowych elementów następujących po sobie (to rozwinięcie poprzednich 3 punktów), zrozumienie ich sprawi, że łatwiej będzie można znaleźć wąskie gardło.
- DNS – proces rozpoczyna się od połączenia z odpowiednimi serwerami DNS, czyli rozpoznanie, gdzie „stoi” strona. Każdy serwer DNS ma tzw. TTL – time to live, i jeśli jest on ustawiony na np. 24 h, to pierwsze odpytanie go będzie wolne, a każde kolejne w tym ustawionym czasie, będzie szło z cache komputera.
- Połączenie – gdy położenie strony jest już znane, następuje połączenie zwane TCP/IP handshake – uścisk ręki – wiecie, takie powitanie ze stroną.
- SSL – jeśli na stronie dodany jest certyfikat SSL, to trzeba wykonać dodatkowy krok, zwany SSL handshake (bot/user przywitał się już ze stroną, ale wita się jeszcze z ssl-em). To, ile to trwa, zależy od rodzaju certyfikatu i kilku innych czynników, nad którymi nie będę się teraz skupiać.
- Wysyłka i Czekanie – gdy połączenie jest już otwarte, serwer może zacząć odpowiadać na żądanie użytkownika. Tu zaczyna się cała bajka. To, ile to będzie trwało, zależy od wielu czynników – czy strony są statyczne, od liczby zapytań do bazy danych, przekierowań z jednego urla do drugiego, czy od tego, jaki jest język czy wersja PHP.
- Odbiór – serwer przeanalizował sobie wszystko, skompletował zapytania i może zacząć odpowiadać. Każda odpowiedź podzielona jest na małe paczki danych, które transportują się w kawałkach, a do odbiorcy docierają z powrotem całe. Gdy użytkownik je otrzyma, możemy w końcu mówić o Time to First Byte.
I dopiero wtedy przeglądarka zacznie nam pokazywać całość – stronę, skrypty, style, zewnętrzne odwołania itp. Więc dopiero w tym miejscu powinniśmy starać się o punkty w pagespeed 🙂
Jak zmniejszyć czas TTFB?
Możesz myśleć, że nie za bardzo masz wpływ na to, ile trwa moment przesłania tych danych. To nie do końca prawda. Jest parę elementów, które możesz sprawdzić/zrobić, żeby uzyskać lepszy wynik.
- Zadbaj o dobry i szybki serwer.
✔️ Najlepiej z lokalizacji, w jakiej jest Twój target. Czyli – działasz w Polsce – hostuj stronę w Polsce, a nie na przykład we Francji. Na pewno połączenie będzie szybsze.
✔️ Zwróć uwagę na pojemność dysku, czy przypadkiem nie zapychasz go po uszy
✔️ Zadbaj o dobrą konfigurację (w przypadku serwerów współdzielonych, nie masz na to wpływu, ale w przypadku VPS czy serwerów dedykowanych – już ten wpływ masz).
✔️ Lokalizacja serwera DNS ma znaczenie, jasne jest, że DNS z USA będzie się dłużej łączyć do Polski. - Używaj cache.
✔️ Większości z nas wydaje się, że cache zmniejsza czas ładowania się strony. I tak jest. Ale również potrafi fajnie zmniejszyć czas TTFB, bo osadza pliki statyczne na serwerze, dzięki czemu następuje szybszy odbiór w omawianym procesie. - Korzystaj z CDN
✔️ to takie miejsce, gdzie składujesz swoje media. A po co? Bo CND będzie serwować użytkownikom obrazy z bliższej im lokalizacji. Zatem, jeśli odbiorcami Twojej strony, są ludzie z całego świata, to to może naprawdę przynieść efekt, bo lokalizacja ma znaczenie. - Zadbaj o odpowiednią lokalizację DNS.
✔️ Wiadomo, że jeśli Twoi użytkownicy są w Polsce, a DNS w USA, to połączenie potrwa dłużej, niż gdyby wszystko zostało w naszym kraju. - Zoptymalizuj stronę
✔️ Jeśli treść ładuje się dynamicznie, z bazy danych, zadbaj o optymalne jej wykorzystanie. Odpowiednio zaprojektowana baza danych pozwala uniknąć redundancji danych, nadmiarowej konwersji typów, a w połączeniu z dobrze zaprojektowanymi indeksami pozwala w znaczący sposób skrócić czas wykonywania zapytań, co bezpośrednio przekłada się na czas ładowania strony. Tutaj trzeba przede wszystkim sprawdzić, jaki procent całego procesu zabiera baza danych. Wtedy będzie wiadomo, czy trzeba się zajmować jej optymalizacją.
✔️ Zadbaj o dobry certyfikat SSL. Pamiętaj, że w szyfrowanym połączeniu dwie strony odgrywają rolę – serwer szyfruje, a klient (przeglądarka) odkodowuje. Wystarczy wyszukać „SSL slows down site”, żeby dostać dziesiątki wyników z żalami ludzi, że po instalacji SSL-a, ich strona znacznie zwolniła. Tutaj trzeba pracować nad tym, by ten „handshake” następował szybciej. Ale niestety nie za bardzo możemy cokolwiek z tym zrobić.
✔️ Nie bez znaczenia jest też optymalizacja CMS-a, którego używasz. Tutaj można dużo nabroić. Idealnie byłoby nie mieć zbyt wielu elementów znacznie opóźniających uzyskanie odpowiedzi od serwera.
✔️ Elementy, które nie muszą się ładować od razu, załaduj później (asynchronicznie), typu ikonki społecznościowe, bo one mogą mocno opóźnić TTFB.
Podsumowując
Jedni uważają, że TTFB i to, jakoby był on czynnikiem rankingowym w Google, to mit, bo przecież Google patrzy na dobro użytkownika, a nie jakieś łączenie się serwera z przeglądarką, inni wierzą, że warto o to dbać, bo ma realny wpływ na SEO. Prawda jest taka, że bez względu na to, czy jest to ranking factor czy nie, to dobrze, by ten czas był jak najkrótszy, bo wszyscy na tym skorzystają.
0 komentarzy