Google Tag Manager in WordPress einbinden: sauber, updatefest und mit Consent verknüpft

Google Tag Manager in WordPress einbinden: Quellcode einer Website

Der Google Tag Manager ist eines der Werkzeuge, die ich bei fast jedem Kundenprojekt als erstes einrichte, und gleichzeitig eines, das am häufigsten falsch eingebunden wird. Meist sehe ich eine von zwei Varianten: Das Skript klebt hart im Theme, überlebt das nächste Update nicht und lädt vor jeder Einwilligung. Oder es wurde über ein Plugin eingebunden, das niemand mehr kennt, und keiner weiß, welche Tags eigentlich feuern.

In diesem Beitrag zeige ich dir, wie du den Google Tag Manager in WordPress so einbindest, dass er Updates übersteht, mit deinem Consent-Tool zusammenarbeitet und nachvollziehbar bleibt. Und ich erkläre, warum ich ihn inzwischen für jede Website empfehle, auf der mehr als ein einziges Skript läuft.

Was der Tag Manager eigentlich macht

Ohne Tag Manager fügst du für jedes Werkzeug ein eigenes Skript in die Website ein: Analytics, Meta Pixel, Google Ads, ein Heatmap-Tool, ein Chat-Widget. Jedes Skript braucht einen Eingriff ins Theme oder ein weiteres Plugin, und jedes lädt unabhängig von den anderen. Nach zwei Jahren weiß niemand mehr, was alles läuft.

Der Tag Manager dreht das um. Du bindest ein einziges Container-Skript ein, und alles Weitere verwaltest du in der Oberfläche des Tag Managers: welche Tags es gibt, wann sie feuern, welche Daten sie bekommen. Änderungen brauchen keinen Eingriff mehr in die Website, sie werden im Tag Manager veröffentlicht. Für mich als Entwickler ist das der eigentliche Wert: Die Website bleibt sauber, und die Tracking-Logik hat einen Ort.

Wichtig ist, was der Tag Manager nicht ist. Er ist kein Tracking-Tool und sammelt selbst keine Daten. Er ist die Steuerzentrale, die entscheidet, ob und wann andere Werkzeuge laden. Genau deshalb ist er auch der richtige Ort, um die Einwilligung deiner Besucher durchzusetzen.

Container anlegen

Bevor du in WordPress etwas änderst, brauchst du einen Container. Leg dir unter tagmanager.google.com ein Konto an, erstelle einen Container für deine Website mit dem Typ Web und notiere dir die Container-ID im Format GTM-XXXXXXX. Mehr brauchst du für den Anfang nicht, die Tags kommen später.

Einbindung in WordPress: drei Wege

Weg 1: Per Plugin

Für die meisten Websites ist das der richtige Weg. Das Plugin GTM4WP ist seit Jahren der Standard, wird gepflegt und kann mehr als nur das Skript einfügen: Es reicht Daten wie Seitentyp, Kategorie oder bei WooCommerce die Warenkorbinhalte an den Tag Manager weiter. Du trägst nur die Container-ID ein und wählst, wo das Skript platziert wird. Nimm die Option, die den noscript-Teil direkt nach dem öffnenden body-Tag einfügt, sonst bekommst du im Tag Manager eine Warnung.

Weg 2: Per Child-Theme

Wenn du möglichst wenige Plugins willst, kannst du das Skript über die functions.php eines Child-Themes einhängen. Ins Eltern-Theme gehört es nie, weil das nächste Update es überschreibt. Was ein Child-Theme ist und wie du eines anlegst, habe ich im Beitrag Was ist ein WordPress Child-Theme beschrieben. Der Code sieht so aus:

add_action( 'wp_head', function () {
    ?>
    <!-- Google Tag Manager -->
    <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
    new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
    j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
    'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
    })(window,document,'script','dataLayer','GTM-XXXXXXX');</script>
    <!-- End Google Tag Manager -->
    <?php
}, 1 );

Ersetze GTM-XXXXXXX durch deine Container-ID. Den noscript-Block, den Google zusätzlich vorschlägt, kannst du über den Hook wp_body_open einfügen, er ist aber nur für Besucher ohne JavaScript relevant und in der Praxis verzichtbar.

Weg 3: Über das Consent-Tool

Viele Consent-Tools bieten inzwischen an, den Tag Manager selbst einzubinden. Das ist bequem, hat aber einen Haken: Du bist dann an dieses Tool gebunden, und bei einem Wechsel musst du die Einbindung neu aufsetzen. Ich nutze diesen Weg nur, wenn der Kunde ohnehin ein Consent-Tool mit guter GTM-Integration einsetzt.

Der Teil, der wirklich zählt: Consent Mode

Google Tag Manager in WordPress: Einschätzung von Enzo Minkoley

Hier trennt sich saubere Arbeit von rechtlich riskanter. Der Tag Manager selbst darf laden, bevor jemand eingewilligt hat, denn er setzt keine Cookies und sammelt nichts. Aber die Tags darin, etwa Analytics oder das Meta Pixel, dürfen erst feuern, wenn die Einwilligung vorliegt. Das regelst du über den Consent Mode.

Das Prinzip: Dein Consent-Tool teilt dem Tag Manager mit, welche Kategorien der Besucher erlaubt hat. Im Tag Manager hinterlegst du bei jedem Tag, welche Einwilligung er braucht. Ein Analytics-Tag braucht die Kategorie Statistik, ein Ads-Tag die Kategorie Marketing. Ohne passende Einwilligung feuert der Tag nicht. Die meisten gängigen Consent-Tools bringen dafür eine fertige Vorlage mit, die du in der Community-Galerie des Tag Managers findest.

Was ich in Projekten immer wieder sehe: Der Banner ist da, der Tag Manager ist da, aber die Verbindung fehlt. Dann feuert alles unabhängig vom Klick des Besuchers, und der Banner ist Dekoration. Welche Consent-Tools das sauber lösen, steht in meinem Beitrag zum Cookie Consent in WordPress.

Testen, bevor du veröffentlichst

Der Tag Manager hat einen Vorschaumodus, mit dem du deine Website in einem Debug-Fenster öffnest und siehst, welche Tags bei welchem Ereignis feuern. Nutze ihn bei jeder Änderung. Diese drei Prüfungen mache ich jedes Mal:

  1. Seite im privaten Fenster laden, Banner noch nicht bestätigen: Kein einziger Tracking-Tag darf gefeuert haben
  2. Auf Ablehnen klicken: Weiterhin darf nichts feuern, und im Netzwerk-Tab der Entwicklertools dürfen keine Anfragen an google-analytics, doubleclick oder facebook auftauchen
  3. Auf Zustimmen klicken: Jetzt müssen die Tags feuern, und die Anfragen erscheinen

Erst wenn alle drei Fälle stimmen, veröffentlichst du den Container. Und du legst bei jeder Veröffentlichung eine kurze Versionsbeschreibung an, damit du in einem Jahr noch weißt, was du geändert hast.

Was danach auf den Tag Manager gehört

Sobald der Container läuft, wanderen alle bestehenden Skripte hinein. Google Analytics zuerst, wie im Beitrag Google Analytics in WordPress beschrieben, dann Werbe-Tags für Google Ads und Meta, und schließlich alles Weitere. In den nächsten Beiträgen zeige ich, wie das Meta Pixel und das Conversion-Tracking für Google Ads über den Tag Manager laufen. Aus dem Theme und aus anderen Plugins entfernst du die alten Einbindungen, sonst hast du doppelte Zählungen.

Ein Punkt zur Ladezeit: Der Tag Manager selbst ist schlank, aber alles, was du hineinlädst, kostet Zeit. Zehn Tags sind zehn Skripte. Prüfe regelmäßig, ob jeder Tag noch gebraucht wird, und miss die Auswirkung, wie im Beitrag WordPress schneller machen beschrieben.

Fazit

Der Google Tag Manager gehört auf jede WordPress-Website, auf der mehr als ein Skript läuft. Binde ihn per Plugin oder Child-Theme ein, niemals direkt ins Eltern-Theme, verknüpfe ihn über den Consent Mode mit deinem Banner und teste alle drei Einwilligungsfälle im Vorschaumodus. Danach hast du einen Ort, an dem jede Tracking-Entscheidung nachvollziehbar ist. Die offizielle Anleitung findest du in der Tag Manager Hilfe. Wenn du unsicher bist, ob dein Setup sauber ist, meld dich gern.