İçeriğe geç
Approvalens

Rehberler · 8 dk okuma

WhatsApp ve Facebook Link Önizlemede Görsel Çıkmıyor: og:image

Link önizlemesinde görsel çıkmıyor ya da yanlış görsel geliyor mu? og:image hataları, engellenen botlar, dosya boyutu ve her uygulamada önbelleği yenileme.

Approvalens ekibi

Şu rapor bulgularını düzeltir

  • Sosyal paylaşım etiketleri

Bir linki WhatsApp'a, Facebook'a, X'e, LinkedIn'e ya da Telegram'a yapıştırdığında uygulamanın botu sayfanı bir kez getirir, <head> içindeki Open Graph etiketlerini okur, og:image görselini indirir ve sonucu önbelleğe alır. Görselin yanlış çıkması ya da hiç çıkmaması neredeyse her zaman beş yerden birinden gelir: etiket yok ya da iki tane, görsel adresi çalışmıyor, bot engelleniyor, dosya boyutu uygun değil ya da uygulama hâlâ eskiden önbelleğe aldığını gösteriyor. Bu sırayla kontrol et, sonra her uygulamaya sayfayı yeniden okut.

Önizlemenin her parçası nereden geliyor?

Numaralı parçalarıyla bir link önizleme kartının sadeleştirilmiş temsili: 1 görsel, 1200 × 630 ve 1,91:1, og:image ile og:image:width, og:image:height ve og:image:alt etiketlerinden; 2 başlık og:title'dan; 3 açıklama og:description'dan; 4 alan adı, og:url standart adresi gösteriyor
Kartın her parçası bir etikete karşılık gelir. Önce etiketi düzelt, sonra önbelleği yenile.

Open Graph protokolü her sayfa için dört zorunlu özellik tanımlıyor: og:title, og:type, og:image ve og:url. og:image'ı nesneyi temsil eden bir görsel URL'si olarak tanımlıyor ve ekliyor: sayfa bir og:image veriyorsa og:image:alt de vermeli.

X önce kendi twitter: etiketlerine bakar, bulamazsa Open Graph'a döner. X'in kart etiketleri tablosunda twitter:image için yedek olarak og:image, twitter:title için og:title yazıyor (X kart etiketleri, arşiv kopyası; canlı sayfa şu an açılmıyor). Yani doğru bir og:image X'i de kapsar; büyük görselli kart istiyorsan ayrıca <meta name="twitter:card" content="summary_large_image"> ekle.

Bir yazı için eksiksiz bir set şöyle görünür:

<meta property="og:type" content="article">
<meta property="og:url" content="https://ornek.com/ogutme-ayari/">
<meta property="og:title" content="Kahve Öğütme Ayarı Tablosu">
<meta property="og:description" content="Espresso, filtre kahve ve French press için öğütme ayarları tek tabloda.">
<meta property="og:image" content="https://ornek.com/img/ogutme-tablosu-1200x630.jpg">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:image:alt" content="İnceden kalına öğütme dereceleri">
<meta name="twitter:card" content="summary_large_image">

Genişlik ve yükseklik satırları süs değil. Facebook'un görsel rehberi (yalnızca İngilizce), bir içeriği ilk paylaşan kişinin görseli göremeyeceğini söylüyor: "The first person who shares a piece of content won't see a rendered image." Bu iki etiket, botun görseli arka planda indirip işlemesini beklemeden hemen göstermesini sağlıyor.

Önizleme görselinin kaybolduğu beş yer, kontrol sırasıyla: 1 etiket yok, boş ya da tema ve eklentiden iki tane, curl ve grep ile bakılır, tek og:image bırakılır; 2 görsel adresi göreli, http, yönlendiriyor ya da 404, curl -sI ile bakılır, 200 dönen tam https adres kullanılır; 3 erişim robots.txt, güvenlik duvarı, bot doğrulaması ya da hotlink korumasıyla engelli, facebookexternalhit kullanıcı aracısıyla curl denenir; 4 dosya çok küçük, çok ağır ya da SVG, 1200 × 630 JPEG ya da PNG kullanılır, Facebook en az 200 × 200 ve en çok 8 MB, X 5 MB altı ve SVG yok; 5 önbellek eski kartı tutuyor, yeniden çektirilir ve değişen görsele yeni dosya adı verilir
Bozuk önizlemelerin çoğu 1. ya da 2. adımda takılır. Düzeltmenin hemen görünmemesinin nedeni 5. adım.

Etiketin kendisine bak

Tarayıcının script'ler çalıştıktan sonra gösterdiğine değil, sunucunun gönderdiği HTML'e bak:

$ curl -s https://ornek.com/ogutme-ayari/ | grep -i 'og:image'
<meta property="og:image" content="https://ornek.com/wp-content/uploads/2026/09/logo.png" />
<meta property="og:image" content="https://ornek.com/wp-content/uploads/2026/09/ogutme-tablosu.jpg" />

Bu örnekte iki og:image var. Tema kendi Open Graph etiketlerini, SEO eklentisi de ayrı bir set bastığında WordPress'te klasik sonuç budur. Open Graph'ın tekrar eden etiket kuralı, çakışmada yukarıdan aşağıya ilk etiketin tercih edilmesi; site logosunun paylaşılan her yazıda çıkması bu yüzden. İki kaynaktan birini kapat (genelde temanın "sosyal meta" seçeneği), tek set kalsın.

Hiç og:image yok mu? O zaman her uygulama kendi yedeğine düşer, çoğu zaman görselsiz bir kart. WordPress'te SEO eklentisi normalde öne çıkan görseli alır; öne çıkan görseli olmayan yazı genel yedek görseli kullanır:

  • Yoast SEO: Yoast SEO > Settings > Site basics > Site image (eklenti Türkçe çalışıyorsa menü adları çevrilmiş görünür). Yoast eski "Default image" ayarının adını 20.0 sürümünde "Site image" yaptı (Yoast sürüm notu).
  • Rank Math: Rank Math SEO > Titles & Meta > Global > OpenGraph Thumbnail. Rank Math önce Sosyal sekmesinde ayarlanan görsele ya da öne çıkan görsele, sonra bu genel yedeğe bakıyor (Rank Math yardım).

Etiketlerin sunucunun gönderdiği HTML'de olduğundan emin ol. Bir JavaScript çatısı onları sayfa yüklendikten sonra ekliyorsa curl göremez; link botlarının göreceğine de güvenme.

Görsel adresine bak

Tam adres kullan: /img/ogutme-tablosu.jpg değil, https://ornek.com/img/ogutme-tablosu.jpg. Sonra adresi iste:

$ curl -sI https://ornek.com/img/ogutme-tablosu.jpg
HTTP/2 200
content-type: image/jpeg
content-length: 184213

İlk yanıtta 200, image/ ile başlayan bir content-type ve makul bir boyut görmelisin. Sık görülen arızalar: www'li ya da https'li sürüme 301 (etikete son adresi yaz), ortam kütüphanesi temizliği ya da tema değişikliği sonrası 404, süresi dolmuş bir CDN adresi ya da HTTPS sitede http:// görsel. HTTPS'e geçtiysen veritabanında kalan eski http:// adresleri HTTPS sonrası karışık içerik rehberi anlatıyor.

og:url için Facebook'un paylaşım rehberi oturum değişkeni, kullanıcıyı tanımlayan parametre ya da sayaç içermeyen yalın adres istiyor. Sayfanın standart (canonical) adresini yaz.

Botun hem sayfaya hem görsele ulaşabildiğine bak

Her uygulama kendi botuyla gelir. Facebook'unki belgede facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php), X'inki Twitterbot olarak geçiyor. Onları durduranlar:

  • robots.txt. X'in sorun giderme sayfası, eksik görselin nedenlerinden biri olarak kart bilgilerini almayı engelleyen bir robots.txt dosyasını sayıyor ve izin kuralını veriyor: User-agent: Twitterbot / Disallow: (X sorun giderme, arşiv kopyası). Disallow: /wp-content/ satırı yüklediğin tüm görselleri engeller. Bir botun yalnızca kendisini adıyla anan en özel gruba uyduğunu da hesaba kat; nasıl işlediğini robots.txt user-agent önceliği rehberi anlatıyor. Meta, botlarının robots.txt içeriğini 24 saate kadar önbellekte tutabildiğini yazıyor (Meta web tarayıcıları); değişiklik hemen etki etmeyebilir.
  • Güvenlik duvarı ve bot koruması. Tanımadığı botlara doğrulama sayfası ya da 403 dönen bir kural, botun etiketleri hiç görmemesi demek. Cloudflare'de Google botlarını engelleyen ayarlar (Bot Fight Mode, özel WAF kuralları, ülke engelleri) önizleme botlarını da yakalayabilir; hangisinin nerede olduğunu Cloudflare AdSense engeli rehberi gösteriyor. LinkedIn'in Türkçe yardımı da bunu söylüyor: "web siteniz görüntüyü almamızı engelliyor veya görüntü, korumalı bir dizinde ya da web sitesinde olabilir" (LinkedIn yardım).
  • Hotlink koruması. Başka sitelerden gelen görsel isteklerini reddeden kurallar önizleme botlarını da yakalayabilir. cPanel'deki Hotlink Koruması gibi ayarlarda Referer'ı boş istekleri serbest bırak.
  • Yavaş ya da ağır sayfalar. Meta, içeriğin "within a few seconds" (birkaç saniye içinde) taranabilmesini istiyor ve Open Graph özelliklerinin sayfanın ilk 1 MB'ı içinde olması gerektiğini, yoksa kesileceğini söylüyor. X'in botu sayfa yanıtları için 2 MB sınırı uyguluyor. Etiketleri <head>'in üst kısmına koy.

Bot gibi dene:

$ curl -sI -A "facebookexternalhit/1.1" https://ornek.com/ogutme-ayari/
HTTP/2 403
server: cloudflare

Normal curl 200 alırken burada 403 ya da doğrulama sayfası görüyorsan sorun güvenlik duvarında. Paylaşım botlarına izin ver ya da görsel yollarını kuraldan muaf tut.

Görsel dosyasına bak

Belgelenmiş rakamlar:

Uygulama Önerilen Sınırlar
Facebook en az 1200 x 630 piksel, 1,91:1'e yakın oran en küçük 200 x 200; dosya 8 MB'ı geçmemeli
X büyük kart görseli 5 MB altı; JPG, PNG, WEBP, GIF; SVG desteklenmiyor
LinkedIn "Önerilen oran: 1.91:1" "Minimum görüntü boyutları: 1200 (g) x 627 (y) piksel", "Maksimum dosya boyutu: 5 MB"; 401 pikselden dar görseller küçük resim olarak gösterilir
WhatsApp, Telegram yayımlanmış bir gereksinim yok —

Kaynaklar: Facebook görselleri, X kart etiketleri (arşiv), LinkedIn yardım.

1200 × 630 boyutunda, birkaç yüz kilobayt olarak kaydedilmiş tek bir JPEG, belgelenmiş bütün sınırları aynı anda karşılar. Facebook, 1,91:1'e yakın kalmanın görseli akışta kırpılmadan göstereceğini söylüyor; yine de önemli yazıları kenarlardan uzak tut. SVG kullanma, tasarım aracından çıktığı gibi 4 MB'lık bir PNG de koyma: WhatsApp bir sınır yayımlamıyor ve küçük dosya, neyi kullanıyorsa ondan uzak durmanın en ucuz yolu.

Her uygulamada önbelleği temizle

Etiketleri düzelttin ama eski kart hâlâ çıkıyor. Her uygulama ayrı önbellek tutar:

  • Facebook: Sharing Debugger'ı aç, adresi yapıştır ve Scrape Again'e tıkla. Facebook'a göre hata ayıklayıcı sayfayı yeniden çekiyor. Ama: "Images are cached based on the URL and won't be updated unless the URL changes." Yani görseller URL'ye göre önbelleğe alınıyor ve URL değişmedikçe güncellenmiyor. Resmi değiştirip dosya adını aynı bıraktıysan yeni adla yükle ve og:image'ı güncelle.
  • LinkedIn: adresi Post Inspector'dan geçir. LinkedIn'in notu: "Yaptığınız değişiklikler yalnızca URL'nin önizleme resmini ve URL'yi içeren yeni gönderilerin bilgilerini etkiler."
  • X: sorun giderme belgesine göre bot kart bilgilerini "roughly every seven days", yani yaklaşık yedi günde bir yeniden okuyor ve görseller de URL'ye göre önbelleğe alınıyor. Yeni bir dosya adı ya da görsel adresine eklenen bir sorgu parametresi taze bir çekim sağlar.
  • Telegram: Telegram'ın kendi @WebpageBot botuna adresi gönderdiğinde önizlemeyi yeniden çeker.
  • WhatsApp: bir araç yok. Yeni paylaşımlar zamanla değişikliği alır; yeni görsel dosya adı işi hızlandırır. Hangi uygulama olursa olsun, daha önce gönderilmiş mesajlar gönderildikleri önizlemeyle kalır.

Sayfa önbelleği kullanıyorsan (WP Rocket, LiteSpeed Cache, Cloudflare APO ve benzerleri) yeniden çektirmeden önce temizle. Yoksa bot eski etiketli önbellek HTML'ini alır.

Open Graph'ın AdSense'e etkisi var mı?

Yok. AdSense Open Graph etiketlerine bakmaz; Approvalens raporu da bu bulguda bunu açıkça yazıyor. Etkisi, insanlar linkini paylaştığında nasıl göründüğü: sosyal uygulamalardan gelen tıklamalar ve paylaşılan linkin ne kadar güven verdiği. Görseli bir kez, şablonda doğru kurmak için bu yeterli bir neden.

Bir sayfayı tek seferde kontrol et

Ücretsiz Open Graph kontrolü aracı adresi getirir, og: ve twitter: etiketlerini listeler, kopya ve göreli adresleri işaretler ve bir önizleme kartı gösterir.

SSS

Facebook neden yazının görseli yerine logomu gösteriyor?

Genelde iki og:image var ve logo önde, ya da yazının öne çıkan görseli yok ve eklenti site geneli yedeğe düşmüş. Sayfa kaynağında og:image ara ve sayfa başına tek etiket bırak.

Facebook'ta görsel çıkıyor, WhatsApp'ta neden çıkmıyor?

WhatsApp bir gereksinim yayımlamadığı için kontrol edebildiklerinle başla: büyük dosya, http:// görsel adresi ya da WhatsApp'ın isteğine farklı davranan bir güvenlik duvarı. Tam https:// adreste, birkaç yüz kilobaytlık 1200 × 630 bir JPEG güvenli kurulumdur.

Görseli değiştirdim, Facebook hâlâ eskisini gösteriyor. Neden?

Facebook görselleri URL'ye göre önbelleğe alıyor. Yeniden çektirmek etiketleri günceller ama aynı görsel adresi eski resmi tutabilir. Yeni resmi yeni bir dosya adıyla kaydet, og:image'ı güncelle, sonra Scrape Again'e tıkla.

og:image boyutu ne olmalı?

1200 × 630 piksel (1,91:1). Facebook'un önerisi bu; LinkedIn'in 1200 × 627 alt sınırına ve X'in büyük kartına da uyuyor.

Open Graph varken twitter: etiketlerine gerek var mı?

Görsel, başlık ve açıklama için X, Open Graph'a döner. Büyük görselli düzen istiyorsan yine de twitter:card etiketini summary_large_image olarak ayarlaman gerekir.

Eskimiş ya da yanlış bir şey mi gördün? Bize yaz, düzeltelim.

Bu rehberi İngilizce oku →

Kendi sitende kontrol et. Ücretsiz, kayıt yok.

Bunun için ücretsiz araçlar

Ücretsiz tarama

Kendi siteni kontrol et

Ücretsiz tarama ilk 50 sayfayı okur; puanını ve bulduğu tüm sorunları gösterir.

İlk 50 sayfa ücretsiz · üyelik yok · kart gerekmez

Tüm rehberler