7 Luglio 2023

L’Inefficienza dei Contatori di Visite su WordPress Basati su PHP e MySQL e le alternative Efficaci

Evitare di rallentare o addirittura far crashare un sito WordPress, utilizzando funzionalità di contatori visite inefficienti e non performanti.

WordPress, riconosciuta come la piattaforma di gestione dei contenuti (CMS) più diffusa a livello globale, vanta una vasta gamma di plugin progettati per consentire agli utenti di monitorare e quantificare il flusso di visite ai loro siti web. Nonostante la diffusione di tali strumenti, numerosi plugin sono realizzati utilizzando PHP e MySQL, due tecnologie che, nonostante la loro ubiquità, possono presentare un insieme di sfide in termini di efficienza e prestazioni, soprattutto in presenza di un considerevole traffico di rete.

Inefficienze dei Contatori di Visite basati su PHP e MySQL

I contatori di visite su WordPress basati su PHP e MySQL funzionano attraverso la generazione di centinaia o migliaia di thread PHP al secondo per gestire le visite e immagazzinano queste informazioni nel database attraverso operazioni di INSERT o UPDATE. Quando il traffico diventa intenso, questo processo può diventare problematico, determinando un sovraccarico del server dovuto alla continua creazione di nuovi thread PHP e alla congestione del database.

PHP e MySQL, inoltre, non sono celebri per le loro prestazioni in termini di velocità ed efficienza. Rispetto a tecnologie più moderne e agili, come Go e NodeJS, o a database NoSQL, come REDIS o MongoDB, PHP e MySQL possono risultare meno performanti, soprattutto quando si tratta di gestire un gran numero di richieste contemporanee.

Il problema con il plugin Post Views Counter

Tra i vari plugin WordPress utilizzati per monitorare il traffico del sito, Post Views Counter è uno che si distingue, purtroppo, per le sue limitazioni piuttosto che per i suoi punti di forza. Progettato per siti con basso volume di traffico, il suo funzionamento diventa problematico e inefficiente quando deve gestire un numero elevato di visitatori.

Post Views Counter è basato su PHP e MySQL, due tecnologie che, come abbiamo visto, possono soffrire in termini di efficienza e velocità quando si trovano di fronte a un alto traffico. Di conseguenza, l’uso di questo plugin può portare a un sovraccarico del server e a un rallentamento del database, a causa delle continue operazioni di INSERT e UPDATE necessarie per registrare le visite.

Post Views Counter

Peggiorando la situazione, Post Views Counter non interagisce in modo efficace con le cache lato server come Varnish Cache o NGINX FastCGI Cache. Infatti, tende a bypassare queste cache, provocando l’esecuzione di codice PHP e l’accesso al database per ogni visita, un comportamento che ulterioramente riduce la velocità del sito e le sue prestazioni generali.

Data la sua progettazione e le sue limitazioni, Post Views Counter risulta essere un plugin inadatto per siti con alto volume di traffico. Se utilizzato in tali contesti, dovrebbe essere immediatamente rimosso e sostituito con un’alternativa più performante e adatta, come i servizi esterni Google Analytics, Matomo o Jetpack. Questi non solo evitano i problemi associati all’uso di PHP e MySQL, ma offrono anche una serie di funzionalità aggiuntive per un monitoraggio più dettagliato e utile del traffico del sito.

Interazione con le Cache Lato Server e Problemi Conseguenti

Un ulteriore problema emergente riguarda l’interazione di molti plugin di conteggio visite su WordPress con le cache lato server, come Varnish Cache o NGINX FastCGI Cache. Questi plugin tendono a bypassare tali cache attraverso chiamate AJAX a ‘admin-ajax.php’, vanificando quindi l’efficacia di un sistema di cache di pagina estremamente efficiente come Varnish. Di conseguenza, ogni singola visita potrebbe comportare l’esecuzione di codice PHP e l’accesso al database, con un notevole impatto negativo sulla velocità del sito e sulle sue prestazioni complessive.

Il file admin-ajax.php è una componente cruciale di WordPress, spesso utilizzata per gestire le richieste AJAX. Prima di addentrarci nel suo funzionamento specifico, è utile fare un passo indietro e capire cosa sia una chiamata AJAX.

AJAX, acronimo di Asynchronous JavaScript and XML, è una tecnica di sviluppo web che consente di effettuare modifiche a una pagina web senza doverla ricaricare completamente. Utilizzando AJAX, un sito web può inviare e ricevere dati da un server in background (asincronamente), consentendo di aggiornare parti della pagina senza interrompere l’esperienza dell’utente.

Nel contesto di WordPress, admin-ajax.php è il file che gestisce queste chiamate AJAX. Quando un plugin o un tema di WordPress ha bisogno di eseguire una funzione AJAX, la richiesta viene inviata a admin-ajax.php, che gestisce la richiesta e invia una risposta. Questo processo può essere usato per una serie di funzioni, come il caricamento di nuovi post, il conteggio delle visite, l’aggiornamento dei commenti, e molte altre.

Nonostante la sua utilità, admin-ajax.php può presentare dei problemi. Uno dei più notevoli è che le chiamate AJAX bypassano di default le cache lato server come Varnish Cache o NGINX FastCGI Cache. Questo significa che ogni richiesta AJAX esegue codice PHP e accede al database, anche se i dati richiesti non sono cambiati. Questo comportamento può causare un sovraccarico del server e un rallentamento del sito, specialmente con un alto volume di traffico o con un gran numero di richieste AJAX.

Inoltre, il fatto che admin-ajax.php sia utilizzato sia per le richieste sul lato front-end che per quelle sul lato back-end può portare a problemi di prestazioni, dal momento che tutte le richieste AJAX devono passare attraverso lo stesso punto di innesco, indipendentemente dalla loro complessità o dal loro scopo.

In conclusione, pur essendo un componente fondamentale di WordPress, admin-ajax.php ha delle limitazioni che possono avere un impatto significativo sulle prestazioni del sito. È importante tenerne conto quando si sviluppa o si sceglie un plugin o un tema per WordPress, e cercare soluzioni che minimizzino l’uso di chiamate AJAX o che le gestiscano in modo più efficiente.

Effetti Collaterali Indesiderati

Le problematiche legate all’utilizzo di plugin di conteggio delle visite basati su PHP e MySQL possono innescare una serie di effetti collaterali indesiderati, tra cui l’aumento del carico sul server, crash del server e conseguenti interruzioni del servizio, per non parlare dell’inevitabile impatto negativo sulla user experience e sulla visibilità del sito sui motori di ricerca. Queste conseguenze possono essere esacerbate in situazioni di traffico web elevato, con la necessità di gestire un numero massiccio di richieste contemporaneamente.

Uno dei problemi più comuni in questa situazione è l’incremento del carico sul server. Con un numero crescente di richieste da gestire, PHP e MySQL possono trovarsi sotto pressione, dovendo lavorare più duramente per gestire il flusso di dati. Questo può portare a un eccessivo consumo di risorse del server, rendendo l’intero sistema più lento e potenzialmente instabile.

502 bad gateway nginx

In alcuni casi, il sovraccarico del server può portare a un errore di tipo 500, un codice di stato HTTP che indica un errore generale del server. In particolare, se si utilizza PHP-FPM (FastCGI Process Manager) per gestire le richieste PHP, la saturazione dei pool FPM PHP può causare un errore 500. Questo errore è generalmente un segnale che il server sta lottando per gestire il carico di lavoro attuale.

Anche un crash del server è una possibile conseguenza di queste problematiche. In circostanze estreme, l’alto carico di lavoro può portare il server a fermarsi completamente, causando un downtime del sito. Questo non solo interrompe l’accesso al sito, ma può avere anche ripercussioni sulla reputazione del sito stesso e sulla fiducia degli utenti.

Alternative ai Contatori di Visite basati su PHP e MySQL

Un possibile rimedio a questi problemi consiste nell’evitare l’uso di plugin che operano secondo le modalità sopra descritte. Una funzionalità comunemente impiegata a livello di tema è la funzione ‘post_views_count()’. Questa funzione registra ogni visita a un post specifico e aggiorna un contatore nel database. Nonostante possa sembrare utile, contribuisce ad aumentare il carico sul server e il database.

Una strategia più efficiente sarebbe quella di affidarsi a servizi esterni come Google Analytics, Matomo o Jetpack. Tali servizi gestiscono il conteggio delle visite su server separati, riducendo così il carico sul server del sito web.

Il Potenziale di Jetpack

Jetpack, uno dei più rinomati servizi esterni per la gestione e il monitoraggio dei siti WordPress, si distingue per la sua capacità di gestire un enorme volume di traffico, raggiungendo il picco di centinaia di migliaia di visitatori al secondo senza gravare sul server che ospita il sito. Ma oltre a questa sorprendente capacità di gestione del traffico, Jetpack vanta anche un’ampia gamma di funzionalità che permettono un monitoraggio dettagliato e preciso delle visite, rendendolo uno strumento estremamente utile per l’analisi delle tendenze e dei comportamenti degli utenti.

Funzionalità del Contatore di Visite di Jetpack

La funzionalità di conteggio delle visite di Jetpack non si limita a fornire un semplice numero totale di visite. Al contrario, offre una serie di statistiche dettagliate, fornendo un quadro completo del traffico del sito e delle sue tendenze.

Jetpack permette di visualizzare le statistiche giornaliere, settimanali, mensili ed annuali. Questo consente di monitorare facilmente le tendenze del traffico nel tempo e di identificare i periodi di maggior affluenza o le possibili diminuzioni di visite. Queste informazioni possono essere utilissime per ottimizzare le strategie di contenuto o di marketing, per esempio scegliendo il momento migliore per pubblicare nuovi post o lanciare nuove campagne.

Ma Jetpack va oltre, offrendo la possibilità di analizzare anche le visite ai singoli post. Questo significa che si può avere un’immagine precisa di quali contenuti stanno andando meglio, quali attraggono più visitatori e quali invece potrebbero necessitare di miglioramenti. Questa funzionalità permette di capire quali temi o argomenti sono più popolari tra i visitatori, consentendo di adattare la strategia di contenuto in base alle preferenze del pubblico.

Inoltre, Jetpack offre una visione geografica delle visite, consentendo di vedere da quali parti del mondo provengono i visitatori. Questo può essere particolarmente utile per targettizzare i contenuti o le campagne di marketing verso specifici mercati geografici.

Statistiche JetPack Contatore visite

Conclusione

I contatori di visite basati su PHP e MySQL, pur essendo comuni in WordPress, possono causare una serie di problemi, soprattutto in presenza di un traffico web elevato. L’affidamento a servizi esterni come Google Analytics, Matomo o Jetpack può non solo risolvere questi problemi, ma può anche fornire una serie di funzionalità aggiuntive che migliorano l’efficienza, le prestazioni e la gestione generale del sito web. Per garantire un sito web WordPress fluido, veloce e in grado di gestire efficacemente il traffico, è fondamentale fare le scelte giuste in termini di strumenti e tecnologie.

Hai dei dubbi? Non sai da dove iniziare? Contattaci !

Abbiamo tutte le risposte alle tue domande per aiutarti nella giusta scelta.

Chatta con noi

Chatta direttamente con il nostro supporto prevendita.

0256569681

Contattaci telefonicamente negli orari d’ufficio 9:30 – 19:30

Contattaci online

Apri una richiesta direttamente nell’area dei contatti.

INFORMAZIONI

Managed Server S.r.l. è un player italiano di riferimento nel fornire soluzioni avanzate di sistemistica GNU/Linux orientate all’alta performance. Con un modello di sottoscrizione dai costi contenuti e prevedibili, ci assicuriamo che i nostri clienti abbiano accesso a tecnologie avanzate nel campo dell’hosting, server dedicati e servizi cloud. Oltre a questo, offriamo consulenza sistemistica su sistemi Linux e manutenzione specializzata in DBMS, IT Security, Cloud e molto altro. Ci distinguiamo per l’expertise in hosting di primari CMS Open Source come WordPress, WooCommerce, Drupal, Prestashop, Joomla, OpenCart e Magento, affiancato da un servizio di supporto e consulenza di alto livello adatto per la Pubblica Amministrazione, PMI, ed aziende di qualsiasi dimensione.

Red Hat, Inc. detiene i diritti su Red Hat®, RHEL®, RedHat Linux®, e CentOS®; AlmaLinux™ è un marchio di AlmaLinux OS Foundation; Rocky Linux® è un marchio registrato di Rocky Linux Foundation; SUSE® è un marchio registrato di SUSE LLC; Canonical Ltd. detiene i diritti su Ubuntu®; Software in the Public Interest, Inc. detiene i diritti su Debian®; Linus Torvalds detiene i diritti su Linux®; FreeBSD® è un marchio registrato di The FreeBSD Foundation; NetBSD® è un marchio registrato di The NetBSD Foundation; OpenBSD® è un marchio registrato di Theo de Raadt. Oracle Corporation detiene i diritti su Oracle®, MySQL®, e MyRocks®; Percona® è un marchio registrato di Percona LLC; MariaDB® è un marchio registrato di MariaDB Corporation Ab; REDIS® è un marchio registrato di Redis Labs Ltd. F5 Networks, Inc. detiene i diritti su NGINX® e NGINX Plus®; Varnish® è un marchio registrato di Varnish Software AB. Adobe Inc. detiene i diritti su Magento®; PrestaShop® è un marchio registrato di PrestaShop SA; OpenCart® è un marchio registrato di OpenCart Limited. Automattic Inc. detiene i diritti su WordPress®, WooCommerce®, e JetPack®; Open Source Matters, Inc. detiene i diritti su Joomla®; Dries Buytaert detiene i diritti su Drupal®. Amazon Web Services, Inc. detiene i diritti su AWS®; Google LLC detiene i diritti su Google Cloud™ e Chrome™; Facebook, Inc. detiene i diritti su Facebook®; Microsoft Corporation detiene i diritti su Microsoft®, Azure®, e Internet Explorer®; Mozilla Foundation detiene i diritti su Firefox®. Apache® è un marchio registrato di The Apache Software Foundation; PHP® è un marchio registrato del PHP Group. CloudFlare® è un marchio registrato di Cloudflare, Inc.; NETSCOUT® è un marchio registrato di NETSCOUT Systems Inc.; ElasticSearch®, LogStash®, e Kibana® sono marchi registrati di Elastic N.V. Questo sito non è affiliato, sponsorizzato, o altrimenti associato a nessuna delle entità sopra menzionate e non rappresenta nessuna di queste entità in alcun modo. Tutti i diritti sui marchi e sui nomi di prodotto menzionati sono di proprietà dei rispettivi detentori di copyright. Ogni altro marchio citato appartiene ai propri registranti. MANAGED SERVER® è un marchio registrato a livello Europeo da MANAGED SERVER SRL Via Enzo Ferrari, 9 62012 Civitanova Marche (MC) Italia.

SOLO UN ATTIMO !

Vorresti vedere come gira il tuo WooCommerce sui nostri sistemi senza dover migrare nulla ? 

Inserisci l'indirizzo del tuo sito WooCommerce e otterrai una dimostrazione navigabile, senza dover fare assolutamente nulla e completamente gratis.

No grazie, i miei clienti preferiscono il sito lento.
Torna in alto