Back to notes
mastery-seo
Featured

JSON-LD & Schema Markup: สอน Next.js ให้คุยภาษาหุ่นยนต์ (SEO Secret Weapon)

เทคนิคทำ Structured Data เพื่อชิงพื้นที่ Featured Snippet บน Google และวิธีเขียน JSON-LD ใน Next.js แบบ Type-Safe

February 4, 20262 min read readNNexis by Seereen

🤖 ภาษาที่มนุษย์ไม่อ่าน แต่ 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)

HLJS TSX/app/blog/[slug]/page.tsx
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 เข้าช่วย

HLJS BASH
npm install schema-dts
HLJS TSX/components/JsonLd.tsx
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

  1. BlogPosting: พื้นฐานที่ต้องมีทุกบทความ
  2. BreadcrumbList: บอกโครงสร้างเว็บ (Home > Blog > SEO)
  3. FAQPage: ถ้าบทความคุณมีส่วน Q&A ท้ายบท (แบบที่เราทำกันบ่อยๆ) อันนี้ดีมากครับ มีโอกาสได้พื้นที่ FAQ ใต้ลิงก์สูงมาก!
  4. TechArticle: สำหรับบทความสอนเขียนโค้ดโดยเฉพาะ (ระบุ proficiencyLevel ได้ด้วยว่ายาก/ง่าย)

🧪 4. ทดสอบความถูกต้อง

อย่าเขียนแล้วปล่อยเลยครับ Google มีเครื่องมือ Rich Results Test ให้ใช้ฟรี แค่เอา URL หรือ Code JSON-LD ไปวาง มันจะบอกเลยว่าผ่านไหม หรือมี Warning อะไรบ้าง

การทำ JSON-LD คือการลงทุนที่คุ้มค่าครับ เขียนโค้ดเพิ่มนิดเดียว แต่ผลลัพธ์บนหน้า Google อาจเปลี่ยนจาก "ลิงก์ธรรมดา" เป็น "พื้นที่สื่อโฆษณาขนาดยักษ์" ฟรีๆ เลยครับ!

Share this note

© 2026 My Notes by Seereen