Google preferuje strony, które ładują się szybciej (ponieważ tego chce użytkownik).
Jeśli posiadasz serwer dedykowany lub serwer prywatny (VPS), wtedy do obsługi twojej strony potrzebujesz serwer WWW.
Istnieje kilka sposobów jak można przyśpieszyć stronę na poziomie serwera.
- Kompresja ruchu (gzip)
Mniej danych do pobrania – szybsze załadowanie się strony - HTTP /2
Przeglądarka użytkownika będzie mogła pobierać wiele plików jednocześnie. Lepiej wypełniając łącze. - Pamięć podreczna (serwer)
Niektóre pliki nie zmieniają się zbyt często. Serwer może je zapamiętać i udostępnić bardzo szybko. - Pamięć podreczna (przeglądarka)
Można zasugerować przegladarce użytkownika, że niektóre pliki warto zapamiętać na dłużej.
Dzięki czemu gdy użytkownik odwiedzi stronę ponownie. To nie będzie musiał pobierać niektórych plików (zostały zapamiętane przez przeglądarkę wcześniej). - Load balancer
Można przygotować kilka serwerów generujących treść.
W takiej sytuacji, użytkownicy będą obsługiwani nie tylko w jednym 'okienku’, przez co będzie szybiciej.
Kompresja
Apache
Zazwyczaj kompresja jest włączona, gdyby nie była, prawdopodobnie można ja właczyć w pliku ’.htaccess’
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE font/otf
AddOutputFilterByType DEFLATE font/ttf
Gdy na serwerze nie ma zainstalowanego modułu mod_deflate, można użyc kompresji gzip
<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>
<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>
Ngnix
gzip on;
gzip_disable „msie6”;gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_min_length 256;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/vnd.ms-fontobject application/x-font-ttf font/opentype image/svg+xml image/x-icon;
. . .
Pamięć podręczna przeglądarki
Apache
.htaccess
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault „access plus 1 month”
ExpiresByType text/html „access plus 1 seconds”
ExpiresByType image/gif „access plus 30 days”
ExpiresByType image/jpeg „access plus 30 days”
ExpiresByType image/png „access plus 30 days”
ExpiresByType image/jpg „access plus 30 days”
ExpiresByType image/svg+xml „access plus 30 days”
ExpiresByType text/css „access plus 30 days”
ExpiresByType text/javascript „access plus 30 days”
ExpiresByType application/javascript „access plus 30 days”
ExpiresByType application/x-javascript „access plus 30 days”
ExpiresByType text/xml „access plus 60 minutes”
</IfModule>
Ngnix
Pamięć podręczna (po stronie serwera)
…
Load balancer