API pelacak peringkat bukan satu hal. Developer yang mencari "rank tracking API" biasanya ingin satu endpoint yang mengembalikan posisi, dan pasar menjawabnya dengan daftar artikel dari vendor. Jawaban jujurnya adalah Anda butuh dua sumber, dan keduanya menjawab pertanyaan yang berbeda.
Search Console API gratis, resmi, dan permanen terbatas pada properti yang bisa Anda verifikasi. SERP API berbayar, tidak resmi, dan bisa memeriksa kata kunci apa pun di mana pun, termasuk kata kunci yang belum pernah Anda peringkatkan. Tidak ada satu pun yang berdiri sendiri sebagai pelacak peringkat. Digabung, keduanya sekitar 120 baris Python dan satu entri cron.
Inilah cara membangunnya. Panduan ini mengasumsikan Anda bisa menjalankan skrip dan menyimpan file. Tidak mengasumsikan Anda ingin membangun produk.
Apa yang Anda dapat di akhir
Untuk siapa: developer atau pemasar teknis yang sudah punya akses Search Console dan ingin posisi secara berkala tanpa membayar per kursi.
Yang akan Anda miliki setelah selesai: dua fungsi penarik yang bekerja, satu file keluaran gabungan per eksekusi, dan aturan pembanding yang mencegah angka berbohong kepada Anda.
Waktu: sekitar 90 menit untuk pembangunan pertama, lalu kira-kira 10 menit peninjauan per eksekusi.
Bentuk selesainya: file JSON bertanggal berisi posisi Anda sendiri per kueri dan perangkat, plus cuplikan SERP langsung untuk daftar kata kunci yang dibekukan, dan diff singkat terhadap eksekusi sebelumnya.
Sebelum mulai: apa yang bisa dan tidak bisa dilakukan tiap sumber
Benarkan pembagian ini dan sisa pembangunannya jadi mekanis. Salah, dan Anda akan menghabiskan sebulan membangun sesuatu yang tidak berguna atau mahal.
Search Console API | SERP API | |
|---|---|---|
Posisi siapa | Hanya properti terverifikasi Anda | Siapa pun, termasuk pesaing |
Kata kunci | Kueri yang sudah Anda munculi | Kata kunci apa pun yang Anda ketik |
Biaya | Gratis | Ditagih per permintaan |
Pisahan perangkat | Ya, sebagai dimensi | Ya, per permintaan |
Lokasi | Negara tempat Anda diperingkatkan | Lokasi apa pun yang didukung vendor |
Jenis data | Klik, tayangan, posisi agregat | Halaman hasil pada satu titik waktu |
Kedalaman riwayat | Rentang yang Anda minta | Hanya sejak hari Anda mulai menyimpan |
Status resmi | Data milik Google sendiri | Bacaan pihak ketiga atas halaman publik |
Kedua sumber akan berselisih, dan selisih itu informatif, bukan bug. Search Console merata-ratakan setiap tayangan sepanjang rentang tanggal dan seluruh perangkat. Penarikan SERP adalah satu halaman hasil pada satu momen. Jika Anda membandingkannya langsung, Anda akan mengejar penurunan hantu, dan itulah sebabnya langkah lima mendefinisikan aturan pembanding.
Tiga angka yang layak diketahui sebelum menulis kode. Search Console API menerima batas baris antara 1 dan 25.000 per permintaan dan bawaannya 1.000, jadi situs berukuran sedang bisa menarik tiga bulan data kueri dan perangkat dalam satu panggilan. Layanan ini mengizinkan 1.200 kueri per menit per situs dan per pengguna. Dan ia memberlakukan kuota beban yang diukur dalam potongan 10 menit, di mana rentang tanggal panjang lebih mahal daripada yang pendek — persis itulah alasan panduan Google sendiri menyebut agar menghindari kueri ulang atas data yang sama.

Dua sumber, satu keluaran. Search Console menjawab "di mana saya muncul", SERP API menjawab "seperti apa halaman itu".
Langkah 1: bekukan himpunan kata kunci sebelum menulis kode apa pun
Pelacak yang menarik daftar kata kunci berbeda setiap eksekusi tidak bisa menjawab apakah ada yang berubah. Pilih daftarnya lebih dulu dan pertahankan selama satu kuartal.
Tiga kelompok, dan sumbernya berbeda.
- Dari Search Console: setiap kueri dengan sedikitnya 20 tayangan dalam 90 hari terakhir. Ini bukan Anda yang memilih; tayangan Anda yang memilih. Inilah kelompok yang pergerakannya bermakna, karena permintaannya sudah menempel di sana.
- Dari bisnis: sepuluh sampai dua puluh kueri yang memetakan ke pendapatan, entah Anda sudah diperingkatkan atau belum.
- Dari pesaing: kueri yang diperingkatkan pesaing dan Anda tidak. Ini butuh SERP API, karena Search Console tidak akan pernah menampilkannya.
Tulis daftarnya ke file, kelola versinya, dan perlakukan penambahan sebagai perubahan yang disengaja, bukan pergeseran diam-diam.
Langkah 2: tarik posisi Anda sendiri secara gratis
Separuh ini resmi, gratis, dan memberi Anda pisahan perangkat serta data klik yang tidak dimiliki SERP API mana pun.
from google.oauth2 import service_account
from googleapiclient.discovery import build
service = build(
"searchconsole", "v1",
credentials=service_account.Credentials.from_service_account_file(
"gsc-key.json",
scopes=["https://www.googleapis.com/auth/webmasters.readonly"],
),
)
body = {
"startDate": "2026-06-14",
"endDate": "2026-09-11",
"dimensions": ["query", "device"],
"type": "web",
"dataState": "final",
"rowLimit": 25000,
}
rows = service.searchanalytics().query(
siteUrl="sc-domain:example.com", body=body
).execute().get("rows", [])Dua detail dalam permintaan ini mengerjakan hampir seluruh pekerjaan.
dataState: "final" mengecualikan data segar yang masih mungkin direvisi Google. Tanpanya, dua atau tiga hari terbaru bergerak di antara eksekusi dan diff Anda menampilkan pergerakan yang tidak pernah terjadi.
dimensions: ["query", "device"] adalah yang membuat keluarannya berguna nanti. Menambahkan perangkat sekarang tidak berbiaya. Menarik ulang tiga bulan riwayat nanti berbiaya satu eksekusi penuh dan tidak memberi apa pun untuk hari-hari yang sudah Anda lewati.
Keluaran yang diharapkan: satu baris per kueri dan perangkat, dengan klik, tayangan, CTR, dan posisi rata-rata.
Pemeriksaan mutu: jumlah baris seharusnya di bawah 25.000. Jika tepat 25.000, Anda terpotong dan butuh panggilan kedua dengan startRow: 25000.
Jika gagal: 403 biasanya berarti email akun layanan tidak pernah ditambahkan sebagai pengguna di properti. Tambahkan di Search Console, tunggu beberapa menit, coba lagi.
Langkah 3: tarik SERP yang tidak terlihat di data Anda sendiri
Separuh kedua mencakup semua yang secara struktural tidak bisa dilakukan Search Console. Ini panggilan minimal yang bekerja.
import base64, json, urllib.request
LOGIN, PASSWORD = "your-login", "your-password"
def serp(keyword, depth=100):
token = base64.b64encode(f"{LOGIN}:{PASSWORD}".encode()).decode()
payload = json.dumps([{
"keyword": keyword,
"location_name": "United States",
"language_name": "English",
"depth": depth,
}]).encode()
request = urllib.request.Request(
"https://api.dataforseo.com/v3/serp/google/organic/live/advanced",
data=payload,
headers={"Authorization": f"Basic {token}",
"Content-Type": "application/json"},
method="POST",
)
return json.loads(urllib.request.urlopen(request, timeout=120).read())Setel `depth` ke 100, bukan 200. Kami mengujinya pada September 2026 dengan meminta 200 hasil pada enam kueri. Google mengembalikan 83 sampai 128 hasil organik lalu berhenti, dengan posisi terdalam di seluruh uji coba ada di 142. Uji lengkapnya ada di sini. Meminta 200 tidak memberi Anda 200 hasil, dan tergantung vendor Anda mungkin tetap ditagih sesuai kedalaman yang diminta. Mintalah 100 dan Anda hampir selalu menerima semua yang ada.

Meminta 200 hasil dan menerima 83 sampai 128. Kedalaman di atas sekitar 140 tidak membeli apa pun pada sebagian besar kueri komersial.
Keluaran yang diharapkan: payload JSON berisi item organik dengan posisi, URL, judul, dan domain.
Pemeriksaan mutu: pastikan payload memuat tipe item ai_overview saat ada. Jika Anda hanya mengekstrak item organic, Anda akan melewatkan alasan sebuah halaman kehilangan klik padahal posisinya bertahan.
Jika gagal: 401 adalah kesalahan base64 atau kredensial. Kode bergaya 40200 berarti saldo akun Anda kosong, dan itu kegagalan paling umum di bulan pertama.
Langkah 4: simpan payload mentah, bukan ringkasannya
Inilah keputusan yang orang sesali karena dilewati.
Menyimpan tabel posisi berhasil sampai Anda perlu mengajukan pertanyaan yang tidak Anda duga: apakah SERP memanjang, apakah video mengambil alih, apakah pesaing masuk, apakah AI Overview muncul di atas lipatan. Ringkasan tidak bisa menjawabnya. Payload mentah bisa, tanpa biaya tambahan.
Versi praktisnya: tulis satu file per eksekusi, dinamai menurut tanggal dan waktu, berisi keluaran gabungan. Simpan 90 hari terakhir. Cukup kecil untuk tinggal di repositori dan cukup lengkap untuk menjawab ulang pertanyaan lama.
Langkah 5: tulis aturan pembanding sebelum menjadwalkan apa pun
Pelacak yang membandingkan eksekusi terakhir dengan yang ini menghasilkan alarm palsu hampir setiap hari. Angka kami sendiri menunjukkan sebabnya: pada 124 kueri dengan sedikitnya 30 tayangan, kueri rata-rata bergerak 4,57 posisi dari satu hari ke hari berikutnya. Penurunan empat posisi itu hal biasa hari Selasa.
Jadi aturannya butuh ambang dan arah.
Laporkan sebuah kueri hanya ketika:
- perubahan posisi absolut terhadap eksekusi sebelumnya 5 atau lebih, DAN
- kueri itu punya sedikitnya 20 tayangan di jendela pembandingan, DAN
- perubahan itu tidak dijelaskan oleh pergeseran bauran perangkat
Kelompokkan keluaran menurut kelas kueri: money, comparison, brand, informational.
Jangan usulkan perbaikan.Klausul perangkat bukan hiasan. Kueri yang sama bisa berjarak 11 posisi antara seluler dan desktop, dan jika bauran perangkat bergeser di antara eksekusi, angka campurannya ikut bergeser. Kami mengukurnya secara terpisah dan besarnya cukup untuk memalsukan tren.
Berapa biayanya
Harga vendor berubah, jadi bangun modelnya ketimbang mengejar penawaran.
- Satu kata kunci diperiksa sekali sehari selama 30 hari berarti 30 permintaan per bulan.
- Himpunan 200 kata kunci diperiksa harian berarti 6.000 permintaan per bulan.
- Himpunan yang sama diperiksa mingguan berarti sekitar 860 permintaan per bulan.
- Separuh Search Console gratis dan merupakan satu permintaan per tampilan, berapa pun kata kunci di dalamnya.
Perkalian itulah seluruh keputusannya. Hampir setiap pertanyaan "haruskah saya beli alat" menciut jadi ini: hitung permintaan per bulan, kalikan dengan harga per permintaan Anda, dan bandingkan dengan lisensi per kursi. Pelacakan harian himpunan kata kunci besar biasanya lebih murah sebagai langganan. Pelacakan mingguan himpunan kecil biasanya lebih murah sebagai API. Lacak daftar yang dibekukan dan sisi API akan tetap kecil.
Kapan membeli alih-alih membangun
Bangun ini jika Anda ingin posisi di dalam saluran Anda sendiri, jika Anda sudah punya kredensial SERP API, atau jika Anda butuh halaman hasil mentah untuk alasan di luar posisi.
Beli saja jika Anda butuh posisi historis sebelum hari ini, jika Anda butuh sepuluh lokasi dan lima perangkat untuk kata kunci yang sama, atau jika tidak ada orang di tim yang akan merawat cron. Daftar artikel vendor layak dibaca justru karena alasan ini, dan ada biaya nyata untuk memiliki infrastruktur yang berhenti berjalan ketika orang yang membangunnya pindah tim.
Jika keluaran yang sebenarnya Anda butuhkan adalah laporan mingguan tertulis dan bukan file JSON, alur pelaporan di Codex mulai dari dua sumber yang sama dan berakhir pada dokumen. Untuk peringatan di atas file, panduan desain pemantauan membahas ambangnya.
Pandangan Auspia: pertanyaan tentang API pelacak peringkat sebenarnya pertanyaan tentang kepemilikan data. Search Console memberi Anda data resmi tentang properti Anda sendiri secara gratis dan akan selalu begitu. Sisanya adalah cuplikan yang Anda bayar. Bangun dulu separuh yang gratis, dan tambahkan separuh berbayar hanya di tempat ia menjawab pertanyaan yang benar-benar Anda miliki.
Pertanyaan yang sering diajukan
Apakah Google menyediakan API pelacak peringkat? Tidak ada yang publik. Search Console API mengembalikan posisi rata-rata Anda untuk kueri yang sudah Anda munculi, yang mirip tetapi bukan hal yang sama. Ia tidak bisa memeriksa kata kunci yang tidak Anda peringkatkan, dan tidak bisa memeriksa pesaing.
Sedalam apa SERP API bisa menggali? Vendor menerima nilai kedalaman jauh di atas 200, tetapi Google berhenti menyajikan hasil di suatu tempat antara 100 dan 140 pada sebagian besar kueri komersial. Meminta lebih banyak tidak menghasilkan lebih banyak hasil.
Haruskah saya pakai pemeriksaan harian atau mingguan? Mingguan untuk himpunan kata kunci normal. Harian hanya untuk daftar pendek kueri uang. Pemeriksaan harian pada himpunan besar mengalikan biaya tujuh kali dan sebagian besar mengukur derau, karena pergerakan harian rata-rata dalam data kami adalah 4,57 posisi.
Mengapa angka API saya berbeda dari pelacak peringkat saya? Perangkat berbeda, lokasi berbeda, momen berbeda, dan sering kali sumber data berbeda. Angka itu adalah sampel. Tetapkan lokasi dan perangkat dalam permintaan Anda lalu tarik ulang sebelum menyimpulkan ada yang berubah.
Bisakah agen menjalankan ini untuk saya? Bisa, dan cocok karena tugasnya berbentuk sama setiap eksekusi. Untuk gambaran lebih luas tentang apa yang bisa dipegang agen dalam pekerjaan peringkat, lihat panduan lapangan agen SEO. Simpan aturan pembanding di file instruksi tertulis dan biarkan agen menghasilkan diff; simpan keputusan beli-atau-bangun pada manusia.
Penulis: Rowan Blake, analis otomatisasi konten untuk lebih dari 100 saluran penerbitan di Auspia. Rowan menulis tentang saluran data otomatis, pelaporan terjadwal, dan biaya perawatan sistem yang berjalan tanpa Anda.




