Off-by-one-Errors sind sehr beliebt. Oder werden zumindest häufig genug gemacht, um einen Wikipedia-Artikel zu bekommen. In der Regel geht es dabei um einen Index, eine ID oder sowas, die um 1 daneben liegt, je nachdem ob bei 0 oder bei 1 angefangen wurde zu zählen. Ein wahrer Klassiker unter den Programmierfehlern.
In den GSC Bulk Exports in BigQuery wurden auch die Grundlagen für einen solchen Fehler gelegt. Denn: Die Positionszählung in den BigQuery-Daten beginnt mit Position 0 und nicht mit 1 wie überall sonst (ja, selbst “Position Zero”-Ergebnisse sind in der GSC als Position 1 gemessen). Freundlicherweise ist das sauber dokumentiert. Wenn Du ohnehin nachschlagen musstest, wie man aus der sum\_position (bzw. sum\_top\_position wenn man byProperty Daten auswertet) korrekt die Position berechnet, steht das direkt in der Dokumentation:
sum_top_position: The sum of the topmost position of the site in the search results for each impression in that table row, where zero is the top position in the results. To calculate average position (which is 1-based), calculate SUM(sum_top_position)/ SUM(impressions) + 1
Einfach eine 1 auf das Ergebnis addieren und man hat wieder den Wert ausgehend von Position 1. Wenn Du dachtest, Du weißt, wie man mit der sum\_position arbeitet und einfach nur SUM(sum\_position)/SUM(impressions) berechnet hast, hast Du Dich vielleicht gefreut, global eine Position dazugewonnen zu haben, seit Du mit den Bulk-Export-Daten arbeitest… Ich hoffe, Du hast diesen SEO-Erfolg noch Deinem Chef präsentiert…
Daher: Auch wenn Du Dir sicher bist, lieber noch einmal in die Doku zu gucken, ist nie falsch.
Abgesehen von diesem Fallstrick finde ich diese sum\_position\-Logik der Bulk Exporte übrigens sehr elegant. SEOs legen häufig einfach in Excel \=Mittelwert(…) über alle Keywords – und wundern sich dann, dass es nicht zu aggregierten Daten im Frontend passt… mit sum\_position\-Daten sind wir gezwungen, den sauber gewichteten Mittelwert für die Positionen zu berechnen.
Ich hatte zwar den Off-by-one-Error in der GSC-API Vs Frontend Liste neulich vergessen. Die Frage „Warum ist die Position falsch?“ höre ich aber auch immer weniger. Die Magie des gewichteten Mittelwerts scheint inzwischen vielen bekannt zu sein (zumindest in meiner Bubble :D)
Lange Rede, kurzer Sinn: Augen auf bei der Positionsberechnung!
PS: Du willst Dir den Bulk Export einrichten, weißt aber nicht wie? Wir haben dazu ein kleines How-To für das Einrichten von BigQuery für den GSC-Bulk Export geschrieben.