ผู้ใช้ Shared Hosting เกือบทุกคนต้องเจอสักวัน: อีเมลแจ้งเตือนจาก Hosting ว่า "Disk Usage เกิน 80%" ทั้งที่เพิ่งซื้อแพ็กเกจมาไม่นาน หลายคนรีบอัพเกรดแพ็กเกจทันทีทั้งที่จริงๆ แล้ว พื้นที่ส่วนใหญ่ถูกกินโดยไฟล์ที่ไม่จำเป็นต้องอยู่บน Hosting เลย โดยเฉพาะ รูปภาพ บทความนี้จะพาไปดูว่าอะไรกินพื้นที่มากที่สุด เช็คยังไงใน cPanel และเมื่อรูปภาพคือตัวการ มีทางออกอะไรบ้างที่ไม่ต้องจ่ายเพิ่ม
อะไรกินพื้นที่ Hosting มากที่สุด
จากประสบการณ์ดูแลเว็บบน Shared Hosting ตัวการกินพื้นที่เรียงตามลำดับที่พบบ่อยคือ:
- รูปภาพ — โดยเฉพาะเว็บ WordPress ที่อัพโหลดรูปจากกล้อง/มือถือตรงๆ ไฟล์ละ 3-8 MB แถม WordPress ยัง generate Thumbnail หลายขนาดต่อรูป 1 ไฟล์ (thumbnail, medium, large, ฯลฯ) รูปต้นฉบับ 1,000 รูปอาจกลายเป็นไฟล์จริง 5,000-8,000 ไฟล์
- Backup เก่า — ไฟล์ .tar.gz / .zip ที่ Backup Plugin หรือ Backup Wizard สร้างไว้แล้วลืมลบ บางเว็บมี Backup ค้าง 10-20 ชุด ชุดละหลาย GB
- Email — กล่องจดหมายที่เก็บ Attachment ขนาดใหญ่สะสมหลายปี รวมถึงโฟลเดอร์ Trash/Spam ที่ไม่เคยถูกล้าง
- Log และ Cache — error_log ที่โตวันโตคืน, Cache ของ Plugin ที่ไม่เคยถูก purge
- ไฟล์ติดตั้งเก่า — โฟลเดอร์เว็บเวอร์ชันเก่า ไฟล์ .zip ที่แตกแล้วแต่ไม่ลบต้นฉบับ
วิธีเช็ค Disk Usage ใน cPanel
ก่อนลงมือแก้ ต้องรู้ก่อนว่าอะไรกินพื้นที่จริงๆ อย่าเดา:
- Login cPanel → มองแถบขวา Statistics จะเห็น Disk Usage รวมเทียบกับ Quota
- เข้าเมนู Disk Usage (อยู่ในหมวด Files) — cPanel จะแสดงกราฟแท่งว่าแต่ละโฟลเดอร์ใช้พื้นที่เท่าไหร่
- ด้านล่างของหน้า Disk Usage มี Directory Tree กดลูกศรขยายเข้าไปดูทีละชั้นได้ เช่น
public_html → wp-content → uploadsเพื่อดูว่าโฟลเดอร์รูปใหญ่แค่ไหน - อย่าลืมเช็ค Email Disk Usage (หมวด Email) แยกต่างหาก เพราะเมลบางทีไม่โชว์ชัดใน Disk Usage หลัก
ถ้า Hosting เปิด Terminal ให้ใช้ สามารถเช็คแบบละเอียดด้วยคำสั่ง:
# ดูขนาดแต่ละโฟลเดอร์ใน home เรียงจากใหญ่ไปเล็ก
du -sh ~/* 2>/dev/null | sort -rh | head -15
# เจาะดูโฟลเดอร์รูป WordPress
du -sh ~/public_html/wp-content/uploads/*
# หาไฟล์ใหญ่เกิน 10MB ทั้ง account
find ~ -type f -size +10M -exec ls -lh {} \; 2>/dev/null
3 ทางออกเมื่อรูปภาพคือตัวการ
1. ลบรูปที่ไม่ได้ใช้
รูปที่อัพโหลดแล้วไม่ได้แปะในหน้าไหนเลย (Unattached Media) ลบได้ทันที ใน WordPress ไปที่ Media Library → Filter "Unattached" แต่ระวังรูปที่ถูกเรียกจาก Theme/Page Builder ตรงๆ อาจโชว์เป็น Unattached ทั้งที่ใช้งานอยู่ — ควร Backup ก่อนลบเสมอ
2. บีบอัดรูปให้เล็กลง
แปลงรูปเป็น WebP และ Resize ให้พอดีกับขนาดแสดงผลจริง ช่วยลดขนาดได้ 50-80% ทำได้ทั้งผ่าน Plugin หรือเมนู Images → Scaler ใน cPanel วิธีนี้ช่วยได้มากแต่มีเพดาน เพราะรูปยังอยู่บน Hosting เหมือนเดิม เว็บที่เพิ่มรูปใหม่ตลอดสุดท้ายก็เต็มอีก
3. ย้ายรูปไปฝากไว้ภายนอก
ทางออกที่ยั่งยืนกว่าสำหรับรูปจำนวนมากคือ ไม่เก็บรูปบน Hosting ตั้งแต่แรก — อัพโหลดรูปไปไว้กับบริการฝากรูปภายนอก แล้วนำลิงก์มาแปะในเว็บแทน รูปเสิร์ฟจากเซิร์ฟเวอร์ของผู้ให้บริการฝากรูป ส่วน Hosting ของเราเก็บแค่ HTML/โค้ดที่เบามาก วิธีนี้ Disk Space แทบไม่โตตามจำนวนรูปอีกเลย
บริการฝากรูปภายนอกทำงานอย่างไร
หลักการง่ายมาก: อัพโหลดรูปขึ้นเว็บฝากรูป → ระบบให้ลิงก์ของรูปกลับมา → นำลิงก์ไปใช้ในเว็บของเรา ตัวอย่างบริการของไทยที่ใช้ได้ฟรีคือ ฝากรูป.com ซึ่งอัพโหลดได้โดยไม่ต้องสมัครสมาชิก (สมัครได้ถ้าอยากมี Dashboard จัดการรูปย้อนหลัง) รองรับการอัพโหลดหลายแบบทั้งลากวาง วางจาก Clipboard เลือกไฟล์ อัพทั้งโฟลเดอร์ หรือดึงจาก URL
เมื่ออัพโหลดเสร็จ ระบบฝากรูปทั่วไปจะให้โค้ดลิงก์มาหลายรูปแบบให้เลือกใช้ตามหน้างาน:
- Direct Link — URL ตรงของไฟล์รูป ใช้แปะใน
<img src="">ของเว็บ - HTML Code — โค้ด
<img>สำเร็จรูป copy ไปวางได้เลย - BBCode — สำหรับโพสต์ในฟอรัม/เว็บบอร์ด
- Markdown — สำหรับ README, GitHub, ระบบ Docs ต่างๆ
บางเจ้าอย่างฝากรูป.com ยังแถมลิงก์สำหรับลบรูปเอง มีอัลบั้มจัดกลุ่มรูป สร้าง QR Code ตั้งเวลาลบอัตโนมัติ หรือตั้งรหัสผ่านให้รูปได้ด้วย ซึ่งสะดวกเวลาแชร์รูปชั่วคราวที่ไม่อยากให้ค้างถาวร
ใช้ฝากรูปกับเว็บ ร้านค้าออนไลน์ และฟอรัมอย่างไร
เว็บไซต์ / บล็อก
เหมาะกับรูปประกอบบทความ แกลเลอรี่ ภาพ Portfolio — อัพรูปขึ้นบริการฝากรูป แล้วใช้ Direct Link แปะใน HTML หรือ Editor ของ CMS โดยตรง โดยเฉพาะรูปขนาดใหญ่ความละเอียดสูงที่ถ้าเก็บเองจะกินพื้นที่มหาศาล
ร้านค้าออนไลน์
ร้านค้าที่โพสต์ขายของตามหลายช่องทาง (เว็บตัวเอง, Marketplace, โซเชียล) มักต้องใช้รูปสินค้าชุดเดียวกันซ้ำๆ การฝากรูปไว้ที่เดียวแล้วใช้ลิงก์เดียวกันทุกช่องทางช่วยทั้งประหยัดพื้นที่และจัดการง่าย — แก้รูปที่เดียว อัพเดตทุกที่ที่ใช้ลิงก์นั้น
ฟอรัม / เว็บบอร์ด / กลุ่มไลน์
ฟอรัมส่วนใหญ่จำกัดขนาดไฟล์แนบหรือไม่ให้อัพรูปเลย การใช้ BBCode จากเว็บฝากรูปคือวิธีมาตรฐานที่ใช้กันมานาน สำหรับคนที่โพสต์บ่อย ฝากรูป.com มี API รองรับ ShareX และ Browser Extension ที่คลิกขวาอัพรูปหรือจับ Screenshot ได้เลย ช่วยลดขั้นตอนจากหลายคลิกเหลือคลิกเดียว
ข้อดีของการย้ายรูปไปฝากภายนอก
- ประหยัด Disk Space — รูป 1,000 รูป × เฉลี่ย 500 KB = 500 MB ที่หายไปจาก Hosting ทันที ยิ่งเว็บโตยิ่งเห็นผล
- ประหยัด Bandwidth — ทุกครั้งที่คนเปิดหน้าเว็บ รูปถูกโหลดจากเซิร์ฟเวอร์ฝากรูป ไม่ใช่จาก Hosting ของเรา Bandwidth Quota ของเราแทบไม่ถูกใช้กับรูปเลย
- รูปเสิร์ฟผ่าน CDN — บริการฝากรูปที่ดีจะมี CDN Subdomain เสิร์ฟรูป ทำให้โหลดเร็วสม่ำเสมอ อย่างเว็บฝากรูปของไทยที่กล่าวถึงก็ทำ Resize รูปแบบ On-the-fly ได้ คือขอรูปขนาดเล็กลงผ่าน URL โดยไม่ต้องอัพหลายเวอร์ชัน
- ลดภาระ Server — Shared Hosting มีลิมิต CPU/IO (CloudLinux LVE) การให้เซิร์ฟเวอร์อื่นเสิร์ฟรูปช่วยลดโหลด ทำให้ส่วน PHP/Database ของเว็บตอบสนองดีขึ้น
- ความเป็นส่วนตัวของรูปดีขึ้นในบางกรณี — เช่น ฝากรูป.com ลบข้อมูล EXIF/GPS ออกจากรูป Public อัตโนมัติ ลดความเสี่ยงเผลอเปิดเผยพิกัดสถานที่ถ่ายรูป และรูปฟรีไม่มีลายน้ำ
ข้อควรระวังก่อนย้ายรูปออกไปข้างนอก
- สำรองต้นฉบับเสมอ — เก็บไฟล์รูปต้นฉบับไว้ในเครื่องหรือ Cloud Storage ของตัวเองอีกชุดเสมอ อย่าให้สำเนาเดียวของรูปอยู่บนเว็บฝากรูป เพราะบริการภายนอกอยู่นอกการควบคุมของเรา
- อย่าใช้กับรูป Mission-Critical ของระบบ — โลโก้เว็บ ไอคอน UI รูปสินค้าหลักในระบบตะกร้า/ใบเสร็จ ควรอยู่บน Hosting ของเราเอง เพราะถ้าบริการภายนอกล่มชั่วคราว องค์ประกอบหลักของเว็บจะหายตามไปด้วย ใช้ฝากรูปกับรูปประกอบเนื้อหา แกลเลอรี่ รูปโพสต์ฟอรัม จะเหมาะกว่า
- อ่านเงื่อนไขบริการ — ตรวจสอบขนาดไฟล์สูงสุด นโยบายการเก็บรูป และประเภทเนื้อหาที่อนุญาต ก่อนย้ายรูปจำนวนมาก
- ระวัง Hotlink Protection สลับฝั่ง — ถ้าเว็บเราเคยตั้ง Hotlink Protection ไว้ ไม่กระทบรูปที่ฝากภายนอก แต่ถ้าจะโหลดรูปจากภายนอกเข้ามาแสดง ตรวจว่า CSP header ของเว็บเรา (ถ้ามี) อนุญาตโดเมนรูปนั้นด้วย
- SEO ของรูป — รูปที่ฝากภายนอกจะถูก Index ในโดเมนของผู้ให้บริการ ไม่ใช่โดเมนเรา ถ้ารูปนั้นสำคัญกับ Google Images Traffic ของเว็บ ให้ชั่งน้ำหนักก่อน
ตรวจสอบว่าการย้ายรูปทำงานถูกต้อง
หลังย้ายรูปชุดแรกและแก้ลิงก์ในเว็บแล้ว ตรวจสอบด้วยคำสั่งเหล่านี้ (ผ่าน Terminal ใน cPanel หรือเครื่องตัวเอง):
# ตรวจว่าลิงก์รูปภายนอกตอบ 200 OK
curl -sI "https://โดเมนฝากรูป/path/รูป.jpg" | head -5
# เทียบ Disk Usage ก่อน-หลังลบรูปที่ย้ายแล้ว
du -sh ~/public_html/wp-content/uploads/
# หาลิงก์รูป local ที่ยังค้างในหน้าเว็บ (ควรเหลือแค่รูประบบ)
grep -ro 'src="/images/' ~/public_html/ --include="*.html" | wc -l
# ตรวจว่าไม่มีหน้าไหนมีรูปแตก (ต้องไม่มี 404 ใน log)
grep ' 404 ' ~/access-logs/* | grep -iE '\.(jpg|png|webp)' | tail -10
แก้ปัญหาที่พบบ่อย
Error: รูปจากภายนอกไม่แสดง ขึ้นไอคอนรูปแตก
เช็คว่า copy ลิงก์ผิดประเภทหรือไม่ — ต้องใช้ Direct Link (ลงท้าย .jpg/.png/.webp) ไม่ใช่ลิงก์หน้าเว็บของรูป ทดสอบด้วยการเปิด URL ตรงๆ ในแท็บใหม่ ถ้าเปิดแล้วเห็นหน้าเว็บแทนที่จะเป็นไฟล์รูปเปล่าๆ แสดงว่าใช้ลิงก์ผิดตัว
Error: รูปแสดงบนเว็บ แต่ไม่แสดงเมื่อแชร์ลง Social
Facebook/Line ดึงรูปจาก og:image ซึ่งต้องเป็น URL ที่เข้าถึงได้สาธารณะ ถ้ารูปที่ฝากตั้งรหัสผ่านหรือเป็นลิงก์ดูครั้งเดียว Social Crawler จะดึงไม่ได้ — รูปสำหรับ og:image ควรเป็นรูป Public ปกติ และทดสอบด้วย Facebook Sharing Debugger
Error: Mixed Content Warning หลังแปะรูปภายนอก
เกิดเมื่อเว็บเราเป็น https แต่ลิงก์รูปเป็น http เบราว์เซอร์จะบล็อกรูป แก้โดยเปลี่ยนลิงก์รูปเป็น https ทั้งหมด (บริการฝากรูปสมัยใหม่เป็น https อยู่แล้ว แค่ระวังตอน copy ลิงก์จากที่เก่า)
Error: ลบรูปบน Hosting แล้ว Disk Usage ไม่ลด
cPanel คำนวณ Disk Usage เป็นรอบ (มัก cache ไว้หลายชั่วโมง) รอสักพักแล้วรีเฟรช หรือเช็คแบบ Real-time ด้วย du -sh ~/public_html ใน Terminal อีกสาเหตุคือรูปถูกย้ายไป Trash ของ File Manager แทนที่จะลบจริง — เข้าไป Empty Trash (โฟลเดอร์ .trash) ด้วย
คำถามที่พบบ่อย
Q: ฝากรูปไว้ภายนอกฟรี เสี่ยงรูปหายไหม?
A: มีความเสี่ยงเสมอเหมือนบริการภายนอกทุกชนิด จึงต้องยึดหลักสำรองต้นฉบับไว้เองทุกครั้ง และเลือกใช้กับรูปประกอบเนื้อหา ไม่ใช่รูปที่ระบบเว็บขาดไม่ได้ ถ้าบริการมีลิงก์ลบรูปเองหรือ Dashboard สมาชิก ให้เก็บข้อมูลเหล่านั้นไว้ด้วยจะจัดการภายหลังได้ง่าย
Q: ต่างจากการใช้ CDN อย่าง Cloudflare ยังไง?
A: Cloudflare เป็น Cache/Proxy — ไฟล์ต้นฉบับยังอยู่บน Hosting และยังกิน Disk Space เท่าเดิม ส่วนการฝากรูปคือย้ายไฟล์ออกไปอยู่ที่อื่นจริงๆ Disk ของเราว่างขึ้นทันที ทั้งสองวิธีใช้ร่วมกันได้: หน้าเว็บผ่าน Cloudflare รูปหนักๆ ฝากภายนอก
Q: เว็บ WordPress ควรย้ายรูปเก่าทั้งหมดออกเลยไหม?
A: ไม่จำเป็น เริ่มจาก "รูปใหม่นับจากนี้" ก่อนจะง่ายกว่า เพราะการย้ายรูปเก่าต้องไล่แก้ URL ในทุกโพสต์ ถ้าจะย้ายของเก่าจริงๆ ให้ทำทีละหมวด แก้ลิงก์ ตรวจหน้าเว็บ แล้วค่อยลบไฟล์เดิมหลังยืนยันว่าไม่มี Request ค้างใน Access Log