Google Index'e Toplu URL Gönderme ve Site İndeksleme Kontrolü Sistemi Nasıl Oluşturulur
Bu makalede, sistemi nasıl oluşturduğumuzu, hangi adımları izlediğimizi detaylı bir şekilde açıklayacak ve çalışan kod örnekleri sunacağız.
Giriş
Her web sitesi sahibi, özellikle Türkiye'deki kitleyi hedefleyenler, sayfa indekslemelerini izleme ve yeni URL'leri Google'a hızlı bir şekilde ekleme ihtiyacıyla karşı karşıya kalır. Türkiye'nin e-ticaret ve içerik pazarında yüksek rekabet ortamında, yeni içerik veya ürün sayfalarının arama sonuçlarında mümkün olan en kısa sürede görünmesi kritik önem taşır; arama botlarının bunları haftalarca keşfetmesini beklemek yerine.
Google Search Console üzerinden manuel olarak indeksleme kontrolü yapmak ve bağlantılar göndermek, özellikle yüzlerce ürüne sahip bir çevrimiçi mağaza veya düzenli yerel yayınlar yapan bir blog yönetiyorsanız, hızla sıkıcı ve zaman alıcı bir görev haline gelir.
Bu süreci Google'ın araçlarını kullanarak otomatikleştirmeye karar verdik. Toplu URL gönderme için Google Indexing API kullandık ve sayfaların arama sonuçlarında bulunup bulunmadığını kontrol etmek için — Google Custom Search API. Bu yaklaşım şunları sağlar:
-
yeni sayfaların toplu indekslenmesini basitleştirir;
-
hangi sayfaların arama sonuçlarında olduğunu ve hangilerinin olmadığını anında kontrol eder, Türkiye'ye özgü coğrafi konumla;
-
Türkiye pazarında SEO çalışmalarının etkinliğini izler.
1. Google Projesi ve Servis Hesabı Oluşturma
İlk adım — API kullanımı için bir hesap hazırlama:
-
Google Cloud Console'da bir proje oluşturun
-
console.cloud.google.com adresine gidin ve yeni bir proje oluşturun (örneğin,
turkey-index
). - bağlantı .
-
2. Servis Hesabı Oluşturun
IAM & Admin → Service Accounts bölümünde yeni bir servis hesabı oluşturun.
-
Bir isim atayın (örneğin,
turkey-site-com
), -
Rol olarak
Owner
seçin
Sonraki pencerede hiçbir şey belirtmenize gerek yok; sadece Bitti düğmesine tıklayın.
JSON Anahtar Oluşturun ve İndirin
Servis hesabı oluşturulduktan sonra, JSON formatında bir anahtar oluşturun. Bu anahtar şunları içerir:
-
client_email
— servis hesabı e-posta adresi, -
private_key
— özel anahtar, -
diğer kimlik doğrulama verileri.
Örnek anahtar:
{
"type": "service_account",
"project_id": "turkey-index",
"private_key_id": "abc123",
"private_key": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n",
"client_email": "example@turkey-index.iam.gserviceaccount.com",
...
}
2. Google Indexing API'yi Etkinleştirin
APIs & Services → Library bölümünde Indexing API
'yi bulun ve projeniz için etkinleştirin. burada
Google Index'e URL Göndermek için Node.js Scripti
Node.js ve googleapis
kütüphanesini kullanarak JWT ile kimlik doğrulama yaptık. Türk siteleri için, alan adınızın Google Search Console'da Türkiye için (google.com.tr) doğrulandığından emin olun.
const fs = require('fs');
const { google } = require('googleapis');
const request = require('request');
const key = require('./service_account.json');
const jwtClient = new google.auth.JWT(
key.client_email,
null,
key.private_key,
['https://www.googleapis.com/auth/indexing']
);
const batch = fs.readFileSync('urls.txt').toString().split('\n');
jwtClient.authorize((err, tokens) => {
if (err) return console.error('Kimlik doğrulama hatası:', err);
const items = batch.map(url => ({
'Content-Type': 'application/http',
'Content-ID': '',
body: 'POST /v3/urlNotifications:publish HTTP/1.1\n' +
'Content-Type: application/json\n\n' +
JSON.stringify({ url, type: 'URL_UPDATED' })
}));
const options = {
url: 'https://indexing.googleapis.com/batch',
method: 'POST',
headers: { 'Content-Type': 'multipart/mixed' },
auth: { bearer: tokens.access_token },
multipart: items
};
request(options, (err, resp, body) => {
if (err) return console.error('Toplu gönderme hatası:', err);
console.log('✅ Google Index API Yanıtı:\n', body);
});
});
Script çalıştırıldığında her bağlantı Google Index'e gönderilir. Örnek yanıt:
{
"urlNotificationMetadata": {
"url": "https://ornek.com.tr/urun/bluebonnet-nutrition-120"
}
}
Custom Search API ile İndeksleme Kontrolü
Bir URL'nin indekste olup olmadığını kontrol etmek için, Türkiye'ye özgü parametreler (gl=tr) kullanın:
Özel Arama Motoru (CSE) Oluşturun:
Buradan oluşturun - burada
-
Siteyi girin
ornek.com.tr
, -
Aramayı yalnızca bu alan adına sınırlayın.
API Anahtarı Alın (arama motoru tanımlayıcısı).
https://console.cloud.google.com/apis/credentials
-
Hata mesajındaki bağlantıyı takip edin:
https://console.cloud.google.com/projectselector2/apis/api/customsearch.googleapis.com/overview?pli=1&inv=1&invt=Ab5_kg&supportedpurview=project -
Bu proje için API'yi Etkinleştir düğmesine tıklayın.
Sonuç olarak şunlara sahip olmalısınız:
Api key = AIzaSyAk3234234234d-gZAk8wmJE4IGFo_w8
CX = e35e2de1234566c5
Google'da indeksleme kontrolü için script:
const fs = require('fs');
const axios = require('axios');
const urls = fs.readFileSync('urls.txt').toString().split('\n');
const apiKey = 'SİZİN_API_ANAHTARINIZ';
const cx = 'SİZİN_CX';
(async () => {
for (const url of urls) {
try {
const resp = await axios.get('https://www.googleapis.com/customsearch/v1', {
params: { key: apiKey, cx, q: `site:${url}`, gl: 'tr' }
});
const status = resp.data.items && resp.data.items.length > 0 ? '✅ İndekslendi' : '❌ İndekslenmedi';
console.log(`${url} — ${status}`);
fs.appendFileSync('index-check-results.txt', `${url} — ${status}\n');
// Limitleri aşmamak için 1 saniye duraklama
await new Promise(r => setTimeout(r, 1000));
} catch (e) {
console.error('Kontrol hatası:', e.response?.data || e.message);
}
}
})();
Limitler ve Kotalar
-
Google Indexing API — varsayılan olarak günde 200 istek (Türk siteleri dahil global olarak geçerlidir).
-
Custom Search API — ücretsiz kota günde 100 istek; daha yüksek hacimler için 10 siteyle sınırlı Site Restricted API kullanılabilir.
-
Limitleri aşmamak için:
-
İstekler arasında duraklamalar kullanın,
-
URL'leri gruplara ayırın,
-
Google Cloud Console üzerinden kota artışı talep edin.
-
Türk siteleri için uygun tamamen otomatik bir süreç oluşturduk:
-
URL'leri Google Index'e gönderme,
-
Türkiye odaklı her sayfanın indeksleme kontrolü,
-
Sonuçları bir dosyaya kaydetme,
-
Diğer sistemlerle entegrasyon imkanı (CMS, Telegram botu, Google Sheets).
Bu, Türk siteleri için SEO süreçlerini hızlandırır, zaman kazandırır ve indeksleme izlemeyi şeffaf hale getirir.
Tüm API'ler ve Anahtarlar Elde Edildikten Sonra
Elde edilen anahtarları eklemeniz gereken kullanıma hazır bir arşiv hazırladık.
İndirme bağlantısı - burada
İndeksleme Kontrolü ve URL Gönderme Scriptini Kurma ve Kullanma Talimatları
Gereksinimler
-
Node.js (sürüm 18+) yüklü olmalı.
Buradan indirin: https://nodejs.org/.
Kurulumdan sonra doğrulayın: -
Türk alan adınızın Google Search Console'da doğrulandığı bir Google Cloud Console hesabı.
-
Indexing API etkinleştirilmiş.
-
Servis Hesabı oluşturulmuş ve JSON anahtarı indirilmiş.
-
Custom Search API etkinleştirilmiş ve siteniz için bir arama motoru (CSE) oluşturulmuş, Türkiye'ye özel sonuçlar için gl=tr.
-
Kurulum
-
Arşivi uygun bir klasöre çıkarın.
Örneğin: