Google Maps mit PHP einzubinden kostet Sie ca. 30 Minuten Arbeit. Die Karte lädt am Ende aus Ihrem eigenen Verzeichnis, nicht von einem fremden Server in Kalifornien. Warum ausgerechnet der Umweg über PHP Ihre Abmahnsicherheit und Ihre Cloud-Rechnung gleichzeitig schont, klärt dieser Beitrag Schritt für Schritt.
drweb.de als bevorzugte Quelle auf Google hinzufügenQualitätsgeprüfte Inhalte direkt in Google News & DiscoverJetzt hinzufügenEine Karte auf die Kontaktseite zu setzen, schafft jeder Praktikant in fünf Minuten. Rechtssicher und mit kalkulierbaren Kosten wird die Sache erst, wenn der Server mitarbeitet. Genau hier trennt sich das schnelle Copy-paste-Snippet von einer sauberen PHP-Lösung.
Das Wichtigste in Kürze
- Die Maps Embed API ist gratis und unbegrenzt, lädt aber direkt bei Google und verlangt deshalb vorab eine Einwilligung.
- Die Maps Static API liefert 10.000 Karten pro Monat kostenlos; darüber hinaus zahlen Sie rund 2 US-Dollar je 1.000 Abrufe.
- Wer das Kartenbild per PHP zwischenspeichert, senkt die Rechnung und hält Besucherdaten vom Google-Server fern.
- Die URL-Signierung mit HMAC-SHA1 gehört auf den Server, niemals in den sichtbaren Quelltext.
Warum Google Maps mit PHP statt nur JavaScript?

JavaScript zeichnet die Karte im Browser, und für viele Projekte reicht das vollkommen. Sobald jedoch Adressen aus einer Datenbank kommen und Sie Kosten deckeln oder Daten schützen wollen, stößt das reine Frontend an seine Grenzen. PHP setzt genau an diesen drei Punkten an. Als eine der meistgenutzten Server-Sprachen bringt PHP dafür alles mit.
Erstens baut PHP die Karten-URL dynamisch zusammen. Die Filialadresse liegt in der Datenbank, das Template fügt sie zur Laufzeit ein. Zweitens signiert PHP Anfragen mit einem geheimen Schlüssel, der den Browser nie erreicht. Drittens lädt PHP das fertige Kartenbild auf den eigenen Server und liefert daraus eine zwischengespeicherte Kopie aus.
Der letzte Punkt wiegt schwer. Holt der Server das Bild einmal ab und cacht die Datei, sieht der Besucher nur noch Ihre Domain. Kein Browser des Nutzers spricht mehr mit Google. Diese Trennung spart Geld und entschärft den Datenschutz, zwei Sorgen auf einen Schlag.
Ein Beispiel aus der Praxis macht den Unterschied deutlich. Ein Handwerksbetrieb mit zwölf Standorten pflegt seine Adressen in einer Datenbank. PHP erzeugt für jede Filiale automatisch die passende Karte, ohne dass jemand zwölf Snippets von Hand betreut. Ändert sich eine Anschrift, genügt ein Eintrag im Backend, und alle Seiten ziehen nach.
Was kostet die Karte 2026 wirklich?

Seit dem 1. März 2025 rechnet Google Maps Platform anders ab. Das alte Guthaben von 200 US-Dollar pro Monat fiel weg. An seine Stelle trat ein Freikontingent je Produkt, gestaffelt nach Leistungsklasse.
Beim Einbinden der Karte zählen zwei Dienste, und ihre Preislogik unterscheidet sich grundlegend:
| API | Gratis pro Monat | Preis darüber | Lädt von |
|---|---|---|---|
| Maps Embed API | unbegrenzt | 0 US-Dollar | Google, direkt im Browser |
| Maps Static API | 10.000 Abrufe | ab ca. 2 US-Dollar je 1.000 | Google, per PHP cachebar |
Die Embed API kostet nichts, in keiner Größenordnung. Wer also nur ein interaktives Kärtchen braucht und den Datenschutz anders löst, ist hier fertig. Die Static API dagegen gehört zur Essentials-Klasse mit den genannten 10.000 Freiabrufen, danach greift der Cent-Tarif.
Ein Rechenbeispiel macht den Unterschied greifbar. Eine Kontaktseite mit 8.000 Aufrufen im Monat bleibt bei der Static API gratis. Cachen Sie das Bild zusätzlich für eine Woche, sinkt die Zahl echter Google-Abrufe auf wenige Dutzend. Caching verwandelt einen potenziellen Kostenpunkt in einen Rundungsfehler.
Wie richten Sie Schlüssel und APIs ein?

Vor der ersten Zeile PHP steht etwas Klickarbeit in der Google Cloud Console. Vier Schritte genügen, und jeder dauert keine zwei Minuten.
Schritt 1: Projekt anlegen
Melden Sie sich in der Google Cloud Console an und erstellen Sie ein neues Projekt. Hinterlegen Sie ein Rechnungskonto, sonst bleiben die APIs gesperrt. Eine Kreditkarte ist Pflicht, auch wenn Sie im Freikontingent bleiben und nie etwas zahlen.
Schritt 2: APIs aktivieren
Öffnen Sie die API-Bibliothek und schalten Sie gezielt frei, was Sie brauchen. Für dieses Tutorial sind das die Maps Embed API und die Maps Static API. Jeder weitere aktivierte Dienst vergrößert nur die Angriffsfläche.
Schritt 3: API-Schlüssel erzeugen
Legen Sie unter „Anmeldedaten“ einen API-Schlüssel an. Diesen String fügt PHP später in die URL ein. Notieren Sie ihn an einem sicheren Ort, etwa in einer Umgebungsvariable statt im Code.
Schritt 4: Schlüssel einschränken
Ein offener Schlüssel ist eine Einladung an Fremde, auf Ihre Rechnung zu kartografieren. Beschränken Sie ihn deshalb auf Ihre Domain und auf die beiden aktivierten APIs. Diese Restriktion ist der wichtigste Klick im ganzen Prozess.
Wie betten Sie die Karte per Embed API in PHP ein?

Die Embed API liefert ein iframe, mehr nicht. Viele Kontaktseiten laufen ohnehin auf WordPress, wo solch ein Rahmen in Minuten sitzt. PHP baut die Adresse zur Laufzeit und sorgt dafür, dass Sonderzeichen sauber kodiert werden. Der Schlüssel steht hier offen im Quelltext, weil der Browser ihn ohnehin braucht; genau deshalb ist die Domain-Einschränkung aus Schritt vier so wichtig.
Zwei Funktionen tragen die Last. rawurlencode macht aus der Adresse eine gültige Query, htmlspecialchars schützt vor kaputtem Markup und Injection. Die Modi der Embed API heißen place, view, directions und search; ein Tausch des Wortes in der URL genügt, um von der Punktansicht zur Routenplanung zu wechseln.
Eine Warnung gehört an diese Stelle. Das iframe ruft Google direkt aus dem Browser des Besuchers auf, samt IP-Adresse und Gerätedaten. Ohne vorherige Einwilligung verstößt diese Variante gegen die DSGVO, dazu später mehr.
Google Maps Platform hat mit dem Wegfall des 200-Dollar-Guthabens gezeigt, wohin die Reise geht. Wer Karten ohne serverseitigen Cache einbindet, zahlt am Ende doppelt: an Google und an den Abmahnanwalt.
— Michael Dobler, Herausgeber Dr. Web
Wie erzeugt PHP eine statische Karte zum Selbsthosten?

Die Static API antwortet nicht mit HTML, sondern mit einem fertigen PNG. Damit lässt sich das Bild auf dem Server abfangen, speichern und aus dem eigenen Verzeichnis ausliefern. Zuerst baut eine kleine Funktion die Anfrage-URL zusammen.
http_build_query kodiert alle Parameter korrekt, auch Umlaute in der Adresse. Der Parameter scale=2 liefert ein doppelt aufgelöstes Bild für Retina-Displays. Größe, Zoomstufe und Markerfarbe stellen Sie nach Bedarf ein.
Jetzt folgt der eigentliche PHP-Vorteil: der Server lädt das Bild einmal und legt die Datei lokal ab. Beim nächsten Aufruf kommt die Karte aus dem Cache, nicht von Google.
Im Template steht danach nur noch ein schlichtes Bild-Tag, das auf den lokalen Pfad zeigt. Der Besucher lädt eine Datei von Ihrer Domain, sonst nichts.
Wie signieren Sie die Static-URL serverseitig?

Google empfiehlt für jede Static-Anfrage zusätzlich eine digitale Signatur, und ab einer gewissen Nutzungsmenge wird sie zur Pflicht. Die Signatur beweist, dass die Anfrage wirklich von Ihrem Projekt stammt. Berechnet wird sie mit HMAC-SHA1 aus dem Pfad und einem geheimen Signing-Secret, das Sie in der Cloud Console finden.
Drei Details entscheiden über Erfolg oder einen 403-Fehler. Das Secret liegt in modifiziertem Base64 vor, also übersetzen Sie den String zuerst mit strtr zurück. Signiert wird allein der Pfad samt Query, niemals Schema oder Hostname. Und das Resultat wandert noch einmal durch dieselbe Zeichen-Ersetzung, damit Plus und Schrägstrich die URL nicht zerschießen.
Ein Grundsatz steht über allem. Das Signing-Secret verlässt den Server nie. Taucht der Geheimschlüssel je im Quelltext einer Seite auf, müssen Sie ihn sofort in der Konsole zurücksetzen.
Wann sollte der Cache die Karte erneuern?

Ein Bild, das einmal auf der Platte liegt, altert lautlos. Zieht die Filiale um oder wechselt die Markerfarbe im Corporate Design, zeigt der Cache trotzdem die alte Ansicht. Eine simple Altersprüfung räumt diese Gefahr aus.
Dafür erweitern wir die Cache-Funktion, sodass sie Dateialter und Höchstdauer vergleicht. Dreißig Tage sind für eine Anfahrtskarte ein vernünftiger Richtwert, weil Standorte selten wandern.
Ein Detail rettet Sie bei einer Google-Störung. Schlägt der Abruf fehl, bleibt die alte Datei liegen; eine leere Datei überschreibt sie nicht. Der Besucher sieht im Zweifel eine etwas ältere Karte, niemals ein kaputtes Bild.
Wie binden Sie die Karte DSGVO-konform ein?

Hier wird aus einer Technikfrage eine Rechtsfrage. Google überträgt bei jedem direkten Kartenaufruf Daten in die USA, und der Europäische Gerichtshof hat das alte Privacy-Shield-Abkommen mit dem Schrems-II-Urteil gekippt. Ein berechtigtes Interesse trägt nach Auffassung der Gerichte nicht, also brauchen Sie eine vorherige, freiwillige Einwilligung des Besuchers.
Für die Embed-Variante bedeutet das: kein Kartenaufruf, bevor der Nutzer aktiv zugestimmt hat. Üblich ist die Zwei-Klick-Lösung. Anstelle der Karte erscheint zunächst ein lokales Vorschaubild mit Hinweistext, und erst der Klick lädt das echte iframe von Google nach.
Die gecachte Static-Variante entschärft das Problem an der Wurzel. Holt Ihr Server das Bild ab und liefert die lokale Datei aus, kontaktiert der Browser des Besuchers Google überhaupt nicht. Keine fremde IP-Adresse wandert in die USA, weil die einzige Verbindung serverseitig und ohne Nutzerdaten läuft. Diese Architektur gilt vielen Datenschützern als sauberste Lösung, ersetzt aber keine anwaltliche Prüfung Ihres Einzelfalls.
Wer das Restrisiko ganz vermeiden will, prüft eine Alternative. OpenStreetMap rendert Karten ohne Google im Hintergrund und lässt sich serverseitig genauso einbinden. Der Funktionsumfang reicht für eine Anfahrtsskizze in aller Regel locker aus.
Was bleibt unterm Strich?

Google Maps mit PHP einzubinden ist keine Frage des Könnens, sondern der Architektur. Das schnelle iframe ist gratis und in Minuten gesetzt, schickt aber bei jedem Aufruf Besucherdaten zu Google. Die serverseitige Static-Lösung kostet ein paar Zeilen mehr und löst dafür Kosten und Datenschutz in einem Aufwasch.
Bauen Sie die URL in PHP, signieren Sie auf dem Server, cachen Sie das Bild lokal. Diese drei Handgriffe halten Ihre Rechnung niedrig und Ihre Kontaktseite abmahnsicher. Den Rest erledigt einmal eingerichtet der Cache, ganz von allein.
Glossar: 14 wichtige Fachbegriffe zu Google Maps mit PHP

API-Schlüssel
API-Schlüssel ist eine Zeichenkette, mit der Google jede Anfrage einem Cloud-Projekt zuordnet und abrechnet. Bei der Embed API steht der Schlüssel offen im Quelltext, weshalb eine Beschränkung auf die eigene Domain Pflicht bleibt. Ohne gültigen Schlüssel verweigert die Maps-Plattform die Auslieferung.
Base64
Base64 kodiert beliebige Binärdaten in 64 druckbare Zeichen. Google liefert das Signing-Secret in einer URL-sicheren Base64-Variante, in der Plus und Schrägstrich durch Minus und Unterstrich ersetzt sind. PHP muss diese Variante vor der Signierung zurückwandeln.
Caching
Caching meint das Zwischenspeichern einer einmal erzeugten Datei, um wiederholte Berechnungen oder Abrufe zu sparen. Beim Kartenbild legt der Server das PNG lokal ab und liefert ab dem zweiten Aufruf die gespeicherte Kopie. Das senkt Kosten und hält Besucherdaten von Google fern.
DSGVO
DSGVO steht für die Datenschutz-Grundverordnung der EU, das zentrale Regelwerk für den Umgang mit personenbezogenen Daten. Bei Google Maps greift sie, sobald die IP-Adresse eines Besuchers an Google wandert. Ohne vorherige Einwilligung droht eine Abmahnung.
Essentials-Tier
Essentials-Tier bezeichnet die günstigste Leistungsklasse der Google Maps Platform, zu der Dynamic Maps, Static Maps und Geocoding zählen. Jede dieser Funktionen erhält monatlich 10.000 kostenlose Abrufe. Erst darüber beginnt die nutzungsabhängige Abrechnung im Cent-Bereich.
Freikontingent
Freikontingent nennt die monatlich kostenlose Abrufmenge je API. Seit März 2025 ersetzt dieses Modell das frühere Pauschalguthaben von 200 US-Dollar. Für die Static API liegt die Grenze bei 10.000 Karten pro Monat, die Embed API bleibt sogar gänzlich kostenlos.
HMAC-SHA1
HMAC-SHA1 ist ein Verfahren, das eine Nachricht zusammen mit einem geheimen Schlüssel zu einer Prüfsumme verrechnet. Google nutzt diese Prüfsumme als digitale Signatur der Static-Maps-URL. Nur wer das Signing-Secret kennt, erzeugt eine gültige Signatur.
iframe
iframe ist ein HTML-Element, das eine fremde Webseite in die eigene einbettet. Die Maps Embed API liefert genau solch einen Rahmen, in dem die interaktive Karte direkt von Google lädt. Diese Direktverbindung macht den iframe datenschutzrechtlich heikel.
Maps Embed API
Maps Embed API liefert eine interaktive Karte als fertigen iframe, ganz ohne JavaScript-Programmierung. Der Dienst bleibt in jeder Menge kostenlos, lädt aber im Browser des Besuchers direkt bei Google. Eine vorherige Einwilligung wird damit zur Pflicht.
Maps Static API
Maps Static API liefert die Karte als unbewegliches PNG-Bild über eine einfache URL. Der Server fängt dieses Bild ab, speichert und hostet selbst. Die ersten 10.000 Abrufe pro Monat kosten nichts, danach fallen rund zwei US-Dollar je 1.000 Karten an.
OpenStreetMap
OpenStreetMap ist ein freies, gemeinschaftlich gepflegtes Kartenprojekt ohne kommerziellen US-Konzern im Hintergrund. Für eine schlichte Anfahrtsskizze reicht der Funktionsumfang locker. Wer den USA-Datentransfer komplett vermeiden will, findet hier die naheliegende Alternative zu Google Maps.
Schrems-II-Urteil
Schrems-II-Urteil bezeichnet die Entscheidung des Europäischen Gerichtshofs von 2020, die das Datenschutzabkommen Privacy Shield zwischen EU und USA kippte. Seither gilt der Transfer personenbezogener Daten in die USA als rechtlich heikel, was auch jede direkte Google-Maps-Einbindung betrifft.
Signing-Secret
Signing-Secret ist ein privater Schlüssel aus der Google Cloud Console, mit dem der Server Static-Maps-URLs signiert. Anders als der API-Schlüssel verlässt das Secret den Server niemals. Taucht der Geheimschlüssel im Quelltext auf, gehört er sofort zurückgesetzt.
Zwei-Klick-Lösung
Zwei-Klick-Lösung ist ein Datenschutzmuster, bei dem zunächst nur ein lokales Vorschaubild erscheint. Erst ein aktiver Klick des Besuchers lädt die echte Karte von Google nach. So fließen personenbezogene Daten frühestens nach einer bewussten Einwilligung.
FAQ: Google Maps mit PHP

Ist die Einbindung von Google Maps mit PHP kostenlos?
Die Maps Embed API bleibt in jeder Menge gratis. Die Maps Static API liefert 10.000 Karten pro Monat kostenlos, darüber kostet jeder weitere Abruf rund zwei US-Dollar je 1.000 Stück. Mit serverseitigem Caching bleiben die meisten Websites dauerhaft im Freikontingent.
Brauche ich für Google Maps eine Einwilligung der Besucher?
Ja. Sobald die Karte direkt von Google lädt, wandert die IP-Adresse des Besuchers in die USA, und der Europäische Gerichtshof verlangt dafür eine vorherige, freiwillige Einwilligung. Ein serverseitig gecachtes Bild umgeht diese Übertragung.
Was unterscheidet Maps Embed API und Maps Static API?
Die Embed API liefert eine interaktive Karte als iframe, kostenlos, aber direkt von Google. Die Static API liefert ein unbewegliches PNG, das der Server abfangen und selbst hosten kann. Für Datenschutz und Kostenkontrolle eignet sich die Static-Variante deutlich besser.
Wie senke ich die Kosten der Maps Static API?
Der Server lädt jedes Kartenbild nur einmal und legt die Datei lokal ab. Jeder weitere Seitenaufruf zieht die Karte aus dem Cache statt von Google. So sinkt die Zahl echter Abrufe auf einen Bruchteil und bleibt meist unter der Freigrenze.
Muss ich die Static-Maps-URL signieren?
Google empfiehlt die Signatur für jede Anfrage und macht sie ab einer gewissen Abrufmenge zur Pflicht. PHP berechnet sie serverseitig per HMAC-SHA1 aus dem Signing-Secret. Der geheime Schlüssel bleibt dabei immer auf dem Server.
Welche Alternative zu Google Maps gilt als DSGVO-sicher?
OpenStreetMap rendert Karten ohne einen US-Konzern im Hintergrund und lässt sich serverseitig genauso einbinden. Für eine reine Anfahrtsskizze reicht der Funktionsumfang. Wer den Datentransfer in die USA ganz vermeiden will, fährt damit am sichersten.
Quellen
