Ilustrasi Yoast SEO API
Ilustrasi Yoast SEO lewat API. Foto: Pexels

Cara Mengisi Meta Title dan Meta Description Yoast SEO lewat API WordPress

Oleh Tim JasaSEO • 10 menit baca

Kalau kamu seorang blogger atau developer WordPress, pasti sudah tidak asing lagi dengan plugin Yoast SEO. Plugin ini sangat membantu agar artikel atau halaman website kamu lebih mudah ditemukan di Google. Salah satu fitur pentingnya adalah meta title dan meta description, yang menentukan judul dan deskripsi yang muncul di hasil pencarian.

Tapi, bagaimana kalau kamu ingin membuat atau mengupdate post lewat API WordPress, bukan lewat editor biasa? Ternyata, banyak orang mengalami kesulitan: meskipun sudah mengirim data lewat API, meta description Yoast tetap kosong.

Kenapa Meta Data Yoast SEO Penting?

Masalah Umum Saat Menggunakan API WordPress

Banyak orang mencoba mengisi meta data Yoast via REST API, tapi hasilnya tetap kosong karena API Yoast bawaan read-only. WordPress tidak otomatis mengenali field yoast_meta atau meta sebagai meta data Yoast. Dibutuhkan trik khusus agar API bisa menulis meta title dan description.

Cara Mudah Mengisi Yoast SEO Meta Data lewat API

1. Menggunakan Plugin WP-API-Yoast-Meta

Plugin ini menambahkan dukungan menulis meta Yoast lewat API. Contoh:

const response = await wp.posts().create({
    title: "Judul Artikel",
    content: "Isi artikel",
    status: "publish",
    yoast_meta: {
        yoast_wpseo_title: "Judul SEO",
        yoast_wpseo_metadesc: "Deskripsi SEO artikel",
    },
});
console.log(response.id);

Kelebihan: mudah, mendukung semua post, pages, custom post type.
Kekurangan: perlu plugin tambahan, tergantung versi WordPress.

2. Menambahkan Filter di functions.php

Tambahkan kode berikut di functions.php tema atau plugin snippet:

add_action('rest_api_init', function() {
    register_post_meta('post', '_yoast_wpseo_title', [
        'show_in_rest' => true,
        'single' => true,
        'type' => 'string',
        'auth_callback' => function() { return current_user_can('edit_posts'); }
    ]);

    register_post_meta('post', '_yoast_wpseo_metadesc', [
        'show_in_rest' => true,
        'single' => true,
        'type' => 'string',
        'auth_callback' => function() { return current_user_can('edit_posts'); }
    ]);
});

Setelah itu, API bisa mengirim data seperti:

{
  "meta": {
    "_yoast_wpseo_title": "Judul SEO Artikel",
    "_yoast_wpseo_metadesc": "Deskripsi SEO artikel"
  }
}

Kelebihan: tanpa plugin, fleksibel sesuai kebutuhan.

3. Re-index Post Setelah API Insert/Update

add_action('rest_after_insert_post', 'force_yoast_reindex_single_post', 10, 3);

function force_yoast_reindex_single_post($post, $request, $creating) {
    if (!class_exists('\Yoast\WP\SEO\Integrations\Watchers\Indexable_Post_Watcher')) return;
    try {
        $indexable_repository = YoastSEO()->classes->get(
            \Yoast\WP\SEO\Repositories\Indexable_Repository::class
        );
        $indexable = $indexable_repository->find_by_id_and_type($post->ID, 'post');
        if (!$indexable) return;

        $indexable_builder = YoastSEO()->classes->get(
            \Yoast\WP\SEO\Builders\Indexable_Builder::class
        );
        $indexable_builder->build_for_id_and_type($post->ID, 'post', $indexable);
    } catch (Exception $e) {
        error_log('Yoast reindex error: ' . $e->getMessage());
    }
}

Dengan ini, meta Yoast akan langsung terbaca setelah membuat atau update post via API.

Pertanyaan yang Sering Diajukan (FAQ)