-> Inter-Data -> Blog -> Website Performance mit Google PageSpeed Insights messen

Website Performance mit Google PageSpeed Insights messen

Autor: Dein Name

Einführung

Eine schnelle Ladezeit ist entscheidend für eine gute Nutzererfahrung und ein besseres SEO-Ranking. Google PageSpeed Insights bietet eine leistungsstarke Möglichkeit, die Geschwindigkeit deiner Website zu messen und Optimierungspotenziale aufzudecken. In diesem Blogpost zeige ich dir, wie du mithilfe eines Python-Skripts regelmäßig die Ladezeit deiner Website überprüfst und analysierst.


Warum ist PageSpeed wichtig?

  • SEO-Vorteil: Google bevorzugt schnelle Websites in den Suchergebnissen.
  • Bessere Nutzererfahrung: Schnellere Ladezeiten verringern die Absprungrate.
  • Höhere Conversion-Raten: Webseiten mit niedrigen Ladezeiten haben bessere Verkaufszahlen.

Google PageSpeed Insights gibt eine Bewertung zwischen 0 und 100 und zeigt Optimierungsmöglichkeiten an. Dieses Skript ermöglicht dir eine automatisierte Überwachung der Performance über die API.


API-Schlüssel für Google PageSpeed Insights generieren

Um die Google PageSpeed API zu nutzen, benötigst du einen kostenlosen API-Schlüssel. So bekommst du ihn:

  1. Gehe zur Google Cloud Console: Google API Console
  2. Erstelle ein neues Projekt oder wähle ein bestehendes.
  3. Aktiviere die PageSpeed Insights API unter „APIs & Dienste“.
  4. Erstelle Anmeldedaten und wähle „API-Schlüssel“.
  5. Speichere den API-Schlüssel – du benötigst ihn für das Skript.

Nun kannst du den API-Schlüssel in das folgende Skript einfügen.


Das PageSpeed Insights Skript

Mit diesem Python-Skript kannst du die Ladezeiten deiner Websites regelmäßig überprüfen und speichern.

Installation und Ausführung

Speichere das Skript als pagespeed_checker.py und installiere die benötigten Pakete mit:

pip install requests

Starte das Skript mit:

python3 pagespeed_checker.py

Python-Skript:

import requests
import time
import csv
import subprocess
import re
from datetime import datetime

# Liste der Webseiten
URLS = [
    "https://autoprofis24.de",
    "https://flexrohr24.de",
    "https://hugocms.com"
]

# Dein Google PageSpeed API Key
API_KEY = "DEIN_API_KEY_HIER"
# Intervall in Sekunden (z. B. 30 Minuten)
INTERVAL = 1800
# Datei für die Speicherung der Ergebnisse
CSV_FILE = "pagespeed_results.csv"

def get_speed_index(url):
    """Ruft den Speed Index von Google PageSpeed Insights ab."""
    api_url = f"https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url={url}&key={API_KEY}&strategy=mobile"
    
    try:
        response = requests.get(api_url)
        response.raise_for_status()
        data = response.json()
        
        # Extrahiert den Speed Index
        speed_index = data["lighthouseResult"]["audits"]["speed-index"]["numericValue"]
        return round(speed_index, 2)
    except Exception as e:
        print(f"Fehler beim Abrufen der Daten für {url}: {e}")
        return None

def run_ping(url):
    """Führt einen Ping-Test für die URL aus und berechnet den Mittelwert."""
    domain = url.replace("https://", "").replace("http://", "").split("/")[0]
    try:
        result = subprocess.run(["ping", "-c", "4", domain], capture_output=True, text=True)
        output = result.stdout
        
        # Extrahiere die Antwortzeiten aus der Ping-Ausgabe
        times = re.findall(r'time=(\d+\.\d+)', output)
        if times:
            times = [float(t) for t in times]
            avg_ping = round(sum(times) / len(times), 2)
        else:
            avg_ping = None
        
        return avg_ping
    except Exception as e:
        return None

def log_speed_index():
    """Misst und speichert den Speed Index regelmäßig."""
    header = ["Timestamp", "URL", "Speed Index", "Avg Ping (ms)"]
    
    # Datei-Inhalt löschen
    with open(CSV_FILE, "w", newline="") as f:
        writer = csv.writer(f)
        writer.writerow(header)
    
    while True:
        timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
        
        for url in URLS:
            speed_index = get_speed_index(url)
            avg_ping = run_ping(url)
            
            if speed_index is not None:
                print(f"[{timestamp}] {url} - Speed Index: {speed_index}, Avg Ping: {avg_ping} ms")
                
                # Speichern in CSV
                with open(CSV_FILE, "a", newline="") as f:
                    writer = csv.writer(f)
                    writer.writerow([timestamp, url, speed_index, avg_ping])
            else:
                print(f"Speed Index für {url} konnte nicht abgerufen werden.")
        
        time.sleep(INTERVAL)

if __name__ == "__main__":
    log_speed_index()

Fazit

Mit diesem Skript kannst du die Performance deiner Website regelmäßig messen und Trends analysieren. Durch die Kombination aus Google PageSpeed Insights und Ping-Tests bekommst du wertvolle Daten zur Optimierung deiner Website.

  • Nutze Google PageSpeed API, um Performance-Engpässe zu identifizieren.
  • Speichere die Daten in einer CSV-Datei, um langfristige Trends zu erkennen.
  • Optimiere Caching, Servereinstellungen und Ressourcen für bessere Ladezeiten.

Viel Erfolg bei der Verbesserung deiner Webseite!