Data terstruktur info kursus (Course
dan CourseInstance
)
![Ilustrasi tampilan info kursus di Google Penelusuran](https://developers-dot-devsite-v2-prod.appspot.com/static/search/docs/images/course-info-rich-result.png?authuser=6&hl=id)
Anda dapat membantu pengguna menemukan konten kursus Anda dengan memberi tahu Google tentang kursus Anda menggunakan data terstruktur info kursus. Saat Anda memberikan informasi yang lebih detail tentang kursus, seperti rating pengulas, harga, dan detail kursus, Google dapat lebih memahami kursus Anda dan menyajikan pengalaman yang kaya kepada pengguna melalui hasil multimedia info kursus.
Ada dua fitur hasil multimedia kursus yang menggunakan jenis schema.org Course
yang sama.
Jika situs Anda menyediakan informasi tentang kursus, Anda dapat memenuhi syarat untuk menggunakan kedua fitur tersebut dengan
mengikuti kedua panduan penerapannya:
- Daftar kursus: Hasil multimedia yang mencantumkan kursus dari situs yang sama.
- Info kursus: Carousel yang menampilkan informasi kursus secara mendetail dari berbagai situs.
Ketersediaan fitur
Hasil multimedia info kursus tersedia dalam bahasa Inggris di semua wilayah tempat Google Penelusuran tersedia. Kami berharap dapat mendukung lebih banyak kursus dalam bahasa lainnya di masa mendatang.
Cara menambahkan data terstruktur
Data terstruktur adalah format terstandarisasi untuk memberikan informasi tentang suatu halaman dan mengelompokkan konten halaman tersebut. Jika Anda baru mengenal data terstruktur, Anda dapat mempelajari lebih lanjut cara kerja data terstruktur.
Berikut adalah ringkasan tentang cara membuat, menguji, dan merilis data terstruktur.
- Tambahkan properti wajib. Berdasarkan format yang Anda gunakan, pelajari tempat menyisipkan data terstruktur di halaman.
- Ikuti pedoman.
- Validasi kode Anda menggunakan Pengujian Hasil Kaya dan perbaiki setiap error kritis. Pertimbangkan juga untuk memperbaiki masalah non-kritis yang mungkin ditandai di alat tersebut, karena tindakan ini dapat membantu meningkatkan kualitas data terstruktur Anda (tetapi hal ini tidak diperlukan agar memenuhi syarat untuk hasil kaya).
- Deploy beberapa halaman yang menyertakan data terstruktur dan gunakan Alat Inspeksi URL untuk menguji cara Google melihat halaman tersebut. Pastikan halaman Anda
dapat diakses oleh Google dan tidak diblokir oleh file robots.txt, tag
noindex
, atau persyaratan login. Jika halaman tidak bermasalah, Anda dapat meminta Google meng-crawl ulang URL tersebut. - Agar Google tetap mengetahui setiap perubahan pada masa mendatang, sebaiknya kirimkan peta situs. Anda dapat mengotomatiskan proses ini dengan Search Console Sitemap API.
Contoh
Berikut contoh satu halaman info kursus.
<html> <head> <title>Introduction to Computer Science and Programming</title> <script type="application/ld+json"> { "@context": "https://schema.org/", "@id": "https://www.example.com/advancedCpp", "@type": "Course", "name": "Learn Advanced C++ Topics", "description": "Improve your C++ skills by learning advanced topics.", "publisher": { "@type": "Organization", "name": "CourseWebsite", "url": "www.examplecoursewebsite.com" }, "provider": { "@type": "Organization", "name": "Example University", "url": "www.example.com" }, "image": [ "https://example.com/photos/1x1/photo.jpg", "https://example.com/photos/4x3/photo.jpg", "https://example.com/photos/16x9/photo.jpg" ], "aggregateRating": { "@type": "AggregateRating", "ratingValue": 4, "ratingCount": 1234, "reviewCount": 450 }, "offers": [{ "@type": "Offer", "category": "Paid", "priceCurrency": "EUR", "price": 10.99 }], "totalHistoricalEnrollment": 12345, "datePublished": "2024-03-21", "educationalLevel": "Advanced", "about": ["C++ Coding", "Backend Engineering"], "teaches": ["Practice and apply systems thinking to plan for change", "Understand how memory allocation works."], "financialAidEligible": "Scholarship Available", "inLanguage": "en", "availableLanguage": ["fr", "es"], "syllabusSections": [ { "@type": "Syllabus", "name": "Memory Allocation", "description": "Learn how memory is allocated when creating C++ variables.", "timeRequired": "PT6H" }, { "@type": "Syllabus", "name": "C++ Pointers", "description": "Learn what a C++ pointer is and when they are used.", "timeRequired": "PT11H" } ], "review": [ { "@type": "Review", "author": { "@type": "Person", "name": "Lou S." }, "datePublished": "2024-08-31", "reviewRating": { "@type": "Rating", "bestRating": 10, "ratingValue": 6 } }], "coursePrerequisites": [ "Basic understanding of C++ up to arrays and functions.", "https://www.example.com/beginnerCpp" ], "educationalCredentialAwarded": [{ "@type": "EducationalOccupationalCredential", "name": "CourseProvider Certificate", "url": "www.example.com", "credentialCategory": "Certificate", // offers only needed if the credential costs extra money. "offers": [{ "@type": "Offer", "category": "Paid", "price": 5, "priceCurrency": "USD" }] }], "video": { "@type": "VideoObject", "name": "Video name", "description": "A video previewing this course.", "uploadDate": "2024-03-28T08:00:00+08:00", "contentUrl": "www.example.come/mp4", "thumbnailUrl": "www.example.com/thumbnailurl.jpg" }, "hasCourseInstance": [ { // Blended, instructor-led course meeting 3 hours per day in July. "@type": "CourseInstance", "courseMode": "Blended", "location": "Example University", "courseSchedule": { "@type": "Schedule", "duration": "PT3H", "repeatFrequency": "Daily", "repeatCount": 31, "startDate": "2024-07-01", "endDate": "2024-07-31" }, "instructor": [{ "@type": "Person", "name": "Ira D.", "description": "Professor at X-University", "image": "http://example.com/person.jpg" }] }, { // Online self-paced course that takes 2 days to complete. "@type": "CourseInstance", "courseMode": "Online", "courseWorkload": "P2D" }], // Only required for course programs that link to child courses. "hasPart": [{ "@type": "Course", "name": "C++ Algorithms", "url": "https://www.example.com/cpp-algorithms", "description": "Learn how to code base algorithms in c++.", "provider": { "@type": "Organization", "name": "Example University", "url": "www.example.com" } }, { "@type": "Course", "name": "C++ Data Structures", "url": "https://www.example.com/cpp-data-structures", "description": "Learn about core c++ data structures.", "provider": { "@type": "Organization", "name": "Example University", "url": "www.example.com" } }] } </script> </head> <body> </body> </html>
Panduan
Anda harus mengikuti panduan berikut agar kursus Anda memenuhi syarat untuk ditampilkan sebagai hasil multimedia info kursus di Google Penelusuran.
Pedoman konten
Hanya konten edukasi yang sesuai dengan definisi kursus berikut yang akan memenuhi syarat untuk ditampilkan sebagai hasil multimedia Info kursus: serangkaian atau suatu unit kurikulum yang berisi kuliah, pelajaran, atau modul tentang mata pelajaran atau topik tertentu.
Markup Course
harus berada di halaman web yang menawarkan satu
kursus atau program kursus lengkap. Contoh
berikut tidak memenuhi syarat untuk hasil multimedia info kursus:
- Halaman ringkasan gelar akademik
- Halaman ujian mandiri
- Acara yang sifatnya umum, seperti "Hari Astronomi"
- Video berdurasi 2 menit tentang "Cara Membuat Telur Gulung"
Definisi jenis data terstruktur
Anda harus menyertakan properti wajib Course
dan CourseInstance
agar konten Anda memenuhi syarat untuk ditampilkan sebagai hasil multimedia di Google Penelusuran. Anda
dapat menyertakan properti yang direkomendasikan untuk menambahkan informasi lain tentang konten, yang akan
meningkatkan kualitas pengalaman pengguna.
Course
Kursus adalah unit kurikulum individual yang dapat ditempuh satu per satu secara terpisah, atau sebagai bagian dari suatu program.
Definisi lengkap Course
tersedia di
schema.org/Course.
Properti wajib | |
---|---|
name |
Judul lengkap kursus. "name": "Intro to Statistics" |
description |
Deskripsi kursus.
"description": "This course teaches the basics of statistical thinking." |
provider |
Informasi tentang organisasi yang membuat konten untuk kursus. "provider": { "@type": "Organization", "name": "Example University", "url": "www.exampleuniversity.com" } |
provider.name |
Text
Nama penyedia kursus. |
offers |
Informasi tentang harga total untuk menyelesaikan kursus, termasuk biaya layanan. Jangan cantumkan harga yang hanya berlaku untuk pengguna tertentu (misalnya, diskon 20% untuk pengguna baru). Jangan sertakan biaya sertifikat tambahan di kolom ini. Jika ada biaya tambahan untuk mendapatkan
sertifikat, tambahkan informasinya ke properti "offers": [{ "@type": "Offer", "category": "Paid", "priceCurrency": "EUR", "price": 10.99 }] |
offers.category |
Text
Kategori harga kursus. Gunakan salah satu nilai berikut:
|
hasCourseInstance |
Setiap kursus harus memiliki setidaknya satu instance kursus dengan informasi yang menjelaskan
penawaran kursus. Lihat properti yang wajib dan direkomendasikan di bagian
"hasCourseInstance": [{ // Onsite, instructor-led class meeting weekly in August 2023 "@type": "CourseInstance", "courseMode": "Onsite", "location": "Example University", "courseSchedule": { "@type": "Schedule", "duration": "PT5H", "repeatCount": 4, "repeatFrequency": "Weekly", "startDate": "2023-08-01", "endDate": "2023-8-31" }, "instructor": [{ "@type": "Person", "name": "Kai S.", "description": "Professor at X-University", "image": "http://examplePerson.jpg" }] }] |
Properti yang direkomendasikan | |
---|---|
about |
Menjelaskan keterampilan yang akan dipelajari pengguna selama mengikuti kursus ini, jika ada. "about": ["Quantitative Analysis", "Critical Thinking"] |
aggregateRating |
Informasi tentang rating kursus rata-rata berdasarkan rating yang diberikan oleh pengguna yang telah
mengikuti kursus, jika ada. Ikuti Panduan cuplikan ulasan
dan daftar properti "aggregateRating": { "@type": "AggregateRating", "ratingValue": 4.8, "ratingCount": 255, "reviewCount": 189 } |
availableLanguage |
Subtitel, teks tertutup, atau bahasa lain yang ditawarkan dalam kursus ini, jika ada. Gunakan kode dua huruf dari daftar kode ISO 639-1 alpha-2. "availableLanguage": ["fr", "es", "de"] |
coursePrerequisites |
Pengetahuan prasyarat yang diperlukan untuk kursus, jika ada. Hal ini dapat ditunjukkan dengan menjelaskannya langsung di situs atau menyertakan link ke kursus lain (atau keduanya). "coursePrerequisites": ["Understanding of Algebra concepts like variables and functions", "https://www.coursewebsite.abc/algebra"] |
datePublished |
Tanggal kursus pertama kali dipublikasikan, jika ada. Gunakan format tanggal 8601 (YYYY-MM-DD). "datePublished": "2019-03-21" |
educationalCredentialAwarded |
Informasi tentang sertifikat atau kredensial yang dapat diterima pengguna dengan menyelesaikan kursus, jika ada. Jika penghargaan tersebut memerlukan biaya tambahan, cantumkan harganya. "educationalCredentialAwarded": [{ "@type": "EducationalOccupationalCredential", "name": "CourseProvider Certificate", "url": "www.examplecertificate.com", "credentialCategory": "Certificate", "offers": [{ "@type": "Offer", "category": "Paid", "priceCurrency": "USD", "price": 5 }] }] |
educationalCredentialAwarded.credentialCategory |
Text
Jenis penghargaan yang akan diterima pengguna, jika ada. Gunakan salah satu nilai berikut:
|
educationalCredentialAwarded.name |
Text
Nama penghargaan, jika ada. |
educationalCredentialAwarded.offers.category |
Text
Jenis harga untuk penghargaan, jika ada. Gunakan salah satu kategori berikut:
|
educationalCredentialAwarded.offers.price |
Number
Harga numerik penghargaan, jika ada. |
educationalCredentialAwarded.offers.priceCurrency |
Text
Mata uang harga penghargaan, dalam format mata uang ISO 4217 (kode 3 huruf), jika ada. |
educationalCredentialAwarded.url |
URL
Link ke halaman penghargaan, jika ada. |
educationalLevel |
Tingkat pendidikan target untuk kursus, jika ada. Pilih salah satu nilai berikut.
"educationalLevel": "Beginner" |
financialAidEligible |
Beasiswa, paket pembayaran khusus, atau peluang bantuan keuangan lainnya bagi pengguna yang ingin mengikuti kursus, jika ada. "financialAidEligible": "Scholarships available for eligible users." |
image |
URL untuk gambar yang mewakili kursus, jika ada. Gunakan gambar yang relevan dengan kursus, bukan logo atau teks. Pedoman gambar tambahan:
Contoh: "image": [ "https://example.com/photos/1x1/photo.jpg", "https://example.com/photos/4x3/photo.jpg", "https://example.com/photos/16x9/photo.jpg" ] |
inLanguage |
Bahasa utama yang digunakan dalam kursus, jika ada. Gunakan kode dua huruf dari daftar kode ISO 639-1 alpha-2. "inLanguage": "en" |
offers.price |
Number
Harga numerik kursus, jika ada. Jangan sertakan informasi lain dalam kolom ini, seperti simbol mata uang. |
offers.priceCurrency |
Text
Mata uang harga kursus, dalam format mata uang ISO 4217 (kode 3 huruf), jika ada. |
provider.url |
URL
URL yang ditautkan ke halaman beranda penyedia kursus, jika ada. |
publisher |
Informasi tentang organisasi yang memublikasikan dan menampilkan kursus, jika ada. "publisher": { "@type": "Organization", "name": "Course Website", "url": "www.example.com" } |
publisher.name |
Text
Nama penayang kursus, jika ada. |
publisher.url |
URL
URL yang ditautkan ke halaman beranda penayang kursus, jika ada. |
review |
Daftar ulasan pengguna tentang kursus, jika ada. Ikuti panduan cuplikan ulasan untuk informasi selengkapnya. "review": [{ "@type": "Review", "author": { "@type": "Person", "name": "Sasha J." }, "datePublished": "2021-09-22", "reviewRating": { "@type": "Rating", "ratingValue": 4 } }] |
syllabusSections |
Informasi tentang berbagai modul yang digunakan dalam kursus, jika ada. "syllabusSections": [{ "@type": "Syllabus", "name": "Algebra Review", "description": "Review prerequisite Algebra concepts.", "timeRequired": "PT2H30M" }, { "@type": "Syllabus", "name": "Statistics Terms", "description": "Learn the definitions of basic statistics terms.", "timeRequired": "PT5H" }] |
syllabusSections.description |
Text
Deskripsi tentang isi modul, jika ada. |
syllabusSections.name |
Text
Nama modul kursus, jika ada. |
syllabusSections.timeRequired |
Duration
Jika ada, gunakan format durasi 8601.
Misalnya, |
teaches |
Hasil pembelajaran atau pengetahuan spesifik yang akan dipelajari pengguna dengan mengikuti kursus, jika ada. "teaches": ["How to use visualization tools and graphs", "Why stats is important"] |
totalHistoricalEnrollment |
Jumlah total pengguna yang telah mendaftar selama masa aktif kursus, jika ada. "totalHistoricalEnrollment": 80032 |
video |
Cuplikan atau pratinjau video untuk kursus, jika ada. Ikuti panduan "video": { "@type": "VideoObject", "name": "Video name", "description": "A video previewing this course.", "uploadDate": "2022-03-28T08:00:00+08:00", "contentUrl": "www.videourl.mp4", "thumbnailUrl": "www.thumbnailurl.jpg" } |
CourseInstance
Definisi lengkap CourseInstance
tersedia di
schema.org/CourseInstance.
Setiap kursus harus memiliki setidaknya satu CourseInstance
dengan properti wajib yang sudah diisi.
Properti wajib | |
---|---|
courseMode |
Media yang digunakan untuk menyampaikan kursus. Gunakan salah satu nilai berikut:
Jika kelasnya "courseMode": "Online" |
courseSchedule |
Informasi tentang waktu yang diperlukan rata-rata pengguna untuk menyelesaikan kursus, berdasarkan frekuensi pertemuan yang disarankan. Sertakan tanggal mulai dan akhir untuk kursus yang memiliki rentang waktu tetap. Berikut contoh kursus dengan frekuensi pertemuan, yang dapat dimulai kapan saja: // This course takes 6 weeks to complete. "courseSchedule": { "@type": "Schedule", "repeatCount": 6 "repeatFrequency": "Weekly", } Berikut contoh kursus dengan frekuensi pertemuan, yang akan berlangsung selama waktu yang ditentukan: // This course expects 1 hour per day during July 2023 "courseSchedule": { "@type": "Schedule", "duration": "PT1H", "repeatCount": 31 "repeatFrequency": "Daily", "startDate": "2023-07-01", "endDate": "2023-07-31" } |
courseSchedule.repeatCount |
Integer
Nilai numerik durasi kursus, dalam satuan |
courseSchedule.repeatFrequency |
Text
Properti
|
courseWorkload |
Text
Kolom ini menunjukkan total waktu untuk menonton semua video dan menyelesaikan semua tugas serta ujian untuk kursus ini. Gunakan format durasi 8601. "courseWorkload": "PT22H" |
Properti yang direkomendasikan | |
---|---|
courseSchedule.duration |
Duration
Frekuensi pertemuan yang disarankan untuk waktu yang akan diluangkan rata-rata pengguna dalam satuan Jangan tentukan keseluruhan durasi kursus dengan properti ini. Sebagai gantinya, gunakan properti |
courseSchedule.endDate |
Date
Tanggal akhir kursus, dalam format tanggal 8601 (YYYY-MM-DD), jika ada. |
courseSchedule.startDate |
Date
Tanggal mulai kursus, dalam format tanggal 8601 (YYYY-MM-DD), jika ada. |
image |
URL
URL yang ditautkan ke foto instruktur, jika ada. Pedoman gambar tambahan:
Contoh: "image": [ "https://example.com/photos/1x1/photo.jpg", "https://example.com/photos/4x3/photo.jpg", "https://example.com/photos/16x9/photo.jpg" ] |
instructor |
Informasi tentang instruktur untuk kursus, jika ada. "instructor": [{ "@type": "Person", "name": "Dana A.", "description": "Professor at X-University", "image": "http://examplePerson.jpg" }] |
instructor.description |
Text
Deskripsi instruktur beserta kredensialnya, jika ada. |
instructor.name |
Text
Nama instruktur, jika ada. |
location |
Nama atau alamat (atau keduanya) lokasi fisik tempat kursus akan berlangsung, jika ada. "courseMode": "Blended", "location": "Example High School" |
Program Kursus
Program kursus adalah kumpulan kursus turunan. Kursus turunan harus berupa kursus tersendiri dengan URL dan halaman landing yang berbeda.
Jika halaman web Anda adalah program kursus, sertakan properti wajib berikut (selain
properti wajib lain yang tercantum di bagian Course
dan
CourseInstance
).
Properti wajib | |
---|---|
hasPart |
Daftar kursus turunan yang merupakan bagian dari program ini. "@context": "https://schema.org/", "@type": "Course", "name": "Learning Pathway: Knitting", "url": "www.example.com/knitprogram" // Fill the other required Course and CourseInstance properties "hasPart": [{ "@type": "Course", "name": "Intro to Knitting", "url": "www.example.com/knitbasics", "description": "Learn the basics of how to knit." }, { "@type": "Course", "name": "Knit a Sweater", "url": "www.example.com/knitsweater", "description": "Learn to knit an entire sweater." }] |
hasPart.name |
Text
Judul lengkap kursus turunan. |
hasPart.url |
URL
URL yang ditautkan ke halaman landing kursus turunan. |
Properti yang direkomendasikan | |
---|---|
hasPart.description |
Text
Deskripsi singkat tentang topik yang akan dibahas dalam kursus turunan, jika ada.
|
Memantau hasil kaya dengan Search Console
Search Console adalah alat yang dapat membantu Anda memantau performa halaman Anda di Google Penelusuran. Anda tidak perlu mendaftar ke Search Console agar halaman Anda dapat disertakan dalam hasil Google Penelusuran. Tetapi dengan mendaftar, Anda dapat memahami dan meningkatkan cara Google melihat situs Anda dengan mudah. Sebaiknya Anda memeriksa Search Console dalam kasus berikut:
- Setelah men-deploy data terstruktur untuk pertama kalinya
- Setelah merilis template baru atau memperbarui kode
- Menganalisis traffic secara berkala
Setelah men-deploy data terstruktur untuk pertama kalinya
Setelah Google mengindeks halaman Anda, temukan masalah menggunakan laporan status Hasil kaya yang relevan. Idealnya, akan ada peningkatan jumlah item yang valid, sedangkan jumlah item yang tidak valid tidak berubah. Jika Anda menemukan masalah pada data terstruktur Anda:
- Perbaiki item yang tidak valid.
- Periksa URL aktif untuk memeriksa apakah masalah terus berlanjut.
- Minta validasi menggunakan laporan status.
Setelah merilis template baru atau memperbarui kode Anda
Saat Anda membuat perubahan yang signifikan pada situs, pantau peningkatan jumlah item yang tidak valid pada data terstruktur.- Jika terjadi peningkatan jumlah item yang tidak valid, mungkin Anda meluncurkan template baru yang tidak berfungsi, atau situs Anda berinteraksi dengan template yang ada dengan cara baru yang salah.
- Jika terjadi penurunan jumlah item yang valid (tidak cocok dengan peningkatan jumlah item yang tidak valid), mungkin Anda tidak lagi menyematkan data terstruktur di halaman Anda. Gunakan Alat Inspeksi URL untuk mempelajari penyebab masalah tersebut.
Menganalisis traffic secara berkala
Analisis traffic Google Penelusuran Anda menggunakan Laporan Performa. Data akan menunjukkan seberapa sering halaman Anda muncul sebagai hasil kaya di Penelusuran, seberapa sering pengguna mengkliknya, dan posisi rata-rata halaman Anda saat muncul di hasil penelusuran. Anda juga dapat otomatis menarik hasil ini dengan Search Console API.Pemecahan masalah
Jika Anda mengalami masalah saat menerapkan atau mendebug data terstruktur, berikut beberapa referensi yang dapat membantu Anda.
- Jika Anda menggunakan sistem pengelolaan konten (CMS) atau ada orang lain yang menangani situs Anda, minta mereka untuk membantu Anda. Pastikan untuk meneruskan pesan Search Console yang menjelaskan masalah tersebut kepada mereka.
- Google tidak menjamin bahwa fitur yang menggunakan data terstruktur akan muncul dalam hasil penelusuran. Untuk mengetahui daftar alasan umum mengapa Google tidak dapat menampilkan konten Anda dalam hasil kaya, lihat Panduan Umum terkait Data Terstruktur.
- Mungkin ada error dalam data terstruktur Anda. Periksa daftar error data terstruktur.
- Jika halaman Anda dikenai tindakan manual data terstruktur, data terstruktur pada halaman itu akan diabaikan (meskipun halaman masih bisa muncul di hasil Google Penelusuran). Untuk memperbaiki masalah data terstruktur, gunakan laporan Tindakan Manual.
- Tinjau panduan lagi untuk mengidentifikasi apakah konten Anda tidak mematuhi panduan. Masalah itu mungkin disebabkan oleh konten yang berisi spam atau penggunaan markup yang berisi spam. Namun, masalahnya mungkin bukan pada sintaksis, sehingga Pengujian Hasil Kaya tidak akan dapat mengidentifikasi masalah tersebut.
- Pecahkan masalah hasil kaya tidak ada/penurunan jumlah hasil kaya.
- Tunggu hingga crawling dan pengindeksan ulang selesai. Perlu diingat bahwa Google mungkin memerlukan waktu beberapa hari untuk mencari dan meng-crawl halaman setelah Anda memublikasikannya. Untuk pertanyaan umum terkait crawling dan pengindeksan, lihat FAQ crawling dan pengindeksan Google Penelusuran.
- Posting pertanyaan di forum Pusat Google Penelusuran.