Tutti noi amiamo WordPress. Molti di noi qui da Kinsta contribuiscono in vario modo alla comunità di WordPress al di fuori del proprio lavoro. Io stesso gestisco un blog di marketing in cui condivido soluzioni uniche per portare il vostro sito WordPress al livello superiore. Potreste pensare che, dal momento che lavoro per una società di hosting, i miei siti funzionino magicamente e che non abbiano mai problemi. Tuttavia, WordPress non è tutto rose e fiori. Ci saranno sempre problemi occasionali ed è per questo che è così importante avere gli strumenti e il team di supporto pronti al loro posto per quando ne avrete bisogno.

Oggi illustrerò il modo in cui ho eseguito il debug di uno strano (probabilmente un caso su un milione) problema di prestazioni di WordPress sul mio sito, e presenterò strumenti e strategie che mi sono venuti in aiuto. Sebbene un caso come questo è quasi unico, il flusso di lavoro per la risoluzione dei problemi rimane lo stesso. Quindi comprenderò in questo post quello che mi piace chiamare “Cose che Succedono: Una Checklist per le Prestazioni di WP“. Potete utilizzare questa checklist la prossima volta che vi troverete in ​​difficoltà con problemi di prestazioni di WordPress che sono al di fuori della vostra comprensione o del vostro controllo.

Checklist per le Prestazioni di WordPress (quando succede qualcosa)

Questa checklist delle prestazioni è un po’ diversa. Invece di mostrare come è possibile velocizzare il vostro sito WordPress, si concentra su cosa fare la prossima volta che vi trovate nei guai. E ci sarà una prossima volta, ci potete contare. Potreste essere stati contattati dal vostro host, che vi ha detto che il vostro sito sta sovraccaricando il server. Oppure potreste aver notato che qualcosa sta trascinando giù il sito, come le sempre più frequenti richieste admin-ajax.php.

Prima di alzare le mani e arrendervi, seguite le indicazioni di questo post. C’è una risposta per tutto, ma trovarla a volte può essere difficile.

  1. Implementate il Monitoraggio delle Prestazioni
  2. Sfruttate Strumenti come New Relic
  3. Utilizzate gli Ambienti Staging – Ci Sono per una Ragione
  4. Investite in un Servizio di Hosting WordPress Premium
  5. Le Aziende di Manutenzione Forniscono un Aiuto Supplementare
  6. Non Abbiate Timore ad Affrontare il Problema con uno Sviluppatore
  7. Potete Sempre Assumere uno Sviluppatore WP

1. Implementate il Monitoraggio delle Prestazioni e dei Tempi di Attività

Non si è mai abbastanza pronti quando capita uno di questi tipi di problemi. Una delle cose migliori che potete fare per essere certi di scoprire cosa non va nel vostro sito prima che lo facciano i vostri visitatori è implementare il monitoraggio dei tempi di attività e delle prestazioni. Infatti, questo è proprio il modo in cui ho scoperto originariamente che il mio sito aveva problemi. Kinsta controlla ogni 2 minuti lo stato di tutti i siti web che ospitiamo. Questo si traduce in 720 controlli al giorno per ogni sito ospitato.

Monitoraggio del tempo di attività
Monitoraggio del tempo di attività

Infatti, grazie a New Relic Synthetics e APM, abbiamo anche la possibilità, se necessario, di monitorare diversi data point relativi ai siti WordPress:

  • Tempo di caricamento dell’utente finale
  • Tempo di caricamento app server
  • Tasso di errore
  • Throughput
  • Tasso di successo (tempo di attività)
  • Punteggi Apdex
Punteggi Apdex
Punteggi Apdex

Questo riguarda sia il tempo di attività che il monitoraggio delle prestazioni. Se un sito va giù, il team Kinsta lo saprà prima di voi. Se un sito che monitoriamo supera le soglie accettabili delle prestazioni interne, vi contatteremo e vi aiuteremo a risolvere il problema.

A volte ciò potrebbe rendere necessario coinvolgere uno sviluppatore di terze parti, specialmente se all’origine c’è del codice errato. Oppure potrebbe significare che è necessario un aumento di PHP worker. Infine, potrebbe anche essere qualcosa di facilmente risolvibile.

Vogliamo che voi abbiate successo e avere un sito veloce per i vostri visitatori è sempre una delle nostre massime priorità. Se riusciamo a individuare il plugin A che fa andare giù il vostro sito, vogliamo che lo sappiate subito. Il più delle volte, osserviamo molti problemi di prestazioni derivanti da cattivi aggiornamenti dei plugin, codice mal progettato o che non supporta l’ultima versione di PHP, ecc.

Strumenti per il Monitoraggio delle Prestazioni e dei Tempi di Attività

Se non utilizzate Kinsta, ci sono comunque molti strumenti di terze parti che potete utilizzare per essere avvisati sia sui tempi di attività che sulle prestazioni. Ecco alcuni strumenti cui dare un’occhiata:

2. Sfruttate Strumenti come New Relic (Sono Inestimabili)

Strumenti come New Relic non sono solo ottimi per il monitoraggio di tempi di attività e prestazioni, ma sono preziosi per risolvere il problema da cui origina il calo di prestazioni. Kinsta offre un’integrazione di New Relic che consente agli utenti di utilizzare facilmente le proprie chiavi di licenza. Anche se questo servizio non è compreso nel nostro hosting, il nostro team di supporto può abilitarlo dalla nostra parte e aiutarvi ad individuare i problemi, se necessario. Oppure potete provare a utilizzare un plugin gratuito come Query Monitor.

Attivare il monitoraggio di New Relic in MyKinsta.
Attivare il monitoraggio di New Relic in MyKinsta.

Ci sono un paio di posti in New Relic che possono aiutarvi a restringere rapidamente il campo dei problemi di prestazioni. Il primo è la scheda “WordPress → Plugins and themes”. Sul mio sito woorkup, che oggi utilizzo come case study, ho visto subito che il problema che avevo nasceva molto probabilmente dal plugin “gp-premium” in esecuzione. Ma perché? Bene, ci arriveremo.

Temi e plugin in New Relic
Temi e plugin in New Relic

Nota: la sezione di New Relic di cui sopra non è sempre precisa al 100%. In questo caso, però, lo è stata. Ma è sempre consigliabile quanto meno controllare prima lì.

Quindi ho avuto la sensazione che ci fosse qualcosa nel mio plugin “gp-premium” (che è un’estensione del mio tema WordPress GeneratePress). Sapendo questo, sono passato alla scheda “Transactions”. Possiamo immediatamente vedere che il numero di transazioni admin-ajax.php è salito alle stelle!

Problema admin-ajax.php New Relic
Problema admin-ajax.php New Relic

Per quelli che non usano New Relic, ricordatevi di dare un’occhiata al nostro fantastico tutorial su come diagnosticare un eccessivo utilizzo di admin-ajax sul vostro sito WordPress. È anche possibile vedere le richieste costanti di admin-ajax nei miei log di WordPress.

Richieste admin ajax nel registro degli errori di WordPress
Richieste admin ajax nel registro degli errori di WordPress

Il passo successivo è stato scavare nelle transazioni admin-ajax.php e analizzare le query del database che impiegavano più tempo. Potete far clic sulle schede “Trace Details” o “Database queries”.

Traccia delle query del database
Traccia delle query del database

A volte la query stessa può indicare dove si trova il problema, ma in questo caso non mi è stata di aiuto. Però ho notato subito qualcosa: la cartella /gp-premium/. Ricordate che abbiamo visto sopra che “gp-premium” era presumibilmente il plugin che stava causando il problema. Di solito, se lo vedete sia nella sezione plugin/temi che nella sezione trace, avete una buona probabilità di essere sulla buona strada.

…s/gp-premium/library/image-processing-queue/includes/wp-background-process.php
Stack trace
Stack trace

Il passo successivo è stato andare su Google! Sì, Google può essere davvero utile in casi come questo.

Così ho cercato “Image Processing Queue” (“Coda di elaborazione delle immagini”). Il primo risultato è stato il plugin Image Processing Queue di Delicious Brain. Leggendo la descrizione ho potuto constatare che questo è stato utilizzato per l’elaborazione delle immagini per i temi di WordPress. In sostanza le dimensioni dell’immagine vengono generate silenziosamente in background utilizzando WP Queue.

Image Processing Queue
Image Processing Queue

Una veloce ricerca di questo stesso termine insieme a “GeneratePress” mi ha portato al loro recente change log. Tada! Sì, il ridimensionatore delle immagini è stato modificato di recente in GeneratePress da Aqua Resizer a Image Processing Queue. E questo proprio quando avevo aggiornato il mio tema, e non era cambiato molto altro nel mio sito. Ecco perché i changelog sono così importanti! Possono essere come briciole di pane da seguire per la risoluzione dei problemi.

Aggiornamento GP
Aggiornamento GP

La cosa sconcertante era che avevo altri siti con GeneratePress e non avevano questo problema. Quindi, anche se forse avevo una buona idea di quello che succedeva, non ero sicuro al 100%. Quindi il passo successivo è stato quello di sfruttare il mio ambiente di staging per avviare il debug di WordPress.

3. Utilizzate gli Ambienti Staging Senza Toccare il Sito in Produzione

Ad essere onesti, non so cosa farei senza ambienti di prova. Sono estremamente utili quando bisogna risolvere problemi come questi. Fortunatamente, Kinsta dispone di ambienti di staging facilmente utilizzabili. Così sono saltato nella dashboard di MyKinsta e ho fatto una copia di staging del mio sito di produzione. Se il vostro host WordPress non offre ambienti di staging, potresti anche provare un plugin come WP Staging, anche se non è così facile da usare.

Creare un ambiente di staging WordPress.
Creare un ambiente di staging WordPress.

Dopo aver installato e avviato il mio sito di sviluppo, la prima cosa che ho fatto è stata disabilitare tutti i plugin. Ho notato che molti tendono a ignorare questo semplice passaggio. È un po’ come pensare che il riavvio del computer non possa risolvere un problema. Una volta lavoravo nel supporto informatico, quindi non entreremo in questo ginepraio. 🐰

L’importante è sempre disabilitare per prima cosa tutti i plugin. Questo è di gran lunga uno dei modi più semplici per restringere il campo d’indagine. Basta andare su Plugin, selezionarli tutti e cliccare su “Disattiva” dalle azioni di gruppo.

Disattivare tutti i plugin di WordPress
Disattivare tutti i plugin di WordPress

Dopo aver disabilitato i plugin, i tempi di risposta in New Relic sono immediatamente tornati alla normalità. Quindi ho avuto conferma che era un plugin a causare il problema. E, dato che avevo già provato alcune soluzioni per risolvere il problema, di cui sopra, ho avuto di nuovo la sensazione che la causa fosse il plugin “gp-premium”.

Tempi di risposta normali
Tempi di risposta normali

Così ho riattivato il plugin “gp-premium” per verificare di poter replicare il problema. E sì, i tempi di caricamento (tempi di transazione web) sono tornati immediatamente ai livelli precedenti.

Di nuovo lunghi tempi di risposta
Di nuovo lunghi tempi di risposta

Ottimo! Quindi posso confermare al 100% che era il plugin. Ma ora cosa si fa? Questo non mi aiuta a risolvere il problema. Bene, dato che sembrava provenire dalla coda di elaborazione delle immagini, l’idea successiva era di controllare i CRON job e i dati transient. Ogni volta che avete code di qualsiasi tipo, controllate sempre questi dati. Consiglio sempre di controllarli. Anche i dati caricati automaticamente sono un altro colpevole frequente.

Lettura consigliata: Come correggere l’errore di programmazione mancante WordPress (2 metodi).

I Transient costituiscono una semplice modalità di caching di WordPress, con i tempi di scadenza associati. Per visualizzare rapidamente i miei dati transient, ho installato il plugin gratuito Transients Manager di Pippin Williamson. Al momento dell’esecuzione, qualcosa di nuovo ha catturato immediatamente la mia attenzione. Si trattava di un oggetto transitorio chiamato wp_image_processing_queue_process_lock. Inoltre, è stato impostato per scadere dopo 1 minuto, e ne sono apparsi di nuovi.

Transients
Transients

Sebbene il plugin stesso offra un modo per eliminare i dati transient, questo non ha funzionato. Quindi era il momento di guardare nel database. Così sono entrato in phpmyadmin. I dati transient sono memorizzati nella tabella wp_options, quindi ho fatto una rapida query dalla scheda “Cerca” per trovare le righe che contenevano quel nome di opzione.

SELECT * FROM wp_options WHERE option_name LIKE '%wp_image_processing%'

Urrà! È venuto fuori che ho avevo 695.846 righe con %wp_image_processing%. 😲

wp_image_processing
wp_image_processing

È qui che lo staging diventa davvero utile. Dato che non c’erano rischi nel cancellare o effettuare delle prove, ho proceduto a eliminare manualmente tutte le righe che contenevano questo dato. Ho eseguito la seguente query dalla scheda “SQL” per eliminare tutte le righe contenenti questo nome opzione:

DELETE FROM wp_options WHERE option_name LIKE '%wp_image_processing%'
Elimina righe
Elimina righe

E, come per magia, immediatamente dopo aver eliminato le righe, i tempi di risposta del mio sito sono tornati alla normalità. 👏

Problema di prestazioni di WordPress risolto
Problema di prestazioni di WordPress risolto

Quindi, come ho detto prima, questo non è accaduto negli altri miei siti su cui utilizzavo GeneratePress. Inoltre non avevano quelle righe transient aggiuntive nel database. Forse, dopo l’aggiornamento qualcosa non è stato cancellato come previsto. Quindi sembra che non sia colpa dello sviluppatore, ma piuttosto semplicemente una corruzione della cache transient.

Questo potrebbe essere successo con qualsiasi tema plugin. GeneratePress è, infatti, uno dei miei prodotti WordPress preferiti di sempre. Ancora spaventati? Bene, sappiate che queste sono alcune delle gioie che accompagnano WordPress!

Se non avete compreso nulla di quanto detto sopra, beh allora vi consiglio vivamente di leggere i passaggi seguenti che riguardano la risoluzione di problemi come questi.

4. Investite in un Servizio di Hosting WordPress Premium

Problemi come quello descritto sopra sono esattamente il motivo per cui è importante investire in un servizio di host WordPress gestito come Kinsta.

A differenza di ciò che qualcuno potrebbe farvi credere, non esiste architettura o host che possa risolvere magicamente codice errato. Anche se il mio sito woorkup è ospitato su Kinsta, piccole cose come un cattivo aggiornamento di un plugin, o, in questo caso, dati transient corrotti, possono mettere in ginocchio WordPress! Questo è uno dei motivi per cui abbiamo backup automatici, ambienti di staging e un’integrazione New Relic. Queste funzionalità e strumenti software vi aiutano a proteggere il vostro sito e a risolvere rapidamente i problemi.

Assistenza WordPress
Assistenza WordPress

Questo è anche l’ambito in cui il nostro team di supporto esperto di Kinsta può aiutarvi se vi imbattete in problemi come quello pazzo descritto sopra. Il nostro team di supporto si occupa ogni giorno di problemi unici e complessi come questi. E anche se non siamo in grado di correggere il codice errato per voi, di solito possiamo aiutarvi e indirizzarti nella giusta direzione. Ciò potrebbe comportare una procedura come abilitare New Relic, lasciarlo funzionare per un po’ e lasciare che il nostro team diventi per un momento il detective di WordPress.

Se non siete clienti Kinsta, vi consigliamo, qualunque sia l’host che scegliete, di assicurarvi che disponga di un team di supporto di prim’ordine! Noi prendiamo questo servizio così sul serio che assumiamo meno dell’1% dei candidati che fanno domanda per entrare nel nostro team.

E, naturalmente, per quanto riguarda le prestazioni, è importante che l’infrastruttura non si pieghi sotto il carico. Ecco alcuni modi in cui Kinsta aiuta a mantenere veloce il vostro sito in modo che non abbiate problemi di prestazioni:

  • Utilizziamo contenitori software LXC isolati, che significa che non c’è condivisione di risorse.
  • Permettiamo ai clienti di scegliere tra 20 data center in tutto il mondo, senza alcun costo aggiuntivo. Ciò diminuisce la latenza indipendentemente da dove ti trovi.
  • Utilizziamo il network di livello premium (non di livello standard) di Google Cloud Platform. Questo assicura velocità di rete fulminee.
  • Implementiamo sempre le ultime e migliori versioni di PHP. Siamo stati il primo host gestito a implementare PHP 7.2, che 3 volte più veloce di PHP 5.6. Offriamo anche PHP 7.3, che è in media il 9% più veloce di PHP 7.2. Ora è disponibile anche PHP 8.1. Date un’occhiata ai nostri benchmark PHP.
  • Abbiamo abbinato il tutto con un provider CDN che è stato sviluppato da zero con particolare attenzione alle alte prestazioni.

Puoi verificare tutte le altre caratteristiche che rendono Kinsta differente.

5. Avete Bisogno di Maggiore Aiuto? Ci Sono Aziende di Manutenzione per Questo

Negli ultimi cinque anni è emerso un nuovo tipo di azienda nel settore: le aziende di manutenzione di WordPress. Queste aziende offrono servizi leggermente diversi rispetto a quelli di Kinsta e in alcuni casi possono prendere in carico tutte le noiose attività legate a WordPress. Ecco alcuni esempi:

  • Impostazione della Google Search Console
  • Integrazione di Google Analytics
  • Report settimanali sul ranking delle keyword + rapporti di analisi
  • App di analisi dei social media
  • Ottimizzazione mobile + tablet
  • Sviluppo di plugin
  • Modifiche illimitate (è vero, alcuni si occupano anche di piccoli compiti come l’aggiornamento del logo, l’aggiunta di un prodotto WooCommerce, ecc.)

E sì, molti di loro offrono monitoraggio giornaliero o settimanale dei tempi di attività e delle prestazioni. Di seguito sono elencate alcune aziende di manutenzione di WordPress cui dovreste dare un’occhiata. Nota: prendiamo molto sul serio le nostre raccomandazioni!

SkyrocketWP

SkyrocketWP offre servizi di manutenzione, supporto e soluzioni di hosting WordPress creati per gestire WordPress per coloro che preferiscono concentrarsi sulla propria attività. Abbiamo anche proposto un case study che li riguarda. Ricordatevi di darci un’occhiata!

SkyrocketWP
SkyrocketWP

WP-Tonic

WP-Tonic offre un vero servizio di supporto e manutenzione per i proprietari di attività aziendali. Non avete tempo per risolvere i vostri problemi con WordPress? Lasciate che WP-Tonic se ne occupi al vostro posto. Questi gestiscono anche un popolare podcast in cui intervistano i proprietari e gli sviluppatori di aziende che utilizzano WordPress per avere in anteprima le notizie su ciò che sta accadendo nel settore. Leggete anche la nostra intervista al loro fondatore.

WP-Tonic
WP-Tonic

WP Buffs

WP Buffs offre piani di assistenza WordPress per proprietari di siti web seri e partner di agenzie white-label. Come dicono sulla loro pagina: “Salutate il vostr nuovo CTO WP!” Per di più, WP Buffs è orgogliosamente ospitato da Kinsta.

WP Buffs
WP Buffs

6. Non Abbiate Timore ad Affrontare il Problema con lo Sviluppatore

Dopo aver ristretto le cause del problema di prestazioni di WordPress, non temiate di affrontare il problema con lo sviluppatore! Molte volte gli sviluppatori sono più che felici di aiutarvi e, in effetti, vogliono sapere cosa crea problemi, in modo che possano implementare le correzioni per tutti.

Ho contattato Tom, lo sviluppatore di GeneratePress e lui ha risposto subito, come fa sempre. Stiamo sviscerando il problema della corruzione dei dati transient, ma, come potete vedere, in realtà Tom sta cambiando il loro metodo di accodamento delle immagini (anche per questo motivo). Pertanto, il vostro feedback di utenti può certamente aiutare gli sviluppatori a prendere decisioni di alto livello su a cosa potrebbe essere meglio implementare o modificare nei loro temi e nei loro plugin.

Risposta da uno sviluppatore di WordPress
Risposta da uno sviluppatore di WordPress

7. Potete Sempre Assumere uno Sviluppatore WordPress

Se la cosa volgono al peggio, potete sempre assumere uno sviluppatore WordPress. Forse avete scoperto che il plugin che state utilizzando contiene codice errato e il creatore non può o non vuole correggerlo. O forse avete bisogno di altre ottimizzazioni delle prestazioni, oltre lo scopo del nostro team di supporto di Kinsta.

La cosa più difficile, quando si assume uno sviluppatore, è trovare qualcuno che abbia una buona reputazione e sia bravo in quello che fa.

Consigliamo vivamente Codeable perché sono allineati alla procedura di selezione che utilizziamo qui da Kinsta per il nostro team. I loro sviluppatori sono tutti pre-selezionati prima di poter unirsi al loro al servizio, con lo staff di Codeable che esamina personalmente portfolio e CV. Hanno oltre 25.000 clienti e solo 300 esperti di WordPress. Solo il 2% dei candidati è assunto. Vogliono solo il meglio del meglio, cosa che, come clienti, può farvi risparmiare un sacco di tempo e frustrazione.

WordPress Developer jobs presso Codeable
WordPress Developer jobs presso Codeable

Si dedicano a fornire servizi per WordPress in outsourcing e si concentrano totalmente nel far incontrare i loro clienti con sviluppatori di talento. Abbiamo avuto il piacere di intervistare Per Esbensen, il CEO di Codeable, ed è piacevole vedere la loro dedizione alla creazione di una community di sviluppatori di WordPress.

Dobbiamo anche inviare un apprezzamento personale a Mike Andreasen, uno sviluppatore di Codeable a tempo pieno specializzato in ottimizzazione delle prestazioni, che ha aiutato molti clienti di Kinsta con installazioni complesse a portare il loro sito ad un livello superiore.

Audit sulle performance con Mike
Audit sulle performance con Mike

Risorse Aggiuntive

Probabilmente qui da Kinsta siamo un po’ più ossessionati dalla maggior parte degli host per quel che riguarda le prestazioni. Per questo motivo vi segnaliamo alcune risorse aggiuntive che abbiamo scritto per aiutarvi a risolvere alcuni dei vostri problemi legati al debug delle prestazioni di WordPress:

Riepilogo

Che siate esperti o meno, ci sono sempre soluzioni a vostra disposizione quando si tratta di risolvere i problemi di prestazioni di WordPress. La prima ovvia raccomandazione è quella di mettersi in una posizione di vantaggio scegliendo un fornitore di servizi di hosting che disponga non solo di un’infrastruttura solida come la roccia, ma anche di un team di supporto di livello mondiale per sostenerla. L’ultima cosa che vorreste che vi capiti è che il vostro sito WordPress vada giù o inizi ad andar piano semplicemente perché non sapevate cosa fare.

Sfruttate gli ottimi strumenti disponibili, come New Relic, che vi faranno risparmiare tempo durante il debug. E quando arriva il momento, ricordate che ci sono un sacco di sviluppatori WordPress di talento nella community. Non abbiate paura di assumerne uno.

Avete avuto problemi di prestazioni che vi hanno fatto venir voglia di gettare la spugna? Se vi è capitato, raccontateci la vostra esperienza nei commenti qui sotto!

Brian Jackson

Brian ha una grande passione per WordPress, lo usa da più di dieci anni e sviluppa anche un paio di plugin premium. Brian ama i blog, i film e le escursioni. Entra in contatto con Brian su Twitter.