การย้าย Hosting เป็นหนึ่งในงานที่เว็บมาสเตอร์หลายคนกลัวมากที่สุด เพราะถ้าทำผิดขั้นตอนหรือข้ามขั้นตอนใดไปแม้เพียงขั้นเดียว อาจทำให้อันดับ SEO ที่สะสมมาหลายเดือนหรือหลายปีหายไปในชั่วข้ามคืน บทความนี้รวบรวม Checklist ฉบับสมบูรณ์ที่ครอบคลุมทุกขั้นตอน ตั้งแต่การเตรียมตัวก่อนย้าย การ Backup และ Migration ที่ถูกต้อง การตั้งค่า DNS และ Redirect จนถึงการตรวจสอบหลังย้ายเสร็จ เพื่อให้มั่นใจว่า Traffic และ Rankings ของคุณจะไม่สูญหายระหว่างการย้าย
ทำไมการย้าย Hosting ถึงกระทบ SEO
ก่อนที่จะเริ่ม Checklist ควรเข้าใจก่อนว่าอะไรคือความเสี่ยงด้าน SEO ที่แท้จริงเมื่อย้าย Hosting เพราะหลายคนเข้าใจผิดว่าแค่ย้ายไฟล์ไปแล้วเปลี่ยน DNS ก็เสร็จแล้ว แต่ความจริงซับซ้อนกว่านั้นมาก
ปัจจัยด้าน SEO ที่อาจได้รับผลกระทบระหว่างการย้าย Hosting มีดังนี้
- Crawlability และ Indexability — ถ้า server ใหม่ตอบสนองช้า หรือมี downtime ระหว่างย้าย Googlebot อาจ crawl ไม่ได้หรือเจอ Error ซึ่งส่งสัญญาณลบไปยัง Google
- Page Speed — Server ใหม่ที่ช้ากว่าเดิมจะลด Core Web Vitals Score ซึ่งเป็น Ranking Factor โดยตรง โดยเฉพาะ TTFB (Time to First Byte)
- URL Structure — ถ้าย้ายแล้ว URL เปลี่ยนไปโดยไม่มี Redirect จะสูญเสีย Link Equity ทันที และ Google จะเห็นเป็นหน้าใหม่ที่ยังไม่มีประวัติ
- SSL Certificate — หากโฮสต์ใหม่ยังไม่มี SSL หรือ Certificate expire ระหว่างย้าย ผู้ใช้และ Google จะเห็น "Not Secure" ซึ่งส่งผลลบอย่างชัดเจน
- robots.txt และ Sitemap — ถ้าไฟล์เหล่านี้หายไประหว่างย้าย หรือมีเนื้อหาผิด Googlebot อาจหยุด crawl ทั้งเว็บ
- DNS Propagation ช่วง Overlap — ระหว่างที่ DNS กำลัง Propagate อาจมีผู้ใช้บางส่วนเข้าถึง server เก่าและบางส่วนเข้า server ใหม่พร้อมกัน หากเนื้อหาไม่ตรงกันอาจเกิด Duplicate Content ชั่วคราว
ความเข้าใจในความเสี่ยงเหล่านี้คือพื้นฐานสำคัญที่ทำให้ Checklist ด้านล่างมีความหมาย เพราะทุกขั้นตอนออกแบบมาเพื่อป้องกันปัจจัยเสี่ยงเหล่านี้โดยตรง
Checklist ก่อนย้าย: สิ่งที่ต้องทำก่อนย้ายวันแรก
ขั้นตอนการเตรียมตัวที่ดีคือกุญแจสำคัญที่สุด เพราะปัญหา SEO ส่วนใหญ่เกิดจากการที่ไม่ได้เก็บข้อมูล baseline ไว้ก่อน ทำให้เมื่อย้ายเสร็จแล้วไม่รู้ว่าอะไรเปลี่ยนไปบ้าง
1. บันทึก Baseline Data ทุกอย่าง
ก่อนเริ่มย้ายควรบันทึกข้อมูลต่อไปนี้ให้ครบถ้วน เพื่อใช้เปรียบเทียบหลังย้าย
- Screenshot อันดับ Keyword หลัก 20–30 คำจาก Google Search Console
- Export รายการ URL ที่ได้รับ Traffic สูงสุดจาก Google Analytics 90 วันย้อนหลัง
- บันทึก Crawl Stats จาก Google Search Console (จำนวน Page Crawled ต่อวัน)
- รัน Lighthouse หรือ PageSpeed Insights บนหน้าสำคัญ 5–10 หน้า บันทึก Score ปัจจุบัน
- Export Backlink Report จาก Google Search Console ส่วน "Links"
- บันทึก IP Address ของ server เก่าไว้ (จะใช้ทดสอบทีหลัง)
2. Audit URL Structure ทั้งเว็บ
ใช้เครื่องมืออย่าง Screaming Frog หรือ wget เพื่อ crawl URL ทั้งหมดบนเว็บปัจจุบัน สร้าง spreadsheet ที่มี URL ทุกอัน Status Code และจำนวน Backlink เพื่อวางแผน Redirect หากจำเป็น
# Crawl เว็บด้วย wget เพื่อดู URL ทั้งหมด
wget --spider --recursive --no-verbose --output-file=crawl-log.txt \
https://yourdomain.com 2>&1
# ดึงเฉพาะ URL จาก log
grep "^--" crawl-log.txt | awk '{print $3}' | sort -u > url-list.txt
# นับจำนวน URL ทั้งหมด
wc -l url-list.txt
3. ลด TTL ของ DNS ล่วงหน้า 24–48 ชั่วโมง
นี่คือขั้นตอนที่หลายคนมองข้ามแต่สำคัญมาก ค่า TTL (Time to Live) ของ DNS record บอก DNS resolver ว่าควร cache ข้อมูลไว้นานแค่ไหน ค่าปกติมักอยู่ที่ 3600–86400 วินาที (1–24 ชั่วโมง)
ถ้าไม่ลด TTL ก่อน เมื่อเปลี่ยน A Record ไป server ใหม่ ผู้ใช้บางส่วนอาจยังเข้าถึง server เก่าอยู่นานถึง 24 ชั่วโมง ซึ่งนอกจากจะสร้างความสับสนแล้ว ยังเสี่ยงต่อ Duplicate Content ชั่วคราวด้วย
วิธีตรวจ TTL ปัจจุบันด้วย dig:
# ตรวจ TTL ปัจจุบันของ A Record dig yourdomain.com A +short # ดู TTL ด้วย dig yourdomain.com A | grep -E "^yourdomain|IN\s+A" # ตัวอย่าง output: yourdomain.com. 3600 IN A 203.x.x.x # ตัวเลข 3600 คือ TTL เป็นวินาที
ลด TTL เหลือ 300 วินาทีล่วงหน้าอย่างน้อย 24–48 ชั่วโมง แล้วรอให้ DNS Propagate ก่อนที่จะเริ่มย้าย Server จริง
ขั้นตอนการ Backup และ Migration ที่ถูกต้อง
การ Backup ที่ดีไม่ใช่แค่การ copy ไฟล์ธรรมดา แต่ต้องครอบคลุมทั้ง Files, Database, Email และ Configuration ของ Server เก่าด้วย
Backup ที่ต้องทำให้ครบ
- ไฟล์เว็บทั้งหมด รวมถึง .htaccess, wp-config.php, และไฟล์ Hidden ที่ขึ้นต้นด้วย . (dot)
- Database ทั้งหมด Export เป็น .sql ด้วย mysqldump หรือ phpMyAdmin
- Email Accounts และ Email ที่มีอยู่ โดยเฉพาะถ้าใช้ Email Hosting บน Server เดียวกัน
- SSL Certificate ถ้าซื้อ SSL แบบ Paid ไว้ ต้องขอ Certificate file และ Private Key จาก Provider
- Cron Jobs จดบันทึก Schedule ทั้งหมดไว้ เพราะ Server ใหม่จะต้องตั้งใหม่
- Custom PHP Settings php.ini หรือ .htaccess ที่มีค่า PHP override
Export Database อย่างถูกต้อง
# Export database ด้วย mysqldump (ใช้บน server เก่า) mysqldump -u DB_USER -p DB_NAME \ --single-transaction \ --routines \ --triggers \ --add-drop-table \ > backup-$(date +%Y%m%d).sql # ตรวจขนาด backup ls -lh backup-*.sql # Import บน server ใหม่ mysql -u NEW_DB_USER -p NEW_DB_NAME < backup-2026XXXX.sql
ทดสอบเว็บบน Server ใหม่ก่อนเปลี่ยน DNS
นี่คือขั้นตอนที่สำคัญที่สุดในกระบวนการ Migration ก่อนเปลี่ยน DNS จริง ให้แก้ไฟล์ hosts ในเครื่องของคุณให้ชี้โดเมนไปยัง IP ของ Server ใหม่ชั่วคราว
# บน macOS / Linux แก้ไฟล์ /etc/hosts sudo nano /etc/hosts # เพิ่มบรรทัดนี้ (แทน 1.2.3.4 ด้วย IP จริงของ server ใหม่) 1.2.3.4 yourdomain.com 1.2.3.4 www.yourdomain.com # บน Windows แก้ C:\Windows\System32\drivers\etc\hosts # ต้องเปิด Notepad ในฐานะ Administrator
จากนั้นเปิดเบราว์เซอร์ทดสอบหน้าสำคัญทุกหน้า ตรวจว่าไม่มี Error 404, 500 หรือหน้า Blank หลังทดสอบครบแล้วจึงลบบรรทัดใน /etc/hosts ออก แล้วค่อยเปลี่ยน DNS จริง
การตั้งค่า 301 Redirect และ SSL บน Server ใหม่
หากระหว่างการย้ายมีการเปลี่ยน URL Structure ด้วย (เช่น เปลี่ยนจาก CMS เดิมไปใช้ WordPress หรือเปลี่ยนชื่อ Directory) ต้องทำ 301 Redirect ทุก URL ที่เปลี่ยนไป โดยไม่มีข้อยกเว้น
ตัวอย่าง Redirect ที่พบบ่อยระหว่างย้าย Hosting
# กรณี 1: เปลี่ยนจาก .php เป็น .html
RewriteRule ^([^/]+)\.php$ /$1.html [R=301,L]
# กรณี 2: เพิ่ม trailing slash ให้ directory
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ /$1/ [R=301,L]
# กรณี 3: เปลี่ยน URL pattern จาก ?p=123 เป็น /post-slug/
RewriteCond %{QUERY_STRING} ^p=([0-9]+)$
RewriteRule ^index\.php$ /new-post-slug/? [R=301,L]
# กรณี 4: ย้าย category path
RewriteRule ^old-category/(.*)$ /new-category/$1 [R=301,L]
ตรวจสอบ SSL Certificate บน Server ใหม่
ก่อนเปลี่ยน DNS ต้องตรวจสอบว่า SSL Certificate ของ server ใหม่พร้อมแล้ว ไม่ว่าจะใช้ Let's Encrypt หรือ Paid SSL ก็ตาม หากใช้ DirectAdmin สามารถออก SSL ได้จาก Control Panel โดยตรง
# ตรวจสอบ SSL Certificate หลัง server ใหม่พร้อม # (เปิดจากเครื่องที่แก้ hosts แล้ว) curl -I https://yourdomain.com --resolve yourdomain.com:443:1.2.3.4 # ตรวจ Certificate expiry date echo | openssl s_client -servername yourdomain.com \ -connect yourdomain.com:443 2>/dev/null | \ openssl x509 -noout -dates
เคล็ดลับมือโปร: ถ้าใช้ WordPress ให้เปลี่ยน siteurl และ home ใน Database ให้ชี้ไป server ใหม่ก่อนทดสอบเสมอ โดยอัพเดตผ่าน phpMyAdmin หรือ WP-CLI: wp search-replace 'http://old-server-ip' 'https://yourdomain.com' --all-tables มิฉะนั้นไฟล์ CSS/JS จะยังโหลดจาก server เก่าและหน้าเว็บจะพัง
ตารางเปรียบเทียบ: สิ่งที่ต้องตรวจทุกระยะของการย้าย
| ระยะ | สิ่งที่ต้องทำ | เครื่องมือ | ผลที่คาด |
|---|---|---|---|
| ก่อนย้าย (D-2) | บันทึก Baseline, ลด TTL, สร้าง Redirect Map | GSC, dig, Screaming Frog | TTL = 300 วินาที |
| วันย้าย (D-Day) | Backup ครบ, Upload ไฟล์, Import DB, ตั้ง SSL | FTP/SCP, mysqldump, DirectAdmin | เว็บทำงานบน server ใหม่ |
| ก่อนเปลี่ยน DNS | ทดสอบผ่าน /etc/hosts, ตรวจ SSL, ตรวจฟังก์ชัน | Browser, curl, openssl | ไม่มี Error 404/500 |
| เปลี่ยน DNS | Update A Record, ตรวจ Propagation | DNS Control Panel, whatsmydns.net | IP ใหม่ทั่วโลก <10 นาที |
| หลังย้าย (D+1) | ตรวจ GSC Error, Crawl บน server ใหม่, ตรวจ Speed | GSC, PageSpeed, curl | 0 Error, Speed ≥ เดิม |
การตรวจสอบหลังย้าย Hosting เสร็จแล้ว
หลังจาก DNS Propagate ครบทั้งโลกแล้ว การงานไม่ได้จบแค่นั้น ขั้นตอนการตรวจสอบหลังย้ายสำคัญไม่แพ้การย้ายตัวเว็บเลย เพราะนี่คือช่วงที่จะบอกได้ว่าทุกอย่างทำงานถูกต้องหรือมีส่วนใดที่พลาดไป
ตรวจสอบ Technical SEO ด้วย curl
# ตรวจ HTTP Status Code ของหน้าสำคัญ
curl -I https://yourdomain.com/
curl -I https://yourdomain.com/important-page.html
# ตรวจว่า HTTP redirect ไป HTTPS ได้ถูกต้อง
curl -I http://yourdomain.com/
# ตรวจ robots.txt
curl https://yourdomain.com/robots.txt
# ตรวจ sitemap
curl https://yourdomain.com/sitemap.xml | head -20
# ตรวจ Response Time (TTFB)
curl -o /dev/null -s -w "TTFB: %{time_starttransfer}s\n" \
https://yourdomain.com/
Checklist การตรวจสอบหลังย้าย
- ตรวจว่าทุกหน้าสำคัญตอบ HTTP 200 (ไม่มี 404, 500)
- ตรวจว่า HTTP redirect ไป HTTPS ทำงาน (301 ไม่ใช่ 302)
- ตรวจว่า www redirect ไป non-www (หรือกลับกัน ตามที่ตั้งไว้)
- ตรวจ SSL Certificate ใช้งานได้และ expiry date ถูกต้อง
- ตรวจ robots.txt ว่าไม่มีการ Disallow ผิดพลาด
- ตรวจ sitemap.xml เข้าถึงได้และไม่มี Error
- ตรวจว่า Google Search Console ไม่มี Error ใหม่ใน "Coverage" report
- ตรวจ PageSpeed Score เปรียบเทียบกับ Baseline ที่บันทึกไว้
- ทดสอบ Form, Login, Checkout ทุกอย่างที่เป็น Dynamic Function
- ตรวจ Email ยังรับ-ส่งได้ปกติ (ถ้า Email อยู่บน Hosting เดียวกัน)
ส่ง Sitemap ใหม่เข้า Google Search Console
หลังย้ายเสร็จแล้ว ให้เข้า Google Search Console แล้วส่ง Sitemap ใหม่เพื่อเร่งกระบวนการ Re-crawl ในกรณีที่มีการเปลี่ยน URL Structure ด้วย ให้ request indexing สำหรับ URL สำคัญ 5–10 หน้าแรก ผ่าน "URL Inspection" tool ด้วย
# ส่ง IndexNow (ถ้ามี key) เพื่อแจ้ง Bing + Yandex ด้วย
curl -X POST "https://api.indexnow.org/indexnow" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"host": "yourdomain.com",
"key": "YOUR_INDEXNOW_KEY",
"urlList": [
"https://yourdomain.com/",
"https://yourdomain.com/page1.html",
"https://yourdomain.com/page2.html"
]
}'
ความผิดพลาดที่พบบ่อยและวิธีหลีกเลี่ยง
จากประสบการณ์ช่วยเหลือลูกค้าหลายร้อยรายในการย้าย Hosting ต่อไปนี้คือความผิดพลาดที่พบบ่อยที่สุดและส่งผลกระทบต่อ SEO มากที่สุด
1. ลืม Migrate ไฟล์ Hidden
ไฟล์อย่าง .htaccess, .env, .htpasswd มักไม่ปรากฏใน FTP Client ทั่วไปถ้าไม่ได้ตั้งค่าให้แสดง Hidden Files ต้องตรวจสอบเสมอว่าได้ transfer ไฟล์เหล่านี้มาด้วย โดยเฉพาะ .htaccess ที่อาจมี Redirect Rules หรือ Cache Settings ที่สำคัญ
# ใน FileZilla: เปิด Server > Force showing hidden files # หรือใช้ SCP ซึ่งย้าย hidden files ด้วยโดยอัตโนมัติ scp -r oldserver:/home/user/public_html/. newserver:/home/user/public_html/
2. URL ใน Database ยังเป็นของ Server เก่า
เว็บที่สร้างด้วย WordPress มักเก็บ URL ของตัวเองไว้ใน Database ถ้า Migrate Database มาแล้วแต่ไม่ได้ Search & Replace URL ใน Database หน้าเว็บจะ load ไฟล์ CSS/JS/Image จาก server เก่าซึ่งอาจทำให้หน้าเว็บพัง
# ใช้ WP-CLI เพื่อ search-replace URL ใน Database wp search-replace 'https://old-domain.com' 'https://new-domain.com' \ --all-tables --precise --report-changed-only # หรือถ้าย้ายแค่ server (domain เดิม) แต่ IP เปลี่ยน # ให้ตรวจสอบ wp-config.php ว่า DB_HOST ถูกต้อง
3. ไม่ตั้ง Cron Jobs ใหม่
งาน Cron เช่น การส่ง Email Notification, การสร้าง Backup อัตโนมัติ หรือการ Purge Cache ไม่ได้ migrate มาพร้อมกับไฟล์ ต้องตั้งค่าใหม่บน Server ใหม่ด้วยตัวเอง ใน DirectAdmin ทำได้ผ่าน Cron Jobs Manager ใน Control Panel
4. ลืม Update Nameserver หรือ MX Record
ถ้าเว็บใช้ Email จาก Hosting เดียวกัน และมีการย้าย Email ด้วย ต้องตรวจสอบว่า MX Record ของโดเมนชี้ไปยัง server ใหม่แล้ว ไม่เช่นนั้น Email ที่ส่งมาในช่วงหลังย้ายจะยังไปถึง server เก่าหรือหายไปทั้งหมด
# ตรวจ MX Record ปัจจุบัน dig yourdomain.com MX +short # ตรวจว่า MX ชี้ไป server ใหม่แล้ว nslookup -type=MX yourdomain.com 8.8.8.8
SEO Timeline หลังย้าย Hosting: คาดหวังอะไรได้บ้าง
หลังย้าย Hosting เสร็จแล้วอย่าตกใจถ้าเห็นอันดับขึ้นลงในช่วงแรก เป็นเรื่องปกติที่ Google ต้องใช้เวลาในการ Re-index และประเมินใหม่ ต่อไปนี้คือ Timeline ที่พบบ่อยสำหรับเว็บทั่วไป
- วันที่ 1–3 หลังย้าย: Google เริ่ม crawl URLs หลักของเว็บ อาจเห็น "Crawl Stats" เพิ่มขึ้นใน GSC เป็นสัญญาณที่ดี
- สัปดาห์ที่ 1–2: อันดับ Keyword อาจขึ้นลงบ้าง (ปกติมาก) เพราะ Google กำลัง re-evaluate page quality บน server ใหม่
- สัปดาห์ที่ 2–4: ถ้าทำทุกอย่างถูกต้อง อันดับจะเริ่มกลับมาเสถียร บางเว็บอาจเห็นอันดับดีขึ้นถ้า server ใหม่เร็วกว่าเดิม
- หลัง 1 เดือน: ระยะ Stabilization ควรจบแล้ว ถ้ายังเห็นอันดับตกต่อเนื่องหลัง 4–6 สัปดาห์ ต้องตรวจสอบ Redirect, robots.txt, และ Server Error อย่างละเอียด
การติดตาม GSC Report ทุกสัปดาห์ในช่วง 4–6 สัปดาห์แรกหลังย้ายเป็นสิ่งที่ขาดไม่ได้ เพราะจะช่วยให้ตรวจพบปัญหาได้เร็วก่อนที่จะกระทบ Traffic จริง
คำถามที่พบบ่อย (FAQ)
ย้าย Hosting แล้วอันดับ SEO จะตกไหม
ถ้าวางแผนถูกต้องและทำ 301 Redirect ครบทุก URL อันดับ SEO จะไม่ตกอย่างถาวร Google ใช้เวลาประมาณ 1–4 สัปดาห์ในการ Re-crawl และ Re-index URL ใหม่ ในช่วงนั้นอาจเห็นอันดับขึ้นลงเล็กน้อย แต่ถ้า Redirect ทำงานถูกต้องและ Server ใหม่เสถียรพอ อันดับจะกลับมาปกติหรือดีขึ้นหากโฮสต์ใหม่มีความเร็วสูงกว่าเดิม
ต้องทำ 301 Redirect ทุก URL หรือไม่เมื่อย้าย Hosting
ถ้าย้ายระหว่าง Hosting แต่ยังใช้โดเมนเดิมและ URL Structure เดิม ไม่จำเป็นต้องทำ 301 Redirect เพราะ URL ยังเหมือนเดิมทุกอย่าง แต่ถ้าเปลี่ยน URL Structure ด้วย เช่น จาก /page.php เป็น /page.html หรือเพิ่ม/ลด Trailing Slash ต้องทำ 301 Redirect ทุก URL ที่เปลี่ยนแปลงเพื่อรักษา Link Equity และป้องกัน 404 Error
ควรลด TTL ของ DNS ก่อนย้าย Hosting กี่ชั่วโมง
ควรลด TTL ลงเหลือ 300 วินาที (5 นาที) ก่อนย้ายอย่างน้อย 24–48 ชั่วโมง เพื่อให้ DNS Cache ทั่วโลก Expire เร็วขึ้น เมื่อคุณเปลี่ยน A Record ไปชี้ Server ใหม่ DNS จะ Propagate ภายใน 5–10 นาทีแทนที่จะรอ 24–48 ชั่วโมงตาม TTL ปกติ หลังย้ายเสร็จและทดสอบได้แล้ว ค่อยเพิ่ม TTL กลับเป็น 3600 หรือ 86400
วิธีตรวจสอบว่า Hosting ใหม่ทำงานได้ก่อนเปลี่ยน DNS
ใช้ไฟล์ hosts ของเครื่องตัวเองชี้โดเมนไป IP ของ Server ใหม่ชั่วคราว เพื่อทดสอบเว็บบน Server ใหม่โดยที่ DNS ยังไม่เปลี่ยน บน macOS/Linux แก้ /etc/hosts เพิ่มบรรทัด '1.2.3.4 yourdomain.com' แล้วเปิดเบราว์เซอร์ทดสอบหน้าสำคัญ ฟังก์ชัน login, form, checkout ทุกอย่าง ถ้าทุกอย่างทำงานได้จึงค่อยเปลี่ยน DNS จริง
Hosting DirectAdmin ครบชุดของ AsiaGB
AsiaGB Hosting รองรับ DirectAdmin เต็มรูปแบบ PHP 8.3 MySQL เริ่มต้น 500 บาท/ปี
ดูแพ็กเกจ Hosting