ติดตั้ง Cookie Consent Banner ให้เว็บไซต์ถูกกฎหมาย PDPA

เก็บคุกกี้ผู้เยี่ยมชมโดยไม่ขอความยินยอมก่อน อาจผิดกฎหมาย PDPA

ติดตั้ง Cookie Consent Banner ให้เว็บไซต์ถูกกฎหมาย PDPA Website

Cookie คืออะไร และเก็บข้อมูลประเภทไหนบ้าง?

Cookie คือข้อมูลเล็ก ๆ ที่เว็บไซต์ส่งมาจากเซิร์ฟเวอร์ เก็บไว้ในเครื่องคอมพิวเตอร์หรือสมาร์ตโฟนของผู้เยี่ยมชม เมื่อผู้ใช้เข้าเยี่ยมชมเว็บไซต์ครั้งต่อไป เบราว์เซอร์จะส่ง Cookie นั้นกลับไปยังเว็บไซต์เพื่อระบุตัวตนของผู้ใช้ Cookie ถูกใช้เพื่อหลายวัตถุประสงค์ เช่น:

ทำไมต้องมี Cookie Consent Banner?

ตามกฎหมาย PDPA (Personal Data Protection Act) ของไทยและ GDPR (General Data Protection Regulation) ของยุโรป เว็บไซต์ต้องขอความยินยอมจากผู้เยี่ยมชมก่อนการเก็บ Cookie ใด ๆ ที่ไม่ใช่ Functional Cookie (ที่จำเป็นต่อการทำงาน) กฎหมายเหล่านี้มีจุดประสงค์เพื่อปกป้องความเป็นส่วนตัวของผู้ใช้ปกป้องข้อมูลส่วนบุคคล และให้ผู้ใช้มีสิทธิในการควบคุมข้อมูลของตนเอง

หากเว็บไซต์ของคุณเก็บ Cookie ที่ไม่จำเป็นโดยไม่ขอความยินยอม คุณอาจเผชิญกับปรับทางกฎหมาย (Fine) หรือการร้องเรียนของผู้ใช้ เพื่อหลีกเลี่ยงปัญหานี้ ต้องติดตั้ง Cookie Consent Banner บนเว็บไซต์ของคุณ

วิธีติดตั้ง Cookie Consent Banner โดยไม่ใช้ Plugin

สำหรับเว็บไซต์ WordPress บนเว็บโฮสติ้ง cPanel คุณสามารถใช้ Plugin เช่น CookieBot, Cookie Notice, Termly หรือแม้แต่สร้าง Script ง่าย ๆ ด้วย HTML และ JavaScript ดังนี้:

วิธีที่ 1: ใช้ Plugin Cookie Consent (ง่ายที่สุด)

ถ้าใช้ WordPress:

  1. Login เข้า WordPress Dashboard
  2. ไปที่ Plugins → Add New
  3. ค้นหา "Cookie Notice" หรือ "CookieBot"
  4. คลิก Install และ Activate
  5. ตั้งค่า Cookie Banner ให้แสดงเมื่อผู้ใช้เข้าเว็บไซต์ครั้งแรก
  6. เลือก Cookie ประเภทไหนที่ต้องขอความยินยอม (Analytics, Marketing)
  7. Save การตั้งค่า

วิธีที่ 2: ใส่ Code Script ด้วยมือใน Header

สำหรับเว็บไซต์ที่ไม่ใช้ WordPress หรือต้องการควบคุมมากขึ้น คุณสามารถเพิ่ม Script ด้วยมือได้:

<div id="cookie-consent-banner" style="position:fixed;bottom:0;left:0;right:0;background:#222;color:#fff;padding:15px;text-align:center;z-index:1000;font-size:14px;">
  <p>เว็บไซต์นี้ใช้ Cookie เพื่อให้ประสบการณ์ของคุณดีขึ้น โปรดยอมรับหรือปฏิเสธ</p>
  <button id="accept-cookies" style="background:#4CAF50;color:#fff;padding:8px 15px;border:none;margin:0 5px;cursor:pointer;">ยอมรับ</button>
  <button id="reject-cookies" style="background:#f44336;color:#fff;padding:8px 15px;border:none;margin:0 5px;cursor:pointer;">ปฏิเสธ</button>
</div>

<script>
  // ตรวจสอบว่า Cookie ยอมรับ/ปฏิเสธแล้วหรือยัง
  if (!localStorage.getItem('cookieConsent')) {
    document.getElementById('cookie-consent-banner').style.display = 'block';
  } else {
    document.getElementById('cookie-consent-banner').style.display = 'none';
  }

  // กำหนดให้คลิก "ยอมรับ" เก็บค่า localStorage
  document.getElementById('accept-cookies').addEventListener('click', function() {
    localStorage.setItem('cookieConsent', 'accepted');
    document.getElementById('cookie-consent-banner').style.display = 'none';
  });

  // กำหนดให้คลิก "ปฏิเสธ" เก็บค่า localStorage
  document.getElementById('reject-cookies').addEventListener('click', function() {
    localStorage.setItem('cookieConsent', 'rejected');
    document.getElementById('cookie-consent-banner').style.display = 'none';
  });
</script>

วิธีที่ 3: ติดตั้ง Script ใน .htaccess (สำหรับ Hosting ที่ไม่รองรับ PHP Header)

บาง Hosting Provider รองรับการเพิ่ม HTTP Header ผ่าน .htaccess เพื่อบอกเบราว์เซอร์ว่าเว็บไซต์ใช้ Cookie:

<IfModule mod_headers.c>
  Header set Set-Cookie "cookieConsent=notSet; Path=/; HttpOnly; SameSite=Strict"
</IfModule>

วิธีป้องกัน Cookie ที่ไม่ได้รับอนุญาต

เพื่อให้เว็บไซต์ของคุณปฏิบัติตามกฎหมาย PDPA/GDPR ทุกประการ ให้ปฏิบัติตามขั้นตอนต่อไปนี้:


ตรวจสอบว่า Cookie Consent ทำงานถูกต้อง

หลังติดตั้ง Cookie Consent Banner ให้ทดสอบด้วยขั้นตอนต่อไปนี้:

# 1. เปิด DevTools (F12) ไปที่ Application tab
# 2. ดู Cookies section → ตรวจสอบว่ามี Cookie ของเว็บไซต์อยู่

# 3. ใช้ Network tab เพื่อตรวจสอบว่า Google Analytics โหลดหลังจากคลิก "ยอมรับ" หรือไม่
# ค้นหา "google-analytics.com" หรือ "gtag" ใน Network tab

# 4. ลบ Cookie ทั้งหมดแล้วรีเฟรชหน้า Cookie Banner ต้องแสดงขึ้นมาใหม่

# 5. ทดสอบ Privacy Mode / Incognito Mode Cookie Banner ต้องแสดงทุกครั้ง
Tip: ใช้ DevTools (F12 ในเบราว์เซอร์ Chrome/Firefox) ไปที่ Application → Cookies → คลิกดูรายละเอียด Cookie ที่เซิร์ฟเวอร์ส่งมา ตรวจสอบว่า Max-Age หรือ Expires ถูกตั้งค่าอย่างถูกต้อง

แก้ปัญหาที่พบบ่อย

Error: "Cookie Banner ไม่แสดงขึ้น"

เกิดจากการบันทึก localStorage ไม่ถูกต้องหรือ localStorage ถูกปิดใช้งาน วิธีแก้: ลองใช้ Session Storage หรือ Cookies แทน localStorage เพื่อบันทึกการตั้งค่า

Error: "Google Analytics ยังคงโหลดแม้ว่าผู้ใช้ปฏิเสธ Cookie"

ปัญหา: Google Analytics Script ถูกใส่แบบ Async ซึ่งโหลดโดยอัตโนมัติ แม้ว่าผู้ใช้ยังไม่ยอมรับ Cookie วิธีแก้: โหลด Google Analytics Script เฉพาะเมื่อผู้ใช้ยอมรับ หรือใช้ Google Analytics 4 Consent Mode ที่สามารถตั้งค่า consent_mode ได้

Error: "Privacy Policy ไม่มี หรือลิงก์ในหน้า Privacy Policy ถูกลบออก"

กฎหมาย PDPA กำหนดให้เว็บไซต์ต้องมีหน้า Privacy Policy ที่ชัดเจน วิธีแก้: สร้างหน้า Privacy Policy ใน WordPress (สร้าง Page ใหม่) อธิบายชนิดของ Cookie ที่ใช้ วัตถุประสงค์ และวิธีเก็บข้อมูลผู้ใช้ ใส่ลิงก์ไปยังหน้า Privacy Policy ในทุกที่ที่แสดง Cookie Banner

Error: "Plugin Cookie Consent ขัดแย้งกับ Plugin อื่น"

บางครั้ง Cookie Plugin ขัดแย้งกับ Caching Plugin หรือ SEO Plugin อื่น วิธีแก้: ปิดใช้งาน Cookie Plugin ชั่วคราว แล้วเปิดใช้ Plugin อื่นทีละตัว เพื่อหาว่า Plugin ไหนขัดแย้ง จากนั้นค้นหา Update ใหม่ของ Plugin ทั้งสอง หรือติดต่อ Support ของ Plugin

Error: "Cookie Banner ขึ้นบนทุกหน้า แม้ว่าผู้ใช้ยอมรับไปแล้ว"

เกิดจาก localStorage ไม่บันทึกค่า หรือ localStorage ถูกล้าง วิธีแก้: ตรวจสอบว่า DevTools ไม่ได้ตั้งค่าให้ล้าง localStorage ทุกครั้งที่ปิดเบราว์เซอร์ (ถ้ากำหนด) ขณะทดสอบ ให้เพลี่ยว่าจะใช้ Cookies แทน localStorage ที่มีอายุยาวกว่า


คำถามที่พบบ่อย

Q: Functional Cookie (ที่จำเป็นต่อการทำงาน) ต้องขอความยินยอมหรือไม่?

A: ไม่ต้อง Functional Cookie ที่จำเป็นต่อการทำงานของเว็บไซต์ เช่น Session Cookie สำหรับ Login CSRF Token หรือสินค้าในตะกร้า ได้รับการยกเว้น ห้ามขอความยินยอมสำหรับ Cookie เหล่านี้ แต่ควรอธิบายในหน้า Privacy Policy ว่าใช้งานเพื่ออะไร

Q: ถ้าไม่มี Cookie Consent Banner จะเกิดอะไร?

A: เว็บไซต์ของคุณอาจถูกถูกกฎหมาย PDPA/GDPR นอกจากนี้ ผู้ใช้ยังสามารถร้องเรียนหรือฟ้องร้องขอค่าเสียหาย บ้างองค์กรจำเพาะก็มีการตรวจสอบเว็บไซต์ไทยและส่งอ้างอิงกระบวนการ PDPA หากปะติดปะตัวในการเก็บ Cookie ที่ไม่ได้รับอนุญาต

Q: ข้อมูลใน Cookie สามารถนำไปใช้ในอนาคตหรือต้องลบทิ้งหลังจากระยะเวลาหนึ่ง?

A: ตามกฎหมาย PDPA ต้องลบข้อมูลเมื่อไม่จำเป็นต่อวัตถุประสงค์ดั้งเดิมแล้ว สำหรับ Analytics Cookie ควรตั้ง Expiry Date (เช่น 2 ปี) เมื่อหมดอายุเบราว์เซอร์จะลบเอง สำหรับ Marketing Cookie ควรให้ผู้ใช้สามารถลบหรือปฏิเสธได้ตลอดเวลา

ก่อนเปลี่ยนแปลงค่า DNS หรือโดเมนใดๆ แนะนำให้ตรวจสอบสุขภาพโดเมนก่อนด้วยเครื่องมือฟรีอย่าง dnsxray.com เพื่อเช็ค DNS Record, SSL และ Blacklist ในที่เดียว