Bir WordPress Sitesini Yapay Zekayla Yönetmek: Otomasyon Serimiz Başlıyor

gurmezin.com'u Claude Code ile nasıl otomatikleştirdiğimizi anlatan serinin ilk yazısı: WP REST API + Application Password kurulumu, güvenlik ilkelerimiz ve ilk performans bulguları.

Bir WordPress sitesini elle yönetmek; yazı yazmak, performansı takip etmek, görselleri optimize etmek, SEO’yu güncel tutmak — hepsi zaman alan, tekrar eden işler. Bu yazı dizisinde, gurmezin.com’u yönetirken bir yapay zeka ajanıyla (Claude Code) birlikte nasıl çalıştığımızı, hangi araçları kurduğumuzu ve neden bu şekilde ilerlediğimizi anlatacağız. Bu ilk yazı, serinin altyapısını nasıl kurduğumuzu özetliyor.

Bu Seri Ne Anlatıyor?

“Claude ile Otomasyon” serisi, gurmezin.com’da gerçekten yapılan işleri, kurgu olmadan, adım adım paylaşıyor: hangi sorun tespit edildi, hangi araç kullanıldı, hangi kararlar neden alındı. Amaç bir reklam değil, gerçek bir çalışma günlüğü — başka bir WordPress sitesini benzer şekilde yönetmek isteyenler için de bir referans olsun istiyoruz.

Neden WP REST API?

İlk akla gelen otomasyon yöntemi genelde SSH üzerinden WP-CLI çalıştırmaktır. Ancak gurmezin.com’un hosting sağlayıcısı güvenlik gerekçesiyle SSH erişimi vermiyor. Bu yüzden otomasyon kanalı olarak WordPress’in kendi REST API‘sini ve Application Password mekanizmasını seçtik.

Application Password, WordPress 5.6’dan beri gelen, kullanıcının ana şifresinden bağımsız, istenildiğinde tek tuşla iptal edilebilen bir erişim anahtarıdır. Ana admin şifresi hiçbir zaman paylaşılmadı; bunun yerine sadece içerik yönetimi yapabilen ayrı bir kullanıcı (claude-otomasyon, Editor rolünde) oluşturuldu.

Uyguladığımız Güvenlik İlkeleri

  • En az yetki: Otomasyon kullanıcısı Editor rolünde — eklenti, tema veya site ayarlarına dokunamıyor, sadece içerik/medya/kategori yönetebiliyor.
  • Draft-first akış: Otomasyonla oluşturulan yazılar önce taslak (draft) olarak kaydediliyor, yayına alma kararı her zaman insana ait.
  • Kimlik bilgisi sızıntısı yok: Application Password hiçbir zaman proje dosyalarına veya versiyon kontrolüne yazılmıyor.
  • Ayrı işlem günlüğü: Yapılan her işlem, proje dizininin dışında, sadece site sahibinin erişebildiği tarih/saat damgalı bir günlük dosyasına kaydediliyor.

Nasıl Çalışıyor?

Teknik olarak akış oldukça basit: Claude Code, WordPress’in /wp-json/wp/v2/ uç noktalarına HTTP istekleri atıyor. Örneğin bir taslak yazı oluşturmak şu şekilde bir isteğe karşılık geliyor:

curl -u "kullanici:application-password" \
  -X POST "https://gurmezin.com/wp-json/wp/v2/posts" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Yazi Basligi",
    "content": "<p>Yazi icerigi...</p>",
    "status": "draft",
    "categories": [538]
  }'

Kimlik doğrulaması başarılı olduğunda WordPress bize kullanıcı rolünü ve yetkilerini döndürüyor; biz de işlemden önce bunu her seferinde doğruluyoruz. Böylece yanlışlıkla yetkisiz bir işlem denenmesi baştan engellenmiş oluyor.

İlk Bulgular: Performans Denetimi

Otomasyonu kurmadan önce sitenin mevcut durumuna da baktık. Sunucu tarafı gayet iyi durumda: HTTP/2 ve Brotli sıkıştırma aktif, ilk byte süresi (TTFB) ~118ms, ve SpeedyCache önbellekleme eklentisi zaten devrede. Buna karşılık en büyük eksik görsel optimizasyonu — sitedeki görsellerin tamamı hâlâ JPG/PNG formatında, WebP’ye geçiş yapılmamış. Bu, serinin ilerleyen yazılarında ele alacağımız ilk somut iyileştirme maddesi olacak.

Bundan Sonra Neler Olacak?

Sıradaki adımlarda görsel optimizasyonunu (WebP dönüşümü), SEO iyileştirmelerini ve içerik otomasyonunun ilk gerçek örneklerini bu seri üzerinden paylaşmaya devam edeceğiz. Her yazı, o dönemde gerçekten yapılan işi yansıtacak.

Ahmet Aksoy & Claude

Bir Yanıt Bırak

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir