Weitere JavaScript-SEO-Experimente mit dem Google Tag Manager

Lerne, wie du Titel-Tags, Meta-Beschreibungen, noindex, kanonische Tags und interne Links mit dem Google Tag Manager ändern kannst und wie Google mit diesen Änderungen umgeht.

Nach unserer kleinen JavaScript SEO Experiment mit Einrichten von hreflang mit Google Tag Manager, Wir haben uns entschlossen, weitere Tests durchzuführen, um zu analysieren, wie Google mit Änderungen umgeht, die mit dem Google Tag Manager an Websites mit JavaScript vorgenommen werden:

  • Erkennt Google Änderungen an Titel-Tags und Meta-Beschreibungen mit Google Tag Manager implementiert?
  • De-indexiert Google Seiten, die auf “noindex” mit Google Tag Manager?
  • Respektiert Google kanonische Tags mit Google Tag Manager hinzugefügt?
  • Indiziert Google auch Seiten, die nur über einen Link interne Links mit dem Google Tag Manager injiziert?
  • Indiziert Google auch URLs, die nur verlinkt über JSON-LD Markup mit Google Tag Manager implementiert?

Wenn du neugierig auf die Antworten auf diese Fragen bist und genau wissen willst, wie du das alles mit dem Google Tag Manager einrichtest, lies weiter.

TL;DR - Alle diese Tests haben gut funktioniert, aber einige der Änderungen haben sehr lange gebraucht, um in den Google-Ergebnissen angezeigt zu werden. Springe direkt zu den Schlussfolgerungen wenn du in Eile bist.

Direkter Zugang zu den verschiedenen Teilen des Tests:

Ersetzen von Titel-Tags und Meta-Beschreibungen mit Google Tag Manager

Der Titel-Tag und die Meta-Beschreibung der englischen Startseite unserer Unternehmenswebsite, https://www.searchviu.com/en/, sehen im HTML-Quelltext der Seite wie folgt aus:

title tag und meta description im html-Quelltext

Wir haben das folgende Skript in einem benutzerdefinierten HTML-Tag im Google Tag Manager verwendet, um den Titel-Tag und die Meta-Beschreibung zu ersetzen, so dass im gerenderten HTML ein anderer Text angezeigt wird:

Skript zum Ersetzen von Title Tag und Meta Description

Beachte, dass wir beim Titel-Tag nur die Großschreibung geändert haben, während wir bei der Meta-Beschreibung ein paar Wörter ersetzt haben.

Der ursprüngliche Titel-Tag und die Meta-Beschreibung werden immer noch im HTML-Quelldokument angezeigt, aber wenn du das gerenderte HTML mit den Entwicklertools von Chrome überprüfst, wirst du sehen, dass GTM sie durch die neue Version ersetzt, die wir definiert haben:

title tag und meta description in gerendertem html

Acht Tage, nachdem wir diese Änderung in GTM veröffentlicht hatten, zeigte Google den Titel-Tag und die Meta-Beschreibung, die wir mit GTM hinzugefügt hatten, anstelle der ursprünglichen Daten aus dem HTML-Quelldokument an und zeigt sie seitdem an:

Google Ergebnis für searchviu

Dieses Ergebnis hat uns nicht wirklich überrascht, denn wir hatten zuvor ein Experiment durchgeführt, das darauf hindeutete, dass Google verwendet das gerenderte HTML zu interpretieren hreflang und ignoriert das HTML-Quelldokument. Wir haben also das gleiche Verhalten für Titel-Tags und Meta-Beschreibungen erwartet.

Die Tatsache, dass die Änderungen erst nach acht Tagen sichtbar wurden, hat uns auch nicht überrascht, da Google Seiten weniger regelmäßig rendert als es sie crawlt. Für eine fundiertere Aussage über die Unterschiede zwischen der Crawling- und der Rendering-Häufigkeit wären weitere Untersuchungen erforderlich, daher ist dies nur eine Randnotiz.

Werfen wir nun einen Blick auf einige der schwierigeren Dinge! Nächster Halt: “noindex”.

De-Indexierung von Seiten mit “noindex”-Tags, die über den Google Tag Manager implementiert wurden

Beim Einrichten dieser Tests sind wir über ein paar URLs unserer Domain gestolpert, die wir nicht indiziert haben wollten:

Das folgende Skript, das in einem benutzerdefinierten HTML-Tag in GTM mit einem Trigger verwendet wird, der es auf den Seiten ausführt, die wir de-indexieren wollen, fügt den fraglichen Seiten ein “noindex”-Meta-Tag hinzu:

add-noindex-with-google-tag-manager

Und dann haben wir gewartet. Und warteten. Und warteten. Und verloren die Hoffnung. Google hat es einfach nicht gefunden.

An dieser Stelle muss ich zugeben, dass ich ein schlampiger Rechercheur bin. Ich kann dir nicht sagen, wie lange es gedauert hat. Irgendwo zwischen 6 Wochen und 3 Monaten. Aber eines Tages beschloss Google, die Seiten, die wir de-indexiert haben wollten, zu rendern und BOOM (alle fünf Seiten wurden erfolgreich de-indexiert):

Seiten erfolgreich de-indexiert

Hier ist die Suchanfrage, die ich im obigen Screenshot verwendet habe, falls du es selbst ausprobieren möchtest:

site:staging.searchviu.com/de/we-are-going-to-miss-you/ OR site:staging.searchviu.com/de/wir-werden-dich-vermissen/ OR site:staging.searchviu.com/de/author/ana-cidre/ OR site:staging.searchviu.com/de/thank-getting-contact/ OR site:staging.searchviu.com/de/embed/

Das hat auch gut funktioniert, aber es hat viel länger gedauert als die Änderungen am Title Tag und der Meta Description. Unsere Theorie ist derzeit, dass weniger wichtige Seiten noch seltener gerendert werden. Aber wie gesagt, wir brauchen noch mehr Untersuchungen über die Unterschiede zwischen Crawling- und Rendering-Häufigkeit, bevor wir solide Schlussfolgerungen zu diesem Thema ziehen können.

Mal sehen, ob das Gleiche mit kanonischen Tags funktioniert.

Hinzufügen von kanonischen Tags mit dem Google Tag Manager

Canonical-Tags sind knifflig, denn egal, wie du sie implementierst, Google entscheidet sich oft einfach Kanonische Tags ignorieren, wenn andere Signale mit ihnen in Konflikt stehen. Wir mussten also eine Möglichkeit für ein kanonisches Tag finden, bei der wir ziemlich sicher waren, dass Google sie nicht ignorieren würde.

Eine der wichtigsten Voraussetzungen für die korrekte Verwendung von kanonischen Tags ist, dass der gesamte Inhalt der Seite, die den kanonischen Tag hat, auf der Seite enthalten ist, auf die der kanonische Tag verweist. Aus diesem Grund haben wir uns entschieden, ein kanonisches Tag von meine Autorenseite zum Haupt-Blogseite, da der gesamte Inhalt der ersten Seite auf der zweiten Seite verfügbar ist.

Hier erfährst du, wie du das in GTM einrichtest:

Ein kanonisches Tag mit dem Google Tag Manager hinzufügen

Um es kurz zu machen: Das hat gut funktioniert, aber es hat genauso lange gedauert wie die “noindex”-Änderung.

Hier ist das Suchergebnis für die Suchanfrage “eoghan henn searchviu”, bevor wir den kanonischen Tag mit GTM hinzugefügt haben:

Und hier ist das aktuelle Ergebnis. Die Seite ist verschwunden (und in der Tat ist die Rangliste verloren gegangen - nur eine weitere interessante Randnotiz):

Google respektiert also kanonische Tags, die mit dem Google Tag Manager hinzugefügt wurden (wenn sie im richtigen Kontext verwendet werden).

Ich weiß, dass du hauptsächlich wegen der Informationen über mit JavaScript hinzugefügte Links hier bist, also schauen wir uns das jetzt mal an.

Eine Sache, auf die wir bei diesem Test besonders neugierig waren, war, ob Google interne Links crawlen würde, die nicht im HTML-Quelldokument zu finden sind, sondern mit JavaScript und dem Google Tag Manager hinzugefügt wurden. Also haben wir das folgende kleine Experiment gestartet.

Zunächst haben wir zwei identische Seiten auf unserer WordPress-Website erstellt, eine, auf die wir intern mit einem über GTM hinzugefügten Link verlinken würden, und eine andere, auf die wir nicht intern verlinken würden:

die Testseiten in Wordpress

Warum haben wir die zweite Seite eingerichtet? Wenn die erste Seite indexiert wird, müssen wir sicherstellen, dass dies auf den internen Link zurückzuführen ist, den wir eingefügt haben, und nicht auf etwas anderes. Wir haben dafür gesorgt, dass die Seite in keiner Sitemap auftaucht und dass es keine Pings oder andere Hintergrundmechanismen gibt, als wir sie veröffentlichten. Aber um auf Nummer sicher zu gehen, haben wir die zweite Seite als Kontrollseite angelegt. Das Testergebnis kann nur positiv ausfallen, wenn die erste Seite indiziert wird und die zweite Seite nicht.

Vielleicht bin ich doch keine so schlampige Forscherin...

Schauen wir uns also kurz an, wie wir das in GTM einrichten. Wir haben eine hübsche unwichtige Seite von unserer Website, suchte einen Link, auf den (hoffentlich) niemand jemals klicken würde und verwendete das folgende Skript in GTM, um die Ziel-URL des Links durch die URL der ersten unserer beiden Testseiten zu ersetzen:

einen internen Link im Google Tag Manager ersetzen

Hier ist das Ergebnis. Die Seite, die nur über einen mit GTM injizierten Link verlinkt wurde, wurde indiziert, die Kontrollseite hingegen nicht. Wie bei den vorherigen Änderungen dauerte es auch hier sehr lange, bis das Ergebnis sichtbar wurde (etwa zwei Monate):

Ergebnis des internen Link-Tests

Wenn du dich fragst, wie die -same as Teil in der obigen Suchanfrage zu finden, lies bitte den nächsten Teil des Artikels. Wir haben eine weitere Testseite erstellt, die wir nur über JSON-LD mit GTM verlinkt haben, um zu sehen, wie Google mit dieser Art von Situation umgeht.

Indiziert Google auch URLs, die nur in JSON-LD-Skripten enthalten sind, die mit dem Google Tag Manager hinzugefügt wurden?

Wenn du mich kennst, weißt du wahrscheinlich, dass ich sehr auf Implementierung strukturierter Daten (schema.org) im JSON-LD-Format mit Google Tag Manager. Außerdem hatte ich zuvor festgestellt, dass URLs von einer Domain, die in JSON-LD-Skripten auf einer anderen Domain enthalten waren, wurden in der Google Search Console als externe Links zur ersten Domain angezeigt. Google macht einige seltsame Dinge mit den Informationen, die es in strukturierten Daten findet, und ich wollte mehr wissen.

Wir beschlossen, eine weitere Testseite zu erstellen, wie sie im internen Link-Test oben beschrieben wurde, aber dieses Mal würden wir die URL nur in ein JSON-LD-Skript aufnehmen und nirgendwo sonst. So richtest du es im Google Tag Manager ein:

die json-ld-Test-Einrichtung im Google Tag Manager

Ich schätze, dass es zu diesem Zeitpunkt keine Überraschung ist, dass dies auch funktioniert hat. Google hat die Testseite, die nur über ein JSON-LD-Skript verlinkt war, auf der ersten Testseite indexiert:

JSON-LD-Skripte sind also eine weitere Datenquelle, die Google für die URL-Erkennung nutzt.

Schlussfolgerungen: Du kannst mit GTM alles hinzufügen, aber es kann eine Weile dauern, bis die Änderungen sichtbar werden.

Die Ergebnisse dieser Tests haben gezeigt, dass Google verarbeitet und verwendet Titel-Tags, Meta-Beschreibungen, “noindex”-Tags und kanonische Tags, die mit Google Tag Manager hinzugefügt oder geändert wurden.. Das HTML-Quelldokument wird ignoriert und nur das gerenderte HTML wird berücksichtigt.

Außerdem, Interne Links können mit dem Google Tag Manager hinzugefügt werden und Google wird die URLs, die auf diese Weise verlinkt werden, indexieren. Auch URLs, die nur in JSON-LD-Skripten enthalten sind, die mit dem Google Tag Manager hinzugefügt wurden, werden indiziert.

Leider war dieses Experiment nicht wirklich dazu gedacht, die wie lange es dauert, bis die Änderungen in den Google-Ergebnissen angezeigt werden. Wir haben kein Monitoring eingerichtet, um die Ergebnisse regelmäßig zu überprüfen. Wir wissen, dass die Änderungen am Titel-Tag und der Meta-Beschreibung der Startseite nach acht Tagen angezeigt wurden. Bei allen anderen Änderungen dauerte es etwa zwei Monate, bis sie angezeigt wurden.

Es liegt auf der Hand, dass Google die Seiten seltener rendert und ihre HTML-Quelldokumente regelmäßiger crawlt. Weitere Untersuchungen zu den Unterschieden zwischen Crawl- und Rendering-Frequenz wären sehr wertvoll.

Frühere JavaScript-SEO-Tests, die diese enormen Verzögerungen nicht berücksichtigt haben, könnten zu negativen Ergebnissen geführt haben, weil die Tests nicht lange genug liefen, insbesondere wenn sie auf Seiten durchgeführt wurden, die nur für den Zweck des Experiments eingerichtet wurden. Es scheint, dass wichtige Seiten (wie unsere Startseite in dem oben beschriebenen Fall) häufiger gerendert werden als weniger wichtige (wie alle anderen Seiten, mit denen wir Tests durchgeführt haben, die etwa zwei Monate gebraucht haben, um Ergebnisse zu zeigen).

We hope that you found our little JavaScript SEO experiment useful and that many others will set up similar tests, so that the entire SEO industry can learn more about how Google deals with pages that rely on JavaScript. Any questions or remarks? Just drop us a comment![/vc_column_text][/vc_column][/vc_row][vc_row type=”in_container” full_screen_row_position=”middle” column_margin=”default” column_direction=”default” column_direction_tablet=”default” column_direction_phone=”default” bg_color=”#0b9d95″ scene_position=”center” text_color=”dark” text_align=”left” row_border_radius=”none” row_border_radius_applies=”bg” overlay_strength=”0.3″ gradient_direction=”left_to_right” shape_divider_position=”bottom” bg_image_animation=”none” shape_type=””][vc_column column_padding=”no-extra-padding” column_padding_tablet=”inherit” column_padding_phone=”inherit” column_padding_position=”all” top_margin=”20″ constrain_group_1=”yes” bottom_margin=”20″ centered_text=”true” background_color_opacity=”1″ background_hover_color_opacity=”1″ column_shadow=”none” column_border_radius=”none” column_link_target=”_self” gradient_direction=”left_to_right” overlay_strength=”0.3″ width=”8/12″ tablet_width_inherit=”default” tablet_text_alignment=”default” phone_text_alignment=”default” column_border_width=”none” column_border_style=”solid” bg_image_animation=”none”][nectar_highlighted_text color_type=”regular” highlight_color=”#dd3333″ text_color=”#ffffff” style=”full_text”]

Überprüfe eine URL auf Unterschiede zwischen dem ursprünglichen Quellcode und dem gerenderten HTML.

[/nectar_highlighted_text][/vc_column][vc_column column_padding=”no-extra-padding” column_padding_tablet=”inherit” column_padding_phone=”inherit” column_padding_position=”all” background_color_opacity=”1″ background_hover_color_opacity=”1″ column_shadow=”none” column_border_radius=”none” column_link_target=”_self” gradient_direction=”left_to_right” overlay_strength=”0.3″ width=”1/12″ tablet_width_inherit=”default” tablet_text_alignment=”default” phone_text_alignment=”default” column_border_width=”none” column_border_style=”solid” bg_image_animation=”none”][/vc_column][vc_column column_padding=”no-extra-padding” column_padding_tablet=”inherit” column_padding_phone=”inherit” column_padding_position=”all” centered_text=”true” background_color_opacity=”1″ background_hover_color_opacity=”1″ column_shadow=”none” column_border_radius=”none” column_link_target=”_self” gradient_direction=”left_to_right” overlay_strength=”0.3″ width=”1/4″ tablet_width_inherit=”default” tablet_text_alignment=”default” phone_text_alignment=”default” column_border_width=”none” column_border_style=”solid” bg_image_animation=”none”][nectar_btn size=”medium” button_style=”see-through-2″ color_override=”#ffffff” hover_color_override=”#ffffff” hover_text_color_override=”#ffffff” icon_family=”none” text=”Try our free tool” url=”/en/javascript-rendering-comparison-check/” margin_top=”25″][/vc_column][/vc_row]

9 Antworten

  1. Hallo, toller Artikel.

    Nur eine Überlegung: dein noindex SEO, wenn du den Quellcode überprüfst, siehst du noindex meta von Yoast:

    view-source:https://www.searchviu.com/en/we-are-going-to-miss-you/


    Dein Skript entfernt die ursprüngliche Meta-Anweisung und ersetzt sie durch die gleiche Anweisung.

    Bist du dir also sicher, dass die noindex-Anweisung mit deinem Javascript zu tun hat? Ich denke, der Grund für noindex ist die Original-Meta

    1. Hallo Matteo,

      Vielen Dank für deinen Kommentar. Deine Beobachtungen sind absolut richtig, aber die Website ist nicht mehr in dem Zustand, in dem sie war, als wir die Tests vor mehr als einem Jahr durchgeführt haben. Zum Zeitpunkt des Experiments gab es im Quellcode keinen “noindex” und er wurde erst mit GTM hinzugefügt.

  2. Hallo Eoghan, ich erhalte einen Fehler bei jedem JS, das ich mit den obigen Schritten einzufügen versuche. Das benutzerdefinierte Html wird in Ordnung ausgelöst, aber wenn ich mir das Tag im Vorschaumodus ansehe, werden einige der JS durch Unicode-Zeichen ersetzt und erscheinen nicht im Head. Zum Beispiel wird ‘meta[name=”description”]’ zu ‘meta[name\x3d ”description”]\’. Habt ihr irgendwelche Vorschläge, warum das bei mir passiert?

    1. Hallo Carl,

      Vielen Dank für deinen Kommentar. Skripte werden im GTM-Vorschaumodus oft mit ausgetauschten Zeichen angezeigt (ich weiß nicht warum, aber es passiert oft), also hat das wahrscheinlich nichts mit dem Problem zu tun, das dazu führt, dass dein Tag nicht im Kopf angezeigt wird. Könntest du mir bitte ein paar mehr Details (Screenshots usw.) per E-Mail schicken, damit ich mir das Problem genauer ansehen kann?

  3. Super Beitrag!

    Ich habe dies selbst implementiert und festgestellt, dass es schwierig sein kann, diese Meta-Tags auf Websites zu indexieren, die stark auf JavaScript basieren. Google kann entscheiden, ob es das gesamte JavaScript auf deiner Webseite ausführt oder nicht. In diesem Fall kann es sein, dass es einmal den mit JavaScript eingefügten Meta-Titel zurückgibt und beim nächsten Mal den serverseitigen Original-Meta-Titel verwendet.

    Ich hatte das Ergebnis, dass Google entschieden hat, keinen der beiden Titel zu verwenden und stattdessen seinen eigenen Titel zu wählen.

    Ich denke, es wäre gut, JavaScript anstelle von jQuery zu verwenden, wie bei Googles eigener Lösung. Ich habe nicht getestet, ob das eine besser ist als das andere, aber es macht einfach Sinn, dass der JavaScript-Code schneller gelesen wird als der mit jQuery.

    Zum Beispiel so:
    var metaTag = document.querySelector(‘meta[name=”description”]’);
    metaTag.setAttribute(‘content’, ‘Your Meta Description’);

  4. Hallo Eoghan Henn, toller Artikel.
    Jetzt habe ich ein canonical Tag von GTM implementiert, aber Google scheint es nicht zu gefallen.
    Ein Google-Bot hat meine Website besucht, aber mein canonical Tag nicht erkannt.

    Das Problem könnte sein, dass es bereits ein selbstreferenzierendes canonical-Tag auf der Website gibt. Ich entferne es mit jQuery(‘link[rel=”canonical”]’).remove(); und implementiere dann mein neues canonical.

    Aber Google scheint nur die alte Version zu lesen.

    Hast du diese Einstellung getestet oder weißt du, ob sie funktionieren sollte?

    danke!!!

    1. Hallo Hans,

      Vielen Dank für deine interessante Frage. Generell gilt: Wenn du das alte canonical Tag mit jQuery entfernst und ein neues hinzufügst, sollte Google das neue Tag verwenden, sobald es die Seite gerendert hat.

      In diesem Beitrag findest du weitere Details: https://www.searchviu.com/en/javascript-canonical-tags/

      In deinem Fall könnte es sein, dass Googlebot zwar deine Seite besucht hat, aber nur den HTML-Quelltext abgerufen hat, ohne die Seite zu rendern. Wenn du mir mehr Details schickst, kann ich mir das gerne ansehen.

  5. Wie schön, diesen Beitrag und das Experiment zu finden!

    Ich habe gerade dieses Problem. Ich habe Titel und Beschreibung mit dem Google Tag Manager implementiert, aber Google nimmt immer noch den HTML-Code.

    Ich werde noch ein paar Tage warten. Vielen Dank, dass du diese Informationen geteilt hast!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert