
Single page application e la SEO
Indice
Le Single Page Application non vanno di pari passo con la SEO? Ni. Si possono sviluppare buone applicazioni SPA strizzando l’occhio ai motori di ricerca. Attenti ai dettagli, però.
Single page application e SEO: la quadratura del cerchio
In un precedente articolo spiegavamo cosa sono le Single Page Application e in quali casi si rivelano particolarmente utili. Da un punto di vista “tecnico” una Single Page Application non è altro che un singolo file html che richiama uno o più file Javascript: in parole povere è un’applicazione che carica dinamicamente il proprio contenuto generato in Javascript.
Perché spieghiamo questa cosa? Perché a Google piace l’HTML, un po’ meno il Javascript. Quindi? Niente SEO per le Single Page Application?
Non proprio, una soluzione si può trovare. Per capire come, andiamo a vedere cosa succede quando Google incontra sul suo cammino una pagina sviluppata come Single Page Application.
Il Talk al Google I/O 2018 e le nuove policy d’indicizzazione per le SPA
La fonte forse più interessante per capire i processi e le policy di Google sono i risultati emersi nel corso dell’ultimo Google I/= Talk, di cui riportiamo il video qui sotto.
https://www.youtube.com/embed/PFwUbgvpdaQ
Dove viene ben illustrato come “Deliver search-friendly JavaScript-powered websites: learn about the best practices to build and deploy indexable sites and web-applications with JavaScript frameworks” , ovvero: in effetti è possibile realizzare pagine dinamiche scritte come Single WEB Application indicizzabili da Google.
Ma torniamo al momento topico in cui il buon Googlebot arriva sulla nostra “fresca di deploy” SPA .
- La prima cosa che non gli passa inosservata è che la pagina è generata con Javascript.
- Immediatamente dopo, può decidere di elaborarla oppure no. Nel caso in cui decida per il sì, la elabora e ok. Ma come vedremo è ancora – per il momento – uno sforzo non indifferente da parte del Googlebot, quindi in molti casi preferisce non elaborare il rendering, e rimandarlo ad un momento successivo.
Elaborare bundle spesso anche complessi di risorse javascript è molto impegnativo: il Google bot deve fermarsi per spacchettare e renderizzare il codice.
E questo su ogni singola SPA in rete.
Un lavoro immane, su cui il bot temporeggia e rimanda finché non ha abbastanza risorse per farlo.
Come dargli torto, direte voi.
Certo, si stanno facendo sforzi per migliorare l’ottimizzazione del codice e sicuramente il futuro ci riserva buone sorprese e -si spera- felici semplificazioni, ma per il momento non siamo ancora a quel punto. Ma attenzione, è già emersa una nota importante: non è che Google non indicizza del tutto le SPA, solo non lo fa in tempo reale. Dopo un po’ di tempo, circa una settimana, ci ripassa e se ha maggiore risorse a disposizione, la renderizza.
“Una settimana ci può anche stare dai”, direte voi.
Oibò, dipende.
Se è una pagina informativa può anche non essere un fattore determinante, ma se invece è una pagina di un prodotto in offerta sul mio eCommerce? Un articolo sponsor sul mio blog? Potrebbe essere un po’ più fastidioso. In ogni caso, si tratta non di SE ma di QUANDO.
Nel frattempo che si fa? Su cosa possiamo lavorare – ad oggi – per aiutare l’indicizzazione delle mie SPA?
Il canonical tag: evitiamo il dinamico (e pure il redirect) come la peste.
Su questo preciso aspetto Google è stato molto chiaro finora: il famoso tag canonical, che definisce la URL unica, ovvero l’indirizzo unico di un progetto web non viene letto da Google se generato dinamicamente.
Ma non è che -come sopra- non lo legge subito, però poi ripassa e ci riprova: non lo legge proprio! Un vero no-no-no.
Come risolvere il problema?
Usare un Dynamic rendering: in questo caso è lo sviluppatore stesso a fornire a Google il contenuto, tramite server side rendering e dopo aver verificato che la richiesta di elaborazione viene da un crawler di Google, e non da una normale ricerca via browser.
E’ la soluzione Google indica come preferenziale per siti molto grandi, ricchi di pagine e di contenuti aggiornati frequentemente. Attenzione: al di là delle dimensioni del sito e della frequenza di aggiornamento, il differenziale è rappresentato da quanto ci tieni alla SEO.
Se la risposta sul progetto è “tanto”, allora varrà la pena mettere in piedi il Dynamic Rendering e non lasciare che sia la Single Page Application a gestire dinamicamente canonical tag e redirect.
In caso contrario, può darsi benissimo che i Googlebot non abbiano problemi a renderizzare i tuoi contenuti, se solo non hai problemi di tempo.
Sei una PMI o hai bisogno di sviluppare una strategia SEO? La nostra agenzia SEO di Milano ti offre tutto ciò di cui hai bisogno: SEO, progetta e sviluppo eccomerce, applicazioni WEB, Mobile e IoT: software gestionali scalabili, disegnati sulle concrete esigenze della tua azienda.