Sie haben ein paar Dutzend Domains im Free-Tarif von Cloudflare, und die meisten leiten nur weiter. Wenn eine davon kaputtgeht, wollen Sie es vor dem Kunden erfahren. Einen Teil davon meldet Cloudflare kostenlos per E-Mail, sobald Sie es einschalten. Nicht melden wird Cloudflare, dass eine Weiterleitung an die falsche Adresse geht, dass jemand einen DNS-Eintrag geändert hat oder dass eine Domain bei einem anderen Registrar bald ausläuft. Das gilt in jedem Tarif, auch in Enterprise.

Dieser Artikel zeigt, was der Free-Tarif überwacht, was Bezahlen hinzufügt und was es kostet, und liefert einen Worker, der die Weiterleitungen selbst prüft. Wenn Sie noch überlegen, womit Sie weiterleiten, fangen Sie mit allen Wegen zur Weiterleitung auf Cloudflare an.

Was Cloudflare überwacht, nach Tarif

Stand 23. September 2026, geprüft an der Dokumentation von Cloudflare und an der Benachrichtigungs-API unseres eigenen Kontos.

Was ausfällt Free-Tarif Was die Lücke schließt Bleibt offen
Origin nicht erreichbar Passive Origin Monitoring, E-Mail; blieb in unserem Test stumm Domains mit wenig Traffic, und 522
Origin-Fehler, 522 eingeschlossen nichts Origin Error Rate Alert, nur Enterprise alles unterhalb von Enterprise
Aktive Prüfung einer URL nichts Health Checks: 10 in Pro ($20 im Monat bei jährlicher Zahlung), 50 in Business ($200) alles über 10 oder 50 URLs
Edge-Zertifikat (Universal SSL) Universal SSL Alert, E-Mail
Ablauf eines Origin-CA-Zertifikats nichts nichts jeder Tarif
Domain bei Cloudflare Registrar läuft aus monatliche E-Mail an den Super Administrator
Domain bei einem anderen Registrar läuft aus nichts nichts jeder Tarif
Änderung an DNS-Eintrag oder Nameservern Audit Logs, kein Alarm nichts jeder Tarif
Weiterleitung führt an die falsche Adresse nichts nichts jeder Tarif
Wohin Alarme gehen E-Mail Webhooks mit einem bezahlten Abo, PagerDuty ab Business

Zwei Zeilen brauchen eine Anmerkung.

Passive Origin Monitoring fehlt in der aktuellen Liste der verfügbaren Benachrichtigungen, zuletzt aktualisiert am 24. April 2026. Die API bietet es weiter an: In unserem Konto steht es als real_origin_monitoring, „Cloudflare is unable to reach your origin“. Die Ankündigung von Cloudflare aus dem Jahr 2019 sagt, es „is available to customers on all Cloudflare plans“.

Die Seite zu Webhooks schreibt, die Funktion „is only available if your account has at least one zone with a pro plan or above.“ Unser Konto hat zwei Free-Zonen und ein Workers-Paid-Abo, das bei $5 im Monat beginnt, und die API meldet Webhooks als verfügbar. Die Einstiegsseite nennt die Regel, die zu dem passt, was wir sehen: „Accounts with a paid service will additionally have access to webhooks.“

Eingeschaltet ist nichts, bis Sie es anlegen

Am 23. September lieferte unser Konto diese Website seit Juli aus. Es hatte eine einzige Benachrichtigungsregel: einen Budgetalarm, den Cloudflare selbst angelegt hatte. Keiner der beiden kostenlosen Alarme oben war da.

Sie legen sie unter Notifications an, dann Add:

  1. Passive Origin Monitoring. Eine Regel gilt für alle Zonen des Kontos.
  2. Universal SSL Alert. Validierung, Ausstellung, Verlängerung und Ablauf des Zertifikats, das Besucher bekommen.

Beide gehen an eine E-Mail-Adresse, die Sie eintragen. Nehmen Sie eine, die jemand liest. Eine Benachrichtigung im Postfach eines ehemaligen Kollegen ist derselbe Fehler wie die Verlängerungsmail in Auto-Renew war an, und die Domain ist trotzdem abgelaufen.

Wir haben einen Hostnamen zweimal kaputt gemacht, und der Gratis-Alarm schwieg

Den Auslöser von Passive Origin Monitoring beschreibt Cloudflare an genau einer Stelle, im Beitrag vom Juli 2021. Die Benachrichtigung:

tells you if every request to your origin is returning a 521 error (web server down) for a full five minutes

Ein 521 heißt, dass der Server die Verbindung abgelehnt hat. Eine Domain, eingerichtet wie im Runbook für das Portfolio, hat keinen Server, der etwas ablehnen könnte: Ein proxied A-Eintrag zeigt auf 192.0.2.1, eine Adresse, auf der niemand antwortet, und die Weiterleitung läuft am Edge. Löscht oder verengt jemand die Regel, schickt Cloudflare die Anfrage an 192.0.2.1, wartet und gibt dem Besucher einen 522, eine Zeitüberschreitung.

Also haben wir am 23. September beides getestet, mit eingeschalteter Benachrichtigung in unserem Konto.

  1. Ein proxied Hostname auf 192.0.2.1, ohne Weiterleitungsregel. Von 08:24 bis 08:44 UTC haben wir ihn alle 15 Sekunden abgerufen. Alle 35 Antworten waren 522.
  2. Derselbe Hostname auf einem Server, der Verbindungen an Port 443 ablehnt, dem Port, den Cloudflare in unserem SSL-Modus Full benutzt. Von 08:46 bis 09:06 UTC, im selben Takt. Alle 78 Antworten waren 521.

Der Benachrichtigungsverlauf des Kontos blieb während beider Läufe leer und auch danach bis 09:24 UTC, als wir aufgehört haben nachzusehen. An die Adresse aus der Regel kam keine E-Mail. Der zweite Lauf ist genau der Fall, den der Beitrag von 2021 beschreibt, und auch er hat nichts ausgelöst. Eine Mindestmenge an Traffic nennt die Dokumentation nicht, aber eine Anfrage alle 15 Sekunden reichte nicht.

Eine geparkte Domain, die nur weiterleitet, bekommt weniger. Schalten Sie Passive Origin Monitoring trotzdem ein, es kostet nichts, aber lesen Sie aus seinem Schweigen nicht, dass etwas funktioniert. Die einzige Benachrichtigung, von der dokumentiert ist, dass sie 522 zählt, ist der Origin Error Rate Alert, und den gibt es nur in Enterprise.

Weiterleitungsregel gelöscht
auf einer Domain mit 192.0.2.1

Cloudflare schickt die Anfrage
an 192.0.2.1, Zeitüberschreitung

Besucher bekommt 522

Was erreicht Sie?

Passive Origin Monitoring, Free:
dokumentiert für 521,
in unserem Test stumm

Origin Error Rate Alert:
zählt 522,
nur Enterprise

Ihr Cron-Worker:
522 statt der erwarteten 301,
gemeldet beim nächsten Lauf

Wer Ihnen sagt, dass eine Weiterleitungsdomain 522 liefert

Weiterleitungen selbst prüfen, mit einem Cron-Worker

Was kein Tarif bietet, ist eine Anfrage an Ihre Domain und ein Blick darauf, wohin die Antwort zeigt. Ein Worker mit Zeitplan kann das, und ein Worker ohne eigene Route läuft auf workers.dev, braucht also keine Domain.

// Each row: the URL, the status you expect, the Location you expect.
const CHECKS = [
  ['https://old-brand.com/', 301, 'https://brand.com/'],
  ['https://www.old-brand.com/', 301, 'https://brand.com/'],
  ['https://promo-brand.net/', 302, 'https://brand.com/spring/'],
];

async function probe() {
  const failures = [];
  for (const [url, status, location] of CHECKS) {
    try {
      const res = await fetch(url, { redirect: 'manual' });
      const got = res.headers.get('location');
      if (res.status !== status || got !== location) {
        failures.push(`${url} → ${res.status} ${got ?? '(no Location)'}`);
      }
    } catch (err) {
      failures.push(`${url} → ${err.message}`);
    }
  }
  return failures;
}

export default {
  async scheduled(event, env) {
    const failures = await probe();
    if (failures.length === 0) return;
    const text = failures.join('\n');
    await fetch(env.ALERT_WEBHOOK, {
      method: 'POST',
      headers: { 'content-type': 'application/json' },
      // Slack reads `text`, Discord reads `content`.
      body: JSON.stringify({ text, content: text }),
    });
  },
};
name = "redirect-check"
main = "index.js"
compatibility_date = "2026-09-01"

[triggers]
crons = ["*/30 * * * *"]

Die Webhook-Adresse legen Sie mit wrangler secret put ALERT_WEBHOOK als Secret ab, damit sie nicht im Code steht. Entscheidend ist redirect: 'manual': Der Worker bekommt die erste Antwort und folgt ihr nicht, Sie vergleichen also genau das, was der Browser eines Besuchers bekommt.

Die Funktion probe() haben wir am 23. September von workers.dev aus gegen unsere eigenen Domains laufen lassen, die im selben Cloudflare-Konto liegen wie der Worker. Die richtigen Weiterleitungen gingen ohne Meldung durch. Eine Zeile, in der wir absichtlich das falsche Ziel erwartet hatten, wurde gemeldet. Eine Domain, die es nicht gibt, kam als Antwort 530 zurück statt als Fehler, und die Statusprüfung hat sie genauso erwischt.

Im Free-Tarif entscheiden zwei Grenzen, wie weit das trägt. Ein Worker-Aufruf darf 50 Subrequests machen, ein Lauf prüft also 49 URLs und behält eine Anfrage für den Alarm. Ein Konto darf insgesamt 5 Cron Triggers haben. Unseres hat neun, sieben davon für die Worker, die diesen Blog verteilen, wir lagen also schon vor jeder Überwachung über der Free-Grenze. Workers Paid hebt die Werte auf 10.000 Subrequests und 250 Cron Triggers, ab $5 im Monat.

Wo es bricht

Der Prüfer lebt in Cloudflare. Hat Cloudflare einen schlechten Tag, haben ihn der Worker und die Benachrichtigungen auch. Vom 19. Juni 11:35 bis 23. Juni 02:50 UTC dieses Jahres wurden manche Sicherheits- und DDoS-Alarme nicht zugestellt, festgehalten in einem Thread in der Community und auf der Statusseite. Ein Monitor außerhalb von Cloudflare, etwa UptimeRobot, sieht, was Besucher sehen, einen 522 eingeschlossen.

Benachrichtigungen gehören zum Konto, nicht zur Domain. In einer Regel für das ganze Konto lässt sich keine einzelne Zone stummschalten, und eine Frage, wie das geht, steht seit Juni ohne Antwort.

DNS-Änderungen hinterlassen einen Eintrag und sonst nichts. Audit Logs gibt es in jedem Tarif, sie werden 18 Monate aufbewahrt, aber keine Benachrichtigung liest sie. Im Januar fand jemand seine Nameserver geändert vor, nachdem die Zone in ein zweites Konto aufgenommen worden war, und erfuhr davon als die Website ausfiel. Die Audit-Logs-API abzufragen oder die NS-Einträge jeder Domain nach Zeitplan aufzulösen, ist der einzige Weg, es früher zu erfahren.

Origin-CA-Zertifikate laufen lautlos ab. Cloudflare sagt es direkt:

Cloudflare does not currently send expiration notifications for origin CA certificates.

Zertifikate gelten jetzt 200 Tage hat einen Befehl, der das Zertifikat auf Ihrem Server ausliest.

Domains bei anderen Registraren sind unsichtbar. Cloudflare Registrar schickt monatlich eine E-Mail mit den Domains, die „expiring in the next 60-90 days“ sind. Eine Domain, die anderswo registriert ist, bekommt von Cloudflare nichts.

Wann sich 301.st lohnt

Für eine Handvoll Domains brauchen Sie uns nicht. Schalten Sie die beiden Alarme ein, spielen Sie den Worker mit Ihrer Liste aus und lesen Sie die E-Mail.

Bei Hunderten von Domains tut die Lücke am meisten weh, die nichts bei Cloudflare abdeckt: Domains, deren Nameserver nicht mehr dorthin zeigen, wo die Weiterleitungsregeln liegen. 301.st löst die NS-Einträge der verwalteten Domains laufend auf, jede Domain mindestens zweimal am Tag, und vergleicht sie mit denen, die Cloudflare zugewiesen hat. Den Status jeder Zone liest es fortlaufend neu bei Cloudflare aus. Bekommt eine Domain mit aktiven Regeln keinen Traffic mehr über sie, weil die Nameserver umgezogen sind oder die Zone das Konto verlassen hat, schickt es Ihnen die Liste per E-Mail.

Der Rest steht auf einem Bildschirm für das ganze Portfolio, nicht als Alarm: das Urteil von VirusTotal für jede Domain, mit Ihrem eigenen API-Schlüssel; die Phishing-Sperre von Cloudflare; eine tägliche Zählung der Weiterleitungsantworten pro Host, die einen Einbruch um die Hälfte, um neun Zehntel oder auf null markiert; und das Ablaufdatum der Registrierung aus RDAP, egal bei welchem Registrar die Domain liegt.

Es ruft nicht jede Weiterleitung ab und vergleicht das Ziel mit dem, was Sie erwartet haben. Das macht der Worker oben, und er lohnt sich neben 301.st.