Domanda

Sto usando un semplice controller per cambiare la mia visualizzazione reactjs visualizzata come questa:

    getInitialState: function() {
        return {view: null};
    },
    setViewFromHash: function () {
        var that = this;
        var address = window.location.hash;
        if(address != "")
        {
            address = address.substring(1);
            require(["jsx!" + address], function (View) {
                that.setState({view: View});
            });
        }
        else
        {
            require(["jsx!Home"], function (View) {
                that.setState({view: View});
            });            
        }
    },
    componentWillMount: function () {
        var that = this;
        window.onhashchange = function () {
            that.setViewFromHash();
        };
        this.setViewFromHash();
    },
    onTitleUpdate: function(title, canonical) {
        document.title = title + titleDefault;
        $('link[rel=canonical]').prop('href', canonicalDefault + canonical);
    },
    render: function () {
        var viewToLoad = null;
        if (this.state.view === null) {
            viewToLoad = "Loading...";
        } else {
            viewToLoad = this.state.view({ onTitleUpdate: this.onTitleUpdate });
        }

        return (
            <article>
                {viewToLoad}
            </article>
        );
    }
.

Nella vista che attivo un callback:

var Home = React.createClass({
    render: function () {
        this.props.onTitleUpdate("Home", "");
...
.

La mia domanda è, questa callback si verifica in un punto che avrebbe attivato SEO, cioè il titolo della pagina e le modifiche canoniche, sono aggiornati in un modo che attiva il Google Bot per rendersi conto che il titolo e il canonico sono cambiati?

.

Sto anche considerando di usare Cortex per la gestione dei miei dati, sarà meglio?Peggio?Nessuna differenza?Per quanto riguarda la percezione di SEO / Google Bot della "Pagina" che sta visualizzando?

È stato utile?

Soluzione

Google Generalmente mantiene i dettagli su quando eseguono JavaScript in Wraps; Considera questa citazione dal 2010:

.

"Per un po ', stavamo scansivando all'interno di JavaScript, e stavamo cercando link. Google ha ottenuto più intelligente su JavaScript e può eseguire alcuni JavaScript. Non direi che eseguiamo tutti i JavaScript, quindi ci sono alcune condizioni in che non eseguiamo JavaScript. Certamente ci sono alcune cose JavaScript comuni e ben note come Google Analytics, che non vorresti nemmeno eseguire perché non vorresti provare a generare visite Phantom da GoogleBot nella tua Google Analytics ".

In grande, presumerei semplicemente che Google (e certamente alcuni altri motori di ricerca) non eseguirà il mio JavaScript, il che significa che tutte le modifiche che faccio alla pagina non vengano raccolte. Naturalmente, puoi semplicemente provarlo, e Vedi cosa vede Google a sapere se ha funzionato.

In entrambi i casi, react ha la possibilità di rendere Sul lato server e collegano in modo trasparente i suoi gestori di eventi sul client, dandoti la possibilità di gestire entrambi facilmente. (Potrebbe essere necessario ri-jigger del codice per farlo funzionare in entrambi i contesti.)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top