Yoast SEO WordPress eklentisine fazladan Schema.org verisi nasıl eklenir
Yayınlanan: 2020-07-28Schema.org yapılandırılmış verilerinin tam olarak ne olduğunu ve neden herhangi bir SEO stratejisinin önemli bir parçası haline geldiğini tam olarak bilmeyenler için lütfen "Schema.org yapılandırılmış verileri şirketler ve insanlar için nasıl kullanılır" makalemi okuyun.
Peki ya WordPress ve Yoast?
Tüm internetin %37'si şu anda WordPress tarafından desteklenmektedir. Evet. Bu, WordPress'in bazı sürümlerini çalıştıran yaklaşık yarım milyar site ve yalnızca en son sürüm (yayınlanma sırasında 5.4) 31 milyon kez indirildi!
Yoast SEO nedir ve Schema.org verileri için neden yararlıdır?
Yoast SEO, 2010 yılında Joost de Valk tarafından başlatılan ve 202 milyondan fazla kez indirilen bir WordPress eklentisidir. Bazı temel (ve daha gelişmiş) sayfa içi SEO görevlerini basitleştirir ve otomatikleştirir.
Schema.org işaretlemesini işleyen işlevler ilk olarak 2011'de eklendi ve ardından Mayıs 2020'de geliştiricilerin Schema @graph'larına veri enjekte etmelerine izin vermeyi amaçlayan tüm bir API ile büyük bir kod yeniden yazma işlemi yapıldı. Bu harika bir haberdi, ancak SEO'da WordPress ile çalışan çoğu kişi ya varlığından haberdar değil ya da nasıl kullanılacağına bakmadı. Ve aslında başlamak inanılmaz derecede basit!
Şimdi bir wordpress sayfasında Yoast Schema çıktısının nasıl göründüğüne bir göz atalım. İşte temel konteyner bloğu:
Gördüğünüz gibi, burada ilginç olan Schema verilerinin @graph adlı bir kapta hepsi aynı seviyede olan 4 ana parçaya (örneğin @type : Person/Organization vb.) @type , @id ve parçaları birbirine bağlamak için kullanılan tüm özellikler dışındaki tüm verileri, hepsinin nasıl bir araya geldiğini göstermek için kaldırdım.
Web sitelerindeki şema blokları, örneğin, WebPage bloğunun içindeki birincilImageOfPage görüntü nesnesinin koduyla birlikte, genellikle birbirinin içine yerleştirilmiş öğelere sahiptir, oysa burada tamamen ayrı bir parçadır. Bunun nedeni, blokların içindeki iç içe blokların, çok sayıda tekrarlanan kodla hızla çok hantal hale gelebilmesidir.
Burada, parçaların tümü her parçanın @id'si kullanılarak bağlanır, bu nedenle yukarıdaki resimdeki bloklar şu şekilde bağlanır: ImageObject , yayıncının Kişi/Kuruluş bloğu olduğu WebSitesinin Parçası olan Web Sayfasının birincil Görüntüsüdür. Bu açık ve mantıklı!
Uzun lafın kısası, API temel olarak yeni parçaları "dikmemize" ve @id aracılığıyla başka herhangi bir parçadan onlara atıfta bulunmamıza izin verir.
Bununla birlikte, henüz oluşturulmamış yeni parçalarda dikiş yapmak, biraz daha fazla kod ve hangi sayfa türlerinin yeni parçalara ihtiyaç duyduğuna karar vermek için koşulların ayarlanmasını gerektirir, bu yüzden burada bunun nasıl yapılacağına bakmak yerine, sadece buna bakacağız. değerlerden birini değiştirerek veya yeni türler ve özellikler ekleyerek var olan bir parçadaki verilerin nasıl değiştirileceği (hangi parçaların sayfanıza halihazırda çıkarıldığına bakın).
Bunu yapmak için ultra temel bir WordPress eklentisi oluşturacağız.
Ama önce, merak ediyor olabilirsiniz: Bunu neden yapmak istiyoruz?
Neden Yoast SEO eklentisi Şemasına veri ekleyelim?
Eklentinin mimarisi iyi düşünülmüş ve en büyük vaka yüzdesinde çalışacak şekilde tasarlanmıştır. Doğru koşullar sağlandığında çok çeşitli içerik türleri için otomatik olarak tetiklenen sınıflar sağlar.
Belgeler bize şu anda çıktı vereceği türlerin Kuruluş, Web Sitesi, Web Sayfası, Breadcrumb, Site arama (SearchAction), Kişi, Ürün, Teklif, Toplu Teklif (Toplu Teklif), Makale, Nasıl Yapılır (Nasıl Yapılır), Soru, İnceleme, olduğunu söyler. Yorum, Resim (ImageObject), Video (videoObject), Yerel işletme (localBusiness) ve Adres (PostaAddress). Ve WooCommerce kullanıyormuşsunuz gibi daha spesifik kullanımlar için ekleyebileceğiniz birkaç uzantı var.
Bunların hepsi harika, ancak Kişi türünün çıktısına baktığınızda, yalnızca en temel temel verilerin orada olduğunu görebilirsiniz:
(not: Eklenti tarafından oluşturulan @id'yi kısalttım)
Kişi ve Kuruluş için Schema.org işaretlemesi ve sitenizin “EAT” ını geliştirmek için neden mükemmel olduğu hakkındaki önceki makalemi okuduysanız, bu türler için bir dizi özelliği nasıl kullanabileceğinizi okuyacaksınız, bunlardan bazıları olacaktır. sizi daha kesin olarak tanımlayın ve uzmanlığınızı ve yetkinizi gösteren verilere bağlantılar sağlayın.
Örneğin, bir kişinin eğitimi hakkında konuşmak için bir alumniOf mülkü veya uzmanlık alan(lar)ının bazı ayrıntılarını vermek için bir knowAbout mülkü eklemek isteyebilirsiniz. Bir şirket için, resmi şirket kayıt numarasını tanımlayıcı şeklinde vermek isteyebilirsiniz.
Bunu iki basit adımda yapacağız:
- Ultra basit 1 dosyalı bir WordPress eklentisi oluşturun
- Yoast Schema API aracılığıyla çıktısını almak istediğimiz verileri eklemeye başlayın
Neden bir eklenti yapmak?
Kodu yalnızca alt temanızın function.php dosyasına yerleştirmek mümkün olsa da, basit bir eklentiye koymak önerilen yoldur, çünkü kodla ilgili herhangi bir sorun varsa özel eklentinizi devre dışı bırakabilirsiniz. ve site varsayılan olarak Yoast SEO eklentisi tarafından çekirdek Şema çıktısını geri alacaktır. Ayrıca, onu alt temaya koyarsanız ve dosyalar hiç değiştirilirse, derlemek için saatler harcadığınız tüm değerli Schema verilerini kaybedebilirsiniz!
14 günlük ücretsiz denemenizi başlatın
Ultra temel bir WordPress eklentisi nasıl oluşturulur
Bu daha basit olamazdı!
İşlevsel bir eklenti yapmak için yeni bir PHP dosyası oluşturmanız yeterlidir – buna schema-extender.php adını verdim – ve onu aynı ada sahip yeni bir klasöre kaydetmeniz gerekir, bunun gibi:
O zaman schema-extender.php dosyasının en üstüne şu şekilde bazı bilgiler koymanız gerekir:
<?php
/**
* Eklenti Adı: Yoast Schema Extender Simple Version 2
* Eklenti URI'si: https://hugoscott.com/
* Açıklama: Yoast Schema.org verilerini genişletmek için çok temel bir eklenti.
* Sürüm: 1.0
* Yazar: Hugo Scott
* Yazar URI'si: https://hugoscott.com/
**/
Bunu kaydederseniz ve klasörü ve dosyayı wordpress sitenizin /wp-content/plugins/ dizinine yüklerseniz, bunun gibi eklentiler listesinde görüntülendiğini göreceksiniz:
Eklentiyi etkinleştirebilirsiniz, ancak henüz herhangi bir işlev eklemediğimiz için henüz hiçbir şey yapmayacaktır – bu bir sonraki adımdır!
Girdiğim ilk kod satırı gerekli değil, ancak şema verilerini varsayılan küçültülmüş çıktıdan daha okunabilir bir biçimde gösterecek ve bu satırı daha sonra istediğiniz zaman kaldırabilirsiniz:
add_filter('yoast_seo_development_mode', '__return_true');
Şimdi Yoast işlemine example_change_person (sonradan yazacağız) özel bir işlev ekleyecek bir WordPress filtresi ekleyeceğiz:
add_filter('wpseo_schema_person', 'example_change_person');
Ve sonra, bitirmek için, filtre tarafından çağrılan ve veri parçalarını ekleyecek olan çok basit bir örnek_değişim_kişi() işlevini yazacağız:
function example_change_person( $veri ) {
// veri
$veri döndür;
}
Bunu kaydeder ve dosyayı sunucuya yüklerseniz, henüz $data dizisine herhangi bir veri eklemediğimiz için Schema çıktısında herhangi bir fark görmezsiniz. "Dizi" terimine aşina olmayanlar için bu, yalnızca bir "değer" ve bir ad ("anahtar") ile eşleştirilmiş yapılandırılmış bir veri bitleri kümesini içeren bir tür "kutu" anlamına gelir.
Ve bu tam olarak schema.org işaretlemesinin çalıştığı şekildedir. Bir ad ve bir değer içeren çiftlerden oluşur, örneğin şema çıktısında WebSitesi için url verileri:
"url": "https://hugoscott.com/",
Burada ad (veya "anahtar") "url" ve değer "https://hugoscott.com/" dur.
$data dizisindeki her anahtar özellik adı için kullanılır, bu nedenle doğru yazdığınızdan emin olun.
Yukarıdaki verileri $data dizisine eklemek isteseydik, satırı aşağıdaki gibi fonksiyona eklerdik.
$veri['url'] = “https://hugoscott.com/”;
Ancak, Person parçası için bir knowAbout özelliği eklemek istedik, onun yerine şunu ekleyelim:
$data['knowsAbout'] = “https://en.wikipedia.org/wiki/Balti_(food)”;
Dosyayı kaydedin, sunucuya yükleyin, sayfayı yeniden yükleyin ve kaynak html'ye bakın (veya Google Structured Data Testing Tool'da kontrol edin) ve şunu göreceksiniz:
Peki ya bu! Biraz veri ekledik ve gerçekten çok zor değildi. Bu harika, ancak yalnızca basit bir metin dizesi değil, bir alt blok olan alumniOf'u eklemek istiyorsak ne yaparız?
Yoast eklentisinin $data dizisiyle ilgilenme şeklinin harika yanı, bir metin dizisi yerine bir alt dizi ekleyebiliyor olmamız ve bunun bir Schema alt bloğu olarak çıkmasıdır!
Bunu yapmak istediğimizi düşünün:
Bu verileri aşağıdaki gibi bir alt dizi olarak ekleyebilirsiniz:
Söz konusu Kişinin birkaç diploması varsa ve birkaç AlumniOf alt bloğu istiyorsanız, bunları şu şekilde eklemeniz yeterlidir:
Ve şu şekilde gösterilecektir:
Bundan daha basit olamazdı!
son bir söz
Bu makaleyi okuduğunuz için teşekkürler. Yoast SEO API ile mümkün olanın yalnızca yüzeyini sıyırdı.
Verdiğim örnekler Kişi ve Kuruluş için bağımsız veri bitleri olarak harika ama daha ileri götürmek isterseniz – örneğin şablon sayfaları ile – eklentinize formlar ekleyebilir ve verileri özel bir veritabanı tablosuna kaydedebilir ve ardından derleyebilirsiniz. Tema şablon dosyanızdaki şemayı ve sayfanızın alt bilgisinde çıktısını alın. Tüm bunlar mümkündür ve altbilgideki herhangi bir Schema çıktısını üstbilgideki Schema çıktısına bağlamak için @id özelliğini kullanabilirsiniz!
Yoast SEO eklentisi API'si yakın gelecekte önemli ölçüde gelişecektir, bu nedenle en son gelişmeleri takip ettiğinizden emin olun.
Daha fazla bilgi için veya bunu sizin için yapmam için beni işe almak istiyorsanız siteme gelin.
teşekkürler
Son bir söz olarak, sorularıma zaman ayırdığı için Yoast'tan Jono Alderson'a teşekkür etmek istiyorum!