Documentazione

Accorgiti di una pagina rotta anche quando si carica

Il monitoraggio dell'uptime di solito si pone una sola domanda: la pagina ha risposto? Molti dei problemi che fanno perdere a un sito visitatori e ordini non cambiano quella risposta: la pagina risponde comunque. La griglia dei prodotti del negozio appare vuota. Il CMS mostra il suo messaggio di errore dentro il layout normale. Un banner di manutenzione resta visibile dopo la manutenzione. Un rilascio porta in produzione la configurazione di staging, e con essa <meta name="robots" content="noindex">, e nelle settimane successive il sito sparisce dai risultati di ricerca.

Pingsured legge l'HTML e controlla gli elementi che indichi, con i selettori CSS che usi già negli strumenti per sviluppatori del browser.

Cosa controllare

Selettore CSSOperatoreValore
h1contieneSpring collection
.product-cardcompare almeno12
.pricecorrisponde a[0-9]
.maintenance-bannernon esiste
meta[name=robots][content*=noindex]non esiste

Un controllo può anche leggere un attributo al posto del testo: link[rel=canonical] con l'attributo href uguale all'indirizzo della pagina stessa rileva un tag canonical che punta altrove. Se una pagina indica quando è stata aggiornata l'ultima volta, per esempio con time[datetime] o con un meta tag article:modified_time, gli operatori sull'età ti dicono quando è passato più tempo del previsto.

Il testo viene confrontato con gli spazi normalizzati, quindi un a capo o un cambio di indentazione nel template non fa scattare nessun avviso. Se preferisci XPath ai selettori CSS, ogni controllo può usare l'uno o l'altro.

Perché controllare le tue pagine con Pingsured

  • Rileva ciò che vedrebbero i visitatori. Non solo «il server ha risposto», ma «la pagina ha i suoi prodotti, i suoi prezzi e nessun messaggio di errore».
  • Problemi di indicizzazione al controllo successivo, non alla scansione successiva. Un noindex o un tag canonical sbagliato viene rilevato entro l'intervallo di controllo — minuti, anziché le settimane che servono perché diventi visibile come traffico perso.
  • Selettori che conosci già, combinabili liberamente con il codice di stato, una ricerca di testo e i controlli sugli header; il ping risulta OK solo se passano tutti.
  • Ogni località per conto suo. Una pagina che un nodo CDN serve in una versione vecchia, o che una regola del firewall blocca in una regione, fallisce da quella località senza essere nascosta dalle altre.
  • Facile da escludere dalle statistiche. Ogni richiesta porta lo User-Agent Pingsured/1.0 e i nostri controlli partono da indirizzi pubblicati.

Limiti da tenere presenti

  • I controlli leggono l'HTML inviato dal tuo server; non eseguono JavaScript. Il contenuto che un'applicazione single-page genera nel browser non c'è, quindi non si può controllare: controlla piuttosto l'API da cui l'applicazione carica i dati.
  • Viene letto solo il primo MB della pagina. L'HTML che va oltre viene controllato fin dove arriva, quindi un elemento verso la fine di una pagina molto grande potrebbe non essere trovato.
  • I controlli inviano GET o HEAD e possono aggiungere header della richiesta e l'autenticazione HTTP basic. Le pagine protette da un modulo di login non si possono controllare.