WordPress
เวลาปรับปรุงเว็บไซต์ WordPress ไม่ว่าจะอัปเดต Theme, ติดตั้ง Plugin ใหม่ หรือแก้ไขโค้ดหลังบ้าน สิ่งที่ขาดไม่ได้คือการเปิด Maintenance Mode เพื่อแจ้งผู้เยี่ยมชมว่าเว็บอยู่ระหว่างปรับปรุง แทนที่จะให้พวกเขาเห็นหน้าเว็บที่พัง หรือหน้าเปล่าที่ไม่มีข้อมูลอะไรเลย บทความนี้จะพาทุกคนตั้งค่า Maintenance Mode บน WordPress แบบครบจบในที่เดียว ทั้งวิธีใช้ Plugin ยอดนิยม และวิธี Manual ผ่านไฟล์ .htaccess สำหรับผู้ใช้ Shared Hosting ที่ใช้ cPanel
Maintenance Mode คืออะไร และทำไมต้องใช้
Maintenance Mode คือสถานะที่เว็บไซต์จะแสดงหน้าพิเศษแทนเนื้อหาจริง โดยบอกผู้เยี่ยมชมว่าเว็บอยู่ระหว่างการปรับปรุง พร้อมระบุเวลาที่คาดว่าจะกลับมาให้บริการได้ตามปกติ ซึ่งดีกว่าปล่อยให้ผู้เยี่ยมชมพบกับ Error 500 หรือหน้าเว็บที่แสดงผลผิดปกติระหว่างที่คุณกำลังแก้ไขอยู่
ประโยชน์หลักของการเปิด Maintenance Mode ได้แก่:
- ผู้เยี่ยมชมได้รับข้อมูลที่ถูกต้องแทนที่จะเห็นหน้าเว็บเสีย
- Search Engine (เช่น Google) รับรู้ว่าเว็บชั่วคราวไม่พร้อมใช้งาน ไม่ถูกลด Ranking
- ทีมงานสามารถทดสอบการเปลี่ยนแปลงโดยไม่กระทบผู้ใช้จริง
- สร้างภาพลักษณ์ที่ดีให้กับเว็บไซต์ว่ามีการดูแลและพัฒนาอย่างต่อเนื่อง
วิธีที่ 1: ใช้ Plugin WP Maintenance Mode
วิธีที่ง่ายและแนะนำที่สุดสำหรับผู้ใช้ WordPress ทั่วไปคือการติดตั้ง Plugin โดยตรงจาก WordPress Dashboard โดยไม่ต้องแตะโค้ดใดๆ เลย
ขั้นตอนติดตั้งและเปิดใช้งาน
- เข้า WordPress Admin Dashboard ที่
yourdomain.com/wp-admin - ไปที่เมนู Plugins > Add New Plugin
- ค้นหา "WP Maintenance Mode" หรือ "Coming Soon Page & Maintenance Mode"
- คลิก Install Now แล้วกด Activate
- ไปที่ Settings > WP Maintenance Mode
- ในแท็บ General เปลี่ยน Status เป็น Activated
- คลิก Save Settings
หลังจากเปิดใช้งาน ผู้เยี่ยมชมทั่วไปจะเห็นหน้า Maintenance Mode ทันที ส่วนผู้ที่ Login ใน Admin Dashboard อยู่แล้วจะยังคงเห็นหน้าเว็บปกติ ทำให้คุณสามารถทำงานต่อได้โดยไม่สะดุด
ปรับแต่งหน้า Maintenance Mode ให้สวยงาม
ใน Plugin ส่วนใหญ่จะมีแท็บสำหรับปรับแต่งหน้าตาโดยเฉพาะ ไม่ว่าจะเป็น:
- แท็บ Design: เปลี่ยนสีพื้นหลัง, ใส่รูปภาพ Background, เลือก Font สวยๆ
- แท็บ Modules: เพิ่ม Countdown Timer แสดงเวลาที่จะกลับมา, ใส่ช่อง Subscribe Email รับข่าวสาร
- แท็บ Manage Bot: อนุญาตให้ Search Engine Bot เข้ามา Crawl ได้ตามปกติ (สำคัญมากสำหรับ SEO)
วิธีที่ 2: ใช้ไฟล์ .maintenance (WordPress Built-in)
WordPress มีระบบ Maintenance Mode ในตัวที่ทำงานอัตโนมัติเมื่อมีการอัปเดต โดยสร้างไฟล์ .maintenance ไว้ที่ Root ของเว็บ คุณสามารถสร้างไฟล์นี้เองเพื่อเปิด Maintenance Mode ได้เลย
สร้างผ่าน File Manager ใน cPanel
- Login เข้า cPanel แล้วเปิด File Manager
- ไปที่โฟลเดอร์
public_html(หรือโฟลเดอร์ที่ติดตั้ง WordPress อยู่) - คลิก + File แล้วสร้างไฟล์ชื่อ .maintenance (ขึ้นต้นด้วยจุด)
- คลิก Edit แล้วใส่โค้ดต่อไปนี้:
<?php $upgrading = time(); ?>
เมื่อไฟล์นี้มีอยู่และ $upgrading เป็นเวลาที่ไม่เกิน 10 นาทีที่ผ่านมา WordPress จะแสดงหน้า Maintenance อัตโนมัติ เมื่อปรับปรุงเสร็จแล้ว ให้ ลบไฟล์ .maintenance ออก หรือจะลบผ่าน File Manager ใน cPanel ก็ได้
วิธีที่ 3: ปรับแต่งหน้า Maintenance ด้วย Custom Template
หากต้องการควบคุมหน้าตาของ Maintenance Page อย่างเต็มที่ สามารถสร้าง Custom Template ใน Theme ของตัวเองได้ โดยสร้างไฟล์ชื่อ maintenance.php ใน Theme Directory
สร้างไฟล์ maintenance.php ใน Theme
- ไปที่ cPanel > File Manager แล้วเปิดโฟลเดอร์
public_html/wp-content/themes/[ชื่อ-theme-ของคุณ]/ - สร้างไฟล์ใหม่ชื่อ
maintenance.php - ใส่โค้ด HTML สำหรับหน้า Maintenance ที่ต้องการ
จากนั้นเพิ่มโค้ดต่อไปนี้ใน functions.php ของ Theme เพื่อเรียกใช้ไฟล์นี้:
// เพิ่มใน functions.php ของ Theme
function my_maintenance_mode() {
if ( ! current_user_can( 'edit_themes' ) || ! is_user_logged_in() ) {
wp_die(
'<h1>กำลังปรับปรุงเว็บไซต์</h1><p>กรุณากลับมาใหม่ในเร็วๆ นี้</p>',
'Maintenance Mode',
array( 'response' => 503, 'back_link' => false )
);
}
}
add_action( 'get_header', 'my_maintenance_mode' );
wp_die() พร้อม response code 503 จะบอก Search Engine ว่าหน้านี้ชั่วคราวไม่พร้อมใช้งาน ซึ่งดีกว่า 200 OK เพราะ Google จะรู้ว่าควรกลับมา Crawl ใหม่ในภายหลัง โดยไม่ลบ URL ออกจาก Indexวิธีที่ 4: บล็อกผ่าน .htaccess (Shared Hosting)
สำหรับผู้ที่ต้องการบล็อกการเข้าถึงในระดับ Server ก่อนที่ WordPress จะโหลด สามารถใช้ไฟล์ .htaccess ได้ วิธีนี้เหมาะเมื่อต้องการให้เฉพาะ IP ของตัวเองเข้าถึงเว็บได้ระหว่างพัฒนา
เปิดไฟล์ .htaccess ใน Root ของเว็บผ่าน cPanel File Manager แล้วเพิ่มโค้ดนี้ก่อน WordPress Rules:
# === Maintenance Mode ===
# อนุญาตเฉพาะ IP ของคุณ (แก้ไขเป็น IP จริงของคุณ)
ErrorDocument 503 /maintenance.html
RewriteEngine On
RewriteCond %{REMOTE_ADDR} !^203\.0\.113\.1$
RewriteCond %{REQUEST_URI} !^/maintenance\.html$
RewriteRule ^(.*)$ /maintenance.html [R=503,L]
# === End Maintenance Mode ===
# BEGIN WordPress
# @... WordPress rules ของเดิม ...
# END WordPress
จากนั้นสร้างไฟล์ maintenance.html ไว้ใน Root ด้วย File Manager โดยใส่หน้า HTML สวยงามที่แจ้งว่าเว็บอยู่ระหว่างปรับปรุง เมื่อเสร็จแล้วให้ ลบหรือ Comment บล็อก Maintenance ออกจาก .htaccess
เคล็ดลับปรับแต่ง Coming Soon Page ให้ดึงดูดใจ
หน้า Maintenance ที่ดีควรประกอบด้วยองค์ประกอบเหล่านี้:
- โลโก้และชื่อแบรนด์: ให้ผู้เยี่ยมชมรู้ว่ามาถูกเว็บ
- ข้อความสั้นๆ กระชับ: บอกว่ากำลังทำอะไรและจะกลับมาเมื่อไร
- Countdown Timer: สร้างความตื่นเต้นและความคาดหวัง
- ช่อง Email Subscribe: เก็บรายชื่อผู้สนใจไว้แจ้งเมื่อเปิดตัว
- Social Media Links: ให้ผู้เยี่ยมชมติดตามผ่านช่องทางอื่น
- ข้อมูลติดต่อ: Email หรือ Line สำหรับกรณีเร่งด่วน
ตรวจสอบว่า Maintenance Mode ทำงานถูกต้อง
หลังเปิด Maintenance Mode แล้ว ให้ตรวจสอบด้วยวิธีต่อไปนี้:
# 1. ตรวจสอบ HTTP Status Code ที่ Server ส่งกลับ
curl -I https://yourdomain.com
# ควรได้ HTTP/2 503 (ไม่ใช่ 200)
# 2. ทดสอบด้วย User-Agent ปกติ (ไม่ได้ Login)
curl -s -o /dev/null -w "%{http_code}" https://yourdomain.com
# ผลลัพธ์ที่ต้องการ: 503
# 3. ตรวจสอบว่าหน้า Maintenance แสดงข้อความถูกต้อง
curl -s https://yourdomain.com | grep -i "maintenance\|prapraung\|coming soon"
# 4. ตรวจสอบว่า Admin ยัง Login เข้าได้ปกติ
# เปิด Browser ใหม่ (Incognito) แล้วไปที่ yourdomain.com/wp-admin
# ควรเข้า Dashboard ได้ตามปกติหลัง Login
# 5. ตรวจสอบ .htaccess ว่ามี Maintenance Rule อยู่หรือไม่
grep -n "maintenance\|503" /path/to/public_html/.htaccess
แก้ปัญหาที่พบบ่อย
Error: หน้า Maintenance ไม่แสดงแม้จะเปิด Plugin แล้ว
มักเกิดจาก Caching Plugin เก็บหน้าเก่าไว้ และยังเสิร์ฟหน้าเดิมให้ผู้เยี่ยมชม วิธีแก้คือ ไปที่ Plugin Cache ที่ใช้อยู่ (เช่น WP Rocket, W3 Total Cache, LiteSpeed Cache) แล้วกด Purge All Cache หรือ Clear All Cache ก่อน จากนั้นทดสอบใหม่ด้วย Incognito Browser
Error: ตัวเองก็โดน Redirect ไปหน้า Maintenance ด้วย
Plugin บางตัวตั้งค่าเริ่มต้นให้บล็อกทุก User รวมถึง Admin ด้วย ให้ตรวจสอบตัวเลือก "Bypass for Logged-in Users" หรือ "Exclude Administrators" ใน Settings ของ Plugin และให้แน่ใจว่าคุณ Login อยู่ใน WordPress ก่อนตรวจสอบ ถ้าใช้ .htaccess ให้ตรวจสอบว่า IP ที่ใส่ตรงกับ IP จริงของคุณ (ตรวจได้ที่ whatismyip.com)
Error: หน้า .maintenance ไม่หายแม้ลบไฟล์แล้ว
WordPress บางครั้งสร้างไฟล์ .maintenance ขึ้นใหม่อัตโนมัติระหว่างอัปเดต ให้ตรวจสอบผ่าน cPanel > File Manager ว่ายังมีไฟล์ .maintenance อยู่หรือไม่ และตรวจดูด้วยว่ามี Plugin ที่ยังทำงานอยู่หรือเปล่า ถ้ายังมีให้ Deactivate Plugin แล้วลบไฟล์อีกครั้ง
Error: Google Crawl ไม่ได้ระหว่าง Maintenance Mode
ถ้า Maintenance ใช้งานนานเกิน 1-2 วัน Search Engine อาจเริ่ม De-index หน้าต่างๆ ได้ วิธีป้องกันคือตั้งค่า Response Code เป็น 503 Service Unavailable ซึ่งบอก Google ว่าชั่วคราวเท่านั้น และเปิด Option ให้ Bot ผ่านได้ใน Plugin ตรวจสอบได้ด้วยคำสั่ง:
curl -I https://yourdomain.com
# ดู Header "X-Robots-Tag" และ Status Code
# ต้องได้ 503 ไม่ใช่ 200
Error: ไฟล์ .htaccess เสียหายหลังแก้ไข
ถ้าเว็บไม่ทำงานหลังแก้ .htaccess ให้รีบเปิด cPanel > File Manager แล้ว Restore ไฟล์ .htaccess จาก Backup หรือแก้ให้กลับไปเป็น WordPress Default:
# WordPress Default .htaccess
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
คำถามที่พบบ่อย
Q: เปิด Maintenance Mode แล้ว Google จะลบเว็บออกจาก Search ไหม?
A: ถ้าเปิดไว้ไม่นาน (ไม่เกิน 1-2 วัน) และใช้ Response Code 503 อย่างถูกต้อง Google จะไม่ลบเว็บออกจาก Index เพราะ 503 บอกว่า "ชั่วคราวไม่พร้อม" Google จะกลับมา Crawl ใหม่เอง อย่างไรก็ตาม ถ้าเว็บ Down นานเกิน 1 สัปดาห์ Ranking อาจได้รับผลกระทบบ้าง
Q: ความแตกต่างระหว่าง Maintenance Mode กับ Coming Soon Page คืออะไร?
A: Maintenance Mode (503) ใช้สำหรับเว็บที่เปิดให้บริการอยู่แล้วแต่ต้องปิดชั่วคราว เพื่อปรับปรุง ส่วน Coming Soon Page (200 หรือ 307) ใช้กับเว็บที่กำลังจะเปิดตัวใหม่และยังไม่พร้อม SEO-wise ควรใช้ 503 สำหรับ Maintenance และ Coming Soon สำหรับเว็บใหม่ที่ยังไม่เคย Index
Q: Plugin ไหนแนะนำมากที่สุดสำหรับ Maintenance Mode?
A: สำหรับ Shared Hosting ที่ใช้ cPanel แนะนำ WP Maintenance Mode & Coming Soon (ฟรี, 900,000+ installs) เพราะตั้งค่าง่าย มี Design Template สวยงาม และรองรับ Countdown Timer, Email Subscribe ในตัว ถ้าต้องการฟีเจอร์เพิ่มเติมอย่าง A/B Testing หรือ Custom Domain อาจพิจารณา SeedProd (มีทั้งฟรีและ Pro)