# Der Legal Shield: Impressum und Datenschutz für einen mehrsprachigen Hugo-Blog


Einen Blog zu starten ist aufregend, aber wenn du von Deutschland aus hostest oder europäische Leser ansprichst, stößt du noch vor dem ersten „Hello World“ auf eine rechtliche Hürde: die **Impressumspflicht** und die **DSGVO**.

Hier zeige ich, wie ich die rechtlichen Anforderungen gemeistert, eine privatsphärenfreundliche Adresse gesichert und ein mehrsprachiges Setup in Hugo implementiert habe.

## Warum braucht man das überhaupt?

In Deutschland verpflichtet § 5 DDG (ehemals TMG) fast jeden Website-Betreiber zu einem „Impressum“. Das gilt nicht nur für Unternehmen; selbst ein Hobby-Blog kann als „geschäftsmäßig“ eingestuft werden, wenn er Affiliate-Links enthält oder einfach eine gewisse Beständigkeit aufweist.

**Der Haken:** Man muss eine physische Adresse angeben, unter der man erreichbar ist. Für viele (mich eingeschlossen) ist es ein absolutes „No-Go“, die private Wohnanschrift öffentlich ins Internet zu stellen.

## Schritt 1: Eine c/o-Adresse finden

Es gibt ein paar Möglichkeiten, die Privatadresse zu schützen:
1. **Freunde/Familie:** Die „0 €“-Lösung. Man nutzt deren Adresse mit einem `c/o`-Zusatz.
2. **Business Center:** Professionell, aber meist teuer (30 €+ / Monat).
3. **Spezielle Impressum-Services:** Der „Sweet Spot“ für Blogger.

Ich habe mich für **[ihr-impressum.de](https://ihr-impressum.de)** entschieden. Es ist erschwinglich, bietet eine rechtlich „ladungsfähige Anschrift“ und kümmert sich um die Postbearbeitung. Es gibt jedoch viele andere Anbieter, die ähnliche Dienste zu vergleichbaren Preisen anbieten.

{{< admonition type=info title="Sofort startklar" open=true >}}
Ein großer Vorteil dieser Services ist, dass sie meist direkt eine passende Impressums-Vorlage oder ein Template bereitstellen. Dieses kann man fast ohne Änderungen übernehmen, da die Adresse und die rechtlichen Pflichtangaben bereits perfekt auf den Service abgestimmt sind.
{{< /admonition >}}

### Schritt 1.5: Telefon und E-Mail (Die digitale Seite)

Die rechtliche Compliance endet nicht bei der Postanschrift. Laut § 5 DDG muss man auch eine Möglichkeit zur „schnellen elektronischen Kontaktaufnahme“ und „unmittelbaren Kommunikation“ bieten. Das bedeutet:

1. **Eine Telefonnummer:** Um meine private Handynummer nicht preiszugeben, habe ich meinen alten **Sipgate VoIP-Account** reaktiviert. Er ist perfekt, da er nicht an einen physischen Festnetzanschluss gebunden ist. Leute können eine Nachricht auf der Mailbox hinterlassen, die mir dann per E-Mail weitergeleitet wird.
2. **Eine dedizierte E-Mail:** Ich habe eine saubere, professionelle Adresse angelegt: `webmaster@reitenba.ch`. Das hält mein privates Postfach frei von rechtlichen oder administrativen Anfragen.

**Hinweis:** Wenn du einen VoIP-Dienst oder eine Weiterleitung nutzt, stelle sicher, dass die „unmittelbare Kommunikation“ trotzdem gewährleistet ist (z. B. Mailbox regelmäßig prüfen!).

**Ein Hinweis zum Bot-Schutz:** In meinem öffentlichen Impressum zeige ich die E-Mail-Adresse als `webmaster [at] reitenba.ch` an. Während Menschen das sofort verstehen, macht es das für einfache Scraper-Bots deutlich schwieriger, die Adresse für Spam-Listen abzugreifen.

## Schritt 2: Die Datenschutzerklärung erstellen

Datenschutzerklärungen sind ein bewegliches Ziel. Anstatt sie selbst zu schreiben, sollte man einen Generator nutzen. Ich habe die kostenlose Version von **[e-recht24.de](https://www.e-recht24.de)** verwendet.

**Pro-Tipp:** Auch wenn du denkst, dass du nichts trackst, denke daran:
- **GitHub Pages** protokolliert IP-Adressen.
- **GoatCounter** (falls verwendet) muss erwähnt werden.
- **Google Fonts/CDNs** leiten oft Daten an Dritte weiter (versuche, diese lokal zu hosten oder ganz zu deaktivieren).

## Schritt 3: Mehrsprachigkeit in Hugo umsetzen

Wenn dein Blog zweisprachig ist (wie meiner), benötigst du diese Seiten in beiden Sprachen. Hier ist das technische Setup, das ich verwendet habe.

### Die Dateistruktur
Hugo nutzt ein Suffix-System für Sprachen. Für mein Setup habe ich folgendes erstellt:
- `content/impressum.md` (Deutsch)
- `content/imprint.en.md` (Englisch)
- `content/datenschutz.md` (Deutsch)
- `content/privacy.en.md` (Englisch)

{{< admonition type=note title="Konfiguration der Standardsprache" open=true >}}
In meiner Hugo-Instanz ist Deutsch als Standardsprache festgelegt. Daher benötigen die deutschen Dateien kein sprachabhängiges Suffix (wie `.de.md`), während die englischen Versionen zwingend das Suffix `.en.md` benötigen, um korrekt zugeordnet zu werden.
{{< /admonition >}}

### Die Footer-Logik
Ich wollte, dass der Footer automatisch auf die korrekte Sprachversion verlinkt. Dafür habe ich ein „Partial Fallback“-System gebaut.

In der Datei `layouts/partials/footer.html` habe ich einen Aufruf für ein benutzerdefiniertes Legal-Partial hinzugefügt:

{{< highlight html "linenos=table" >}}
<div class="footer-line">
    {{- $legalPath := printf "custom/legal-%s.html" .Lang -}}
    {{- if templates.Exists (printf "_partials/%s" $legalPath) -}}
        {{- partial $legalPath . -}}
    {{- else -}}
        {{- /* Fallback auf Deutsch */ -}}
        {{- partial "custom/legal-de.html" . -}}
    {{- end -}}
</div>
{{< /highlight >}}

Anschließend habe ich zwei kleine HTML-Schnipsel in `layouts/_partials/custom/` erstellt:

**legal-de.html**
{{< highlight html "linenos=table" >}}
<span><a href="/impressum/">Impressum</a></span>
&nbsp;|&nbsp;
<span><a href="/datenschutz/">Datenschutz</a></span>
{{< /highlight >}}

**legal-en.html**

{{< highlight html "linenos=table" >}}
<span><a href="/en/imprint/">Imprint</a></span>
&nbsp;|&nbsp;
<span><a href="/en/privacy/">Privacy Policy</a></span>
{{< /highlight >}}

## Schritt 4: Entfernen von Drittanbieter-CDNs

Um „Privacy by Design“ gemäß der DSGVO umzusetzen, habe ich **jsDelivr** in der `hugo.toml` deaktiviert. Dies stellt sicher, dass Assets wie Font Awesome direkt von meinem GitHub-Pages-Server geladen werden. Dadurch werden keine IP-Adressen der Nutzer an externe Netzwerke weitergegeben.

{{< highlight toml "linenos=table" >}}
  # CDN-Konfiguration für Drittanbieter-Bibliotheken
  [params.cdn]
    data = "my_local.yml"
{{< /highlight >}}

Zusätzlich habe ich eine leere Datei unter `assets/data/cdn/my_local.yml` erstellt, um die Standardeinstellungen zu überschreiben.

{{< admonition type=tip title="Verbindungstest" open=true >}}
Webentwickler sollten nach solchen Änderungen immer die **Netzwerkanalyse-Tools** ihres Browsers (F12) nutzen. Prüfe beim Laden der Seite genau, wohin der Browser Verbindungen aufbaut, um sicherzustellen, dass keine CDNs oder andere externe Quellen mehr geladen werden.
{{< /admonition >}}

## Fazit

{{< admonition type=warning title="Disclaimer" open=true >}}
Ich bin kein Anwalt und dieser Beitrag stellt keine Rechtsberatung dar. Die rechtlichen Anforderungen für Websites (insbesondere in Deutschland) sind komplex und können sich ändern. Die hier bereitgestellten Informationen spiegeln meine persönlichen Erfahrungen und Empfehlungen zum Zeitpunkt der Veröffentlichung wider. Für rechtlich bindende Informationen konsultiere bitte einen qualifizierten Rechtsanwalt.
{{< /admonition >}}

Rechtliche Compliance muss weder teuer noch kompliziert sein. Mit einem Service wie `ihr-impressum.de`, einem Generator wie `e-recht24.de` und etwas Hugo-Logik kannst du deine eigene Privatsphäre sowie die Daten deiner Leser schützen und dabei professionell auftreten.

Und nun: Zurück zum eigentlichen Bloggen!

