AI SEO · · 12 dk okuma

JSON-LD @graph Nedir? Schema Markup ile Tam SEO Rehberi

Tekil schema yerine @graph deseni ile entity'leri birbirine bağlayın. Organization, Service, FAQPage ve Review schema'larını doğru şekilde uygulayın ve Google Knowledge Panel'ini kazanın.

← Tüm Yazılar

JSON-LD ve @graph nedir?

JSON-LD (JavaScript Object Notation for Linked Data), web sayfalarına makine tarafından okunabilen yapılandırılmış veri eklemenin en kolay ve önerilen yöntemidir. Schema.org tarafından tanımlanan bu format, Google'ın içeriğinizi anlamasını ve zengin sonuçlar (rich results) olarak göstermesini sağlar.

@graph ise tek bir JSON-LD bloğunda birden fazla schema entity'sini tanımlamanıza ve aralarında ilişki kurmanıza olanak tanır. Geleneksel yaklaşımda her sayfa için ayrı, bağımsız schema blokları yazılırdı. @graph ile bu entity'ler birbirine @id referanslarıyla bağlanarak tutarlı bir bilgi grafiği oluşturuyor.

Tekil Schema (Eski Yöntem)

  • Her sayfa için ayrı schema
  • Entity'ler arası bağlantı yok
  • Çakışma ve tutarsızlık riski
  • Google entity'leri ayrı okur
  • Knowledge Panel kazanma zor

@graph (Önerilen Yöntem)

  • Tüm entity'ler tek blokta
  • @id ile çapraz referans
  • Tutarlı ve çakışmasız
  • Google bütünü kavrar
  • Knowledge Panel için güçlü sinyal

Neden @graph kullanmalısınız?

Google'ın Knowledge Graph algoritması, web'deki entity ilişkilerini anlamak için bağlantılı veri kullanır. @graph ile Organization → Service → Review zincirini kurduğunuzda Google şunu anlıyor: "Bu şirket, bu hizmeti sunuyor ve bu müşteriler bu hizmet için değerlendirme yazmış." Bu bağlantı zinciri hem sıralama hem de AI motorlarında kaynak seçimi için kritik.

Temel @graph yapısı

Bir @graph bloğu şu ana bileşenlerden oluşur. Her entity benzersiz bir @id alır ve diğer entity'lere bu ID ile referans verir.

Organization node

Tüm @graph'ın merkezi entity'si Organization'dır. Sitenizin diğer tüm schema'ları buraya bağlanır:

{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": ["Organization", "Brand"],
      "@id": "https://siteniz.com/#org",
      "name": "Şirket Adı",
      "legalName": "Şirket A.Ş.",
      "url": "https://siteniz.com",
      "logo": {
        "@type": "ImageObject",
        "url": "https://siteniz.com/logo.png"
      },
      "contactPoint": {
        "@type": "ContactPoint",
        "telephone": "+90-xxx-xxx-xxxx",
        "contactType": "customer service"
      },
      "sameAs": [
        "https://linkedin.com/company/sirketadi",
        "https://twitter.com/sirketadi"
      ]
    }
  ]
}

WebSite ve WebPage node'ları

WebSite node'u sitenizin genel bilgilerini, WebPage ise ziyaret edilen sayfayı tanımlar. WebPage, Organization'a isPartOf ile bağlanır:

    {
      "@type": "WebSite",
      "@id": "https://siteniz.com/#site",
      "url": "https://siteniz.com",
      "name": "Şirket Adı",
      "publisher": { "@id": "https://siteniz.com/#org" },
      "potentialAction": {
        "@type": "SearchAction",
        "target": "https://siteniz.com/?s={search_term_string}",
        "query-input": "required name=search_term_string"
      }
    },
    {
      "@type": "WebPage",
      "@id": "https://siteniz.com/#page",
      "url": "https://siteniz.com/",
      "name": "Ana Sayfa",
      "isPartOf": { "@id": "https://siteniz.com/#site" },
      "about": { "@id": "https://siteniz.com/#org" }
    }

Service node

Her hizmet için ayrı bir Service entity tanımlayın ve provider alanıyla Organization'a bağlayın:

    {
      "@type": "Service",
      "@id": "https://siteniz.com/#web-tasarim",
      "name": "Web Tasarım",
      "description": "Dönüşüm odaklı web tasarım hizmetleri",
      "provider": { "@id": "https://siteniz.com/#org" },
      "areaServed": "TR",
      "serviceType": "Web Design"
    }

FAQPage ve Review node'ları

FAQPage schema, Google arama sonuçlarında akordeon soru-cevap paneli gösterir ve tıklanma oranını artırır. Review schema ise değerlendirmeleri yapılandırarak yıldızlı zengin sonuçları sağlar.

FAQPage şablonu

    {
      "@type": "FAQPage",
      "@id": "https://siteniz.com/#faq",
      "isPartOf": { "@id": "https://siteniz.com/#page" },
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Web tasarım projesi ne kadar sürer?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Kurumsal web siteleri için tipik proje süresi 4-8 hafta arasındadır."
          }
        },
        {
          "@type": "Question",
          "name": "Fiyatlar nasıl belirleniyor?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Proje kapsamı, sayfa sayısı ve özel geliştirme ihtiyaçlarına göre belirleniyor."
          }
        }
      ]
    }

Review node ve AggregateRating

Müşteri değerlendirmelerini Review schema ile işaretleyin. Birden fazla değerlendirmeyi AggregateRating ile özetleyin:

    {
      "@type": "Organization",
      "@id": "https://siteniz.com/#org",
      "aggregateRating": {
        "@type": "AggregateRating",
        "ratingValue": "4.9",
        "reviewCount": "47",
        "bestRating": "5"
      }
    }

Validasyon ve test araçları

Schema uyguladıktan sonra doğrulama adımını atlamayın. Hatalı schema, zengin sonuçlardan diskalifiye edilmenize neden olur.

Google Rich Results Test

Google Rich Results Test aracı, sayfanızdaki schema'nın zengin sonuçlar için geçerli olup olmadığını gösterir. URL veya kod snippet'i girerek test edebilirsiniz.

Schema.org Validator

validator.schema.org ise schema'nızın Schema.org standartlarına uygunluğunu kontrol eder. Zorunlu ve önerilen alanların eksikliğini raporlar.

1
Schema'yı sayfaya ekleyin

JSON-LD bloğunu HTML head veya body sonuna, script tag'i içinde ekleyin.

2
Rich Results Test ile doğrulayın

Sayfa URL'sini girerek schema'nın hatasız algılandığını onaylayın.

3
Search Console'da takip edin

Google Search Console → Zengin Sonuçlar bölümünden schema durumunu izleyin.

Schema'nız sayfada görünen içerikle uyumlu olmalıdır. Sayfada olmayan bilgileri schema'ya eklemek Google'ın spam politikasını ihlal eder.