ใน
คู่มือนี้เขียนสำหรับ
สรุปสั้นๆ การปรับแต่ง ภาพ
- เลือกฟอร์แมตตามเนื้อหา ภาพถ่ายใช้ WebP หรือ AVIF โลโก้และไอคอนใช้ SVG ใช้ PNG สำหรับกราฟิกแบบไม่
สูญเสีย คุณภาพ และ JPEG เป็นตัวสำรอง - Export ที่ขนาดที่ภาพแสดงจริง และไม่เกินสองเท่าของความกว้างนั้นสำหรับ
หน้าจอ ความละเอียดสูง อย่าอัปโหลด ไฟล์ต้นฉบับจากกล้อง - ใช้
srcsetและsizesเพื่อให้มือถือ ดาวน์โหลดไฟล์ที่เล็กกว่าเดสก์ท็อป - ใส่
widthและheightเสมอ เพื่อไม่ให้เลย์เอาต์ กระโดด - ใช้ lazy load กับภาพที่อยู่ใต้
หน้าจอ แรก แต่ห้ามใช้กับภาพหลัก (LCP) ให้ใส่fetchpriority="high"กับภาพนั้นแทน - ให้ระบบทำงานแทน ด้วยการปรับขนาดและแปลงฟอร์แมตอัตโนมัติ
เลือกฟอร์แมต: JPEG, PNG, WebP, AVIF หรือ SVG
เลือกฟอร์แมตตามสิ่งที่อยู่ในภาพ ไม่ใช่ตามความเคยชิน
| ฟอร์แมต | เหมาะกับ | ข้อควรระวัง | |
|---|---|---|---|
| JPEG | ภาพถ่าย เมื่อต้องการให้รองรับได้กว้างที่สุด | ไม่ได้ | ใหญ่กว่า WebP หรือ AVIF ที่คุณภาพ |
| PNG | ภาพ |
ได้ | ใหญ่มากเมื่อใช้กับภาพถ่าย |
| WebP | ภาพถ่ายและกราฟิก เป็นค่า |
ได้ | มักใหญ่กว่า AVIF |
| AVIF | ภาพถ่าย โดยเฉพาะภาพ hero และภาพสินค้าขนาดใหญ่ | ได้ | เข้ารหัสช้ากว่า และอาจทำให้ |
| SVG | โลโก้ ไอคอน ภาพประกอบ |
ได้ | ใช้ได้เฉพาะงาน |
WebP กับ AVIF
ณ เวลาที่เขียน (กรกฎาคม 2026) Chrome, Edge, Firefox และ Safari เวอร์ชันปัจจุบัน รองรับทั้งสองฟอร์แมต และทั้งสองมักให้ไฟล์เล็กกว่า JPEG ที่คุณภาพ
<picture> ที่มี <source> หนึ่งตัวต่อหนึ่งฟอร์แมต ใส่ AVIF ไว้ก่อน (เบราว์เซอร์จะใช้ฟอร์แมตแรกที่รองรับ) และมี <img> เป็นตัวสำรอง ถ้าทำได้แค่แบบเดียว WebP คือ
บีบอัด ด้วยตา ไม่ใช่ด้วยตัวเลข
เมื่อ
SVG ภาพเคลื่อนไหว และตัวหนังสือ ในภาพ
- โลโก้และไอคอน ควรเป็น SVG ซึ่งมักเป็นไฟล์เล็กมาก และ
คมชัด ทุกขนาด ไฟล์ SVG มีสคริปต์อยู่ข้างในได้ WordPress จึงไม่รับอัปโหลด SVG เป็นค่าเริ่มต้น ถ้าคุณเปิดใช้ ต้อง sanitise ทุกไฟล์ - GIF เคลื่อนไหว มีขนาดใหญ่มากเมื่อเทียบกับสิ่งที่แสดง web.dev แนะนำให้แทนด้วยวิดีโอสั้นๆ แบบปิดเสียงและเล่นวนซ้ำ ซึ่งมักมีขนาดเพียง
เศษเสี้ยว ตัวหนังสือ ที่ฝังในภาพ จะเบลอเมื่อซูม เลือกหรือแปลไม่ได้ โปรแกรมอ่านหน้าจอ ได้แค่สิ่งที่ alt text พูดซ้ำ และเว็บไซต์ หลายภาษาต้องมีภาพหนึ่งชุดต่อทุกภาษา ให้ใส่ข้อความ เหล่านั้นไว้ในหน้าเว็บแทน
ปรับขนาดภาพให้พอดีกับพื้นที่
ปัญหาที่ใหญ่กว่ามักเป็นเรื่องขนาด ไม่ใช่ฟอร์แมต เช่น ภาพกว้าง 4,000 พิกเซลที่แสดงในการ์ดกว้าง 400 พิกเซล เบราว์เซอร์ดาวน์โหลดทุกพิกเซล แล้วทิ้งเกือบทั้งหมด
คำนวณขนาดที่ต้องใช้จริง
ไม่มีขนาดภาพที่ดีที่สุดขนาดเดียวสำหรับ
จุด
| ตำแหน่งภาพ | ความกว้างที่แสดงโดยทั่วไป | ความกว้างที่ export |
|---|---|---|
| ภาพ hero เต็มความกว้าง | ได้ถึงความกว้างเต็มของเบราว์เซอร์ | 1,920–2,560 px พร้อมเวอร์ชันที่เล็กกว่าสำหรับ |
| ภาพในคอลัมน์บทความ | 700–900 px | 1,400–1,800 px |
| การ์ดหรือภาพย่อ | 300–450 px | 600–900 px |
| โลโก้หรือไอคอน | ขนาดใดก็ได้ | SVG จึงไม่ต้องคิดขนาดเป็นพิกเซล |
ภาพแบบ responsive: srcset และ sizes
แอตทริบิวต์ srcset ระบุภาพเดียวกันไว้หลายความกว้าง (เช่น 800, 1,600 และ 2,400 พิกเซล) และ sizes บอกเบราว์เซอร์ว่าภาพจะแสดงกว้างเท่าไร เช่น ครึ่ง
srcset แต่ไม่มี sizes ที่srcset ได้ แต่ไม่ได้sizes sizes="auto" ให้ภาพที่ใช้ lazy load ซึ่งทำให้เบราว์เซอร์ที่รองรับใช้ความกว้างจริงของ
<picture> พร้อมเงื่อนไข media เพื่อส่งภาพที่
ใส่ width และ height กันหน้ากระโดด
ใส่แอตทริบิวต์ width และ height ที่ตรงกับสัดส่วนของไฟล์ให้ทุกภาพ เบราว์เซอร์ใช้ค่าเหล่านี้จองพื้นที่ไว้ก่อนภาพมาถึง ขณะที่ CSS (max-width: 100%; height: auto) ทำให้ภาพยังปรับตามaspect-ratio บทความ อธิบาย Core Web Vitals พูดถึงสาเหตุอื่นของ
Lazy loading: ใช้ใต้หน้าจอ แรก ห้ามใช้กับ hero
แอตทริบิวต์ loading="lazy" ซึ่งเบราว์เซอร์หลักทุกตัวรองรับในตัว จะชะลอการโหลดภาพไว้จนกว่า
แต่ถ้าใช้ผิดภาพก็ให้ผล
| ตำแหน่งของภาพ | การโหลด | ลำดับความสำคัญ |
|---|---|---|
| ภาพ hero หรือภาพหลัก (LCP) | ค่า |
สูง |
| ภาพอื่นที่มองเห็นตั้งแต่โหลดครั้งแรก | ค่า |
ค่า |
| ทุกอย่างที่อยู่ลึกลงไปในหน้า | Lazy | ค่า |
ให้ภาพหลักได้สิทธิ์ก่อน
fetchpriority="high" บอกเบราว์เซอร์ว่าภาพนี้สำคัญกว่าไฟล์อื่นที่กำลังแย่ง
ถ้าภาพ hero เป็น<img> จริง หรือ preload ด้วย <link rel="preload" as="image" fetchpriority="high"> สไลด์ hero แบบหมุน (carousel) ยังเพิ่มอีกปัญหาหนึ่ง คือภาพใหญ่หลายภาพแย่งกันโหลด และสไลด์แรกมักมาถึงช้า ถ้ายังจะใช้ ให้ใส่ fetchpriority="low" กับสไลด์ที่ซ่อนอยู่
สร้าง ระบบป้องกันไม่ให้ภาพเดียวทำเว็บช้า
คน
- ปรับขนาดอัตโนมัติ WordPress
สร้าง สำเนาขนาดเล็กของทุกภาพที่อัปโหลด และสร้าง srcsetให้ภาพที่วางผ่าน editor ตั้งแต่เวอร์ชัน 5.3 ยังย่อภาพที่อัปโหลด ซึ่งด้านยาวเกิน 2,560 พิกเซลลงเป็นค่าเริ่มต้น ด้วย คำใบ้ การโหลดอัตโนมัติ WordPress ใช้ lazy load กับภาพ พยายามข้ามภาพแรกๆ และตั้งแต่เวอร์ชัน 6.3 ให้ลำดับความสำคัญสูงกับภาพที่น่าจะเป็น hero แต่ page builder และสไลเดอร์ อาจทำให้การเดานี้ผิด จึงต้องตรวจสอบ บทความ วิธีทำให้เว็บไซต์ WordPress เร็วขึ้น พูดเรื่องนี้ควบคู่กับปลั๊กอินและแคช- แปลงฟอร์แมต WordPress รับ
อัปโหลด ไฟล์ WebP (ตั้งแต่ 5.8) และ AVIF (ตั้งแต่ 6.5) เมื่อเซิร์ฟเวอร์รองรับ การแปลงไฟล์ JPEG ที่อัปโหลด โดยอัตโนมัติ มักต้องใช้ปลั๊กอินเครื่องมือ จัดการภาพของผู้ให้บริการ โฮสติ้ง หรือ image CDN - Image CDN ปรับขนาด แปลง และ
บีบอัด ภาพตามคำขอ ส่ง AVIF หรือ WebP ให้เบราว์เซอร์ที่รองรับ และแคชผลลัพธ์ไว้ใกล้ผู้เข้าชม บทความ อธิบายการแคชเว็บไซต์ และ CDN แสดงว่าส่วนนี้อยู่ตรงไหน - ตำแหน่งภาพที่เทมเพลตควบคุม
กำหนด สัดส่วนภาพตายตัวให้แต่ละตำแหน่ง และให้เทมเพลตตัดสินขนาดและการครอป โดยมีจุดโฟกัสที่ผู้ดูแล เนื้อหาตั้งได้ เขาเลือกภาพ ส่วนระบบจัดการที่เหลือ - จำกัดการ
อัปโหลด และมีข้อความ เตือน จำกัดขนาดไฟล์ และทำให้ alt text เป็นช่องที่ระบบถามทุกครั้ง แทนที่จะเป็นช่องเสริมที่ไม่บังคับ
แกลเลอรี สินค้า: กรณีพิเศษ
หน้าสินค้ามักมีภาพมากกว่าเทมเพลตอื่นใด และ
- ภาพสินค้าหลักมักเป็น
องค์ประกอบ LCP โหลดแบบ eager ด้วยลำดับความสำคัญสูง และsrcsetที่กำหนด ขนาดตามความกว้างจริงของแกลเลอรี - ภาพย่อได้ไฟล์เล็กๆ ของ
ตัวเอง ไม่ใช่ภาพขนาดเต็มที่ เบราว์เซอร์ย่อลง - ภาพอื่นใน
แกลเลอรี รอไว้ก่อน จนกว่าผู้เข้าชม จะปัด และภาพความละเอียดสูงสำหรับซูม รอจนกว่าจะมีคนซูมจริง - ใช้สัดส่วนภาพเดียวกันทั้ง
แคตตาล็อก เช่น สี่เหลี่ยมจัตุรัส หรือ 4:5 เพื่อให้กริดเป็นระเบียบ และการสลับสีของสินค้าไม่ทำให้หน้าขยับ - ในกริดรายการสินค้า ใช้ lazy load กับทุกภาพยกเว้นแถวแรก ซึ่งมองเห็นตั้งแต่เข้ามา
ตรวจสิ่งที่ขึ้นเว็บไปแล้ว
- ทดสอบหน้าสำคัญด้วย PageSpeed Insights บน
มือถือ มันจะบอกว่าองค์ประกอบ LCP คืออะไร และชี้ภาพที่ใหญ่เกินบีบอัด ไม่ดี ใช้ฟอร์แมตเก่า หรือไม่ได้ระบุขนาด บทความ วิธีอ่านรายงาน PageSpeed Insights อธิบายส่วนที่เหลือ - เปิด Chrome DevTools กรองแผง Network ด้วย Img แล้วโหลดหน้าใหม่ และเรียงตามขนาด
- เทียบขนาดที่แสดงกับขนาดจริง ในแผง Elements ให้เอาเมาส์ชี้ที่แหล่งที่มาของภาพ เพื่อดูขนาดที่แสดงผล (rendered) และขนาดจริงของไฟล์ (intrinsic) ไฟล์กว้าง 3,000 พิกเซลที่แสดงที่ 350 พิกเซล คือจุดที่แก้ได้เร็ว
- ตรวจภาพ hero ยืนยันว่าไม่ได้ใช้ lazy load มีลำดับความสำคัญสูง และไม่ใช่
พื้นหลัง ด้วย CSS ที่ถูกเจอช้า - เฝ้าดูรายงาน Core Web Vitals ใน Search Console รายงานนี้ใช้ข้อมูลจาก
ผู้ใช้ Chrome จริงในช่วง 28 วันที่ผ่านมา (เมื่อเว็บไซต์ มีทราฟฟิก พอ) ผลของการแก้ไขจึงใช้เวลาหลายสัปดาห์กว่าจะปรากฏ
แก้ที่เทมเพลตก่อนแก้ภาพ
เช็กลิสต์ ก่อนอัปโหลด
วางไว้ข้างๆ คนที่
alt text ยังช่วยให้ Google เข้าใจภาพ แต่เขียนขึ้นเพื่อ