Sto lavorando su un sito Web backbone.jes/marionette che deve essere ottimizzato per i motori di ricerca (SEO). Stiamo usando il backend RESTful java/spring e un server web Apache 2.2. Attualmente sto implementando pushstate nella nostra app mentre è ancora nelle fasi iniziali.SEO per l'app Backbone.js su server Apache - phantom.js e node.js?
Quello che mi è venuta in mente finora come una soluzione:
- Per gli utenti normali con i browser Javascript abilitato, utilizzare un'implementazione dorsale lato client puramente.
- Utilizza il mod_rewrite di Apache per instradare tutti i percorsi alla nostra pagina index.html con il percorso intatto in modo tale che backbone.js restituisca la pagina corretta e l'url mantenga la sua forma. Ho funzionato molto correttamente (meno un bug).
- Sniff per bot/crawler che utilizza il file httpd.conf di Apache e crea regole di riscrittura per reindirizzare i bot sul nostro server node.js.
- Genera html/contenuto utilizzando phantomjs e restituiscilo al webcrawler.
Non abbiamo bisogno che il sito sia completamente funzionante per il bot, ma deve restituire il contenuto corretto. Utilizziamo i modelli di baffi, ma vogliamo un sito DRY e riteniamo che qualsiasi tipo di rendering di template java diventi incredibilmente disordinato man mano che il sito cresce. Speriamo di avere questo sito in giro per molti anni e non stiamo cercando di collegarci a una tonnellata di librerie di terze parti (almeno non molte di più di quelle già in nostro possesso).
Qualcuno ha qualche esperienza o consiglio su questo argomento? Dalla mia ricerca, altri sono un po 'diffidenti, in particolare this related question. Sono un po 'preoccupato se i bot "cliccano" in javascript o eseguono richieste di ottenere. Pensieri e consigli?
Grazie mille in anticipo.
Qual è esattamente la domanda qui? –
Questo suona come un buon piano di attacco? Lo hai già fatto prima, e se sì, hai avuto problemi? Suggeriresti una soluzione alternativa che si adatti ai nostri vincoli? I principali crawler cliccano e ricevono la richiesta e questo pone un problema? Mi scuso se questa è una domanda più generale però. – Andrew