always trying,praying and creative
Lompat ke konten Lompat ke sidebar Lompat ke footer

Cara Menggunakan Python Untuk Pengindeksan & Otomatis Bulk Index

IndexNow adalah protokol yang dikembangkan oleh Microsoft Bing dan diadopsi oleh Yandex yang memungkinkan webmaster dan ahli SEO untuk dengan mudah memberi tahu mesin telusur ketika halaman web telah diperbarui melalui API.

Dan hari ini, Microsoft mengumumkan bahwa itu membuat protokol lebih mudah diterapkan dengan memastikan bahwa URL yang dikirimkan dibagikan di antara mesin pencari.

Mengingat implikasi positifnya dan janji pengalaman pengindeksan yang lebih cepat bagi penerbit, IndexNow API harus ada di radar setiap profesional SEO.

Menggunakan Python untuk mengotomatiskan pengiriman URL ke IndexNow API atau membuat permintaan API ke IndexNow API untuk pengindeksan URL massal dapat membuat pengelolaan IndexNow lebih efisien untuk Anda.

Dalam tutorial ini, Anda akan belajar bagaimana melakukan hal itu, dengan petunjuk langkah demi langkah untuk menggunakan IndexNow API untuk mengirimkan URL ke Microsoft Bing secara massal dengan Python.

Catatan: API IndexNow mirip dengan API Pengindeksan Google dengan hanya satu perbedaan: API Pengindeksan Google hanya untuk iklan pekerjaan atau halaman web penyiaran yang berisi objek video di dalamnya.

Google mengumumkan bahwa mereka akan menguji IndexNow API tetapi belum memperbarui saya sejak itu.

Pengindeksan Massal Menggunakan IndexNow API dengan Python: Memulai

Di bawah ini adalah kebutuhan untuk memahami dan mengimplementasikan tutorial IndexNow API.

  • Pemahaman sintaks dasar Python .
  • Keakraban dengan pustaka dan paket dasar Python .

Di bawah ini adalah paket dan pustaka Python yang akan digunakan untuk tutorial Python IndexNow API.

  • Advertools (harus).
  • Panda (harus).
  • Permintaan (harus).
  • Waktu (opsional).
  • JSON (opsional).

Sebelum memulai, membaca dasar-dasarnya dapat membantu Anda memahami API IndexNow dan tutorial Python ini dengan lebih baik. saya akan menggunakan Kunci API dan file .txt untuk memberikan otentikasi bersama dengan Header HTTP tertentu.

IndexNow API Usage with PythonLangkah Penggunaan IndexNow API dengan Python.

1. Impor Perpustakaan Python

Untuk menggunakan library Python yang diperlukan, kita akan menggunakan perintah “import”.

  • Advertools akan digunakan untuk ekstraksi URL peta situs.
  • Permintaan akan digunakan untuk membuat permintaan GET dan POST.
  • Panda akan digunakan untuk mengambil URL di peta situs menjadi objek daftar.
  • Modul "waktu" adalah untuk mencegah kesalahan "Terlalu banyak permintaan" dengan metode "tidur ()".
  • JSON adalah untuk kemungkinan memodifikasi objek POST JSON jika diperlukan.

Di bawah ini, Anda akan menemukan semua baris impor yang diperlukan untuk tutorial API IndexNow.

import advertools as adv
import pandas as pd
import requests
import json
import time

2. Mengekstrak URL Peta Situs Dengan Python

Untuk mengekstrak URL dari file peta situs, metode dan pustaka web scraping yang berbeda dapat digunakan seperti Permintaan atau Scrapy.

Tetapi untuk menjaga semuanya tetap sederhana dan efisien, saya akan menggunakan paket SEO Python favorit saya – Advertools.

Dengan hanya satu baris kode, semua URL dalam peta situs dapat diekstraksi.

sitemap_urls = adv.sitemap_to_df("https://www.example.com/sitemap_index.xml")

Metode “sitemap_to_df” dari Advertools dapat mengekstrak semua URL dan tag terkait peta situs lainnya seperti “lastmod” atau “priority.”

Di bawah ini, Anda dapat melihat output dari perintah “adv.sitemap_to_df”.

Ekstraksi URL Peta Situs untuk Penggunaan API IndexNowEkstraksi URL Peta Situs dapat dilakukan melalui metode “sitemap_to_df” Advertools.

Semua URL dan tanggal ditentukan dalam variabel "sitemap_urls".

Karena peta situs adalah sumber yang berguna untuk mesin telusur dan SEO, metode sitemap_to_df Advertools dapat digunakan untuk banyak tugas berbeda termasuk Audit Python Peta Situs .

Tapi itu topik untuk lain waktu.

3. Ambil URL Menjadi Objek Daftar Dengan “to_list()”

Pustaka Pandas Python memiliki metode untuk mengambil kolom bingkai data (seri data) ke dalam objek daftar, to_list().

Di bawah ini adalah contoh penggunaan:

sitemap_urls["loc"].to_list()

Di bawah ini, Anda dapat melihat hasilnya:

Daftar URL Peta SitusMetode “to_list” Panda dapat digunakan dengan Advertools untuk mencantumkan URL.

Semua URL dalam peta situs berada dalam objek daftar Python.

4. Pahami Sintaks URL API IndexNow Dari Microsoft Bing

Mari kita lihat sintaks URL dari IndexNow API.

Berikut ini contohnya:

https://<searchengine>/indexnow?url=url-changed&key=your-key

Sintaks URL mewakili variabel dan hubungannya satu sama lain dalam standar RFC 3986.

  • <searchengine> mewakili nama mesin telusur yang akan Anda gunakan untuk IndexNow API.
  • Parameter “?url=" adalah untuk menentukan URL yang akan dikirimkan ke mesin pencari melalui IndexNow API.
  • “&key=" adalah Kunci API yang akan digunakan dalam API IndexNow.
  • “&keyLocation=" adalah untuk memberikan keaslian yang menunjukkan bahwa Anda adalah pemilik situs web yang akan digunakan IndexNow API.

"&keyLocation" akan membawa kita ke API Key dan versi ".txt".

5. Kumpulkan Kunci API Untuk IndexNow Dan Unggah ke Root

Anda memerlukan kunci yang valid untuk menggunakan IndexNow API.

Gunakan tautan ini untuk membuat Kunci API Microsoft Bing IndexNow.

IndexNow API Key Taking Tidak ada batasan untuk menghasilkan Kunci API IndexNow.

Mengklik tombol "Hasilkan" membuat Kunci API IndexNow.

Ketika Anda mengklik tombol unduh, itu akan mengunduh versi ".txt" dari Kunci API IndexNow.

IndexNow API Key GenerationIndexNow API Key dapat dibuat dengan alamat yang dinyatakan oleh Microsoft Bing.
versi txt dari Kunci API IndexNowMengunduh Kunci API IndexNow sebagai file txt.

Versi TXT dari kunci API akan menjadi nama file dan juga di dalam file teks.

Kunci API IndexNow dalam File TXTKunci API IndexNow dalam File TXT harus sama dengan nama file, dan nilai Kunci API yang sebenarnya.

Langkah selanjutnya adalah mengunggah file TXT ini ke root server situs web.

Karena saya menggunakan FileZilla untuk FTP saya, saya telah mengunggahnya dengan mudah ke root server web saya.

Root Server dan Pengaturan IndexNow APIDengan meletakkan file .txt ke dalam folder root server web, penyiapan IndexNow API dapat diselesaikan.

Langkah selanjutnya adalah melakukan contoh loop sederhana untuk mengirimkan semua URL dalam peta situs.

6. Kirim URL Dalam Peta Situs Dengan Python Ke IndexNow API

Untuk mengirimkan satu URL ke IndexNow, Anda dapat menggunakan satu instance "requests.get()". Tetapi untuk membuatnya lebih berguna, kita akan menggunakan perulangan for.

Untuk mengirimkan URL secara massal ke IndexNow API dengan Python, ikuti langkah-langkah di bawah ini:

  1. Buat variabel kunci dengan nilai Kunci API IndexNow.
  2. Ganti bagian <searchengine> dengan mesin pencari yang ingin Anda kirimkan URL (Microsoft Bing, atau Yandex, untuk saat ini).
  3. Tetapkan semua URL dari peta situs dalam daftar ke variabel.
  4. Gunakan file "txt" di dalam root server web dengan nilai URL-nya.
  5. Tempatkan URL, kunci, dan URL lokasi kunci di dalam nilai manipulasi string.
  6. Mulai untuk loop Anda, dan gunakan "requests.get()" untuk semua URL di dalam peta situs.

Di bawah ini, Anda dapat melihat implementasinya:

key = "22bc7c564b334f38b0b1ed90eec8f2c5"
url = sitemap_urls["loc"].to_list()
for i in url:
          endpoint = f"https://bing.com/indexnow?url={i}&key={key}&keyLocation={location}"
          response = requests.get(endpoint)
          print(i)
          print(endpoint)
          print(response.status_code, response.content)
          #time.sleep(5)

Jika Anda khawatir tentang mengirim terlalu banyak permintaan ke IndexNow API, Anda dapat menggunakan modul waktu Python untuk membuat skrip menunggu di antara setiap permintaan.

Di sini Anda dapat melihat output dari skrip:

IndexNow API Automation ScriptString kosong sebagai badan respons permintaan menunjukkan keberhasilan permintaan API IndexNow menurut dokumentasi IndexNow Microsoft Bing.

Kode Status 200 berarti permintaan berhasil.

Dengan for a loop, saya telah mengirimkan 194 URL ke Microsoft Bing.

Menurut Dokumentasi IndexNow, Kode Respons HTTP 200 memberi sinyal bahwa mesin pencari mengetahui perubahan konten atau konten baru. Tapi itu tidak selalu menjamin pengindeksan.

Misalnya, saya telah menggunakan skrip yang sama untuk situs web lain. Setelah 120 detik, Microsoft Bing mengatakan bahwa 31 hasil ditemukan. Dan nyamannya, itu menunjukkan empat halaman.

Satu-satunya masalah adalah bahwa pada halaman pertama hanya ada dua hasil, dan dikatakan bahwa URL diblokir oleh Robots.txt meskipun pemblokiran telah dihapus sebelum pengiriman.

Ini bisa terjadi jika robots.txt diubah untuk menghapus beberapa URL sebelum menggunakan API IndexNow karena sepertinya Bing tidak memeriksa Robots.txt lagi.

Jadi, jika sebelumnya Anda memblokir mereka, mereka mencoba mengindeks situs web Anda tetapi masih menggunakan file robots.txt versi sebelumnya.

Bing IndexNow API ResultsIni menunjukkan apa yang akan terjadi jika Anda menggunakan IndexNow API dengan memblokir Bingbot melalui Robots.txt.

Di halaman kedua, hanya ada satu hasil:

Hasil IndexNow Bing PaginasiMicrosoft Bing mungkin menggunakan metode pengindeksan dan pagination yang berbeda dari Google. Halaman kedua hanya menampilkan satu di antara 31 hasil.

Pada halaman ketiga, tidak ada hasil, dan itu menunjukkan Microsoft Bing Translate untuk menerjemahkan string di dalam bilah pencarian.

Microsoft Bing TranslateTerkadang, Microsoft Bing menyimpulkan operator pencarian "situs" sebagai bagian dari kueri.

Ketika saya memeriksa Google Analytics, itu menunjukkan bahwa Bing masih belum merayapi situs web atau mengindeksnya. Saya tahu ini benar karena saya juga memeriksa file log.

Proses Pengindeksan Google dan BingDi bawah ini, Anda akan melihat laporan Alat Webmaster Bing untuk situs web contoh:

Laporan Alat Webmaster Bing

Dikatakan bahwa saya mengirimkan 38 URL.

Langkah selanjutnya akan melibatkan permintaan massal dengan Metode POST dan objek JSON.

7. Lakukan Permintaan Posting HTTP Ke IndexNow API

Untuk melakukan permintaan posting HTTP ke IndexNow API untuk satu set URL, objek JSON harus digunakan dengan properti tertentu.

  • Properti host mewakili nama host mesin pencari.
  • Kunci mewakili Kunci API.
  • Kunci mewakili lokasi file txt Kunci API di dalam server web.
  • urlList mewakili set URL yang akan dikirimkan ke IndexNow API.
  • Header mewakili POST Request Header yang akan digunakan yaitu “Content-type” dan “charset.”

Karena ini adalah permintaan POST, "requests.post" akan digunakan sebagai ganti "requests.get()."

Di bawah ini, Anda akan menemukan contoh kumpulan URL yang dikirimkan ke Microsoft Bing's IndexNow API.

data = {
  "host": "www.bing.com",
  "key": "22bc7c564b334f38b0b1ed90eec8f2c5",
  "keyLocation": "https://www.example.com/22bc7c564b334f38b0b1ed90eec8f2c5.txt",
  "urlList": [
    'https://www.example.com/technical-seo/http-header/',
    'https://www.example.com/python-seo/nltk/lemmatize',
    'https://www.example.com/pagespeed/broser-hints/preload',
    'https://www.example.com/python-seo/nltk/stemming',
    'https://www.example.com/python-seo/categorize-queries/',
    'https://www.example.com/python-seo/nltk/tokenization',
    'https://www.example.com/review/oncrawl/',
    'https://www.example.com/technical-seo/hreflang/',
    'https://www.example.com/technical-seo/multilingual-seo/'
      ]
}
headers = {"Content-type":"application/json", "charset":"utf-8"}
r = requests.post("https://bing.com/", data=data, headers=headers)
r.status_code, r.content

Dalam contoh di atas, saya telah melakukan Permintaan POST untuk mengindeks sekumpulan URL.

saya telah menggunakan objek "data" untuk "parameter data request.post," dan objek header untuk parameter "header".

Karena kita POST objek JSON, permintaan harus memiliki kunci dan nilai “content-type: application/json” dan nilai dengan “charset:utf-8.”

Setelah saya membuat permintaan POST, 135 detik kemudian, dasbor analisis file log langsung saya mulai menampilkan hit langsung dari Bingbot.

Analisis File Log Bingbot

8. Buat Fungsi Kustom Untuk API IndexNow Untuk Meluangkan Waktu

Membuat fungsi kustom untuk IndexNow API berguna untuk mengurangi waktu yang akan dihabiskan untuk persiapan kode.

Jadi, saya telah membuat dua fungsi Python khusus yang berbeda untuk menggunakan IndexNow API untuk permintaan massal dan permintaan individual.

Di bawah ini, Anda akan menemukan contoh hanya untuk permintaan massal ke IndexNow API.

Fungsi kustom untuk permintaan massal disebut “submit_url_set.”

Bahkan jika Anda hanya mengisi parameter, Anda tetap dapat menggunakannya dengan benar.

def submit_url_set(set_:list, key, location, host="https://www.bing.com", headers={"Content-type":"application/json", "charset":"utf-8"}):
     key = "22bc7c564b334f38b0b1ed90eec8f2c5"
     set_ = sitemap_urls["loc"].to_list()
     data = {
     "host": "www.bing.com",
     "key": key,
     "keyLocation": "https://www.example.com/22bc7c564b334f38b0b1ed90eec8f2c5.txt",
     "urlList": set_
     }
     r = requests.post(host, data=data, headers=headers)
     return r.status_code

Penjelasan tentang fungsi kustom ini:

  • Parameter "Set_" adalah untuk memberikan daftar URL.
  • Parameter "Kunci" adalah menyediakan Kunci API IndexNow.
  • Parameter "Location" adalah untuk menyediakan lokasi file txt dari IndexNow API Key di dalam web server.
  • "Host" adalah untuk memberikan alamat host mesin pencari.
  • "Header" adalah untuk menyediakan header yang diperlukan untuk IndexNow API.

Saya telah mendefinisikan beberapa parameter dengan nilai default seperti "host" untuk Microsoft Bing. Jika Anda ingin menggunakannya untuk Yandex, Anda harus menyatakannya saat memanggil fungsi.

Di bawah ini adalah contoh penggunaan:

submit_url_set(set_=sitemap_urls["loc"].to_list(), key="22bc7c564b334f38b0b1ed90eec8f2c5", location="https://www.example.com/22bc7c564b334f38b0b1ed90eec8f2c5.txt")

Jika Anda ingin mengekstrak URL peta situs dengan metode yang berbeda, atau jika Anda ingin menggunakan IndexNow API untuk kumpulan URL yang berbeda, Anda perlu mengubah nilai parameter “set_”.

Di bawah ini, Anda akan melihat contoh fungsi Python Kustom untuk IndexNow API hanya untuk permintaan individual.

def submit_url(url, location, key = "22bc7c564b334f38b0b1ed90eec8f2c5"):
     key = "22bc7c564b334f38b0b1ed90eec8f2c5"
     url = sitemap_urls["loc"].to_list()
     for i in url:
          endpoint = f"https://bing.com/indexnow?url={i}&key={key}&keyLocation={location}"
          response = requests.get(endpoint)
          print(i)
          print(endpoint)
          print(response.status_code, response.content)
          #time.sleep(5)

Karena ini untuk loop , Anda dapat mengirimkan lebih banyak URL satu per satu. Mesin pencari dapat memprioritaskan jenis permintaan ini secara berbeda.

Beberapa permintaan massal akan menyertakan URL yang tidak penting, permintaan individual mungkin terlihat lebih masuk akal.

Jika Anda ingin menyertakan ekstraksi URL peta situs di dalam fungsi, Anda harus menyertakan Advertools secara alami ke dalam fungsi itu sendiri.

Tips Menggunakan IndexNow API Dengan Python

Ikhtisar Cara Kerja, Kemampuan & Penggunaan IndexNow API

  • IndexNow API tidak menjamin bahwa situs web Anda atau URL yang Anda kirimkan akan diindeks.
  • Anda hanya boleh mengirimkan URL yang baru atau yang kontennya telah diubah.
  • API IndexNow memengaruhi anggaran perayapan.
  • Microsoft Bing memiliki ambang batas untuk Kualitas Konten URL dan Perhitungan Kebutuhan Perayapan untuk URL. Jika URL yang dikirimkan tidak cukup baik, mereka mungkin tidak merayapinya.
  • Anda dapat mengirimkan hingga 10.000 URL.
  • IndexNow API menyarankan untuk mengirimkan URL meskipun situs webnya kecil.
  • Mengirimkan halaman yang sama berkali-kali dalam sehari dapat memblokir IndexNow API agar tidak merayapi URL yang berlebihan atau sumbernya.
  • IndexNow API berguna untuk situs yang kontennya sering berubah, seperti setiap 10 menit.
  • IndexNow API berguna untuk halaman yang hilang dan mengembalikan kode respons 404. Ini membuat mesin pencari tahu bahwa URL hilang.
  • IndexNow API dapat digunakan untuk memberi tahu pengalihan 301 atau 302 baru.
  • Kode Respons Status 200 berarti bahwa mesin pencari mengetahui URL yang dikirimkan.
  • Kode Status 429 berarti Anda membuat terlalu banyak permintaan ke IndexNow API.
  • Jika Anda meletakkan file “txt” yang berisi Kunci API IndexNow ke dalam subfolder, API IndexNow hanya dapat digunakan untuk subfolder tersebut.
  • Jika Anda memiliki dua CMS yang berbeda, Anda dapat menggunakan dua Kunci API IndexNow yang berbeda untuk dua bagian situs yang berbeda
  • Subdomain perlu menggunakan kunci API IndexNow yang berbeda.
  • Bahkan jika Anda sudah menggunakan peta situs, menggunakan IndexNow API berguna karena secara efisien memberi tahu mesin pencari tentang perubahan situs web dan mengurangi perayapan bot yang tidak perlu.
  • Semua mesin pencari yang mengadopsi IndexNow API (Microsoft Bing dan Yandex) berbagi URL yang dikirimkan antara satu sama lain.

Dalam tutorial dan panduan IndexNow API dengan Python ini, saya telah memeriksa teknologi mesin pencari baru.

Alih-alih menunggu untuk dirayapi, penerbit dapat memberi tahu mesin telusur untuk merayapi saat dibutuhkan.

IndexNow mengurangi penggunaan sumber daya pusat data mesin telusur, dan sekarang Anda juga tahu cara menggunakan Python untuk membuat prosesnya lebih efisien.