Question

J'utilise un simple contrôleur pour modifier ma vue de réactjs montré comme ceci:

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

Dans la vue, je déclenche un rappel:

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

Ma question est que ce rappel a-t-il lieu à un point qui profiterait au référencement, c'est-à-dire le titre de la page et les changements canoniques, sont-ils mis à jour de manière à déclencher le bot de Google pour se rendre compte que le titre et le canonical ont changé?

Je envisage également d'utiliser Cortex pour gérer mes données, sera-t-il un meilleur?Pire?Pas de différence?En ce qui concerne la perception de SEO / Google Bot de la "page", il regarde?

Était-ce utile?

La solution

Google conserve généralement les détails lorsqu'ils exécutent JavaScript sous Wraps; Considérez cette citation à partir de 2010:

"Pour un moment, nous balançions à JavaScript et nous recherchions des liens. Google a obtenu plus intelligemment JavaScript et peut exécuter du JavaScript. Je ne dirais pas que nous exécutons tout JavaScript, donc il y a donc des conditions dans que nous n'exécutons pas javascript. Certaines choses javascript communes couramment connues telles que Google Analytics, que vous ne voudrez même pas exécuter car vous ne voudriez pas essayer de générer des visites fantômes de Googlebot dans votre analyse Google Analytics ".

Dans le grand, je supposerais simplement que Google (et certainement quelques autres moteurs de recherche) n'exécutera pas mon JavaScript, ce qui signifie que les modifications que je fournis à la page ne seront pas ramassées. Bien sûr, vous pouvez simplement l'essayer, et Voir ce que Google voit à savoir si cela a fonctionné.

Dans les deux cas, réagir a la possibilité de rendre Sur le côté serveur et connectez-vous transparemment ses manipulateurs d'événements sur le client, vous donnant la capacité de gérer facilement. (Vous devrez peut-être ré-jigger un certain code pour le faire courir dans les deux contextes.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top