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?
- Meta title → Judul yang muncul di Google. Judul ini harus menarik supaya orang mau klik artikel kamu.
- Meta description → Ringkasan singkat artikel. Membantu pembaca memahami isi halaman sebelum membuka website.
- SEO friendly → Google menggunakan meta data ini untuk menilai relevansi halaman kamu.
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.