📋 Back to Forum
YAYIN: 2026-06-20 | OTORİTE: raufayar.net

Google Indexing API 2026: 403 Permission Denied Hatası ve Anlık Çözüm Rehberi

Google Indexing API 403 Permission Denied Hatası Çözümü

2026 itibarıyla Google Indexing API kullanan geliştiricilerin en sık karşılaştığı hata: 403 Permission Denied (IAM Permission Denied).

Bu hata, özellikle yeni projelerde Service Account kurulumu sonrası ortaya çıkıyor ve URL’lerin anında indekslenmesini engelliyor. Bu rehberde hatanın gerçek nedenini ve kalıcı çözümünü adım adım anlatıyoruz.

Sorun Nedir?

Google Cloud Console’da Service Account oluştursanız bile, bu hesabın Google Search Console üzerinde “Owner” (Sahip) yetkisine sahip olmaması durumunda Indexing API çağrıları 403 Permission Denied hatası verir.

Google’ın 2026 güncellemesiyle birlikte izin kontrolleri daha katı hale getirildi. Artık sadece API etkinleştirmek yetmiyor; kimlik doğrulama zinciri tamamlanmak zorunda.

Adım Adım Çözüm (2026 Güncel)

1. Google Cloud Console’da Service Account Oluşturma

  1. Google Cloud Console → Projenizi seçin
  2. Sol menüden IAM & Admin → Service Accounts sayfasına gidin
  3. Create Service Account butonuna tıklayın
  4. İsim verin (örnek: indexing-api-service)
  5. Rol olarak “Service Account User” ve “Owner” ekleyin
  6. Oluşturulduktan sonra Keys → Add Key → JSON ile anahtar indirin

2. Service Account Mail’ini Search Console’a Owner Olarak Ekleme

  1. İndirdiğiniz JSON dosyasındaki "client_email" adresini kopyalayın
  2. Google Search Console’a gidin
  3. Sol menüden Ayarlar → Kullanıcılar ve İzinler
  4. Add User butonuna tıklayın
  5. Kopyaladığınız mail adresini yapıştırın ve Sahip (Owner) yetkisi verin
  6. Değişikliğin yansıması için en az 10 dakika bekleyin (Google’ın IAM senkronizasyon süresi)

3. Indexing API İzni Kontrolü

Node.js ile Anlık URL Indexleme Kodu (2026 Uyumlu)

const { google } = require('googleapis');
const path = require('path');

async function indexUrl(url) {
  const auth = new google.auth.GoogleAuth({
    keyFile: path.join(__dirname, 'service-account-key.json'),
    scopes: ['https://www.googleapis.com/auth/indexing'],
  });

  const indexing = google.indexing({ version: 'v3', auth });

  try {
    const res = await indexing.urlNotifications.publish({
      requestBody: {
        url: url,
        type: 'URL_UPDATED'   // veya URL_DELETED
      }
    });
    console.log('✅ Index isteği başarılı:', res.data);
  } catch (error) {
    console.error('❌ Hata:', error.response?.data || error.message);
  }
}

// Kullanım
indexUrl('https://raufayar.net/ornek-yazi');