---
title: "E-Mail-Adressen und Telefonnummern in WordPress vor Spam-Bots schützen"
date: 2026-09-30T22:00:43+02:00
modified: 2026-11-08T22:05:18+01:00
category: wordpress
type: how_to
author: Marcel Schönfelder
canonical: https://s-edv.com/anleitungen/wordpress-e-mail-adressen-telefonnummern-vor-spam-bots-schuetzen
keywords:
  - WordPress
  - Spam
  - Impressum
  - Datenschutz
  - Plugins
reading_time: 8
---

# E-Mail-Adressen und Telefonnummern in WordPress vor Spam-Bots schützen

Im Impressum einer Unternehmenswebsite muss eine E-Mail-Adresse stehen, und meist auch eine Telefonnummer. Genau diese Angaben sammeln automatisierte Programme ein, sogenannte Harvester, und füttern damit Spam-Listen. Ganz verhindern lässt sich das nicht, denn die Adresse muss für Menschen lesbar bleiben. Sie können es Robotern aber deutlich schwerer machen, ohne Besucher zu behindern. Diese Anleitung zeigt drei Wege in WordPress: das Plugin Email Address Encoder, die WordPress-Funktion `antispambot()` und einen Shortcode für Telefonnummern. Außerdem erfahren Sie, an welchen Stellen der Schutz nicht greift.

**Kurzfassung:** Die Pflicht zur Angabe der E-Mail-Adresse im Impressum bleibt bestehen, ein Bild statt Text oder ein Formular allein ersetzt sie nicht. Das Plugin Email Address Encoder wandelt E-Mail-Adressen in Inhalten, Auszügen, Kommentaren, Text-Widgets und Menüs automatisch in HTML-Entitäten um. Telefonnummern schützen Sie mit dem Shortcode `[encode]`. Für Adressen im Theme oder in eigenem Code nutzen Sie `antispambot()`. Prüfen Sie das Ergebnis im reinen Quelltext, denn die Entwicklertools des Browsers zeigen die dekodierte Fassung. Untertitel der Website, Formulare und Theme-Bereiche außerhalb dieser Filter bleiben ungeschützt.

## Voraussetzungen

- [ ] **WordPress:** eine aktuelle Version. Email Address Encoder 1.0.25 setzt laut Plugin-Verzeichnis PHP 5.3 und WordPress 2.0 voraus.
- [ ] **Rolle:** Administrator im WordPress-Backend.
- [ ] **Zugriff:** Backend für Plugin und Inhalte. Für den Weg per `antispambot()` zusätzlich FTP/SFTP oder den Dateimanager Ihres Hosters. curl auf der Kommandozeile erleichtert die Kontrolle.
- [ ] **Backup:** ein aktuelles Backup von Dateien und Datenbank, bevor Sie Plugins installieren oder Code-Dateien anlegen.
- [ ] **Überblick:** eine Liste der Seiten, auf denen E-Mail-Adressen oder Telefonnummern stehen: Impressum, Kontakt, Datenschutzerklärung, Fußzeile, Team-Seite.

## Schritt 1: Ausgangslage im Quelltext prüfen

Einfache Harvester durchsuchen den HTML-Quelltext. Leistungsfähigere Programme können Entitäten dekodieren oder die Seite wie ein Browser auswerten. Prüfen Sie deshalb genau diesen. Mit curl sehen Sie, was ein einfacher Roboter sieht:

```bash
$ curl -s https://ihre-domain.de/impressum/ | grep -Eo '[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[a-z]{2,}' | sort -u
```

Als Beispiel dient eine Seite „Impressum“ mit der Adresse `info@beispiel-firma.de` als Text, als `mailto:`-Link und einer Telefonnummer als `tel:`-Link. Ohne Schutz liefert der Befehl die Adresse sofort, und im Quelltext steht die Telefonnummer im Klartext. Ohne curl öffnen Sie im Browser die Ansicht „Seitenquelltext anzeigen“ und suchen nach `@`. Nutzen Sie nicht die Entwicklertools: Laut Plugin-Beschreibung von Email Address Encoder dekodieren Chrome, Safari und andere dort HTML-Entitäten automatisch, Sie würden also auch geschützte Adressen im Klartext sehen.

> **Prüfen:** Sie wissen für jede Seite aus Ihrer Liste, welche Adressen und Nummern im Klartext im Quelltext stehen.

## Schritt 2: Rechtlichen Rahmen beachten

Für geschäftsmäßige digitale Dienste verlangt § 5 Abs. 1 Nr. 2 des Digitale-Dienste-Gesetzes (DDG) Angaben, die eine schnelle elektronische Kontaktaufnahme und eine unmittelbare Kommunikation ermöglichen, „einschließlich der Adresse für die elektronische Post“. Diese Informationen müssen leicht erkennbar, unmittelbar erreichbar und ständig verfügbar sein. Daraus folgen Grenzen für den Spam-Schutz:

- Die Adresse muss für Besucher lesbar bleiben. Umschreibungen wie „info [at] beispiel-firma [punkt] de“ sind für Besucher unbequem, weil sie die Adresse nicht direkt übernehmen können.
- Ein Bild mit der Adresse ist für Screenreader ohne Alternativtext nicht lesbar und nicht kopierbar.
- Ein Kontaktformular ersetzt die E-Mail-Adresse nicht, denn das Gesetz nennt sie ausdrücklich.

Die hier gezeigte Kodierung als HTML-Entitäten ändert nur den Quelltext. Besucher sehen und kopieren die Adresse wie gewohnt. Diese Anleitung ersetzt keine Rechtsberatung.

> **Prüfen:** Ihr Impressum enthält die E-Mail-Adresse weiterhin als lesbaren Text, und Sie verzichten auf Bilder oder Umschreibungen.

## Schritt 3: Email Address Encoder installieren

Das Plugin Email Address Encoder durchsucht Inhalte über WordPress-Filter und kodiert gefundene Adressen in dezimale und hexadezimale HTML-Entitäten. Es funktioniert ohne JavaScript. Installieren Sie es unter „Plugins“ → „Plugin hinzufügen“ mit der Suche nach „Email Address Encoder“ oder per WP-CLI:

```bash
$ wp plugin install email-address-encoder --activate
$ wp language plugin install email-address-encoder de_DE
```

Eine Konfiguration ist nicht nötig. Der Quelltext des Impressums sieht direkt nach der Aktivierung so aus:

```powershell
E-Mail: &#x69;&#x6e;&#x66;&#x6f;&#x40;&#x62;&#x65;…
<a href="&#x6d;a&#x69;&#108;t&#x6f;&#58;&#x69;…">Schreiben Sie uns</a>
```

Sowohl der Text als auch der `mailto:`-Link sind kodiert, der Befehl aus Schritt 1 findet keine Adresse mehr. Im Browser bleibt die Adresse unverändert lesbar und klickbar.

Laut Quellcode greift das Plugin in den Filtern `the_content`, `the_excerpt`, `widget_text`, `comment_text`, `comment_excerpt` und bei Menüeinträgen. Die Einstellungen finden Sie unter „Einstellungen“ → „E-Mail-Encoder“. Dort legen Sie die Filterpriorität fest, Standard ist 1000, damit andere Plugins vorher fertig sind. Der Ganzseitenscanner und weitere Kodierungsarten sind der kostenpflichtigen Premium-Version vorbehalten. Auf der Einstellungsseite bietet das Plugin zudem automatische Warnungen per E-Mail an, für die Sie sich beim Hersteller registrieren. Diese Registrierung ist optional und für den Schutz nicht nötig.

> **Prüfen:** Der curl-Befehl aus Schritt 1 findet auf den Inhaltsseiten keine Adresse mehr, im Browser ist sie lesbar und der Link öffnet Ihr E-Mail-Programm.

## Schritt 4: Telefonnummern mit dem Shortcode schützen

Telefonnummern erkennt das Plugin nicht automatisch. Dafür gibt es den Shortcode `[encode]`. Fügen Sie im Block-Editor einen Block „Shortcode“ ein und tragen Sie ein:

```plaintext
[encode link="tel:+4935112345678"]0351 12345678[/encode]
```

Daraus wird ein Link, bei dem sowohl das Ziel `tel:+4935112345678` als auch der sichtbare Text vollständig als Entitäten im Quelltext stehen. Schreiben Sie die Nummer im `tel:`-Link im internationalen Format mit Ländervorwahl, damit Mobiltelefone sie direkt wählen können. Ohne `link` kodiert der Shortcode nur den Text.

> **Prüfen:** Im Quelltext steht die Nummer nicht mehr im Klartext, auf dem Smartphone startet ein Tippen auf die Nummer den Anruf.

## Schritt 5: Adressen im Theme mit antispambot() schützen

E-Mail-Adressen in Fußzeilen klassischer Themes, in eigenen Vorlagen oder in Feldern von Plugins laufen oft nicht durch die Filter aus Schritt 3. Hier hilft die WordPress-Funktion `antispambot()`. Sie wandelt Zeichen zufällig in HTML-Entitäten um, mit dem zweiten Parameter `1` zusätzlich teilweise in URL-Kodierung für `mailto:`-Links. Ein kleines Must-Use-Plugin stellt dafür einen eigenen Shortcode bereit. Legen Sie die Datei `wp-content/mu-plugins/firmen-mail.php` an:

Datei: `wp-content/mu-plugins/firmen-mail.php`

```php
<?php
/**
 * Plugin Name: Shortcode für geschützte E-Mail-Adresse
 */
add_shortcode( 'firmen_mail', function () {
	$mail = 'info@beispiel-firma.de';
	return sprintf( '<a href="mailto:%s">%s</a>', antispambot( $mail, 1 ), antispambot( $mail ) );
} );
```

Den Shortcode `[firmen_mail]` können Sie anschließend überall einsetzen, wo Shortcodes ausgewertet werden, etwa in einem Shortcode-Block in einem Template-Teil der Fußzeile. Er liefert einen Link, bei dem Ziel und Text gemischt kodiert sind, zum Beispiel `mailto:&#105;&#110;&#102;o&#64;%62&#101;…`. Ein Must-Use-Plugin übersteht Theme-Wechsel und lässt sich im Backend nicht versehentlich deaktivieren. In PHP-Vorlagen eines Child-Themes rufen Sie `antispambot()` direkt auf, Hinweise zum Child-Theme finden Sie in [Child-Theme anlegen und Anpassungen bei Theme-Updates behalten](https://s-edv.com/anleitungen/wordpress-child-theme-anlegen-theme-updates-anpassungen-behalten).

> **Prüfen:** Der Shortcode erzeugt einen funktionierenden E-Mail-Link, und der curl-Befehl findet die Adresse nicht mehr im Klartext.

## Schritt 6: Lücken finden und dauerhaft kontrollieren

Keiner der Wege schützt automatisch die ganze Seite. Wenn Sie die Adresse in den Untertitel der Website unter „Einstellungen“ → „Allgemein“ eintragen, steht sie im Klartext im Quelltext, obwohl das Plugin aktiv ist, und auch die öffentliche Übersicht der REST-API unter `/wp-json/` gibt sie im Feld `description` aus. Der Seiteninhalt selbst bleibt in der REST-API dagegen kodiert. Prüfen Sie besonders:

- Untertitel und Titel der Website
- Kopf- und Fußzeilen des Themes sowie Template-Teile
- Formulare und deren Bestätigungstexte, siehe auch [WordPress-Formulare absichern](https://s-edv.com/anleitungen/wordpress-formulare-absichern-validierung-uploads-datenschutz)
- Autorenprofile, strukturierte Daten von SEO-Plugins und PDF-Dateien in der Mediathek

Wiederholen Sie die Prüfung aus Schritt 1 für alle Seiten. Ein neues Theme, ein Plugin-Update oder eine neue Fußzeile kann wieder eine Adresse im Klartext einbringen. Nehmen Sie die Prüfung deshalb in Ihre Routine nach Änderungen auf. Wer diese Kontrolle zusammen mit Updates und Backups nicht selbst im Kalender halten möchte, kann sie abgeben: Die [WordPress-Wartung von wordpressupdate.de](https://wordpressupdate.de/?utm_source=s-edv.com&utm_medium=artikel&utm_campaign=72) spielt Updates von WordPress, Plugins und Themes mit Kompatibilitätsprüfung ein, sichert wöchentlich auf externen Speicher und kümmert sich um die Firewall.

> **Prüfen:** Auf keiner Seite und in `/wp-json/` steht eine Adresse im Klartext, oder Sie haben bewusst entschieden, sie dort stehen zu lassen.

## Typische Fehler

**Adresse erscheint in den Entwicklertools im Klartext**

Das ist normal, die Werkzeuge dekodieren Entitäten. Prüfen Sie mit „Seitenquelltext anzeigen“ oder curl.

**Adresse im Untertitel oder Theme bleibt sichtbar**

Diese Bereiche laufen nicht durch die Filter des Plugins. Adresse dort entfernen oder per `antispambot()` ausgeben.

**Shortcode erscheint als Text**

Er steht in einem Absatz-Block statt im Block „Shortcode“, oder der Bereich wertet keine Shortcodes aus.

**Kein Unterschied nach Aktivierung**

Ein Seiten-Cache liefert die alte Seite aus. Cache leeren und erneut prüfen.

**Weiterhin Spam trotz Schutz**

Die Adresse stand bereits vorher im Klartext online und ist in Listen gelandet. Der Schutz wirkt nur für die Zukunft. Serverseitige Spam-Filter sind dann der wirksamere Hebel.

## Häufige Fragen

### Hält die Kodierung jeden Roboter auf?

Nein. Das Plugin beschreibt den Schutz als wirksam gegen die meisten Harvester. Ein Programm, das HTML-Entitäten dekodiert, liest die Adresse trotzdem. Die Kodierung senkt die Menge, sie verhindert Spam nicht vollständig.

### Brauche ich zusätzlich JavaScript-Verschleierung?

Nicht zwingend. Laut Einstellungsseite des Plugins bietet die JavaScript-basierte ROT13-Kodierung der Premium-Version den stärksten Schutz. JavaScript-Verfahren zeigen die Adresse aber nicht an, wenn JavaScript fehlt. Für das Impressum ist eine Lösung ohne JavaScript robuster.

### Sollte ich eine eigene Adresse nur für die Website nutzen?

Das ist sinnvoll. Eine eigene Funktionsadresse wie info@ lässt sich gezielt filtern und bei Bedarf austauschen, ohne dass persönliche Postfächer betroffen sind.

## Fazit

Mit Email Address Encoder, dem Shortcode `[encode]` und `antispambot()` bleiben E-Mail-Adressen und Telefonnummern für Besucher lesbar, im Quelltext aber für einfache Harvester unbrauchbar. Wichtig ist die Kontrolle im reinen Quelltext und der Blick auf Bereiche außerhalb der Filter wie den Untertitel. Diese Kontrolle nach Updates übernimmt auf Wunsch die [WordPress-Wartung](https://wordpressupdate.de/?utm_source=s-edv.com&utm_medium=fazit&utm_campaign=72) von Marcel Schönfelder.

## Weiterführende Anleitungen und Quellen

- [WordPress-Formulare absichern: Validierung, Uploads und Datenschutz](https://s-edv.com/anleitungen/wordpress-formulare-absichern-validierung-uploads-datenschutz)
- [Spam in Kommentaren und Formularen abwehren](https://s-edv.com/anleitungen/wordpress-spam-kommentare-formulare-abwehren-datenschutz)
- [Child-Theme anlegen und Anpassungen bei Theme-Updates behalten](https://s-edv.com/anleitungen/wordpress-child-theme-anlegen-theme-updates-anpassungen-behalten)
- [§ 5 Digitale-Dienste-Gesetz: Allgemeine Informationspflichten](https://www.gesetze-im-internet.de/ddg/__5.html)
- [Email Address Encoder im WordPress-Plugin-Verzeichnis](https://wordpress.org/plugins/email-address-encoder/)
- [WordPress Developer Reference: antispambot()](https://developer.wordpress.org/reference/functions/antispambot/)
