
Cara Menambahkan Markup Schema Postingan Jekyll
Membuat markup Schema.org untuk blog Jekyll Anda sangat penting untuk SEO, karena membantu mesin pencari memahami konten Anda dengan lebih baik dan dapat menghasilkan Rich Snippets di hasil pencarian. Ada beberapa jenis markup Schema yang relevan untuk blog, yang paling umum adalah BlogPosting
dan Article
.
Berikut adalah cara membuat markup Schema untuk blog Jekyll Anda, menggunakan pendekatan yang paling umum dan fleksibel:
Cara Membuat Markup Schema Blog Jekyll
Kita akan menggunakan Liquid (bahasa template Jekyll) untuk menyuntikkan data Schema JSON-LD langsung ke dalam setiap postingan blog. JSON-LD (JavaScript Object Notation for Linked Data) adalah format yang direkomendasikan Google.
Langkah 1: Buat Include untuk Schema
Buat file baru di direktori _includes
Anda, misalnya: _includes/schema_blog_posting.html
(atau .liquid
).
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "{{ page.url | absolute_url }}"
},
"headline": "{{ page.title | escape }}",
"description": "{{ page.description | default: site.description | escape }}",
"image": [
{% if page.image %}
"{{ page.image | absolute_url }}"
{% else %}
"{{ site.url }}/assets/img/default-thumbnail.jpg" {# Ganti dengan path gambar default Anda #}
{% endif %}
],
"datePublished": "{{ page.date | date_to_xmlschema }}",
"dateModified": "{% if page.last_modified_at %}{{ page.last_modified_at | date_to_xmlschema }}{% else %}{{ page.date | date_to_xmlschema }}{% endif %}",
"author": {
"@type": "Person",
"name": "{{ site.author.name | default: site.title | escape }}" {# Asumsikan site.author.name atau site.title #}
},
"publisher": {
"@type": "Organization",
"name": "{{ site.title | escape }}",
"logo": {
"@type": "ImageObject",
"url": "{{ site.url }}/assets/img/logo.png" {# Ganti dengan path logo organisasi/situs Anda #}
}
}
{% if page.tags %}
,"keywords": "{{ page.tags | join: ', ' }}"
{% endif %}
}
</script>
Penjelasan Kode di atas:
@context
dan@type
: Mendefinisikan jenis data Schema (dalam hal iniBlogPosting
).mainEntityOfPage
: Menunjuk ke URL halaman postingan.headline
: Judul postingan (mengambil daripage.title
).description
: Deskripsi postingan (mengambil daripage.description
atausite.description
jika tidak ada).- Penting: Pastikan Anda memiliki
description
di front matter postingan Anda (misalnyadescription: "Ringkasan singkat postingan ini."
). Jika tidak, Jekyll akan menggunakansite.description
atau menghasilkan nilai kosong. image
: URL gambar yang relevan dengan postingan.- Penting: Sebaiknya tambahkan
image
di front matter postingan Anda (misalnyaimage: "/assets/img/nama-gambar.jpg"
). Jika tidak ada, ia akan menggunakan gambar default yang Anda tentukan. Pastikan gambar ini memiliki rasio aspek yang baik (misalnya 16x9, 4x3) dan berukuran setidaknya 1200px lebar.
- Penting: Sebaiknya tambahkan
- Penting: Pastikan Anda memiliki
datePublished
: Tanggal publikasi postingan (daripage.date
).dateModified
: Tanggal terakhir diubah postingan (daripage.last_modified_at
jika ada, ataupage.date
jika tidak). Untuklast_modified_at
, Anda bisa mengaturnya secara manual di front matter atau menggunakan plugin sepertijekyll-last-modified-at
.author
: Nama penulis. Mengambil darisite.author.name
(Anda perlu mendefinisikan ini di_config.yml
) atausite.title
.-
_config.yml contoh untuk author:
author: name: Nama Penulis Anda twitter: "@username_twitter" # Opsional url: "https://example.com/about" # Opsional
-
publisher
: Informasi tentang penerbit (situs web Anda). Mengambil darisite.title
dan path ke logo situs Anda.- Penting: Ganti
/assets/img/logo.png
dengan path logo situs Anda yang sebenarnya.
- Penting: Ganti
keywords
: Jika Anda menggunakantags
di front matter postingan, ini akan mengisi propertikeywords
Schema.
Langkah 2: Panggil Include di Layout Postingan
Buka layout postingan Anda (biasanya _layouts/post.html
atau yang serupa) dan tambahkan baris berikut di bagian <head>
:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{{ page.title }}</title>
{# Meta tags lainnya #}
{% if page.layout == "post" %} {# Atau layout spesifik postingan blog Anda #}
{% include schema_blog_posting.html %}
{% endif %}
</head>
<body>
{# Konten postingan Anda #}
</body>
</html>
Penjelasan:
{% if page.layout == "post" %}
: Ini memastikan bahwa markup Schema hanya dimasukkan untuk halaman yang menggunakan layoutpost
(atau layout blog Anda yang relevan). Ini mencegah markup muncul di halaman statis atau halaman lain yang tidak cocok.
Langkah 3: Konfigurasi _config.yml
dan Front Matter
-
_config.yml
:Pastikan Anda memiliki konfigurasi dasar di
_config.yml
untuk situs dan penulis:title: Nama Situs Blog Anda description: Deskripsi Singkat Blog Anda url: https://www.namadomainanda.com # Ganti dengan URL situs Anda author: name: Nama Penulis Default # Tambahkan properti penulis lain jika diperlukan
Penting: url harus diatur dengan benar dan mencakup
http://
atauhttps://
. -
Front Matter Postingan:
Untuk setiap postingan blog Anda, pastikan Anda memiliki
description
danimage
di front matter:--- layout: post title: Judul Postingan Luar Biasa Anda date: YYYY-MM-DD HH:MM:SS +ZZZZ description: Ini adalah deskripsi singkat dan menarik dari postingan blog Anda. image: /assets/img/thumbnail-postingan-anda.jpg # Path relatif dari root situs tags: [jekyll, schema, seo] # Opsional, untuk properti keywords # last_modified_at: YYYY-MM-DD HH:MM:SS +ZZZZ # Opsional, jika Anda ingin mengatur secara manual --- Konten postingan Anda di sini...
Langkah 4: Uji Markup Schema Anda
Setelah menerapkan perubahan, jalankan Jekyll secara lokal (bundle exec jekyll serve
) dan kunjungi salah satu postingan blog Anda.
Kemudian, gunakan alat Google untuk menguji markup Anda:
-
Google Rich Result Test: https://search.google.com/test/rich-results Tempelkan URL postingan blog Anda di sini. Alat ini akan menunjukkan apakah markup Schema Anda valid dan apakah Google dapat menggunakannya untuk Rich Snippets.
-
Schema Markup Validator: ttps://validator.schema.org/ Alat ini akan memberikan detail lebih lanjut tentang struktur Schema Anda dan potensi error.
Pertimbangan Lanjut dan Tipe Schema Lain
Article
vsBlogPosting
:BlogPosting
adalah subtype dariArticle
. Untuk postingan blog biasa,BlogPosting
sudah cukup.- Jika konten Anda lebih mirip artikel berita atau laporan penelitian, Anda bisa mempertimbangkan
Article
atauNewsArticle
. Untuk mengubahnya, cukup ganti@type
di file_includes/schema_blog_posting.html
.
-
Beberapa Penulis: Jika blog Anda memiliki banyak penulis, Anda mungkin perlu memodifikasi bagian
author
di markup Schema. Anda bisa menambahkanauthor
di front matter setiap postingan atau membuat data koleksi untuk penulis. -
Schema untuk Halaman Depan/Home Page: Anda juga dapat menambahkan markup Schema untuk halaman depan blog Anda, biasanya menggunakan
@type: Blog
atau@type: WebSite
dan@type: Organization
untuk informasi perusahaan Anda. -
Schema untuk Halaman Author: Jika Anda memiliki halaman profil penulis, Anda bisa menambahkan markup
@type: Person
di halaman tersebut. -
FAQPage Schema: Jika postingan blog Anda memiliki bagian FAQ, Anda bisa menambahkan
FAQPage
Schema untuk Rich Snippets FAQ. - Performance: Markup JSON-LD sangat ringan dan tidak akan memengaruhi kinerja situs Anda secara signifikan.
Dengan mengikuti langkah-langkah ini, Anda dapat menambahkan markup Schema.org yang efektif ke blog Jekyll Anda, membantu meningkatkan visibilitas di mesin pencari dan potensi Rich Snippets.