คำตอบสั้น ๆ: เขียน Structured Data แบบ JSON-LD สำหรับองค์กร ร้านค้า บทความ Breadcrumb และสินค้า พร้อมตรวจด้วย Rich Results Test และ Search Console
คู่มือนี้อธิบาย Structured Data ทีละขั้นตอน พร้อมคำสั่งที่ใช้ได้จริงและปัญหาที่พบบ่อย
Structured Data หรือ Schema Markup คือข้อมูลที่เขียนในรูปแบบที่เครื่องอ่านเข้าใจ เพื่อบอก Search Engine ว่าหน้านี้เป็นอะไร เช่น เป็นบทความของใคร เผยแพร่วันไหน เป็นสินค้าราคาเท่าไร หรือเป็นร้านค้าที่มีที่อยู่และเวลาเปิดปิดอย่างไร Google ใช้ข้อมูลนี้แสดงผลการค้นหาแบบพิเศษ (Rich Results) เช่น เส้นทาง Breadcrumb ราคาและสถานะสินค้า หรือคะแนนรีวิว
Structured Data ไม่ได้รับประกันว่าจะได้อันดับดีขึ้นหรือได้ Rich Results เสมอ แต่ช่วยให้ Google เข้าใจหน้าเว็บได้ถูกต้องและเปิดโอกาสให้ผลการค้นหาเด่นขึ้น บทความนี้ใช้รูปแบบ JSON-LD ซึ่ง Google แนะนำ พร้อมตัวอย่างที่ใช้บ่อยสำหรับธุรกิจไทย
สิ่งที่ต้องเตรียม (Structured Data)
- สิทธิ์แก้ไข Template ของเว็บ หรือปลั๊กอินที่ใส่โค้ดใน
<head>ได้ - ข้อมูลธุรกิจที่ถูกต้องและตรงกับที่แสดงบนหน้าเว็บ เช่น ชื่อ ที่อยู่ เบอร์โทร โลโก้
- บัญชี Google Search Console ของเว็บ (ดู ยืนยันความเป็นเจ้าของเว็บไซต์บน Google Search Console)
ประเภท Schema ที่ใช้บ่อยและสถานะ Rich Results
| ประเภท | ใช้กับ | หมายเหตุเรื่อง Rich Results ของ Google |
|---|---|---|
Organization | หน้าแรก หรือหน้าเกี่ยวกับเรา | ช่วยระบุโลโก้และข้อมูลองค์กร |
LocalBusiness และประเภทย่อย | ธุรกิจที่มีหน้าร้าน | ใช้ร่วมกับ Google Business Profile |
Article / BlogPosting | บทความและข่าว | ช่วยเรื่องหัวข้อ รูป และวันที่ |
BreadcrumbList | ทุกหน้าที่มีเส้นทางนำทาง | แสดงเส้นทางแทน URL ในผลค้นหา |
Product + Offer | หน้าสินค้า | แสดงราคา สถานะสินค้า และรีวิวได้ |
FAQPage | หน้าคำถามที่พบบ่อย | ตั้งแต่ปี 2023 Google แสดง Rich Result นี้เฉพาะเว็บหน่วยงานรัฐและเว็บสุขภาพที่น่าเชื่อถือ เว็บทั่วไปใส่ได้แต่ไม่ควรคาดหวังผลในหน้าค้นหา |
HowTo | หน้าวิธีทำ | Google เลิกแสดง Rich Result ประเภทนี้แล้ว |
นโยบายของ Google เปลี่ยนได้ ก่อนลงแรงกับประเภทใด ให้ตรวจรายการที่รองรับใน Search Gallery ของ Google
ขั้นตอนที่ 1: เขียน JSON-LD สำหรับองค์กร
JSON-LD วางในแท็ก <script type="application/ld+json"> ได้ทั้งใน <head> หรือ <body> ไม่ต้องแก้ HTML เดิมของหน้า ตัวอย่างสำหรับหน้าแรก
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Example Co., Ltd.",
"url": "https://example.com/",
"logo": "https://example.com/images/logo.png",
"sameAs": [
"https://www.facebook.com/example",
"https://www.linkedin.com/company/example"
],
"contactPoint": {
"@type": "ContactPoint",
"telephone": "+66-2-000-0000",
"contactType": "customer service",
"availableLanguage": ["Thai", "English"]
}
}
</script>
ใช้ URL เต็มเสมอ เบอร์โทรเขียนแบบสากลพร้อมรหัสประเทศ +66 และโลโก้ควรเป็นรูปที่ Google เข้าถึงได้ (ไม่ถูกบล็อกใน robots.txt ดู เขียนไฟล์ robots.txt ให้ถูกต้อง)
ขั้นตอนที่ 2: ธุรกิจที่มีหน้าร้าน (LocalBusiness)
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Restaurant",
"name": "ร้านตัวอย่าง",
"url": "https://example.com/",
"image": "https://example.com/images/shop.jpg",
"telephone": "+66-2-000-0000",
"priceRange": "฿฿",
"address": {
"@type": "PostalAddress",
"streetAddress": "99 ถนนตัวอย่าง",
"addressLocality": "เขตปทุมวัน",
"addressRegion": "กรุงเทพมหานคร",
"postalCode": "10330",
"addressCountry": "TH"
},
"geo": { "@type": "GeoCoordinates", "latitude": 13.7465, "longitude": 100.5348 },
"openingHoursSpecification": [{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
"opens": "09:00",
"closes": "18:00"
}]
}
</script>
เลือก @type ที่เจาะจงที่สุดที่ตรงกับธุรกิจ เช่น Restaurant, Dentist, Store หรือใช้ LocalBusiness ถ้าไม่มีประเภทที่ตรง ข้อมูลที่อยู่และเวลาทำการต้องตรงกับที่แสดงบนหน้าเว็บและใน Google Business Profile
ขั้นตอนที่ 3: บทความและ Breadcrumb
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "BlogPosting",
"headline": "วิธีเลือก Cloud Server สำหรับธุรกิจ SME",
"image": ["https://example.com/images/cloud-sme.jpg"],
"datePublished": "2026-09-01T09:00:00+07:00",
"dateModified": "2026-09-10T14:30:00+07:00",
"author": { "@type": "Person", "name": "สมชาย ใจดี", "url": "https://example.com/author/somchai/" }
},
{
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "หน้าแรก", "item": "https://example.com/" },
{ "@type": "ListItem", "position": 2, "name": "บทความ", "item": "https://example.com/blog/" },
{ "@type": "ListItem", "position": 3, "name": "วิธีเลือก Cloud Server สำหรับธุรกิจ SME" }
]
}
]
}
</script>
วันที่ต้องเป็นรูปแบบ ISO 8601 พร้อม Timezone (+07:00 สำหรับเวลาไทย) ถ้าไม่ใส่ Timezone Google จะเดาตามตำแหน่งของ Googlebot ซึ่งอาจคลาดเคลื่อน รายการสุดท้ายใน Breadcrumb คือหน้าปัจจุบัน ไม่จำเป็นต้องใส่ item การใช้ @graph ทำให้รวมหลายประเภทไว้ในสคริปต์เดียวได้