🤖 ภาษาที่มนุษย์ไม่อ่าน แต่ Bot ชอบมาก
คุณเคยเห็นผลการค้นหาที่มี "ดาวคะแนนรีวิว" หรือ "FAQ ถาม-ตอบ" โชว์หราอยู่ใต้ลิงก์ไหมครับ? พื้นที่พวกนั้นกินสัดส่วนหน้าจอไปเยอะมาก และดึงดูดสายตาสุดๆ
สิ่งนี้เรียกว่า Rich Results ครับ ซึ่ง Google จะให้รางวัลนี้กับเว็บที่ทำ Structured Data ดีๆ เท่านั้น
Structured Data คือการบอก Google ตรงๆ ว่า "นี่คือบทความ", "นี่คือสูตรอาหาร", "นี่คือสินค้า" ผ่านภาษา JSON-LD ที่ Bot เข้าใจได้ทันที โดยไม่ต้องเดาจาก HTML
🛠 วิธีใส่ JSON-LD ใน Next.js (App Router)
เราสามารถใส่ <script> แบบ JSON-LD ลงไปใน layout.tsx หรือ page.tsx ได้เลยครับ
1. แบบบ้านๆ (Plain Object)
export default function BlogPost({ params }) {
const jsonLd = {
'@context': 'https://schema.org',
'@type': 'Article',
headline: 'สอนเขียน JSON-LD',
image: ['https://example.com/image.jpg'],
datePublished: '2026-02-04',
author: [{
'@type': 'Person',
name: 'Nexis Team',
url: 'https://example.com/author'
}]
}
return (
<section>
<h1>สอนเขียน JSON-LD</h1>
{/* ฝัง Script ไว้ใน Body ได้เลย Next.js จัดการให้ */}
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}
/>
</section>
)
}
🚀 2. แบบ Senior Dev (Type-Safe with schema-dts)
การเขียน JSON สดๆ เสี่ยงต่อการพิมพ์ผิดครับ (เช่นพิมพ์ Author แทน author) ผมแนะนำให้ใช้ TypeScript เข้าช่วย
npm install schema-dts
import { Article, WithContext } from 'schema-dts'
export function ArticleJsonLd({ post }: { post: Post }) {
const schema: WithContext<Article> = {
'@context': 'https://schema.org',
'@type': 'BlogPosting', // ใช้ BlogPosting เจาะจงกว่า Article
headline: post.title,
description: post.description,
image: post.coverImage,
datePublished: post.date,
author: {
'@type': 'Person',
name: post.author || 'Nexis Team'
},
publisher: {
'@type': 'Organization',
name: 'Nexis Knowledge Base',
logo: {
'@type': 'ImageObject',
url: 'https://seereen.online/logo.png'
}
}
}
return (
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }}
/>
)
}
🎯 3. Schema ที่ควรมีสำหรับ Tech Blog
- BlogPosting: พื้นฐานที่ต้องมีทุกบทความ
- BreadcrumbList: บอกโครงสร้างเว็บ (Home > Blog > SEO)
- FAQPage: ถ้าบทความคุณมีส่วน Q&A ท้ายบท (แบบที่เราทำกันบ่อยๆ) อันนี้ดีมากครับ มีโอกาสได้พื้นที่ FAQ ใต้ลิงก์สูงมาก!
- TechArticle: สำหรับบทความสอนเขียนโค้ดโดยเฉพาะ (ระบุ
proficiencyLevelได้ด้วยว่ายาก/ง่าย)
🧪 4. ทดสอบความถูกต้อง
อย่าเขียนแล้วปล่อยเลยครับ Google มีเครื่องมือ Rich Results Test ให้ใช้ฟรี แค่เอา URL หรือ Code JSON-LD ไปวาง มันจะบอกเลยว่าผ่านไหม หรือมี Warning อะไรบ้าง
การทำ JSON-LD คือการลงทุนที่คุ้มค่าครับ เขียนโค้ดเพิ่มนิดเดียว แต่ผลลัพธ์บนหน้า Google อาจเปลี่ยนจาก "ลิงก์ธรรมดา" เป็น "พื้นที่สื่อโฆษณาขนาดยักษ์" ฟรีๆ เลยครับ!