แท็กวิเคราะห์ พิกเซลโฆษณา
บทความนี้เขียนให้ทีมการตลาดและทีมดิจิทัล ที่เป็นคนเพิ่มสคริปต์เหล่านี้ ได้เห็นว่ามีอะไรโหลดจริงบ้าง ลดภาระโดยไม่เสียการติดตาม
คำตอบ สั้น ๆ
สคริปต์ภายนอกทำให้
- แย่งเธรดหลัก ซึ่งเบราว์เซอร์ใช้รับการแตะด้วย การโต้ตอบจึงหน่วง และค่า INP (
ระยะเวลา จากการโต้ตอบ ถึงการแสดงผลถัดไป ) แย่ลง - หน่วงเนื้อหาหลัก ด้วยการบล็อกการแสดงผล ซ่อนหน้าเว็บ
ระหว่าง การทดสอบ หรือแย่งแบนด์วิดท์ ซึ่งทำให้ Largest Contentful Paint หรือ LCP แย่ลง - เพิ่มการ
เชื่อมต่อ และคำขอ เพราะแท็กหนึ่งตัวมักโหลดไฟล์อื่นอีกหลายไฟล์จากโดเมนอื่น - ทำให้ของบนหน้าขยับ เมื่อ
วิดเจ็ต และแบนเนอร์มาถึงช้า ทำให้ Cumulative Layout Shift หรือ CLS สูงขึ้น
วิธีแก้: ทำรายการสิ่งที่โหลด เอาสิ่งที่ไม่มีใครใช้ออก โหลดที่เหลือเฉพาะหน้าและจังหวะที่จำเป็น เปลี่ยนเนื้อหาฝังที่หนักเป็น “facade” ที่เบา และชั่งแท็กใหม่ทุกตัวเทียบกับ performance budget
สคริปต์ภายนอกทำให้หน้าเว็บช้าอย่างไร
แย่งเธรดหลัก
หน้าเว็บมีเธรดหลักเพียงหนึ่งเธรด ซึ่งรัน JavaScript
สคริปต์ภายนอกจำนวนมากยังทำงานต่อหลังหน้าโหลดเสร็จ คอยดูการเลื่อนและการคลิก แล้วส่งข้อมูลกลับไปยัง
อาจหน่วงเนื้อหาหลักไว้
- สคริปต์ที่บล็อก แท็ก
<script>ธรรมดาในส่วน head ของหน้า ที่ไม่มีasyncหรือdeferจะหยุดเบราว์เซอร์ไม่ให้สร้าง หน้าต่อ จนกว่าจะดาวน์โหลดและรันเสร็จ ถ้าเซิร์ฟเวอร์ของผู้ให้บริการ ช้า หน้าเว็บของคุณก็ต้องรอ อธิบายทรัพยากรที่บล็อกการแสดงผล อธิบายกลไกนี้ - โค้ดกันกะพริบ (anti-flicker)
เครื่องมือ A/B testing ฝั่งเบราว์เซอร์มักซ่อนหน้าเว็บไว้จนกว่าสคริปต์จะมาถึงหรือจนหมดเวลาระหว่าง ที่หน้าถูกซ่อน เนื้อหาหลักของคุณยังไม่ถูกนับว่าแสดงผลแล้ว LCP จึงต้องรอ แบนด์วิดท์ บนการเชื่อมต่อ ที่ช้า สคริปต์ที่โหลดก่อนจะแย่งแบนด์วิดท์ กับภาพฮีโร่ของคุณ- แบนเนอร์กลายเป็นเนื้อหาหลัก บน
มือถือ แบนเนอร์คุกกี้ที่มีข้อความ ยาวหนึ่งย่อหน้า อาจเป็นองค์ประกอบ ที่ใหญ่ที่สุดบนจอ LCP จึงต้องรอให้สคริปต์ขอความยินยอมวาดแบนเนอร์นั้นขึ้นมา
เพิ่มคำขอ และทำให้ของบนหน้าขยับ
ทุกโดเมนใหม่ต้องมีการค้นหา DNS การ
ตัวการที่พบบ่อย และต้นทุนของแต่ละตัว
ต้นทุนต่างกันไปตาม
| บริการภายนอก | ทำไมถึงมีต้นทุน | สิ่งแรกที่ควรลอง |
|---|---|---|
| โค้ดหนักในทุกหน้า สำหรับคนส่วนน้อยที่ |
โหลดเมื่อคลิก | |
| อาจบล็อก หรือซ่อนการแสดงผล | รันเฉพาะหน้าที่กำลังทดสอบ | |
| วิดีโอที่ฝังไว้ | ตัวเล่นโหลด แม้ไม่มีใครกดเล่น | ใช้ facade |
| แผนที่ที่ฝังไว้ | แผนที่แบบโต้ตอบเต็ม |
ภาพแผนที่นิ่ง พร้อม |
| Heatmap และการบันทึกเซสชัน | เฝ้าดูหน้าเว็บตลอดเวลา | รันเฉพาะช่วงเวลาที่ |
| พิกเซลโฆษณาและ |
สคริปต์และ beacon ที่สะสมเพิ่มขึ้นเรื่อย ๆ | เอาแคมเปญที่จบแล้วออก |
| เนื้อหาที่มาช้า |
จองพื้นที่ไว้ หรือแสดงรีวิวแบบนิ่ง | |
| แบนเนอร์ขอความยินยอมคุกกี้ | ต้องโหลดเร็ว และอาจกลายเป็น |
ใช้ |
| Tag manager และระบบวิเคราะห์ | ตรวจแท็กที่อยู่ข้างใน |
วิธีดูว่ามีอะไรโหลดอยู่จริง
เริ่มจาก tag manager แล้วดูให้ไกลกว่านั้น
ทำรายการแท็กทุกตัวใน Google Tag Manager หรือ tag manager ที่คุณใช้ พร้อม trigger ของแต่ละตัว แต่อย่าหยุดแค่นั้น เพราะสคริปต์ยังเข้ามาทางธีม ปลั๊กอิน WordPress โค้ดที่แปะในส่วนหัว และบล็อกของ page builder มีแค่เบราว์เซอร์ที่แสดงรายการได้ครบทั้งหมด
PageSpeed Insights: ผู้ให้บริการ ไหนกินทรัพยากรมากที่สุด
ทดสอบหน้าแรก และเทมเพลตสำคัญหนึ่งหรือสองแบบบน
Chrome DevTools: รายการครบทั้งหมด
- เปิดหน้าเว็บใน
หน้าต่าง ส่วนตัว คลิกขวา เลือก Inspect แล้วเปิดแผง Network - ติ๊ก “Disable cache” เลือกค่าจำลองความเร็วแบบ
มือถือ แล้วโหลดใหม่ - ใน “More filters” ติ๊ก “3rd-party requests” (หรือพิมพ์
-domain:*yourdomain.comในช่องกรอง) เรียงที่เหลือตามโดเมน เพื่อจัดกลุ่มแต่ละผู้ให้บริการ แล้วเรียงตามขนาด - กดยอมรับแบนเนอร์คุกกี้ แล้วโหลดใหม่ แท็กจำนวนมากโหลดหลังได้รับความยินยอมเท่านั้น คุณจึงกำลังทดสอบหน้าเว็บ 2 เวอร์ชัน
- ในแผง Performance บันทึกการโหลดใหม่ โดยจำลอง CPU ให้ช้าลง แล้วมองหางานยาวที่ถูกทำเครื่องหมายสีแดง ใน Chrome เวอร์ชันใหม่ ๆ แท็บ Summary ยังแสดงเวลาบนเธรดหลักและขนาดที่ส่งผ่านของแต่ละบริการภายนอกด้วย
วัดต้นทุนของสคริปต์
จัดทำทะเบียนแท็ก
บันทึกแท็กแต่ละตัวในชีตที่แชร์ร่วมกัน: ใช้ทำอะไร ใครเป็นเจ้าของ ทำงานในหน้าไหน โหลดเมื่อไร อยู่ในหมวดความยินยอมไหน ต้นทุนที่วัดได้ ตรวจล่าสุดเมื่อไร และการ
วิธีลดโค้ดจากภายนอก โดยไม่เสียการติดตามผล
ทำตามลำดับนี้ สองข้อแรกไม่ต้องใช้
1. เอาแท็กที่ไม่ใช้แล้วและแท็กซ้ำออก
สิ่งที่มักเจอบน
- พิกเซลจากแคมเปญที่จบแล้ว และ
เครื่องมือ ที่หลงเหลือ จากช่วงทดลองใช้ฟรี - แท็ก Universal Analytics ซึ่ง Google หยุด
ประมวลผล ไปตั้งแต่กรกฎาคม 2023 (กรกฎาคม 2024 สำหรับ property แบบ 360) - โค้ด Google Optimize รวมถึงโค้ดกันกะพริบที่ทำได้แค่ซ่อนหน้าเว็บ ซึ่ง
หลงเหลือ อยู่ตั้งแต่ผลิตภัณฑ์ปิดตัวในเดือนกันยายน 2023 - GA4 ที่
ติดตั้ง ซ้ำ 2 ครั้ง ทั้งจากปลั๊กอินและจาก tag manager ซึ่งทำให้นับการดูหน้าเว็บซ้ำด้วย
ปิดการทำงานของแท็กที่ไม่มีเจ้าของไว้ 2 สัปดาห์ ถ้าไม่มีใครบ่น ก็เอาออก ประวัติเวอร์ชันของ Tag Manager เก็บการ
2. โหลดเฉพาะในหน้าที่ต้องใช้
แผนที่ควรอยู่ในหน้าติดต่อ
3. โหลดทีหลัง
ใน Google Tag Manager ย้ายแท็กที่ไม่จำเป็นต้องใช้ทันที จาก trigger แบบ Page View ไปเป็น Window Loaded หรือให้ทำงานหลังการเลื่อนหรือคลิกครั้งแรก ส่วนdefer หรือ async ถ้า
อะไรที่โหลด
4. เปลี่ยนเนื้อหาฝังที่หนักเป็น facade
Facade คือตัวแทน
- วิดีโอ: แสดงภาพตัวอย่างและปุ่มเล่น แล้วโหลดตัวเล่นเมื่อคลิก facade สำหรับวิดีโอ YouTube ที่ฝังไว้ คือหนึ่งในวิธีที่ได้ผลง่ายที่สุด
- แผนที่: แสดงภาพแผนที่นิ่ง พร้อม
ลิงก์ “ดูเส้นทาง ” หรือโหลดแผนที่เมื่อคลิก แชต : ปุ่มที่หน้าตา เหมือนตัวเปิดแชต จะโหลดวิดเจ็ต เมื่อถูกกดข้อความ ทักทายอัตโนมัติจะไม่ปรากฏ จึงควรดูประวัติ แชต ของคุณ ถ้าผู้เข้าชม เป็นฝ่ายเริ่มบทสนทนา เป็นส่วนใหญ่ คุณก็เสียไม่มาก
<button> จริง พร้อมloading="lazy" ใน iframe เพื่อให้รอจน
5. พิจารณา server-side tagging ในกรณีที่เหมาะสม
ด้วย server-side tagging หน้าเว็บจะส่ง event ชุดเดียวไปยังเซิร์ฟเวอร์ที่คุณควบคุม เช่น server container ของ Google Tag Manager ซึ่งส่งต่อไปยังระบบวิเคราะห์และแพลตฟอร์มโฆษณา สคริปต์ของ
วิธีนี้เหมาะกับ
หลังเปลี่ยนแปลงใด ๆ ให้ตรวจการติดตามผล ทดสอบในโหมด preview ของ Tag Assistant แล้วเทียบ key event กับการติดต่อสอบถามจริง เป็นเวลาสัก 2 สัปดาห์ บทความ การติดตาม
ตั้ง performance budget สำหรับโค้ดจากภายนอก
Performance budget (งบประสิทธิภาพ) คือชุด
| รายการในงบ | วัดด้วย | กฎ |
|---|---|---|
| Core Web Vitals | ข้อมูล |
ดีที่เปอร์เซ็นไทล์ที่ 75: LCP ≤ 2.5 วินาที INP ≤ 200 |
| โดเมนภายนอก | แผง Network ใน DevTools | ไม่มากกว่าวันนี้ ถ้าเพิ่มโดเมนใหม่หนึ่งโดเมน ต้องเอาโดเมนเก่าออกหนึ่งโดเมน |
| เวลาบนเธรดหลักของบริการภายนอก | PageSpeed Insights บน |
ไม่เพิ่มจากค่าฐาน |
| ก่อนเนื้อหาหลักปรากฏ | waterfall ใน DevTools | ไม่มีอะไรจากภายนอก ยกเว้น |
มีแค่บรรทัดแรกที่ใช้เกณฑ์ที่ Google
ขั้นตอน อนุมัติแท็ก ที่กันไม่ให้เว็บกลับมาช้า
ก่อนแท็กใหม่จะเริ่มทำงาน:
ทุกไตรมาส ไล่ดูทะเบียนแท็ก เอาสิ่งที่หมดอายุออก รันการทดสอบค่าฐานใหม่ และตรวจรายงาน Core Web Vitals ใน Search Console
จำกัดคนที่
ขั้นตอน ถัดไป
สคริปต์ภายนอกไม่ใช่ศัตรู ระบบวิเคราะห์ พิกเซล และ
ถ้าคุณอยากส่งต่องานประจำนี้ให้คนอื่น แผนดูแล