Otomatisasi Bulk URL Inspection GSC pakai Python

Diki AtmodjoDiki Atmodjo
5 min read
Cover Image for Otomatisasi Bulk URL Inspection GSC pakai Python

Pernah nggak sih kamu lagi cek indexing di Google Search Console (GSC) dan nyadar kalau proses ini ternyata super duper repetitif?

Misalnya, kamu punya ratusan bahkan ribuan URL yang belum terindex, tapi untuk mengecek statusnya di GSC harus klik satu-satu pakai fitur Inspect URL.

Tahu-tahu sudah waktunya reporting Q4. 12 bulan lewat cuma ngerjain URL inspection.

Untungnya, proses ini bisa kita otomatisasi pakai Python lewat Google Search Console API.

Jadi bukan cuma hemat waktu, tapi juga akan lebih scalable buat proyek SEO yang besar.

Di artikel ini, saya akan bahas:

  • Ilustrasi problem yang sering banget kita alami kalau main di SEO skala besar.
  • Python script step-by-step untuk bulk URL inspection di GSC.
  • Penjelasan detail setiap library dan fungsi yang dipakai.

Yuk kita mulai!

Problem: Ingin URL Inspection buat Ribuan URL dari Websitemu

Ada beberapa kasus SEO yang mungkin pernah kamu temui seperti beberapa issue dibawah ini:

  1. Sitemap couldn’t fetch

    • Website kamu udah punya sitemap, tapi GSC kasih notifikasi “couldn’t fetch”.
    • Akibatnya, kamu nggak bisa rely sepenuhnya ke sitemap buat validasi status indexing.
    • Padahal website jalan terus dan kamu nggak bisa sekedar nunggu tim dev untuk benerin sitemapnya.
  2. Export URL di GSC mentok 1000 baris

    • Kamu pengen tahu URL mana aja yang belum ke-index, tapi fitur export di GSC cuma kasih maksimal 1000 URL.
    • Padahal website kamu mungkin punya 10.000–100.000 halaman.
  3. Proses manual = buang waktu

    • Kalau ngecek satu-satu URL di GSC lewat “Inspect URL”, ya siap-siap duduk di depan layar seharian. You can definitely say “Goodbye” to this process.
    • Bayangin kalau harus ulang ini setiap minggu buat monitoring. SEO task kamu yg lain nggak akan ada yang kesentuh sama sekali.

Di sini sekali lagi Python berperan buat SEO: otomatisasi bulk URL inspection biar kita bisa langsung dapetin insight indexing status ribuan URL dalam sekali jalan.

Python Script untuk Bulk URL Inspection Menggunakan Search Console API

Kamu bisa akses script lengkapnya di github repository-ku.

Nanti kita breakdown tiap bagian biar jelas fungsinya

Penjelasan Mendetail dari Script ini

1. Library yang Dipakai

csv

  • Untuk baca file input (cek_status_url.csv) dan simpan hasil output dalam bentuk CSV.
  • Jadi gampang dibuka di Excel atau Google Sheets.

json

  • Sebenarnya nggak dipakai langsung di script ini, tapi sering berguna kalau kamu mau debug response dari API yang formatnya JSON.

time.sleep

  • Fungsi sleep(1) dipakai biar script nggak kena rate limit dari Google API.
  • Kalau kamu inspect ribuan URL tanpa delay, bisa-bisa request kamu ditolak.

google.oauth2.service_account

  • Untuk handle authentication ke Google API pakai file auth.json.
  • File ini biasanya didapat dari Google Cloud Console saat bikin service account.

googleapiclient.discovery.build

  • Library resmi dari Google buat akses API.
  • Di sini kita pakai untuk build service searchconsole.

googleapiclient.errors.HttpError

  • Fungsinya untuk handle error HTTP (contoh: 403 forbidden, 404, 500).

2. Setup Awal (Authentication & API Client)

SERVICE_ACCOUNT_FILE = "auth.json"  
SCOPES = ['https://www.googleapis.com/auth/webmasters.readonly']  
SITE_URL = 'sc-domain:[example.com](http://example.com)'  
  • SERVICE_ACCOUNT_FILE: Path ke credentials JSON kamu. Jangan lupa ini harus kamu generate dulu lewat Google Cloud.

  • SCOPES: Scope API yang kita pakai adalah webmasters.readonly. Ini cukup karena kita cuma mau baca data, bukan edit.

  • SITE_URL: Formatnya bisa:

    • sc-domain:example.com (kalau domain property)
    • https://www.example.com/ (kalau URL prefix property)

Bingung di part cara bikin service account?

Kamu bisa baca artikelku tentang cara membuat service account dan mengunduh credentialnya.

3. Fungsi inspect_url(url)

Di sinilah jantung script bekerja.

Request body ke API

request = {  
    'inspectionUrl': url,  
    'siteUrl': SITE_URL  
}  

Eksekusi API

response = service.urlInspection().index().inspect(body=request).execute()

Parsing hasil response: Data penting yang kita ambil:

  • coverageState → status coverage; melihat status indexing dari URL itu

  • lastCrawlTime → kapan terakhir kali Googlebot crawl.

  • pageFetchState → apakah page bisa di-fetch normal atau ada masalah.

  • robotsTxtState → diblok robots.txt atau tidak.

  • verdict → keputusan final (PASS atau FAIL).

Error handling

  • Kalau kena error HTTP (misalnya 403 forbidden, 429 rate limit), ditangani dengan block except HttpError.

  • Kalau error lain (misalnya URL invalid), masuk ke block except Exception.

4. Looping Semua URL dari CSV

with open(CSV_INPUT, newline='') as csvfile:  
    reader = csv.DictReader(csvfile)  
    for row in reader:  
        url = row['url']  
        print(f'🔍 Inspecting: {url}')  
        result = inspect_url(url)  
        results.append(result)  
        sleep(1)  
  • Baca daftar URL dari CSV (cek_status_url.csv).

  • Inspeksi satu-satu pakai fungsi inspect_url().

  • Simpan hasil ke list results.

  • Kasih jeda 1 detik tiap request.

Format CSV input minimal kayak gini:

url

https://example.com/page-1

https://example.com/page-2

5. Simpan Hasil ke CSV Output

fieldnames = ['url', 'coverageState', 'lastCrawlTime', 'pageFetchState', 'robotsTxtState', 'verdict', 'error']  
with open(CSV_OUTPUT, 'w', newline='') as csvfile:  
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)  
    writer.writeheader()  
    for row in results:  
        writer.writerow(row)  

Outputnya jadi CSV dengan kolom:

url

coverageState

lastCrawlTime

pageFetchState

robotsTxtState

verdict

error

https://example.com/page-1

Submitted and indexed

2025-05-13 | 16:53

SUCCESSFUL

ALLOWED

PASS

https://example.com/page-2

Crawled - currently not indexed

2025-03-04 | 20:31

SUCCESSFUL

ALLOWED

NEUTRAL

https://example.com/page-3

URL is unknown to Google

PAGE_FETCH_STATE_UNSPECIFIED

ROBOTS_TXT_STATE_UNSPECIFIED

Kenapa Otomatisasi Ini Penting Buat SEO?

1. Hemat Waktu

Bayangin cek 5000 URL manual di GSC. Bisa makan waktu berhari-hari. Dengan script ini, bisa kelar dalam beberapa jam (tergantung limit API).

2. Lebih Dalam daripada GSC Export

Data yang bisa kamu ambil lebih detail daripada export biasa, dan tentu saja … lebih banyak!

3. Custom Analysis

Karena outputnya CSV, kamu bisa mainkan di Excel, Google Sheets, Looker Studio atau bahkan olah lebih lanjut pakai Python (pandas, matplotlib, dll).

4. Scalable

Cocok banget buat merampingkan cost tools dari SEO agency yang handle banyak website besar.

Penutup

Dengan Python + Google Search Console API, kita bisa bikin bulk URL inspection jadi otomatis. Script ini bisa langsung kamu pakai atau modifikasi sesuai kebutuhan.

Kalau kamu baru kenal Python, jangan khawatir. Coba aja dulu script ini, nanti pelan-pelan kamu bakal sadar kalau Python itu powerful banget buat mengurangi task repetitif di SEO.

Artikel terkait
Otomatisasi Bulk URL Inspection GSC pakai Python | Diki Atmodjo