AJAX, acronimo di Asynchronous JavaScript and XML, è un insieme di tecniche di programmazione per lo sviluppo di applicazioni web interattive. Sebbene il nome includa XML, oggi il formato più utilizzato per lo scambio dei dati è il JSON, più leggero e semplice da manipolare. L’idea alla base di AJAX è consentire a una pagina web di comunicare con il server in modo asincrono, cioè senza ricaricare l’intera pagina e senza interrompere l’interazione dell’utente.

Dal punto di vista SEO, AJAX ha rappresentato per anni una sfida, perché i motori di ricerca potevano avere difficoltà a vedere contenuti caricati dinamicamente. Oggi i principali motori sono in grado di eseguire il codice lato client e di indicizzare gran parte dei contenuti generati via AJAX, ma restano importanti alcune accortezze tecniche per garantire indicizzabilità e usabilità.

Le tecnologie che compongono AJAX

AJAX non è una tecnologia singola, ma una combinazione di tecnologie standard del web. Comprende l’oggetto XMLHttpRequest, o la più moderna API Fetch, per inviare e ricevere dati in background; JavaScript per gestire la logica lato client; il DOM per aggiornare dinamicamente parti della pagina; e un formato di scambio dati, come JSON, XML o testo semplice. Il termine fu coniato nel 2005 da Jesse James Garrett per descrivere un modello di progettazione già utilizzato da applicazioni come Gmail e Google Maps.

Il vantaggio principale di AJAX è la reattività: l’utente può interagire con la pagina mentre i dati vengono caricati in background. Questo riduce i tempi di attesa percepiti e il consumo di banda, perché vengono trasferite solo le informazioni necessarie invece dell’intera pagina HTML.

Le fasi di una chiamata AJAX

Il flusso di una chiamata AJAX segue alcuni passaggi fondamentali. Un evento nell’interfaccia, come un clic o la digitazione in un campo di ricerca, attiva una funzione lato client. Questa funzione crea una richiesta HTTP verso un URL del server, specificando il metodo, i parametri e il formato atteso. Il server elabora la richiesta e restituisce una risposta, spesso in JSON. A quel punto il codice lato client interpreta la risposta e aggiorna il DOM, modificando solo la porzione di pagina interessata.

Richieste sincrone e asincrone: cosa cambia

Nelle prime implementazioni era possibile inviare richieste sincrone, che bloccavano l’interfaccia fino alla risposta del server. Oggi le richieste sincrone sono deprecate nei browser moderni, perché peggiorano l’esperienza utente. Le richieste asincrone, basate su callback, promesse o async/await, sono lo standard e permettono alla pagina di restare reattiva.

Codici di stato, timeout e messaggi all’utente

Ogni richiesta attraversa diversi stati, dalla fase iniziale alla ricezione completa dei dati. Una corretta gestione degli errori prevede di verificare il codice di stato HTTP, gestire timeout e fornire messaggi chiari all’utente. Ignorare questi aspetti porta a interfacce che sembrano bloccate o che mostrano dati incompleti.

Contenuti dinamici e indicizzazione: cosa sapere

Per molto tempo AJAX è stato considerato nemico della SEO, perché i contenuti caricati dopo il rendering iniziale potevano non essere visti dai crawler. Google ha progressivamente migliorato la capacità di eseguire JavaScript e di indicizzare contenuti dinamici, ma ciò non elimina la necessità di una progettazione attenta. La regola pratica è garantire che ogni contenuto importante abbia un URL univoco, che il server risponda anche senza esecuzione di codice lato client quando possibile, e che i collegamenti siano reali elementi con attributo href, non semplici gestori di eventi.

Un approccio consigliato è il rendering lato server o la prerenderizzazione per le pagine che devono essere indicizzate. In questo modo il crawler riceve HTML completo, mentre l’utente può comunque beneficiare degli aggiornamenti dinamici via AJAX. Anche la scelta del formato dati conta: JSON è preferibile per leggerezza e facilità di parsing, mentre XML resta in uso in alcuni contesti enterprise.

AJAX, navigazione classica e applicazioni a pagina singola

La tabella seguente mette a confronto AJAX con il modello classico di navigazione a pagine complete e con le moderne applicazioni a pagina singola.

Aspetto AJAX Navigazione tradizionale Applicazione a pagina singola
Ricaricamento pagina Parziale Completo Assente dopo il primo caricamento
Velocità percepita Alta Bassa Molto alta
Indicizzabilità Buona con accorgimenti Ottima Richiede rendering lato server
Complessità di sviluppo Media Bassa Alta
Consumo di banda Ridotto Elevato Variabile

URL univoci e HTML completo per i contenuti caricati via AJAX

Integrare AJAX in un sito ottimizzato per i motori di ricerca richiede disciplina progettuale. Di seguito una sequenza di passaggi operativi da seguire.

  1. Definisci URL univoci e permanenti per ogni contenuto che deve essere indicizzato, anche se caricato via AJAX.
  2. Assicurati che il server restituisca HTML completo per quegli URL, indipendentemente dall’esecuzione di codice lato client.
  3. Utilizza collegamenti HTML reali con attributo href per la navigazione principale, evitando di affidarti solo a gestori di eventi.
  4. Implementa il rendering lato server o la prerenderizzazione per le pagine critiche.
  5. Includi metadati come titolo, descrizione e dati strutturati nel markup iniziale della pagina.
  6. Testa il sito con strumenti che simulano l’esecuzione di JavaScript, come l’ispezione URL nella Search Console.
  7. Monitora i log del server e i report di copertura per individuare contenuti non indicizzati.
  8. Prevedi un fallback senza JavaScript per le funzionalità essenziali, così da non escludere utenti e crawler.

Domande frequenti su AJAX

AJAX è un linguaggio di programmazione?

No, AJAX non è un linguaggio né una tecnologia singola. È un insieme di tecniche che combinano JavaScript, il DOM, l’oggetto XMLHttpRequest o l’API Fetch e un formato di scambio dati.

AJAX danneggia la SEO?

Non necessariamente. Se usato con URL univoci, rendering lato server e collegamenti reali, AJAX è compatibile con una buona indicizzazione. I problemi sorgono quando i contenuti sono accessibili solo dopo interazioni complesse.

Qual è la differenza tra AJAX e una applicazione a pagina singola?

AJAX è una tecnica di comunicazione asincrona, mentre un’applicazione a pagina singola è un’architettura che spesso utilizza AJAX per caricare viste e dati senza cambiare pagina. Non sono sinonimi.

Serve ancora XML con AJAX?

No, XML è solo uno dei formati possibili. Oggi JSON è il formato più diffuso per la sua semplicità e leggerezza, anche se XML resta utilizzato in alcuni sistemi.

AJAX funziona senza JavaScript?

No, AJAX richiede l’esecuzione di codice lato client. Per questo è importante prevedere un fallback che consenta l’accesso ai contenuti anche quando JavaScript non è disponibile.

Come si testa l’indicizzabilità di contenuti caricati via AJAX?

Si utilizzano strumenti che eseguono JavaScript e mostrano l’HTML renderizzato, come l’ispezione URL di Google Search Console. È utile anche confrontare il contenuto visibile all’utente con quello restituito al crawler.

Dal glossario al progettoIl tuo sito è costruito per essere veloce, sicuro e ottimizzato per la ricerca?Lo sviluppo di siti web ed e-commerce tiene conto dall’inizio di velocità, sicurezza e SEO, con realizzazioni WordPress su misura.Scopri la creazione di siti web

Voci correlate:

JavaScript SEO SEO per siti JavaScript JavaScript Rendering lato client (CSR)