Pregunta

Estoy usando un controlador simple para cambiar mi vista Reactjs que se muestra como esta:

    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>
        );
    }

En la vista, desencadenar una devolución de llamada:

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

Mi pregunta es, ¿se produce esta devolución de llamada en un punto que beneficiaría a SEO, es decir, el título de la página y los cambios canónicos, se actualizan de una manera que desencadena el BOT de Google para darse cuenta de que el título y el canónico han cambiado?

También estoy considerando usar Cortex para administrar mis datos, ¿será eso un mejor?¿Peor?¿No es diferente?En cuanto a la percepción de SEO / Google Bot de la "Página", ¿está viendo?

¿Fue útil?

Solución

Google generalmente mantiene los detalles sobre cuándo ejecutan JavaScript bajo envolturas; Considere esta cita de 2010:

"Por un tiempo, estábamos escaneando dentro de JavaScript, y estábamos buscando enlaces. Google se ha vuelto más inteligente sobre JavaScript y puede ejecutar un poco de JavaScript. No diría que ejecutamos todos los JavaScript, por lo que hay algunas condiciones en que no ejecutamos JavaScript. Ciertamente, hay algunas cosas comunes, conocidas en JavaScript como Google Analytics, que ni siquiera querrías ejecutar porque no querría intentar generar visitas fantasmas de GoogleBot en su Analytics de Google. ".

En lo grande, simplemente asumiría que Google (y ciertamente algunos otros motores de búsqueda) no ejecutará mi JavaScript, lo que significa que no se cobrará ningún cambio en la página. Por supuesto, simplemente puede intentarlo, y ver lo que google ve a saber si funcionó.

En cualquier caso, reacciona tiene la capacidad de renderizar > En el lado del servidor y conectan transpareamente sus manipuladores de eventos en el cliente, lo que le brinda la capacidad de manejar ambos fácilmente. (Es posible que deba volver a jerigerar algún código para que se ejecute en ambos contextos).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top