API penjejakan kedudukan bukan satu benda. Pembangun yang mencari "rank tracking API" biasanya mahukan satu titik akhir yang memulangkan kedudukan, dan pasaran membalas dengan senarai vendor. Jawapan jujurnya: anda perlukan dua sumber, dan kedua-duanya menjawab soalan yang berbeza.
Search Console API percuma, rasmi, dan selama-lamanya terhad kepada harta yang anda boleh sahkan. SERP API berbayar, tidak rasmi, dan boleh menyemak mana-mana kata kunci di mana-mana, termasuk kata kunci yang anda tidak pernah kedudukan. Kedua-duanya secara berasingan bukan penjejak kedudukan. Bersama-sama, ia kira-kira 120 baris Python dan satu baris cron.
Inilah cara memasangnya. Ia menganggap anda boleh menjalankan skrip dan menyimpan fail. Ia tidak menganggap anda mahu membina produk.
Apa yang anda akan ada pada akhirnya
Untuk siapa: pembangun atau pemasar teknikal yang sudah mempunyai akses Search Console dan mahukan kedudukan mengikut jadual tanpa membayar setiap tempat duduk.
Apa yang anda pegang apabila siap: dua fungsi pengambilan yang berjalan, satu fail output yang digabungkan bagi setiap larian, dan satu peraturan perbandingan yang menghalang angka daripada menipu anda.
Masa: kira-kira 90 minit untuk pemasangan pertama, kemudian sekitar 10 minit semakan bagi setiap larian.
Rupa apabila siap: fail JSON bertarikh yang mengandungi kedudukan anda mengikut pertanyaan dan peranti, ditambah petikan SERP segar untuk set kata kunci yang dibekukan, ditambah satu diff pendek berbanding larian sebelumnya.
Sebelum anda mula: apa yang setiap sumber boleh dan tidak boleh lakukan
Bahagikan ini dengan betul dan seluruh pemasangan selebihnya menjadi mekanikal. Bahagikan dengan salah dan anda akan menghabiskan sebulan untuk sesuatu yang sama ada tidak berguna atau mahal.
Search Console API | SERP API | |
|---|---|---|
Kedudukan siapa | Hanya harta yang anda sahkan | Sesiapa, termasuk pesaing |
Kata kunci | Pertanyaan yang anda sudah muncul | Mana-mana kata kunci yang anda taip |
Kos | Percuma | Dibil mengikut permintaan |
Pecahan peranti | Ada, sebagai dimensi | Ada, bagi setiap permintaan |
Lokasi | Negara tempat anda berkedudukan | Mana-mana lokasi yang disokong vendor |
Jenis data | Klik, tera, kedudukan agregat | Halaman hasil pada satu ketika |
Kedalaman sejarah | Julat yang anda minta | Hanya dari hari anda mula menyimpan |
Status rasmi | Data Google sendiri | Bacaan pihak ketiga terhadap halaman awam |
Kedua-dua sumber akan bercanggah, dan percanggahan itu ialah maklumat, bukan kesilapan. Search Console memuratakan setiap tera merentas julat tarikh dan merentas semua peranti. Satu pengambilan SERP ialah satu halaman hasil pada satu ketika. Bandingkan kedua-duanya secara terus dan anda akan mengejar penurunan hantu. Itulah sebabnya langkah kelima menetapkan peraturan perbandingan.
Tiga angka yang wajar diketahui sebelum menulis kod. Search Console API menerima had 1 hingga 25,000 baris setiap permintaan dan lalainya 1,000, jadi laman sederhana boleh menarik tiga bulan data pertanyaan dan peranti dalam satu panggilan. Ia membenarkan 1,200 pertanyaan seminit bagi setiap laman dan setiap pengguna. Dan ia mengenakan kuota beban yang diukur dalam blok sepuluh minit, di mana julat tarikh yang panjang lebih mahal daripada yang pendek — inilah sebab panduan Google sendiri menyuruh mengelak daripada menanyakan semula data yang sama.

Dua sumber, satu output. Search Console menjawab "di mana saya muncul", SERP API menjawab "macam mana halaman itu kelihatan".
Langkah 1: bekukan set kata kunci sebelum menulis kod
Penjejak yang menarik senarai kata kunci berbeza bagi setiap larian tidak boleh menjawab sama ada sesuatu berubah. Pilih senarai dahulu dan kekalkan ia selama satu kuartal.
Ada tiga kumpulan, dan ia datang dari tempat yang berbeza.
- Daripada Search Console: setiap pertanyaan dengan sekurang-kurangnya 20 tera dalam 90 hari lepas. Anda tidak memilihnya; tera anda yang memilih. Inilah kumpulan di mana pergerakan bermakna, kerana di belakangnya sudah ada permintaan.
- Daripada perniagaan: sepuluh hingga dua puluh pertanyaan yang bersambung dengan hasil, sama ada anda berkedudukan atau tidak.
- Daripada pesaing: pertanyaan yang pesaing berkedudukan dan anda tidak. Ini memerlukan SERP API, kerana Search Console tidak akan pernah menunjukkannya.
Tulis senarai itu ke dalam fail, versikannya, dan anggap penambahan sebagai perubahan yang disengajakan, bukan hanyut.
Langkah 2: tarik kedudukan anda sendiri secara percuma
Separuh ini rasmi, percuma, dan memberikan pecahan peranti serta data klik yang tiada pada mana-mana SERP API.
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 butiran dalam permintaan ini melakukan hampir semua kerja.
dataState: "final" mengecualikan data segar yang masih boleh disemak Google. Tanpanya, dua tiga hari terakhir berayun antara larian dan diff anda menunjukkan pergerakan yang tidak pernah berlaku.
dimensions: ["query", "device"] ialah perkara yang menjadikan output berguna kemudian. Menambah peranti sekarang tidak merugikan apa-apa. Menarik semula tiga bulan sejarah kemudian memakan satu larian penuh dan tidak memberi apa-apa untuk hari yang sudah anda terlepas.
Output dijangka: satu baris bagi setiap pertanyaan dan peranti, dengan klik, tera, CTR dan kedudukan purata.
Semakan kualiti: bilangan baris sepatutnya kurang daripada 25,000. Jika tepat 25,000, anda telah dipotong dan panggilan kedua dengan startRow: 25000 diperlukan.
Jika ia gagal: 403 biasanya bermakna e-mel akaun perkhidmatan tidak pernah ditambah sebagai pengguna pada harta itu. Tambahkannya dalam Search Console, tunggu beberapa minit, cuba lagi.
Langkah 3: tarik SERP yang anda tidak nampak dalam data sendiri
Separuh kedua merangkumi semua yang Search Console tidak boleh lakukan secara struktur. Ini panggilan terkecil yang berfungsi.
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())Tetapkan `depth` kepada 100, bukan 200. Kami menguji ini pada September 2026 dengan meminta 200 hasil bagi enam pertanyaan. Google memulangkan 83 hingga 128 hasil organik lalu berhenti, dan kedudukan terdalam sepanjang ujian ialah 142. Ujian penuh di sini. Meminta 200 tidak memberikan anda 200 hasil, dan bergantung pada vendor, kedalaman yang anda minta masih boleh dibil. Mintalah 100 — anda hampir selalu mendapat semua yang wujud.

Meminta 200 hasil dan mendapat 83 hingga 128. Kedalaman melebihi sekitar 140 tidak membeli apa-apa pada kebanyakan pertanyaan komersial.
Output dijangka: muatan JSON yang mengandungi item organik dengan kedudukan, URL, tajuk dan domain.
Semakan kualiti: sahkan muatan mengandungi jenis item ai_overview apabila ia ada. Dengan mengekstrak item organic sahaja, anda akan terlepas sebab sesuatu halaman hilang klik walaupun mengekalkan kedudukan.
Jika ia gagal: 401 ialah kesilapan base64 atau bukti kelayakan. Kod seperti 40200 bermakna baki akaun kosong, dan itu kegagalan paling biasa pada bulan pertama.
Langkah 4: simpan muatan mentah, bukan ringkasan
Inilah keputusan yang orang sesali kerana melangkaunya.
Menyimpan jadual kedudukan berfungsi sehingga anda perlu bertanya soalan yang tidak anda jangkakan: adakah hasil menjadi lebih panjang, adakah video mengambil semuanya, adakah pesaing masuk, adakah AI Overview muncul di atas lipatan. Ringkasan tidak boleh menjawabnya. Muatan mentah boleh, dengan kos tambahan sifar.
Versi praktikal: tulis satu fail bagi setiap larian, dinamakan mengikut tarikh dan masa, mengandungi output yang digabungkan. Simpan 90 hari terakhir. Ia cukup kecil untuk tinggal dalam repo dan cukup lengkap untuk menjawab semula soalan lama.
Langkah 5: tulis peraturan perbandingan sebelum menjadualkan apa-apa
Penjejak yang membandingkan larian lepas dengan larian ini akan menghasilkan penggera palsu pada kebanyakan hari. Angka kami sendiri menunjukkan sebabnya: pada 124 pertanyaan dengan sekurang-kurangnya 30 tera, pertanyaan purata beralih 4.57 kedudukan dari sehari ke sehari. Penurunan empat kedudukan itu hari Selasa biasa.
Jadi peraturan itu memerlukan ambang dan arah.
Laporkan pertanyaan hanya apabila:
- perubahan kedudukan mutlak berbanding larian sebelumnya ialah 5 atau lebih, DAN
- pertanyaan itu mempunyai sekurang-kurangnya 20 tera dalam tetingkap perbandingan, DAN
- perubahan itu tidak dijelaskan oleh peralihan campuran peranti
Kumpulkan output mengikut kelas pertanyaan: money, comparison, brand, informational.
Jangan cadangkan pembetulan.Klausa peranti bukan hiasan. Pertanyaan yang sama boleh berdiri 11 kedudukan berbeza antara mudah alih dan desktop, dan jika campuran peranti beralih antara larian, angka campuran itu turut beralih. Kami mengukur ini secara berasingan dan ia cukup besar untuk memalsukan satu trend.
Berapa kosnya
Harga vendor berubah, jadi binalah model dan bukan mengejar sebut harga.
- Satu kata kunci yang disemak sekali sehari selama 30 hari ialah 30 permintaan sebulan.
- Satu set 200 kata kunci yang disemak setiap hari ialah 6,000 permintaan sebulan.
- Set yang sama disemak setiap minggu ialah kira-kira 860 permintaan sebulan.
- Separuh Search Console adalah percuma dan merupakan satu permintaan bagi setiap paparan, berapa banyak pun kata kunci di dalamnya.
Seluruh keputusan ialah pendaraban itu. Soalan "patutkah saya beli alat" hampir selalu berpunca kepadanya: kira permintaan sebulan, darab dengan harga setiap permintaan anda, dan bandingkan dengan lesen setiap tempat duduk. Penjejakan harian bagi set kata kunci besar biasanya lebih murah sebagai langganan. Penjejakan mingguan bagi set kecil biasanya lebih murah melalui API. Jejaki senarai yang dibekukan dan bahagian API akan kekal kecil.
Bila perlu membeli dan bukan membina
Binalah jika anda mahu kedudukan di dalam saluran paip anda sendiri, jika anda sudah mempunyai bukti kelayakan SERP API, atau jika anda memerlukan halaman hasil mentah atas sebab selain kedudukan.
Belilah sebaliknya jika anda memerlukan kedudukan sejarah sebelum hari ini, jika anda memerlukan sepuluh lokasi dan lima peranti bagi kata kunci yang sama, atau jika tiada sesiapa dalam pasukan akan mengekalkan cron itu. Senarai vendor wajar dibaca atas sebab ini, dan memiliki infrastruktur yang berhenti apabila pembinanya berpindah pasukan mempunyai kos yang nyata.
Jika output yang anda benar-benar perlukan ialah laporan mingguan bertulis dan bukan fail JSON, aliran kerja pelaporan dalam Codex bermula daripada dua sumber yang sama dan berakhir dengan satu dokumen. Untuk meletakkan makluman di atas fail itu, panduan reka bentuk pemantauan menelusuri ambang.
Pandangan Auspia: soalan API penjejakan kedudukan sebenarnya soalan tentang pemilikan data. Search Console memberikan data rasmi tentang harta anda secara percuma dan akan sentiasa berbuat demikian. Segala yang lain ialah petikan yang anda bayar. Bina separuh percuma itu dahulu, dan tambah separuh berbayar hanya di tempat ia menjawab soalan yang benar-benar anda ada.
Soalan lazim
Adakah Google menyediakan API penjejakan kedudukan? Tiada yang awam. Search Console API memulangkan kedudukan purata anda bagi pertanyaan yang anda sudah muncul; ia hampir sama tetapi bukan benda yang sama. Ia tidak boleh menyemak kata kunci yang anda tidak berkedudukan, dan tidak boleh menyemak pesaing.
Sejauh mana SERP API boleh pergi? Vendor akan menerima nilai kedalaman jauh melebihi 200, tetapi Google berhenti memulangkan hasil di suatu tempat antara 100 dan 140 pada kebanyakan pertanyaan komersial. Meminta lebih tidak menghasilkan lebih banyak hasil.
Patut semak harian atau mingguan? Mingguan untuk set kata kunci biasa. Harian hanya untuk senarai pendek pertanyaan wang. Semakan harian bagi set besar menggandakan kos tujuh kali dan kebanyakannya mengukur bunyi bising, kerana peralihan harian purata dalam data kami ialah 4.57 kedudukan.
Mengapa angka API saya berbeza daripada penjejak kedudukan saya? Peranti berbeza, lokasi berbeza, saat berbeza, dan selalunya sumber data berbeza. Angka itu satu sampel. Tetapkan lokasi dan peranti dalam permintaan anda dan tarik semula, sebelum menyimpulkan sesuatu telah berubah.
Bolehkah ejen menjalankan ini untuk saya? Boleh, dan ia padan kerana tugas itu mempunyai bentuk yang sama pada setiap larian. Gambaran lebih luas tentang apa yang boleh diambil alih ejen dalam kerja kedudukan ada dalam panduan praktikal ejen SEO. Simpan peraturan perbandingan dalam fail arahan bertulis dan biarkan ejen menghasilkan diff; keputusan bina atau beli biarlah pada manusia.
Penulis: Rowan Blake, penganalisis automasi kandungan di Auspia, mengendalikan lebih 100 saluran paip penerbitan. Beliau menulis tentang saluran paip data automatik, pelaporan mengikut jadual, dan kos menyelenggara sistem yang berjalan tanpa anda.




