Google Indexing API Hataları ve Çözüm Yöntemleri – Laravel 8
Laravel 8 projelerinde Google Indexing API’yi kullanarak blog yazılarınızı hızlı bir şekilde dizine eklemek, SEO performansını artırmanın etkili bir yoludur. Ancak, uygulamada bazı sık karşılaşılan hatalar dizinleme sürecini engelleyebilir. Bu yazıda, en yaygın hataları ve çözüm yollarını detaylı şekilde ele alacağız.
1. 403 Hatası – Permission Denied
Hata Mesajı:
{ "error": { "code": 403, "message": "Permission denied. Failed to verify the URL ownership.", "status": "PERMISSION_DENIED" } }
Nedenleri:
-
Google Search Console’da URL’nin doğrulanmamış olması.
-
Service Account’a yeterli izinlerin verilmemesi.
-
URL’nin proje sahipliğiyle ilişkilendirilmemesi.
Çözüm Yöntemi:
-
Google Search Console’da ilgili siteyi doğrulayın.
-
Service Account e-posta adresini siteye tam izinle ekleyin.
-
Indexing API için “Owner” veya “Full” izinler verildiğinden emin olun.
-
URL gönderirken https:// veya http:// protokolünü doğru kullanın.
2. 401 Hatası – Unauthenticated
Hata Mesajı:
{ "error": { "code": 401, "message": "Request is missing required authentication credential." } }
Nedenleri:
-
Google Client için doğru Service Account JSON’un kullanılmaması.
-
OAuth token alınmamış veya süresi dolmuş olması.
Çözüm Yöntemi:
-
Service Account JSON dosyasının doğru dizinde olduğundan ve Laravel config ile bağlandığından emin olun.
-
Google_Client
’ınsetAuthConfig()
metodu ile JSON’u yükleyin. -
addScope('https://www.googleapis.com/auth/indexing')
eklenmiş olmalı. -
Token yenilenmesi gerekiyorsa
fetchAccessTokenWithAssertion()
çağrısını yapın.
3. Sitemap 404 Hatası
Hata Mesajı:
Sitemap ping hatası: HTTP 404
Nedenleri:
-
Sitemap dosyası doğru dizinde değil veya erişilemiyor.
-
Public dizin ile public_html dizini farklı.
Çözüm Yöntemi:
-
Laravel’de
public/sitemap.xml
dosyasınınpublic_html/sitemap.xml
ile aynı olduğundan emin olun. -
URL doğruluğunu kontrol edin:
https://siteadi.com/sitemap.xml
. -
Sunucuya doğru izinler verin ve dosya erişilebilir olmalı.
4. Observer ve Otomatik Dizinleme
Blog yazılarının her eklenişinde veya güncellenişinde otomatik dizinleme için Observer kullanmak gerekir. Observer, aşağıdaki işlemleri yönetir:
-
Sitemap güncelleme
-
Google’a sitemap ping gönderme
-
Google Indexing API’ye URL gönderme
Bu sayede manuel URL ekleme ihtiyacı ortadan kalkar ve blog içerikleriniz anında dizine eklenir.
5. Laravel 8 için Önerilen Kod Yapısı
-
GoogleIndexingService
: Google Indexing API ile tüm iletişimi yönetir. -
SitemapService
: Sitemap oluşturma ve güncelleme işlemleri. -
PostObserver
: Yeni veya güncellenen postlar için otomatik dizinleme ve sitemap ping. -
GoogleIndexingController
: Test URL gönderme ve toplu URL dizinleme.
Bu yapıyla hem API hataları daha kolay yönetilir hem de loglama ile sorunları takip edebilirsiniz.
6. Loglama ve Hata Takibi
-
Laravel logları (
laravel.log
) ile hangi URL’nin hangi hata ile karşılaştığını görebilirsiniz. -
Loglama kapalı ise
config/logging.php
üzerinden yeniden aktif edin. -
Hataları anlamak, çözüm süresini ciddi şekilde kısaltır.
Google Indexing API’yi doğru şekilde kullanmak, URL’lerin hızlı ve doğru şekilde dizine eklenmesini sağlar. 403, 401 ve 404 gibi hatalar genellikle izin ve dosya yolu kaynaklıdır ve yukarıdaki adımlarla kolayca çözülebilir. Laravel 8 ile Observer, Service ve Controller yapıları kullanılarak otomatik dizinleme sistemi oluşturmak, SEO performansınızı optimize etmenin en etkili yoludur.