L'ottimizzazione per i motori di ricerca è uno degli argomenti più utilizzati contro le Web Apps JavaScript single page, l'ipotesi di base è che queste ultime sarebbero strutturalmente inadatte alla SEO e quindi supportabili attraverso canali alternativi per la promozione come redazionali, recensioni, content marketing, advertising e il sempre efficace passaparola.
Contro questa teoria si porrebbe una recente pubblicazione dell'O'Reilly author e sviluppatore JavaScript Alex MacCaw, secondo il quale non vi sarebbe alcun conflitto tra ottimizzazione e Web Apps JS se non quello creato da convinzioni errate; a questo scopo MacCaw cita il caso dell'applicazione Monocle (a sua volta riferita a contenuti su JavaScript) e il suo livello di indicizzazione all'interno delle pagine di Google.
L'autore stesso ammetterebbe che gli spider dell'engine di Mountain View non sarebbero in grado di rilevare applicazioni complesse senza un intervento da parte dello sviluppatore; quest'ultimo potrebbe però semplificare il proprio lavoro facendo ricorso alla cosiddetta "Ajax crawling specification", concepita per quelle Apps JavaScript che utilizzano hash fragment nelle URL e originariamente sfruttata per la definizione di pemalinks.
L'idea di MacCaw sarebbe in pratica quella di adottare la medesima specifica per le attuali Web Apps JavaScript utilizzando pushState di HTML5 al fine di manipolare l'oggetto history e di modificare le URL del browser; alla base di questa tecnica vi sarebbe l'inserimento del un meta tag "fragment" all'interno di ogni pagina destinata all'indicizzazione:
Il meta-tag richiederà allo spider di utilizzare la specifica per l'Ajax crawling, successivamente, attraverso il parametro "_escaped_fragment_" che potrà essere passato attraverso il proprio framework per lo sviluppo, sarà possibile mettere a disposizione dei motori di ricerca puro markup in alternativa a JavaScript; le pagine da spiderizzare potranno poi essere ottimizzate tramite l'inserimento di title, meta description, header ed eventuale contenuto.
La tecnica proposta potrebbe essere preferibile rispetto a quella basata sul rendering HTML attraverso "noscript" perché basata su un'apposita specifica per il crawling.
Via Alex MacCaw