Fragen Sie einen lokalen Unternehmer, auf welchem Platz er für „emergency plumber” rankt, und er wird meist eine Zahl nennen, oft die, die er bei einer Suche aus seinem eigenen Büro gesehen hat. Diese Zahl ist real, aber sie beschreibt nur einen Punkt auf der Landkarte. Google ordnet lokale Ergebnisse teilweise nach der Entfernung zum Suchenden, sodass dasselbe Unternehmen auf seiner eigenen Straße auf Platz 1 stehen kann, eine Meile entfernt auf Platz 8 und auf der anderen Seite der Stadt gar nicht erscheint.
Ein Geo-Grid behebt das, indem es das Ranking von vielen Punkten gleichzeitig misst. Man legt ein Raster aus Koordinaten über das Gebiet, das ein Unternehmen bedient, führt von jedem Punkt dieselbe Maps-Suche aus und erfasst, wo das Unternehmen erscheint. Das Ergebnis ist eine Karte der Rankings statt eines einzelnen Rangs, und sie zeigt genau, wo ein Unternehmen gewinnt und wo es verschwindet.
Dieser Leitfaden behandelt, wie man das Grid gestaltet, den Code, um es auszuführen, wie man die drei Kennzahlen liest, die Teams daraus berichten, und die Fehler, die Grids irreführend machen.
Warum ein einzelner Rang nicht ausreicht
Googles eigene Leitlinien nennen drei Faktoren hinter lokalen Ergebnissen: Relevanz (wie gut der Eintrag zur Suche passt), Entfernung (wie weit das Ergebnis vom Suchenden oder dem in der Suche angegebenen Ort entfernt ist) und Bekanntheit (wie bekannt das Unternehmen ist, anhand von Bewertungen, Links und anderen Signalen). Relevanz und Bekanntheit ändern sich von einem Block zum nächsten kaum. Die Entfernung ändert sich mit jedem Schritt.
Das macht lokales Ranking zu einer Fläche, nicht zu einer Zahl. Ein Zahnarzt mit einem starken Profil kann die obersten drei Plätze im gesamten Stadtviertel halten, während ein neuerer Mitbewerber nur in der Nähe der eigenen Tür rankt. Eine einzelne Prüfung aus dem Büro verbirgt beide Tatsachen. Das gilt auch für eine Prüfung auf Stadtebene: Eine Abfrage nach Ergebnissen „in Chicago” mittelt genau die Variation heraus, die für ein lokales Unternehmen zählt.
Wenn Sie neu darin sind, wie der Standort Suchergebnisse breiter formt, behandelt unser Leitfaden zu geo-zielgerichteten SERP-APIs für lokales SEO die Granularitätsleiter von Land bis Koordinaten. Ein Geo-Grid sitzt auf der letzten Stufe.
Das Grid gestalten
Ein Grid hat drei Einstellungen, und jede verändert, was die Karte aussagen kann.
| Einstellung | Was sie steuert | Ein sinnvoller Startwert |
|---|---|---|
| Größe | Anzahl der Punkte pro Seite (7 bedeutet 7 x 7 = 49 Punkte) | 7 für ein Unternehmen im Viertel, 9 bis 13 für ein Einzugsgebiet |
| Abstand | Entfernung zwischen benachbarten Punkten | 0,5 bis 1 km in dichten Städten, 2 bis 5 km in Vororten und ländlichen Gebieten |
| Zoom | Die Kartenzoomstufe, bei der die Suche durchgeführt wird | 15 für Straßenebene, 13 für ein weiteres Gebiet |
Drei Regeln halten ein Grid ehrlich:
- Verwenden Sie eine ungerade Größe und zentrieren Sie sie auf das Unternehmen. Der mittlere Punkt liegt dann auf der Adresse, sodass die Karte immer den besten Fall neben allem anderen zeigt.
- Passen Sie den Abstand daran an, wie Menschen tatsächlich suchen. Ein Café konkurriert in Gehentfernung; ein Dachdeckerbetrieb konkurriert über einen ganzen Landkreis. Ein zu enges Grid zeigt nur Grün, und ein zu weites zeigt nur leere Zellen.
- Halten Sie jede Einstellung zwischen Durchläufen fest. Größe, Abstand, Zoom, Keyword, Sprache und Gerät müssen identisch bleiben, sonst sind zwei Karten nicht vergleichbar.
Der Code
Das folgende Modul baut das Grid auf, bereitet eine Maps-Suche pro Punkt vor, findet das Unternehmen in jeder Antwort und fasst das Ergebnis zusammen. Es verwendet nur die Standardbibliothek.
import math
EARTH_RADIUS_KM = 6371.0088
NOT_FOUND = 21 # one past the 20 places a Maps search returns
def grid_points(lat, lng, size=7, spacing_km=1.0):
"""A size x size grid centred on (lat, lng), points spacing_km apart."""
if size % 2 == 0:
raise ValueError("size must be odd so the business sits on the centre point")
half = size // 2
points = []
for row in range(size):
for col in range(size):
north_km = (half - row) * spacing_km
east_km = (col - half) * spacing_km
p_lat = lat + math.degrees(north_km / EARTH_RADIUS_KM)
p_lng = lng + math.degrees(east_km / (EARTH_RADIUS_KM * math.cos(math.radians(p_lat))))
points.append({"row": row, "col": col, "lat": round(p_lat, 6), "lng": round(p_lng, 6)})
return points
def maps_params(keyword, lat, lng, zoom=15, api_key="YOUR_API_KEY"):
"""Query parameters for one Google Maps search seen from (lat, lng)."""
return {
"engine": "google_maps",
"api_key": api_key,
"q": keyword,
"type": "search",
"ll": f"@{lat},{lng},{zoom}z",
"hl": "en",
}
def rank_of(response, place_id):
"""Position of the business in one response, or None when it is not listed."""
for place in response.get("places_results", []):
if place.get("place_id") == place_id:
return place.get("position")
return None
def summarise(ranks, top=3):
"""ranks: one rank (or None) per grid point."""
found = [r for r in ranks if r is not None]
return {
"points": len(ranks),
"found": len(found),
"arp": round(sum(found) / len(found), 2) if found else None,
"atrp": round(sum(r if r is not None else NOT_FOUND for r in ranks) / len(ranks), 2),
"solv": round(sum(1 for r in found if r <= top) / len(ranks), 3),
}
def render(points, ranks, size):
"""The grid as text, north at the top: rank per point, '--' when not found."""
cells = {(p["row"], p["col"]): r for p, r in zip(points, ranks)}
return "\n".join(
" ".join(f"{cells[(row, col)]:>2}" if cells[(row, col)] is not None else "--" for col in range(size))
for row in range(size)
)
grid_points wandelt Kilometer auf einer Kugel in Grad um, sodass der Abstand auf jedem Breitengrad gleichmäßig bleibt, statt sich mit zunehmender Entfernung vom Äquator zu dehnen. Punkt 0 ist die Nordwestecke, und die Zeilen verlaufen von Norden nach Süden.
Die Ausführung für ein Unternehmen und ein Keyword ist eine kurze Schleife. Jeder Punkt wird zu einer Google-Maps-Suche über Shifters SERP API, wobei die Koordinaten im Parameter ll übergeben werden, sodass die Suche von diesem Punkt aus erfolgt:
import json
import os
import time
import requests
from geogrid import grid_points, maps_params, rank_of, render, summarise
API = "https://serp.shifter.io/v1"
KEYWORD = "emergency plumber"
PLACE_ID = "ChIJ_YOUR_PLACE_ID" # the business you are tracking
CENTER = (41.8781, -87.6298) # its address
SIZE, SPACING_KM = 7, 1.0
points = grid_points(*CENTER, size=SIZE, spacing_km=SPACING_KM)
ranks = []
for p in points:
params = maps_params(KEYWORD, p["lat"], p["lng"], api_key=os.environ["SERP_API_KEY"])
response = requests.get(API, params=params, timeout=60).json()
ranks.append(rank_of(response, PLACE_ID))
time.sleep(0.2)
print(render(points, ranks, SIZE))
print(json.dumps(summarise(ranks)))
Um den richtigen Eintrag zuzuordnen, verwenden Sie die place_id des Unternehmens statt seines Namens: Namen wiederholen sich, und Franchises teilen sich welche. Sie finden die place_id in jeder Maps-Antwort, die das Unternehmen enthält.
Wir haben das Modul gegen einen synthetischen Responder getestet, der ein Unternehmen nach seiner Entfernung vom Mittelpunkt rankt, mit einer etwas schwächeren östlichen Seite. Die Ausgabe sieht so aus (die Zahlen stammen aus dem synthetischen Test, nicht von einem echten Unternehmen):
12 10 9 8 11 12 14
10 8 6 6 8 10 12
9 6 4 3 6 8 11
8 6 3 1 5 8 10
9 6 4 3 6 8 11
10 8 6 6 8 10 12
12 10 9 8 11 12 14
{"points": 49, "found": 49, "arp": 8.31, "atrp": 8.31, "solv": 0.082}
Das Muster ist dasjenige, das echte Grids zeigen: stark an der Adresse, mit der Entfernung abnehmend und richtungsabhängig ungleichmäßig.
Die Karte lesen: drei Kennzahlen
Teams fassen ein Grid mit drei Zahlen zusammen, und jede beantwortet eine andere Frage.
| Kennzahl | Wie sie berechnet wird | Was sie aussagt |
|---|---|---|
| ARP, average rank position | Mittlerer Rang über die Punkte, an denen das Unternehmen erscheint | Wie gut es dort rankt, wo es überhaupt rankt |
| ATRP, average total rank position | Mittlerer Rang über alle Punkte, wobei „nicht gefunden” als 21 gezählt wird | Gesamtsichtbarkeit über das gesamte Gebiet |
| SoLV, share of local voice | Anteil der Punkte, an denen das Unternehmen in den Top 3 ist | Wie viel der Karte es im Map Pack besetzt |
Sie müssen gemeinsam gelesen werden. Ein Unternehmen, das nur an fünf Punkten gefunden wird, alle in den Top 3, hat einen hervorragenden ARP und einen schlechten ATRP. Die Karte zeigt warum: Es dominiert ein kleines Gebiet und ist überall sonst unsichtbar. Das deutet auf ein Entfernungsproblem hin, nicht auf ein Relevanzproblem, und bessere Arbeit an der Seite selbst wird das nicht beheben.
SoLV zählt am meisten für Unternehmen, die vom Map Pack abhängen, den drei lokalen Ergebnissen, die Google über den regulären Einträgen anzeigt. Die Positionen vier bis zwanzig existieren in der vollständigen Maps-Liste, aber deutlich weniger Suchende scrollen so weit.
Ein Grid nutzen, um Entscheidungen zu treffen
Ein einmaliges Grid ist eine Diagnose. Wiederholte Grids sind dort, wo der Wert liegt.
- Vergleichen Sie sich mit Mitbewerbern auf demselben Grid. Führen Sie dieselben Punkte für die zwei oder drei Unternehmen aus, die Sie im Zentrum schlagen. Ihre Karten zeigen oft, dass ein Mitbewerber bei der Bekanntheit gewinnt (ein großes, gleichmäßiges Gebiet), während Sie bei der Nähe gewinnen.
- Messen Sie Veränderungen, nachdem Sie gehandelt haben. Neue Bewertungen, eine korrigierte Kategorie oder eine berichtigte Adresse sollten sich einige Wochen später als größeres grünes Gebiet zeigen. Ohne ein festes Grid können Sie eine Verbesserung nicht von Rauschen unterscheiden.
- Verfolgen Sie die Ränder. Die Zellen am Rand des starken Gebiets eines Unternehmens bewegen sich zuerst, in beide Richtungen. Sie zu beobachten liefert frühere Warnungen als das Zentrum.
- Prüfen Sie Unternehmen mit Einzugsgebiet sorgfältig. Unternehmen, die ihre Adresse verbergen und Kunden vor Ort bedienen, ranken oft sehr anders als Ladengeschäfte. Ein breiteres Grid zeigt, ob sie dort erscheinen, wo ihre Kunden sind.
Wöchentliche Durchläufe reichen für die meisten Unternehmen aus. Lokale Rankings bewegen sich tatsächlich täglich, aber ein wöchentlicher Rhythmus mit festen Einstellungen zeigt Trends, ohne für jede Schwankung zu bezahlen. Wenn Sie auch reguläre organische Rankings verfolgen, behandelt unser Leitfaden zum Erkennen von SERP-Volatilität, wie man eine echte Bewegung von Tag-zu-Tag-Rauschen unterscheidet.
Fehler, die Grids irreführend machen
- Mit einem Stadtnamen im Keyword suchen. „Plumber Chicago” teilt Google mit, wo gesucht werden soll, und überschreibt die Position des Punkts. Verwenden Sie den einfachen Dienstleistungsbegriff, so wie ein Suchender in der Nähe es tun würde.
- Geräte oder Sprachen zwischen Durchläufen mischen. Mobile und Desktop-Maps-Ergebnisse unterscheiden sich. Wählen Sie eines und bleiben Sie dabei.
- „Nicht gefunden” als Rang 20 behandeln. Ein Unternehmen, das fehlt, ist schlechter als eines auf Platz zwanzig. Zählen Sie es separat, wie ATRP es mit 21 tut, und berichten Sie die Anzahl der Punkte, an denen es gefunden wurde.
- Grids über Wasser oder leerem Land ausführen. Punkte in einem See oder einem Wald fügen Zellen hinzu, von denen aus nie ein Kunde suchen wird. Verschieben Sie den Mittelpunkt oder entfernen Sie diese Zellen vor der Mittelwertbildung.
- Einen einzelnen Durchlauf als Wahrheit lesen. Ergebnisse variieren leicht zwischen identischen Suchen. Handeln Sie nach Mustern, die über mehrere Durchläufe bestehen bleiben, nicht nach einer einzelnen Zelle, die die Farbe wechselt.
Für das größere Bild zu sauberer, konsistenter Rangmessung (Personalisierung, Gerät und Zeit) siehe wie man genaue Keyword-Rankings misst.
Kosten und Skalierung
Die Kosten eines Grids sind einfach Punkte mal Keywords mal Durchläufe. Ein 7 x 7-Grid sind 49 Suchen pro Keyword. Zehn wöchentlich verfolgte Keywords sind 490 Suchen pro Woche, oder etwa 2.100 pro Monat. Ein 13 x 13-Grid für dieselben zehn Keywords sind 1.690 Suchen pro Woche.
Diese Rechnung ist der Hauptgrund, die Grid-Größe bewusst zu wählen. Beginnen Sie mit einem 7 x 7-Grid für die Keywords, die Kunden bringen, und erweitern Sie nur die, bei denen sich die Ränder der Karte noch verändern.
FAQ
Wie viele Punkte sollte ein Geo-Grid haben?
Für ein Unternehmen, das ein Viertel bedient, reicht meist ein 7 x 7-Grid (49 Punkte). Unternehmen, die eine ganze Stadt oder einen Landkreis bedienen, brauchen einen weiteren Abstand und manchmal ein 9 x 9- bis 13 x 13-Grid, um zu sehen, wo ihre Sichtbarkeit endet.
Ist ein Geo-Grid dasselbe wie die Prüfung von Rankings nach Postleitzahl?
Nein. Eine Prüfung nach Postleitzahl führt eine Suche für ein Gebiet aus und liefert einen Rang. Ein Geo-Grid führt eine Suche von jeder Koordinate aus, sodass es zeigt, wie sich das Ranking innerhalb eines Gebiets ändert, was genau das ist, wovon entfernungsbasierte lokale Ergebnisse abhängen.
Warum rankt mein Unternehmen im Büro auf Platz 1, aber nicht auf der anderen Seite der Stadt?
Die Entfernung ist einer der Hauptfaktoren bei Googles lokalen Ergebnissen. In der Nähe der Adresse arbeitet die Entfernung für Sie. Weiter entfernt übernehmen Mitbewerber, die näher am Suchenden sind oder bekannter sind, die obersten Positionen.
Wie oft sollte ich ein Geo-Grid ausführen?
Wöchentlich reicht für die meisten Unternehmen aus. Führen Sie ein zusätzliches Grid einige Wochen nach einer bedeutenden Veränderung aus, etwa neuen Bewertungen oder einer korrigierten Unternehmenskategorie, um zu sehen, ob das starke Gebiet gewachsen ist.
Fazit
Lokale Rankings sind eine Karte, keine Zahl. Ein Geo-Grid misst diese Karte mit derselben Suche von vielen Punkten aus, und drei Kennzahlen (ARP, ATRP und share of local voice) fassen sie zusammen. Halten Sie das Grid auf das Unternehmen zentriert, auf seinen tatsächlichen Markt zugeschnitten und zwischen Durchläufen fest, und es wird zum direktesten Weg, zu sehen, wo ein lokales Unternehmen sichtbar ist, wo nicht, und ob sich das ändert.