• User Attivo

    Problemi con pagespeed

    Ciao ragazzi sto cercando di velocizzare l' esecuzione del mio sito, vi spiego immediatamente il problema:

    ho provato ad utilizzare tutti i tools online per verificare la velocità fino a qui tutto OK ma quando faccio la prova con pagespeed, mi dice che GZIP non è presente e che devo specificare una data per expires nella cache.

    Perchè gli altri tools ( gtmetrix, giorgiotave yslow etc etc ) mi dicono che è ok mentre quello di google mi dà l' errore?

    Il sito in questione è

    www . myfitness . es

    Grazie a tutti!

    Tipo:
    Altri


  • User Attivo

    Ragazzi nessuno mi puo spiegare il perchè?, non vi è mai capitato?

    ciao e grazie


  • User Attivo

    Dimenticavo una cosa importante GTmetrix mi stà dando come velocità la lettera A. secondo voi posso far fede solo a questo tools? oppure devo cercare anche di ottimizzarlo per pagespeed? ( ricordo che solo pagespeed mi dà questo problema!)

    Grazie


  • Admin

    Ciao sempreseo, se Pagespeed ti da quel valore potrebbe essere che tiene la pagina in cache.

    Prova a fargli passare un'altra pagina.

    In ogni caso il modo migliore per valutare la realtà è usare il pannello Network del Browser ispezionando i vari elementi.


  • User Attivo

    Il motivo per cui ti forniscono risultati diversi è che, semplicemente, effettuano il "prelievo" ed il parsing in maniera differente: se si tratta di cache e gzip sono due feature che attivi lato server. Prova a vedere come si debbano abilitare sul cms che stai usando e riprova: per comodità ti conviene postare al tool ogni volta una pagina differente per assicurarti di mandare una pagina nuova ogni volta. Inoltre tieni conto che questi tool fanno delle stime sulla velocità e non sempre sono affidabili rispetto al target di riferimento dei tuoi visitatori 🙂


  • Admin

    In realtà Speedoo e WebPageTest non fanno stime, ma sono esecuzioni reali di browser e sono test sintetici.

    GT Metrix e Pagespeed Insight invece non ritornano i dati del waterfall, ma offrono tips sulle best practice.
    Su questi elementi è corretto essere scettici perché le Best Practice non portano necessariamente ad un miglioramento del rendering time e di fatto cambiano spesso proprio a causa dei continui cambiamenti del comportamento dei Browser.
    Nelle WPO bisogna sperimentare, oltre ai tool che danno indicazioni, proprio perché i browser cambiano e sono diversi quindi non esiste un protocollo da seguire, ma solo tanta sperimentazione, testing e analisi continua.

    Inoltre è molto strano che per un tool sia attivo GZIP e Scadenza mentre in un altro no e per questo la prova del nove si fa utilizzando un browser avendo svuotato completamente la cache.


  • User Attivo

    Grazie a tutti, però non saprei proprio fare il test con il browser, potresti spiegarmi come farlo e cosa dovrei vedere?

    Grazie mille

    Dimenticavo quello che mi dice che Gzip non è attivo è Pagespeed Insight, mentre gli altri tra cuoi speedoo mi dice che gzip è attivo!

    Mi potreste dare una mano grazie a tutti


  • Admin

    Apri Chrome.
    Fai Ispeziona elemento e di si apre la finestra sotto.
    Clicchi sul tab "Network"
    Clicchi sulla richiesta e negli Headers Request vedi Accept-Encoding e sotto nel Response Content-Encoding

    image


  • User Attivo

    Grazie millllleeeeeeee!

    Io penso che Gzip sia abiliatato: se fosse cosi' perchp pagespeed di google lo lo vede?

    • Accept:
      text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8

    • **Accept-Encoding:
      **
      gzip,deflate,sdch

    • **Accept-Language:
      **
      it-IT,it;q=0.8,en-US;q=0.6,en;q=0.4

    • Connection:
      keep-alive

    ANche in response trovo

    • Content-Encoding:
      gzip

  • Admin

    Perché a volte questi strumenti scazzano 🙂


  • User Attivo

    Sono due giorni che sto cercando di capire il perchè!!!! jajajajaja

    Ancora una cosa per quanto riguarda la data di expires cache dove potrei vederla?

    Grazie


  • Admin

    Anche quella la vedi negli header.


  • User Attivo

    Grazie mille Juanin, l' opzione dell expires cache è questa?

    • Cache-Control:
      max-age=0

    In questo caso vuol dire che è disattivata?


  • Admin

    In realtà ci sono diversi casi, ma la sintesi è che in quel modo non hai praticamente impostato una cache a lungo termine.

    Giusto per rendere un po' più costruttiva e utile la discussione in modo da renderla appetibile anche per uso futuro sulla questione cerco di fornire informazioni e link sulla question.

    Principalmente ci sono 2 casi:

    1. Quando la risposta arriva dal Server
    2. Quando la risposta arriva dal Browser

    **1. Quando la risposta arriva dal Server
    **
    In teoria **Cache-Control: max-age=0 **dice che la risposta è vecchia e andrebbe rivalidata (ad esempio con l'If-Not-Modified) prima di usare una copia in cache.
    Invece il Cache-Control: no-cache indica che si deve rivalidare prima di usare la copia in cache. Su questo punto puoi valutare le specifiche w3c.

    C'è poi purtroppo anche un discorso variabile da Browser a Browser e che cambia nel tempo quindi entreremmo in un loop infinito di modifiche dei comportamenti e preferisco sorvolare anche perché non faccio il check da tempo con le varie versioni dei Browser.

    In teoria poi puoi anche forzare la rivalidazione del max-age=0 aggiungendo must-revalidate e dunque facendo diventare **Cache-Control: max-age=0, must-revalidate

    ****2. Quando la risposta arriva dal Browser
    **
    Qui puoi leggere sempre le specifiche w3c.
    In pratica Cache-Control: max-age=0 (anche detto "end-to-end revalidation") fa sì che basandosi su ad esempio il sopra citato If-Not-Modified vada a riverificare il contenuto rispetto al contenuto in cache, ma se viene ritornata una risposta 304 Not Modified allora verrà utilizzato il contenuto in cache.

    Nel caso di Cache-Control: no-cache (anche detto "end-to-end reload") non viene rivalidato il contenuto e il server non deve ritornare la copia in cache in fase di risposta.

    Sempre ripescando la documentazione da w3c possiamo trovare info su max-age e approfondire quello che ho provato a sintetizzare sopra.

    max-age
    When an intermediate cache is forced, by means of a max-age=0 directive, to revalidate its own cache entry, and the client has supplied its own validator in the request, the supplied validator might differ from the validator currently stored with the cache entry. In this case, the cache MAY use either validator in making its own request without affecting semantic transparency.

    However, the choice of validator might affect performance. The best approach is for the intermediate cache to use its own validator when making its request. If the server replies  with 304 (Not Modified), then the cache can return its now validated copy to the client with a 200 (OK) response. If the server replies with a new entity and cache validator,  however, the intermediate cache can compare the returned validator with the one provided in  the client's request, using the strong comparison function. If the client's validator is equal to the origin server's, then the intermediate cache simply returns 304 (Not Modified). Otherwise, it returns the new entity with a 200 (OK) response. 
    
    
    If a request includes the no-cache directive, it SHOULD NOT include min-fresh, max-stale, or max-age. 
    

    Un ulteriore approfondimento si trova anche su StackOverflow.


  • User Attivo

    Secondo te googlespeed non mi vede expires cache perchè ho impostato solo 30 giorni?


  • Admin

    Da quello che dici non lo vede perché non è impostato.
    Hai letto quello che ho scritto sopra?

    Come hai impostato gli expire headers? Mi incolli il tuo codice?


  • User Attivo

    ho utilizano un tools di helicon jet, perchè il sito è in asp.net. pero perchè tutti gli altri analizzatori di velocità mi riconoscono gli expires headers? come si posso abilitare in IIS 6?

    Grazie mille


  • Admin

    Ok, ma io ti ho chiesto come li hai implementati tu 🙂

    Mi incolli la procedura che hai seguito?
    Il tool dove agisce e come? A livello di sistema o a livello applicativo?

    In ogni caso per IIS6 la procedura non dovrebbe essere complessa ed è spiegata qui.


  • User Attivo

    Ciao agisce a livello di applicativo, il tutto viene implementato da un software, dove si specificano le date, la cache etc etc!

    Per questo non ho potuto inserirti il codice!

    Se vuoi te lo allego!

    Ciaoooooo


  • Admin

    Ok. Allora cerca di capire cosa fa il software che usi. È fondamentale conoscere il comportamento degli strumenti che si usano.