WordPress
Permalink คืออะไร และทำไมสำคัญกับ SEO?
Permalink (Permanent Link) คือ URL ถาวรของแต่ละหน้าหรือบทความใน WordPress เช่น https://example.com/wordpress-tutorial/ แทนที่จะเป็น https://example.com/?p=123 ซึ่งไม่บอกอะไรเลยทั้งต่อผู้ใช้และ Google
URL ที่ดีช่วยให้ Search Engine เข้าใจเนื้อหาของหน้านั้นทันทีโดยไม่ต้องอ่านเนื้อหา ผู้ใช้คลิกได้อย่างมั่นใจมากขึ้น และเป็นปัจจัย On-page SEO ที่ Google ให้ความสำคัญมาตลอด
โดยค่าเริ่มต้น WordPress จะตั้ง Permalink เป็น ?p=123 ซึ่งเลวร้ายมากสำหรับ SEO ขั้นตอนแรกหลังติดตั้ง WordPress คือต้องเปลี่ยน Permalink Structure ให้เหมาะสมเสมอ
เปรียบเทียบรูปแบบ Permalink ใน WordPress
WordPress มี Permalink Structure ให้เลือกหลายแบบ แต่ละแบบมีข้อดีข้อเสียต่างกัน:
- Plain (
?p=123) — ค่าเริ่มต้น ไม่มีข้อมูลอะไร ไม่ควรใช้เด็ดขาด - Day and name (
/2026/06/13/sample-post/) — URL ยาวเกินไป วันที่ทำให้บทความดูเก่าหลังผ่านไปหลายปี - Month and name (
/2026/06/sample-post/) — ดีกว่าแบบแรก แต่ยังมีวันที่อยู่ - Numeric (
/archives/123) — ไม่มีคำสำคัญ ไม่ดีสำหรับ SEO - Post name (
/sample-post/) — แนะนำที่สุดสำหรับ Blog และเว็บทั่วไป สั้นและมี Keyword - Custom Structure (
/%category%/%postname%/) — ยืดหยุ่นสูง เหมาะสำหรับเว็บที่มีหมวดหมู่ชัดเจน
/%postname%/) เพราะสั้น มี Keyword จาก Slug และไม่มีวันที่ที่ทำให้ดูเก่าวิธีตั้งค่า Permalink ผ่าน WordPress Admin
- เข้าสู่ระบบ WordPress Admin ที่
yoursite.com/wp-admin - ไปที่เมนู Settings → Permalinks
- เลือก Post name หรือ Custom Structure ตามต้องการ
- หากเลือก Custom ให้พิมพ์
/%postname%/ในช่อง Custom Structure - คลิก Save Changes
WordPress จะเขียนกฎ Rewrite ลงใน .htaccess โดยอัตโนมัติ (บน Shared Hosting ที่ใช้ Apache) ทำให้ URL สวยงามทำงานได้ทันที
ตั้งค่า Slug บทความให้ดี SEO
นอกจาก Structure แล้ว Slug ของแต่ละบทความก็สำคัญไม่แพ้กัน Slug คือส่วน URL ที่ระบุบทความนั้น เช่น wordpress-permalink-seo ใน URL /wordpress-permalink-seo/
หลักการตั้ง Slug ที่ดี:
- ใช้ภาษาอังกฤษเสมอ แม้บทความจะเขียนภาษาไทย เพราะภาษาไทยใน URL จะถูก Encode เป็น %E0%B8%9A%E0%B8%97%E0%B8%84%E0%B8%A7%E0%B8%B2%E0%B8%A1 ซึ่งยาวมาก
- ใช้คำสำคัญหลัก (Main Keyword) ที่ต้องการ Rank อยู่ใน Slug
- คั่นคำด้วย
-(hyphen) ไม่ใช่_(underscore) - ความยาว Slug ควรอยู่ที่ 3-5 คำ ไม่ยาวเกินไป
- ตัดคำไม่สำคัญออก เช่น "a", "the", "and", "of", "in"
ตัวอย่าง Slug ที่ดี: wordpress-speed-optimization, ssl-certificate-install, cpanel-email-setup
ตัวอย่าง Slug ที่ควรหลีกเลี่ยง: how-to-install-and-setup-ssl-certificate-on-your-website (ยาวเกิน), post-12345 (ไม่มี Keyword)
ผลกระทบเมื่อเปลี่ยน Permalink บนเว็บที่มีอยู่แล้ว
หากเว็บมีผู้เยี่ยมชมและถูก Google Index แล้ว การเปลี่ยน Permalink Structure จะทำให้ URL เก่าทั้งหมดกลายเป็น 404 ทันที นี่คือสิ่งที่ต้องทำก่อนและหลังการเปลี่ยน:
- ก่อนเปลี่ยน: Export รายการ URL เก่าทั้งหมดจาก Google Search Console หรือ Sitemap
- ตั้ง Redirect 301: เพิ่ม Redirect จาก URL เก่าไปยัง URL ใหม่ทุกหน้า
- อัพเดท Sitemap: สร้าง Sitemap ใหม่และ Submit ใน Google Search Console
- Request Indexing: ใช้ URL Inspection Tool ใน Search Console ขอให้ Google Crawl URL ใหม่
ตั้งค่า .htaccess สำหรับ Permalink บน Shared Hosting
บน Shared Hosting ที่ใช้ Apache, WordPress จะเขียน .htaccess อัตโนมัติเมื่อ Save Permalink Settings แต่หากระบบไม่มีสิทธิ์เขียนไฟล์ คุณต้องเพิ่มโค้ดนี้ด้วยตนเองผ่าน cPanel → File Manager:
# 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
โค้ดนี้จะบอก Apache ว่า URL ที่ไม่ตรงกับไฟล์หรือโฟลเดอร์จริงให้ส่งต่อไปให้ WordPress จัดการ ซึ่งเป็นหลักการทำงานของ Pretty Permalink
การเพิ่ม Redirect 301 หลังเปลี่ยน Permalink
หากจำเป็นต้องเปลี่ยน Permalink บนเว็บที่ทำงานอยู่แล้ว ให้เพิ่ม Redirect 301 ใน .htaccess ก่อน # BEGIN WordPress:
# Redirect เก่า → ใหม่ (ตัวอย่าง)
Redirect 301 /2024/05/wordpress-tips/ /wordpress-tips/
Redirect 301 /2024/06/cpanel-guide/ /cpanel-guide/
Redirect 301 /?p=123 /wordpress-permalink-seo/
# หรือใช้ RedirectMatch สำหรับ Pattern เดียวกันหลาย URL
RedirectMatch 301 ^/([0-9]{4})/([0-9]{2})/([0-9]{2})/(.+)/$ /$4/
ตรวจสอบว่า Permalink ทำงานถูกต้อง
หลังตั้งค่า Permalink เสร็จแล้ว ให้ตรวจสอบด้วยขั้นตอนนี้:
# 1. ทดสอบว่า .htaccess ถูก Apache อ่านหรือไม่ (ผ่าน SSH หรือดูจาก Error Log ใน cPanel)
# เปิด Error Log ใน cPanel → Logs → Error Log
# 2. ทดสอบ URL ด้วย curl (ถ้ามี SSH)
curl -I https://yoursite.com/sample-post/
# ควรได้ HTTP/2 200 ไม่ใช่ 404
# 3. ทดสอบ Redirect เก่า
curl -I https://yoursite.com/?p=1
# ควรได้ 301 Moved Permanently และ Location: ชี้ไป URL ใหม่
# 4. ตรวจสอบ mod_rewrite เปิดอยู่หรือไม่
# สร้างไฟล์ phpinfo.php ใน cPanel → File Manager
# เปิด yoursite.com/phpinfo.php แล้วค้นหาคำว่า "mod_rewrite"
# 5. ตรวจสอบ Sitemap ส่ง URL ใหม่หรือยัง
curl https://yoursite.com/sitemap.xml | grep -o '<loc>[^<]*</loc>' | head -10
แก้ปัญหาที่พบบ่อย
Error: หน้าบทความแสดง 404 ทุกหน้า หลังตั้ง Permalink
สาเหตุหลักคือ mod_rewrite ปิดอยู่หรือ WordPress ไม่มีสิทธิ์เขียน .htaccess วิธีแก้:
- เข้า cPanel → File Manager → ตรวจสอบว่ามีไฟล์
.htaccessที่ Root ของเว็บหรือไม่ - ถ้าไม่มี ให้สร้างใหม่และวางโค้ด WordPress Rewrite Rules ด้วยตนเอง (ตามโค้ดด้านบน)
- ตรวจสอบ Permission ของ
.htaccessควรเป็น644ไม่ใช่000หรือ400 - ติดต่อ Hosting Support เพื่อให้เปิด
mod_rewriteหากยังไม่ทำงาน
Error: หน้าแรกปกติ แต่หน้า 2 ของ Blog (/page/2/) แสดง 404
ปัญหานี้มักเกิดเพราะ WordPress มีหน้า Static Front Page และ Blog Page ตั้งไม่ถูก วิธีแก้:
- ไปที่ Settings → Reading ตรวจสอบว่าตั้ง "Posts page" ถูกหน้าหรือไม่
- ไปที่ Settings → Permalinks กด Save Changes อีกครั้ง (ไม่ต้องเปลี่ยนอะไร) เพื่อ Flush Rewrite Rules
- ติดตั้ง Plugin Yoast SEO หรือ Rank Math เพื่อให้มีการจัดการ Permalink ที่ดีขึ้น
Error: เปลี่ยน Slug บทความแล้ว Google ยังแสดง URL เก่า
Google Cache อาจยังเก็บ URL เก่าอยู่ได้นานถึง 30-90 วัน วิธีเร่งให้เร็วขึ้น:
- ตั้ง Redirect 301 จาก Slug เก่าไปยัง Slug ใหม่ทันที (อย่าปล่อยให้ 404)
- เข้า Google Search Console → URL Inspection → ใส่ URL ใหม่ → Request Indexing
- อัพเดท Sitemap และ Submit ใหม่ใน Search Console
- แชร์ URL ใหม่บน Social Media เพื่อเพิ่ม Signal ให้ Google Crawl เร็วขึ้น
Error: URL มีภาษาไทยและถูก Encode เป็น %XX%XX ยาวมาก
WordPress บางเวอร์ชันหรือ Plugin บางตัวอาจใส่ภาษาไทยใน Slug ให้อัตโนมัติเมื่อบันทึกบทความ วิธีแก้:
- แก้ Slug ด้วยตนเองทุกครั้งก่อน Publish โดยไปที่ช่อง "Permalink" ใต้ Title ใน Editor
- ติดตั้ง Plugin WP Slug Translate หรือตั้ง Slug เป็นภาษาอังกฤษก่อน Save
- หรือใช้ Auto Slug Generation ผ่าน Plugin SEO ที่สร้าง Slug จาก Focus Keyword ภาษาอังกฤษ
Error: Redirect Loop (ERR_TOO_MANY_REDIRECTS)
มักเกิดเมื่อ WordPress อยู่หลัง Reverse Proxy หรือ Cloudflare แบบ Flexible SSL วิธีแก้:
- เพิ่มโค้ดนี้ใน
wp-config.phpก่อนบรรทัด/* That's all, stop editing! */:
// แก้ปัญหา Redirect Loop บนเว็บที่ใช้ Cloudflare Flexible SSL
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) &&
$_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
$_SERVER['HTTPS'] = 'on';
}
// หรือตั้ง WordPress URL โดยตรง
define('WP_HOME', 'https://yoursite.com');
define('WP_SITEURL', 'https://yoursite.com');
คำถามที่พบบ่อย
Q: ต้องเปลี่ยน Permalink บ่อยแค่ไหน?
A: ควรตั้งค่า Permalink Structure ให้ถูกต้องตั้งแต่แรก แล้วไม่เปลี่ยนอีก เพราะการเปลี่ยน Structure ทีหลังจะทำให้ URL ทั้งหมดเปลี่ยนและต้องทำ Redirect 301 ทุกหน้า ซึ่งยุ่งยากมาก ส่วน Slug ของแต่ละบทความก็ควรตั้งให้ดีตั้งแต่ก่อน Publish และไม่เปลี่ยนหลังจาก Google Index แล้ว
Q: ควรใส่ Category ใน Permalink หรือไม่ เช่น /%category%/%postname%/?
A: ขึ้นอยู่กับประเภทเว็บ เว็บ E-commerce หรือเว็บที่มีโครงสร้างหมวดหมู่ชัดเจนอาจใช้ /%category%/%postname%/ ได้ดี แต่สำหรับ Blog ทั่วไปแนะนำให้ใช้ /%postname%/ เพราะสั้นกว่า และถ้าต้องย้ายบทความข้ามหมวดหมู่ในอนาคต URL จะไม่เปลี่ยน
Q: Shared Hosting รองรับ Pretty Permalink ได้ไหม?
A: รองรับ แทบทุก Shared Hosting ในปัจจุบันใช้ Apache พร้อม mod_rewrite เปิดอยู่แล้ว WordPress จะเขียน .htaccess ให้อัตโนมัติเมื่อ Save Permalink Settings หากมีปัญหาให้ติดต่อ Hosting Support เพื่อขอให้ตรวจสอบว่า mod_rewrite เปิดอยู่ และ Directory มี AllowOverride All