Du lässt einen Report laufen, behebst etwas, lässt einen frischen Report laufen, und der neue zeigt Veränderungen, die du nicht erwartet hast. Oder du lässt zwei Reports direkt hintereinander laufen, ohne irgendetwas zu ändern, und sie sind trotzdem unterschiedlich. Das kommt überraschend oft vor und lässt sich fast immer damit erklären, wie das moderne Web funktioniert, nicht mit einem Fehler in der Analyse. Dieser Artikel geht die wahrscheinlichsten Gründe durch.
1. Caching-Schichten
Caching ist mit Abstand der häufigste Grund für Unterschiede zwischen Reports. Eine typische WordPress-Seite hat mehrere Cache-Schichten übereinander:
- Page-Cache (z. B. WP Rocket, LiteSpeed, W3 Total Cache): Speichert komplett gerendertes HTML und liefert es für eine konfigurierbare Lebensdauer aus. Wenn die Lebensdauer abläuft, löst der nächste Besucher eine Neugenerierung aus, die andere Anzeigen, andere Empfehlungen oder einen frisch generierten Asset-Bundle-Dateinamen enthalten kann.
- Object-Cache (Redis, Memcached): Cached Datenbank-Abfrageergebnisse. Von außen weniger sichtbar, kann aber beeinflussen, welche Plugins oder Widgets bei einem Request aktiv werden.
- CDN-Edge-Cache (Cloudflare, BunnyCDN, KeyCDN): Das CDN kann eine etwas ältere oder neuere Version ausliefern, je nachdem auf welchen Edge-Knoten der Request trifft.
- Hoster-Cache (Managed-WordPress-Hoster): Kinsta, WP Engine, SiteGround und andere betreiben eigene server-seitige Caches mit eigener Invalidierungs-Logik.
Zwei Reports im Minutenabstand können leicht auf unterschiedlichen Cache-Zuständen landen. Das alleine erklärt schon die meisten Unterschiede.
2. Dynamische Inhalte
Viele Seiten rendern Teile bei jedem Request dynamisch neu. Häufige Beispiele:
- „Letzte Beiträge“- oder „Neueste Produkte“-Widgets, die jeweils die aktuellsten Einträge ziehen.
- „Vielleicht auch interessant“-Empfehlungen.
- Zufällige Testimonial-Rotatoren.
- Ad-Slots, die Creatives rotieren.
- Personalisierte Begrüßungen basierend auf Geo-IP oder Gerät.
- Live-Zähler, Lagerstände, Preise.
Auch ohne Cache-Veränderung können zwei Requests unterschiedliches HTML liefern, unterschiedliche Wortzahlen, unterschiedliche Bildanzahlen, manchmal unterschiedliche externe Ressourcen.
3. A/B-Tests und Feature-Flags
Wenn deine Seite ein A/B-Testing-Tool (VWO, Optimizely, Convert) oder Feature-Flags (LaunchDarkly, GrowthBook) nutzt, kann jeder Besuch einer anderen Variante zugewiesen werden. Varianten können bedeuten:
- Andere Headlines oder Bilder.
- Ein anderes Seiten-Layout.
- Andere Skripte oder Drittanbieter-Dienste werden geladen.
- Andere Cookies werden gesetzt.
Aus Sicht des Reports hat dieselbe URL dann legitim zwei unterschiedliche Seiten produziert.
4. Drittanbieter-Skripte und Tag-Manager
Tag-Manager (Google Tag Manager, Tealium, Matomo Tag Manager) entscheiden zur Laufzeit, welche Tags ausgeliefert werden. Bedingungen können Tageszeit, Besucherland, Consent-Status oder Sampling-Regeln sein. Ein Report von heute und einer von morgen können komplett unterschiedliche Tracking-Pixel und Analytics-Skripte laden, obwohl sich an der Website selbst nichts geändert hat.
5. Cookie-Consent und Consent-Banner
Moderne Consent-Manager liefern oft eine abgespeckte Version der Seite aus, bis Consent erteilt wurde, und laden dann erst das volle Set an Tracking- und Personalisierungs-Skripten. InspectWP besucht die Seite ohne Consent. Wenn dein Consent-Manager sein Standardverhalten ändert (Default-Deny vs. Default-Accept-in-bestimmten-Regionen), ändert sich der Report entsprechend mit.
6. Zeitabhängige Inhalte
Manche Seiten verändern sich mit der Uhr:
- Promo-Banner, die zu einer bestimmten Zeit live gehen.
- Saisonale Hero-Bilder.
- Lager- und Preis-Aktualisierungen.
- Geplante Blog-Posts.
Ein Report um 09:00 und einer um 09:05 können genau über einer geplanten Änderung liegen.
7. Geographische Unterschiede
InspectWP crawlt immer von einem festen Standort aus. Wenn du einen InspectWP-Report mit dem vergleichst, was du in deinem eigenen Browser aus einem anderen Land siehst, kannst du legitim unterschiedliche Inhalte sehen (Sprache, Preise, verfügbare Produkte), unterschiedliche Fonts (CDN-Endpunkte), unterschiedliche externe Ressourcen (regionsspezifische Maps-Anbieter).
8. Plugin- und Theme-Updates
WordPress und viele Plugins aktualisieren sich automatisch. Zwischen zwei Reports kann ein Plugin ein Update erhalten haben, Asset-Dateinamen geändert, ein Feature entfernt oder eine neue externe Ressource hinzugefügt haben. Die Seite sieht für einen Menschen gleich aus, erzeugt aber einen anderen Fingerprint.
9. Server-seitige Variabilität
HTTP-Versions-Verhandlung, Wahl des Komprimierungs-Algorithmus (gzip vs. brotli), bestimmte HTTP-Header und TLS-Handshake-Details können je nachdem, welcher Server in einem Loadbalancing-Cluster den Request bedient, unterschiedlich sein. Diese Unterschiede zeigen sich in den Bereichen Headers und Performance.
10. Wie du zwei Reports sinnvoll vergleichst
- Lasse beide Reports zeitnah laufen, wenn du Ist-Zustände vergleichen willst.
- Leere die Caches vor jedem Report, wenn du den Zustand nach Cache-Rebuild vergleichen willst.
- Deaktiviere A/B-Tests vorübergehend, wenn du gezielt die Baseline messen willst.
- Crawle exakt dieselbe URL, inklusive Trailing-Slash und Query-Parametern.
https://example.comundhttps://example.com/sind technisch unterschiedliche URLs. - Achte auf Struktur, nicht auf Rauschen. Unterschiede bei der „Wortzahl“ von wenigen Prozent oder ein einzelner rotierender Ad-Slot sind meist nicht aussagekräftig. Unterschiede in Plugin-Listen, Sicherheitsheadern, SEO-Tags oder bei den Critical-Status-Feldern dagegen schon.