Zum Hauptinhalt springen

Nicht alle Requests, die der Browser beim Aufruf einer Website sendet, tauchen im Network-Tab der Entwicklertools auf. Und ich rede hier nicht davon, dass der Network-Tab erst dann anfängt, die Requests zu protokollieren, wenn die Entwicklertools geöffnet wurden. Ich rede von Requests, die bei aktiven Entwicklertools gesendet werden, aber im Netzwerkprotokoll nicht auftauchen.

Du denkst jetzt bestimmt: Das ist völlig unmöglich. (Zugegeben, das Nerd-O-Meter schlägt bei dem Thema weit aus. Wenn Deine Reaktion eher "laaaaangweilig" oder "Wovon redet der Typ?" ist, kann ich Dich nicht zwingen, an dieser Stelle weiterzulesen. Du könntest einfach zum nächsten Artikel springen).

Ich war zumindest ziemlich sprachlos, als ich im Rahmen einer mittelgroßen Google-Tag-Manager-Schnitzeljagd darauf gestoßen bin.

Bisher dachte ich:

  • Im Network-Tab sind im Normalfall alle Requests zu sehen, die beim Laden und Rendern einer Seite ausgelöst werden.
  • Requests von Service Workern werden dort auch aufgeführt und mit einem Zahnrad markiert, wie hier: Screenshot aus dem Network-Tab der Entwicklertools. Vor einzelnen Requests ist ein Zahnrad-Symbol zu sehen, das zeigt, dass sie durch Service Worker ausgelöst wurden.

Bei einem Tracking-Request, den ich neulich debuggt habe, war es aber anders… Ich wusste, dass der Request dort angekommen ist, wo er hin sollte, aber der Request war partout nicht in den Entwicklertools zu sehen.

Das Ganze war über verschiedene Browser und Endgeräte hinweg reproduzierbar. Nach einigen Experimenten und der Hilfesuche bei anderen Tracking-Experten hat mich schließlich ein schlauerer GTM-Experte auf die Lösung gebracht:

  • Es gibt Edge-Cases, bei denen Requests, die ein Service Worker sendet, nicht im normalen Network-Tab auftauchen!

Dank an dieser Stelle an Nitesh Sharoff für die sachdienlichen Hinweise zu Service Workern, ohne die die Schnitzeljagd erheblich länger gewesen wäre. Nitesh hatte freundlicherweise auch den Weg durch die Untiefen der Dev-Tools skizziert, wie man diese Requests doch aufdecken kann. Es ist ganz einfach, man muss nur den Nippel durch die Lasche ziehen… ähh, ich meine: auf Applications ⇒ Service Workers ⇒ sich dort die IDs der Service Worker merken ⇒ auf "see all registrations" klicken und so chrome://serviceworker-internals/?devtools aufrufen ⇒ nach den gemerkten IDs suchen ⇒ bei denen auf "inspect" klicken und es öffnet sich (gerne irgendwo auf einem anderen Bildschirm) ein neues Entwicklertools-Fenster. Nämlich ein Spezifisches für diesen Service Worker. Dort kann man dann die Requests einsehen (natürlich nicht rückwirkend, sondern ab dem Zeitpunkt, an dem man auf "inspect" geklickt hat).

Du siehst: Super einfach und komfortabel gelöst.

Nach welchen Regeln es dazu kommt, dass ein Request im Standard-Network-Tab nicht auftaucht, sondern man durch all diese Reifen springen muss, konnte ich noch nicht herausfinden. Solange Du nicht aktiv Service Worker debuggst, ist es aber auch nicht wichtig, wie genau es dazu kommt. Nur die Erkenntnis, dass es dieses Verhalten bei Service Workern und ihren Requests gibt, ist von Bedeutung. Das kann in Deinem Alltag vielleicht vorkommen, beispielsweise, wenn Du prüfen willst, dass keine Tracking-Requests ohne Consent gesendet werden oder wenn Du merkwürdige Requests beim Rendering untersuchst.

Das ist ein Artikel aus unserem Newsletter. Wenn Du jeden Dienstag Morgen schlauer werden möchtest, melde jetzt kostenfrei für den SEO-Newsletter an

Kurze, praxisnahe SEO-Tipps – maximal 1× pro Woche. Keine Werbung, kein Spam.

Deine Daten sind bei uns in guten Händen und werden ausschließlich für diesen Newsletter genutzt.