Kategoriler
WordPress

Yoast SEO eklentisi Schema – API örnekler

Yoast SEO WordPress eklentisinin Schema – API ile çeşitli denemeler, örnek kodlar.

Yoast SEO eklentisi şu an Dünyada tüm İnternetin en popüler ve çok kullanılan WordPress eklentisi, en yakın rakibine 6 kat fark aymış durumda(2). Hem çok akıllıca kodlanmış(oldukça detaylı incelediğim için biliyorum), hafif, performanslı ve hem de SEO noktasında WordPress’in tüm ihtiyaçlarını karşılıyor.

Burada Yoast SEO eklentisinin Schema – API’nı(1) kullanıp birkaç deneme yaptım ve çok işime yaradı, bunları örnek olarak paylaşıyorum.

Öncelikle çıktının okunaklı ve düzgün görünmesi için aşağıdakini kullanın, çalışmanız bittikten sonra bunu kaldırabilirsiniz:

// functions.php
add_filter('yoast_seo_development_mode', '__return_true');

Ayrıca şunu da kullanabilirsiniz: https://wordpress.org/plugins/yoast-test-helper/

Yoast SEO’s schema komple iptal etmek için:

// functions.php
add_filter('wpseo_json_ld_output', '__return_false');

Komple deaktif etme fonksiyonu çok işime yaradı çünkü bir sitede bazı sayfalarda Yoast’ın çalışmasını istemiyordum, elbette schema ve diğer metaları da iptal etmek mümkün diğer yazılarımda anlamış olmalıyım arayınca bulunur.

Schema içerisinde bir tipi(piece) kaldırmak isterseniz aşağıdaki örnekte Breadcrumb kaldırılır, örnekteki gibi diğerlerini de kaldırabilirsiniz.

// functions.php
add_filter('wpseo_schema_graph_pieces', 
add_filter('wpseo_schema_graph_pieces', function($pieces,$context){
return \array_filter($pieces, function($piece){
  return ! $piece instanceof \Yoast\WP\SEO\Generators\Schema\Breadcrumb;
});
},11,2);

/*
      $schema_pieces = [
        new Schema\Organization(),
        new Schema\Person(),
        new Schema\Website(),
        new Schema\Main_Image(),
        new Schema\WebPage(),
        new Schema\Breadcrumb(),
        new Schema\Article(),
        new Schema\Author(),
        new Schema\FAQ(),
        new Schema\HowTo(),
      ];
*/
//veya
add_filter('wpseo_schema_needs_person', '__return_false');
add_filter('wpseo_schema_needs_website', '__return_false');
add_filter('wpseo_schema_needs_mainimage', '__return_false');
add_filter('wpseo_schema_needs_webpage', '__return_false');
add_filter('wpseo_schema_needs_article', '__return_false');
add_filter('wpseo_schema_needs_author', '__return_false');
add_filter('wpseo_schema_needs_faq', '__return_false');
add_filter('wpseo_schema_needs_howto', '__return_false');

Yeni farklı bir şema tipi eklemek isterseniz:

// functions.php
add_filter('wpseo_schema_graph_pieces', 'add_custom_schema_piece',11,2);
function add_custom_schema_piece($pieces, $context){
   $this->context = $context;
   $pieces[] = new MyCustomSchemaPiece($context);
   return $pieces;
}

Ve karma ama incelediğinzide çözebileceğini schema içerisindeki verileri değiştirebileceğiniz örnek diğer kodlarım:

// functions.php
add_filter('wpseo_schema_organization', function ($data)
{
    $data['@id'] = 'https://wolkanca.com/#organization';
    $data['url'] = 'https://wolkanca.com/';
    $data['logo']['@id'] = 'https://wolkanca.com/#logo';
    $data['image']['@id'] = 'https://wolkanca.com/#logo';
    return $data;
});
add_filter('wpseo_schema_website', function ($data)
{
    $data['@id'] = 'https://wolkanca.com/#website';
    $data['url'] = 'https://wolkanca.com/';
    $data['publisher']['@id'] = 'https://wolkanca.com/#organization';
    $data['potentialAction'][0]['target'] = 'https://wolkanca.com/?s={search_term_string}';
    return $data;
});
add_filter('wpseo_schema_webpage', function ($data)
{
    $data['name'] = str_replace(" – WOLKANCA", "", $data['name']);
    $data['isPartOf']['@id'] = 'https://wolkanca.com/#website';
    return $data;
});
add_filter('wpseo_schema_breadcrumblist', function ($data)
{
    $data['itemListElement'][0]['item']['@id'] = 'https://wolkanca.com/';
    $data['itemListElement'][0]['item']['url'] = 'https://wolkanca.com/';
    $data['itemListElement'][0]['item']['name'] = 'WOLKANCA';
    return $data;
});
add_filter('wpseo_schema_article', function ($data)
{
    $data['author']['@id'] = str_replace("https://wolkanca.com/eski/", "https://wolkanca.com/", $data['author']['@id']);
    $data['publisher']['@id'] = 'https://wolkanca.com/#organization';
    return $data;
});
add_filter('wpseo_schema_person', function ($data)
{
    $data['@id'] = str_replace("https://wolkanca.com/eski/", "https://wolkanca.com/", $data['author']['@id']);
    $data['image']['@id'] = 'https://wolkanca.com/#personlogo';
    $data['image']['url'] = 'https://wolkanca.com/wp-content/uploads/2020/08/volkanyilmaz-profil.jpg';
    $data['image']['contentUrl'] = 'https://wolkanca.com/wp-content/uploads/2020/08/volkanyilmaz-profil.jpg';
    $data['url'] = 'https://wolkanca.com/hakkimda/';
    return $data;
});

Yukarıdaki kod parçacığını ben /eski altında çalışan eski blogum için kullandım, orada site_url() ve home_url() “https://wolkanca.com/eski” şeklinde olduğu için, Yoast’ın bu verileri options’dan aldığı için, ve aslında şema içerisinde “https://wolkanca.com” olarak görünmesi gerektiğini düşündüğüm için 🙂 çok uzun cümle oldu. Evet bu yüzden bu şekilde bir çalışma yaptım ve gayet başarılı bir şekilde çalıştı.

Kolay gelsin, Twitter’dan takip etmeyi unutmayın!

Kaynaklar:

  1. Schema – API documentation: developer.yoast.com/features/schema/api/
  2. WordPress Plugins Usage Distribution on the Entire Internet: trends.builtwith.com/widgets/wordpress-plugins/traffic/Entire-Internet

wolkanca.com’da Yoast SEO eklentisi Schema – API örnekler veya diğer konular hakkında herhangi bir sorunuz varsa, sosyal medya butonları ile yorum ya da mesaj göndermekten çekinmeyin, Yoast SEO eklentisi Schema – API örnekler için ya da değil DM kapısı her daim açık. Yazıyı beğendiyseniz paylaşın, daha fazla ilgili gönderi için hemen aşağıdaki menülere göz gezdirebilirsiniz, okuduğunuz için teşekkürler, saygılar sevgiler.

WOLKANCA

Volkan Yılmaz

Digital Marketing & WordPress & SEO - wolkanca mahallesi gmail sokak nokta com.