Pergunta

Estou usando um controlador simples para alterar minha visualização ReactJS mostrada assim:

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

Na visualização eu aciono um retorno de chamada:

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

Minha pergunta é: esse retorno de chamada ocorre em um ponto que beneficiaria o SEO, ou seja, o título da página e as alterações canônicas são atualizados de uma forma que aciona o bot do Google para perceber que o título e o canônico foram alterados?

Também estou pensando em usar Córtex para gerenciar meus dados, isso será melhor?Pior?Não é diferente?Quanto à percepção do bot SEO/Google sobre a "página" que ele está visualizando?

Foi útil?

Solução

O Google geralmente mantém em segredo os detalhes sobre quando executa o JavaScript;considere esta citação de 2010:

"Por um tempo, estávamos escaneando em JavaScript e procurando links.O Google ficou mais inteligente em relação ao JavaScript e pode executar algum JavaScript.Eu não diria que executamos todo o JavaScript, então existem algumas condições em que não executamos o JavaScript.Certamente existem algumas coisas JavaScript comuns e conhecidas, como o Google Analytics, que você nem gostaria de executar porque não gostaria de tentar gerar visitas fantasmas do Googlebot para o seu Google Analytics".

Em geral, eu simplesmente presumiria que o Google (e certamente alguns outros mecanismos de pesquisa) não executará meu JavaScript, o que significa que quaisquer alterações que eu fizer na página não serão detectadas.Claro, você pode simplesmente tentar e veja o que o Google vê para saber se funcionou.

Em ambos os casos, o React tem a capacidade de renderizar no lado do servidor e conectar de forma transparente seus manipuladores de eventos ao cliente, proporcionando a você a capacidade de lidar com ambos facilmente.(Talvez seja necessário reorganizar algum código para fazê-lo funcionar em ambos os contextos.)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top