SEO 02 Mart 2022

Google Indexing API Kurulumu ve Kullanımı (Python / WordPress)

Anıl Zengin

Google tarafından ilk olarak 26 Haziran 2018 tarihinde kullanıma sunulan Indexing API ile birlikte indekslenmemiş URL’lerin tek veya toplu şekilde indekslenmesi için istek göndermemiz mümkün hale geldi. Arama sonuçlarında Google tarafından doğal şekilde indekslenmemiş olan “İş İlanları” ve “Canlı Yayın” türünde sayfalar için kullanımı mümkün olan API ile birlikte 25-30 saniye içerisinde ilgili URL’leri Google’da doğrudan indeksletmek mümkün hale geliyor. İndekslemenin haricinde, Google dizininde bulunan bir URL’inizi Indexing API üzerinden gönderdiğiniz bildirimle birlikte Google’dan silmeniz de mümkün durumda. Hazırladığım bu içerikte Indexing API servisini hem Python üzerinden tek veya birden fazla URL’iniz için kullanmayı hem de WordPress tabanlı siteler için eklenti üzerinden kullanmayı anlattım.

Google Indexing API Hangi Durumlarda Kullanılır?

Google Indexing API, şimdilik sadece iş ilanları ve canlı yayın türündeki sayfaların kullanımı için uygun durumda. Bu iki türdeki sayfalar sınırlı süre içerisinde yayında kaldığı ve kullanıcılara hızlı ulaştırılması gereken içerik türleri olduğundan dolayı hızlı indekslemeye ihtiyacı bulunuyor. Bu sebepten dolayı Google Indexing API üzerinden direkt olarak indeksleme isteğini bu kategorilerde olmayan siteler için göndermeniz önerilmez.

Google Indexing API servisini yeni bir sayfayı anında indeksletebilmekten hariç olarak farklı amaçlar için de kullanmak mümkün. Sitenizden kalıcı olarak kaldığınız bir URL’in indeksinin de anında silinmesini sağlamak, sayfa içerisinde yaptığınız güncellemeleri Google’a anında bildirmek ve gönderdiğiniz bir isteğin kontrolünü yapmak gibi çeşitli amaçlar için Indexing API’ı kullanmak mümkün.

Google Indexing API Nasıl Kurulur?

Google Indexing API kurulumunu yapmak, WordPress’te eklenti üzerinden veya Python üzerinden Google Indexing API ile URL’lerinizle ilgili tekli veya çoklu işlemler yapmak için öncelikle bir ön hazırlık yaparak bu servisi kullanmaya hazır hâle gelmeniz gerekmektedir. Aşağıda Google Indexing API kurulumu yapmak için yapmanız gerekenler aşama aşama yer almaktadır.

Google Cloud Hesabı Oluşturma

Google Indexing API servisini kullanabilmek için aktif bir Google Cloud hesabınızın olması gerekiyor. Aktif bir Google Cloud hesabınız yoksa https://cloud.google.com/contact adresinden bir Google Cloud hesabı oluşturmanız gerekmekte.

API Projesi Oluşturma

Bir Google Cloud hesabı oluşturduktan sonra ikinci aşama olarak Google API Console platformundan Indexing API servisini kullanabilmek için yeni bir proje oluşturmanız gerekmektedir. Yeni proje oluşturmak için https://console.cloud.google.com/projectcreate sayfasına gitmeniz ve sizden istenen “Project Name” bölümünü projenizin adını yazacak şekilde doldurabilirsiniz.

google-cloud-proje-olusturma

Servis Hesabı Oluşturma

Indexing API için projenizi oluşturduktan sonra ikinci aşamada bir servis oluşturmanız gerekmekte. Google Cloud’da bir servis oluşturmak için ilk olarak https://console.cloud.google.com/iam-admin/serviceaccounts/create adresine gitmeniz ve daha sonra karşınıza gelen ekranda “Servis account name” yazan bölümüne bir servis adı girmeniz gerekmektedir.

google-cloud-servis-olusturma

Devamında da “Grant this service account access to project” bölümündeki “Role” bölümünden “Owner” statüsünü seçmeniz ve “Continue” butonuna basarak devam etmeniz gerekmekte.

google-cloud-servis-hesabi-role

API Anahtarlarını Oluşturma

Servis hesabınızı oluşturduktan sonra karşınıza gelen yeni ekran üzerinde oluşturduğunuz servisin sağ kısmında bulunan üç nokta ikonuna tıklayarak açılan küçük menüden “Manage keys” bölümüne tıklamanız gerekmektedir. Bu bölümde API anahtarlarını oluşturmalısınız.

google-cloud-service-manage-keys

Devamında da karşınıza gelen ekran üzerinden “Add Key” butonuna basıp sonrasında “Create new key” seçeneğine tıklayın.

google-cloud-service-key-olusturma

Karşınıza gelen bu ekrandan “JSON” seçeneğini seçmeniz ve “Create” butonuna tıklayarak bir private key oluşturmanız gerekiyor.

google-cloud-service-key-json

Create butonuna bastığınızda otomatik olarak bir .json uzantılı dosya bilgisayarınıza indirilecektir.

Indexing API Etkinleştirme

Google Cloud üzerinde Indexing API’ı kullanabilmek için proje ve servis oluşturduktan sonra Cloud içerisinde yer alan https://console.cloud.google.com/apis/library/indexing.googleapis.com adresinden Indexing API servisini de “Enable” durumuna getirmeniz gerekmektedir.

google-indexing-api-etkinlestirme

Aksi durumda Indexing API servisi hesabınız için “Disable” durumunda olacak ve servis çalışmayacaktır.

Search Console Sahip Yetkilendirmesi

Google Cloud üzerinde proje ve servis oluştururken size özel oluşturulan Indexing API servisinin mail adresine Search Console mülkünüzde “Sahip” statüsünde yetkilendirme yapmanız gerekmektedir.

search-console-sahip-yetkilendirmesi

Bu yetkilendirmeyle birlikte Indexing API servisi çalışabilir duruma gelecek ve URL’leriniz için Indexing API üzerinden Search Console bağlantınızla URL indeksleme, kaldırma ve güncelleme gibi istekleri gönderebileceksiniz.

Python Nasıl Kurulur?

Google Indexing API servisini Python üzerinden kullanabilmek için ilk olarak bilgisayarınızda Python kurulumunu yapmanız gerekmektedir. Aşağıdaki bağlantı üzerinden işletim sisteminize uygun Python’ı bilgisayarınıza indirebilir ve kullanmaya başlayabilirsiniz;

https://www.python.org/downloads/

Python kurulumu sonrasında gerekli olan kütüphanelerin yüklenmesiyle birlikte Indexing API üzerinde URL’leriniz için işlem yapabileceksiniz.

Indexing API İçin Gerekli Olan Kütüphanelerin Yüklenmesi

Python üzerinden Google Indexing API kullanarak URL’lerinizi dizine ekleme, dizinden kaldırma veya güncelleme işlemlerini yapabilmek için gerekli olan kütüphaneleri yüklemeniz gerekiyor. Python’da Google Indexing API kullanmak için oauth2client, httplib2 ve json kütüphanelerini yüklemeniz yeterli olacaktır.

Python’da kütüphane yüklemek için “pip” komutunu kullanabilirsiniz. Örneğin “pip install oauth2client” komutunu Python’da konsola yazarak oauth2client kütüphanesini yükleyebilirsiniz.

Kod İçerisinde Düzenlemeniz Gereken Alanlar

Python üzerinden Google Indexing API kullanabilmek için aşağıdaki Python kodunu kullanabilirsiniz. Aşağıdaki kod içerisinde yer alan url = ‘https://boosmart.com/’ bölümünü kendi geçerli URL’iniz olacak şekilde güncellemeniz, JSON_KEY_FILE = “JSON-DOSYA-ADINIZ.json” bölümündeki .json adını da kendi json anahtarı dosya adınıza göre değiştirmeniz gerekmektedir. Böylece URL bölümünde yer alan sayfanız, Google’da indekslenecek veya içeriğinin güncellendiğine dair Google’a bilgi gidecektir.

Tek URL İçin Yapacağınız İşlemde Kullanmanız Gereken Kod Yapısı

Eğer tek bir URL üzerinde Indexing API servisiyle işlem yapacaksanız, aşağıdaki kodu kullanabilirsiniz. Kodda yer alan “JSON-DOSYA-ADINIZ” alanında Google Cloud üzerinden elde ettiğiniz .json anahtarı dosya adınızı yazmanız gerekiyor. Ayrıca content bölümündeki URL alanına kendi URL’inizi yazmanız gerekmekte.

from oauth2client.service_account import ServiceAccountCredentials
import httplib2

SCOPES = [ "https://www.googleapis.com/auth/indexing" ]
ENDPOINT = "https://indexing.googleapis.com/v3/urlNotifications:publish"

# service_account_file.json is the private key that you created for your service account.
JSON_KEY_FILE = "JSON-DOSYA-ADINIZ.json"

credentials = ServiceAccountCredentials.from_json_keyfile_name(JSON_KEY_FILE, scopes=SCOPES)

http = credentials.authorize(httplib2.Http())

# Define contents here as a JSON string.
# This example shows a simple update request.
# Other types of requests are described in the next step.

content = """{
  \"url\": \"https://boosmart.com.\",
  \"type\": \"URL_UPDATED\"
}"""

response, content = http.request(ENDPOINT, method="POST", body=content)

Toplu URL İçin Yapacağınız İşlemde Kullanmanız Gereken Kod Yapısı

Birden fazla URL için işlem yapmak istediğinizde aşağıdaki kod yapısını kullanmanız gerekmektedir. Bu kod içerisinde de yine aynı şekilde “JSON-DOSYA-ADINIZ” alanında Google Cloud üzerinden elde ettiğiniz .json anahtarı dosya adınızı yazmanız gerekiyor. Ayrıca requests bölümündeki URL’leri kendi URL’lerinize göre güncellemeniz gerekmektedir. Toplu yapacağınız işlemde 1000 URL’e kadar tek istekle bildirim gönderebilirsiniz.

from oauth2client.service_account import ServiceAccountCredentials
from googleapiclient.discovery import build
from googleapiclient.http import BatchHttpRequest
import httplib2
import json

requests = {
    'https://boosmart.com/':'URL_UPDATED',
    'https://boosmart.com/test/':'URL_UPDATED'
}

JSON_KEY_FILE = "JSON-DOSYA-ADINIZ.json"

SCOPES = [ "https://www.googleapis.com/auth/indexing" ]
ENDPOINT = "https://indexing.googleapis.com/v3/urlNotifications:publish"

# Authorize credentials
credentials = ServiceAccountCredentials.from_json_keyfile_name(JSON_KEY_FILE, scopes=SCOPES)
http = credentials.authorize(httplib2.Http())

# Build service
service = build('indexing', 'v3', credentials=credentials)

def insert_event(request_id, response, exception):
    if exception is not None:
      print(exception)
    else:
      print(response)

batch = service.new_batch_http_request(callback=insert_event)

for url, api_type in requests.items():
    batch.add(service.urlNotifications().publish(
        body={"url": url, "type": api_type}))

batch.execute()

Çalıştırma ve Sonuç

Yukarıdaki Python kodunu çalıştırdığınızda, kodun içerisindeki yer alan URL’in indekslenmesine veya içeriğin güncellendiğine dair Google’a bir istek gönderilecek ve kısa bir süre sonra gönderdiğiniz bu URL, Google’da indekslenecek veya güncellenecektir.

Yukarıdaki kodun içerisinde yer alan ‘URL_UPDATED’ bölümünü ‘URL_DELETED’ olarak değiştirdiğinizde Google’a ilgili URL’in indeksten kaldırılmasına yönelik bir istek gidecektir. Ayrıca kod içerisinde kullanabileceğiniz diğer parametreler hakkında detaylı bilgi için https://developers.google.com/search/apis/indexing-api/v3/using-api bağlantısından Google dökümanına erişebilirsiniz.

WordPress’te Google Indexing API Kullanımı

WordPress tabanlı sitelerde Google Indexing API kullanmak için başvurabileceğiniz eklentiler bulunmakta. Rank Math tarafından geliştirilen Instant Indexing for Google eklentisini kurup Cloud aktivasyonunuzu yaptıktan sonra URL’leriniz için işlem yapmanız mümkün. Doğrudan WordPress yönetim panelinizden tek veya birden fazla URL’iniz için indeksleme ve indeksten kaldırma gibi işlemleri kolayca yapabileceksiniz.

Instant Indexing for Google Eklenti Kurulumu ve Kullanımı

Rank Math tarafından geliştirilen Instant Indexing for Google eklentisi üzerinden Indexing API servisini kullanabilmek için ilk önce eklentiyi indirip sitenizde aktif hale getirmeniz gerekiyor. Instant Indexing for Google eklentisini aşağıdaki bağlantıdan indirebilirsiniz.

Eklentiyi indirip sitenizde aktif hale getirdikten sonra eklentinin ayarlar bölümünde bulunan “Google JSON Key:” kutucuğuna JSON anahtarı kodunuzu yapıştırarak ya da direkt olarak JSON dosyanızı upload ederek API bağlantısını sağlayabilirsiniz. Ayrıca hemen alt kısımda bulunan “Submit Posts to Google:” bölümünden de bir içeriğinizi, sayfanızı veya ortam dosyanızı güncelledikten sonra otomatik şekilde Google Indexing API ile bunun Google’a bildirilmesini istiyorsanız bu seçeneği aktif hale getirebilirsiniz.

instant-indexing-for-google-eklenti-ayarlari-1

İkinci adımda da üst kısımda bulunan Console bölümünden Google Indexing API ile işlem yapmak istediğiniz URL’lerinizi Google’a manuel olarak gönderebileceğiniz alanı kullanabilirsiniz.

instant-indexing-google-api-URL-istegi-gonderme

Bu bölümde her satırda bir URL olacak şekilde ister tekli ister toplu şekilde de URL’leriniz için işlem yapmanız mümkün. URL’lerinizi kutucuğa yazdıktan sonra alt bölümdeki “Action:” bölümünden yapmak istediğiniz eylemi seçmeniz gerekiyor. Burada “Publish/update URL” seçeneği indekslemeyi, “Remove URL” seçeneği indeksten kaldırmayı ve “Get URL status” seçeneği de URL’e başarılı bir şekilde istek gönderip göndermediğinizi belirtir.

Google Indexing API Limitleri

indexing-api-limitler

Yararlanılan Kaynaklar

https://developers.google.com/search/apis/indexing-api/v3/using-api

https://www.jcchouinard.com/google-indexing-api-with-python/