แนวทางปฏิบัติแนะนําเกี่ยวกับโครงสร้าง URL สําหรับ Google Search

ใช้โครงสร้าง URL ที่ทำการ Crawl ได้ซึ่งเป็นไปตามข้อกำหนดต่อไปนี้เพื่อให้ Google Search ทำการ Crawl เว็บไซต์ได้อย่างมีประสิทธิภาพ หาก URL ไม่เป็นไปตามเกณฑ์ต่อไปนี้ Google Search มีแนวโน้มที่จะทำการ Crawl เว็บไซต์อย่างไม่มีประสิทธิภาพ ซึ่งรวมถึงแต่ไม่จำกัดเพียงอัตราการ Crawl ที่สูงมาก หรือไม่ทำการ Crawl เลย

ข้อกำหนดสำหรับโครงสร้าง URL ที่ทำการ Crawl ได้

ปฏิบัติตาม IETF STD 66

Google Search รองรับ URL ที่กําหนดโดย IETF STD 66 อักขระที่กำหนดโดยมาตรฐานเป็นสงวนไว้ต้องเข้ารหัสด้วยเครื่องหมายเปอร์เซ็นต์

อย่าใช้ส่วนย่อย URLเพื่อเปลี่ยนเนื้อหา

อย่าใช้ส่วนย่อยเพื่อเปลี่ยนเนื้อหาของหน้าเว็บ เนื่องจากโดยทั่วไป Google Search ยังไม่รองรับส่วนย่อย URL ตัวอย่างส่วนย่อย URL

https://example.com/#/potatoes

หากคุณใช้ JavaScript เพื่อเปลี่ยนเนื้อหา ให้ใช้ History API แทน

ใช้การเข้ารหัสทั่วไปสำหรับพารามิเตอร์ของ URL

เมื่อระบุพารามิเตอร์ของ URL ให้ใช้การเข้ารหัสทั่วไปต่อไปนี้ เครื่องหมายเท่ากับ (=) เพื่อคั่นคู่คีย์-ค่าและเพิ่มพารามิเตอร์อื่นๆ ด้วยเครื่องหมายแอมเพอร์แซนด์ (&) หากต้องการแสดงค่าหลายรายการสำหรับคีย์เดียวกันภายในคู่คีย์-ค่า คุณสามารถใช้อักขระใดก็ได้ที่ไม่ขัดแย้งกับ IETF STD 66 เช่น เครื่องหมายคอมมา (,)

แนะนำ ไม่แนะนำ
ใช้เครื่องหมายเท่ากับ (=) เพื่อคั่นคู่คีย์-ค่า และใช้เครื่องหมายแอมเพอร์แซนด์ (&) เพื่อใส่พารามิเตอร์เพิ่มเติม ดังนี้
https://example.com/category?category=dresses&sort=low-to-high&sid=789
ใช้โคลอน (:) เพื่อคั่นคู่คีย์-ค่าและวงเล็บ ([ ]) เพื่อใส่พารามิเตอร์เพิ่มเติม ดังนี้
https://example.com/category?[category:dresses][sort:price-low-to-high][sid:789]
ใช้คอมมา (,) เพื่อแสดงค่าหลายรายการสำหรับคีย์เดียวกัน เครื่องหมายเท่ากับ (=) เพื่อคั่นคู่คีย์-ค่า และแอมเพอร์แซนด์ (&) เพื่อใส่พารามิเตอร์เพิ่มเติม ดังนี้
https://example.com/category?category=dresses&color=purple,pink,salmon&sort=low-to-high&sid=789
ใช้คอมมาเดี่ยว (,) เพื่อคั่นคู่คีย์-ค่า และใช้คอมมาคู่ (,,) เพื่อใส่พารามิเตอร์เพิ่มเติม ดังนี้
https://example.com/category?category,dresses,,sort,lowtohigh,,sid,789

ทําให้เข้าใจโครงสร้าง URL ได้ง่าย

เราขอแนะนําให้สร้างโครงสร้าง URL ที่เรียบง่ายและใช้แนวทางปฏิบัติแนะนําต่อไปนี้เมื่อเป็นไปได้ เพื่อช่วยให้ Google Search (และผู้ใช้) เข้าใจเว็บไซต์ของคุณได้ดียิ่งขึ้น

แนวทางปฏิบัติแนะนำ

ใช้ URL ที่สื่อความหมาย

หากเป็นไปได้ ให้ใช้คำที่อ่านได้ใน URL แทนที่จะเป็นตัวเลขรหัสยาวๆ

แนะนำ (คำที่สื่อความหมายและเข้าใจง่าย) ไม่แนะนำ (ตัวเลขรหัสยาวๆ ที่อ่านไม่ได้)
https://example.com/wiki/Aviation
https://example.com/index.php?topic=42&area=3a5ebc944f41daa6f849f730f1

ใช้ภาษาของกลุ่มเป้าหมาย

ใช้คำในภาษาของกลุ่มเป้าหมายใน URL (และคำที่ถอดเสียง หากมี) เช่น หากกลุ่มเป้าหมายค้นหาเป็นภาษาเยอรมัน ให้ใช้คำภาษาเยอรมันใน URL

https://example.com/lebensmittel/pfefferminz

หรือหากกลุ่มเป้าหมายค้นหาเป็นภาษาญี่ปุ่น ให้ใช้คำภาษาญี่ปุ่นใน URL

https://example.com/ペパーミント

ใช้การเข้ารหัสแบบ UTF-8 ตามที่จำเป็น

เมื่อลิงก์ไปยังหน้าในเว็บไซต์ ให้ใช้การเข้ารหัส UTF-8 ในแอตทริบิวต์ href ของลิงก์ตามที่จำเป็น ระบบอาจทิ้งอักขระ ASCII ที่ไม่ได้สงวนไว้ในรูปแบบที่ไม่เข้ารหัส นอกจากนี้ อักขระในช่วงที่ไม่ใช่ ASCII ควรเข้ารหัสแบบ UTF-8 เช่น

แนะนำ (การเข้ารหัส UTF-8) ไม่แนะนำ (อักขระที่ไม่ใช่ ASCII)
https://example.com/%D9%86%D8%B9%D9%86%D8%A7%D8%B9/%D8%A8%D9%82%D8%A7%D9%84%D8%A9
https://example.com/نعناع
https://example.com/%E6%9D%82%E8%B4%A7/%E8%96%84%E8%8D%B7
https://example.com/杂货/薄荷
https://example.com/gem%C3%BCse
https://example.com/gemüse
https://example.com/%F0%9F%A6%99%E2%9C%A8
https://example.com/🦙✨

ใช้ขีดกลางเพื่อแยกคำ

เราขอแนะนำให้แยกคำใน URL หากเป็นไปได้ กล่าวโดยละเอียดคือ เราขอแนะนำให้ใช้ขีดกลาง (-) แทนขีดล่าง (_) เพื่อแยกคำใน URL เนื่องจากจะช่วยให้ผู้ใช้และเครื่องมือค้นหาระบุแนวคิดใน URL ได้ดียิ่งขึ้น เราไม่แนะนำให้ใช้ขีดล่างด้วยเหตุผลที่ใช้มานาน เนื่องจากรูปแบบนี้มีการใช้กันโดยทั่วไปสำหรับบ่งบอกว่าเป็นคำที่ควรอยู่ด้วยกัน เช่น ภาษาโปรแกรมต่างๆ ใช้ขีดล่างในการตั้งชื่อฟังก์ชัน (เช่น format_date)

แนะนำ ไม่แนะนำ

การใช้ขีดกลาง (-) เพื่อแยกคำ

https://example.com/summer-clothing/filter?color-profile=dark-grey

การใช้ขีดล่าง (_) เพื่อแยกคํา

https://example.com/summer_clothing/filter?color_profile=dark_grey

การต่อคําเข้าด้วยกันใน URL

https://example.com/greendress

ใช้พารามิเตอร์ให้น้อยที่สุดเท่าที่จะทำได้

หากเป็นไปได้ ให้ทำให้ URL สั้นลงโดยตัดพารามิเตอร์ที่ไม่จำเป็นออก (หมายถึงพารามิเตอร์ที่ไม่เปลี่ยนแปลงเนื้อหา)

โปรดทราบว่า URL จะคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่

เช่นเดียวกับไคลเอ็นต์ HTTP อื่นๆ ที่เป็นไปตาม IETF STD 66 การจัดการ URL ของ Google Search จะคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ (เช่น Google จะถือว่าทั้ง /APPLE และ /apple เป็น URL ที่แตกต่างกันซึ่งมีเนื้อหาเป็นของตนเอง) หากเว็บเซิร์ฟเวอร์ถือว่าข้อความตัวพิมพ์ใหญ่และตัวพิมพ์เล็กใน URL เป็นข้อความเดียวกัน ให้แปลงข้อความทั้งหมดเป็นตัวพิมพ์แบบเดียวกันเพื่อให้ Google ระบุว่า URL เหล่านั้นอ้างอิงหน้าเดียวกันได้ง่ายขึ้น

สำหรับเว็บไซต์หลายภูมิภาค

หากเว็บไซต์เป็นแบบหลายภูมิภาค ให้พิจารณาใช้โครงสร้าง URL ที่ช่วยลดความยุ่งยากในการกำหนดเป้าหมายตามภูมิศาสตร์บนเว็บไซต์ ดูตัวอย่างเพิ่มเติมเกี่ยวกับวิธีจัดโครงสร้าง URL ได้ที่การใช้ URL ภาษาท้องถิ่น

แนะนำ (ใช้โดเมนเจาะจงประเทศ)

https://example.de

แนะนำ (ใช้ไดเรกทอรีย่อยเจาะจงประเทศที่มี gTLD)

https://example.com/de/

หลีกเลี่ยงปัญหาที่พบบ่อยเกี่ยวกับ URL

URL ที่ซับซ้อนเกินไป โดยเฉพาะ URL ที่มีพารามิเตอร์หลายตัว อาจทำให้เกิดปัญหาสำหรับโปรแกรมรวบรวมข้อมูลโดยสร้าง URL ซึ่งชี้ไปยังเนื้อหาที่เหมือนกันหรือคล้ายคลึงกันในเว็บไซต์ของคุณในจำนวนที่มากเกินจำเป็น ดังนั้น Googlebot อาจใช้แบนด์วิดท์เกินกว่าที่จำเป็นมาก หรือ Google Search อาจจัดทำดัชนีเนื้อหาทั้งหมดในเว็บไซต์ได้ไม่สมบูรณ์

URL จำนวนมากที่ไม่มีความจำเป็นสามารถเกิดจากปัญหาหลายประการ ดังนี้:

ปัญหาที่พบได้ทั่วไป

การกรองชุดรายการที่เพิ่มตัวกรองแยกย่อย

การกรองชุดของรายการที่เพิ่มตัวกรองแยกย่อย เว็บไซต์หลายแห่งแสดงมุมมองที่แตกต่างกันสำหรับชุดรายการหรือผลการค้นหาเดียวกัน ซึ่งมักจะให้ผู้ใช้กรองชุดรายการนี้โดยใช้เกณฑ์ที่กำหนดไว้ (ตัวอย่างเช่น แสดงชื่อโรงแรมริมชายหาด) เมื่อสามารถรวมตัวกรองเข้าด้วยกันได้โดยการเพิ่มตัวกรองเข้ามา (ตัวอย่างเช่น โรงแรมริมชายหาดและมีศูนย์ออกกำลังกาย) จำนวน URL (มุมมองของข้อมูล) ในเว็บไซต์ก็จะเพิ่มสูงขึ้น การสร้างรายชื่อโรงแรมที่แตกต่างกันเล็กน้อยเป็นจำนวนมากถือเป็นเรื่องที่ซ้ำซ้อน เนื่องจาก Googlebot ต้องการเห็นรายชื่อเพียงจำนวนเล็กน้อยที่ทำให้สามารถเข้าถึงหน้าเว็บของโรงแรมแต่ละแห่งได้ ตัวอย่างเช่น

  • โรงแรม "ราคาพิเศษ":
    https://example.com/hotel-search-results.jsp?Ne=292&N=461
  • โรงแรม “ราคาพิเศษ” ริมชายหาด:
    https://example.com/hotel-search-results.jsp?Ne=292&N=461+4294967240
  • โรงแรม "ราคาพิเศษ" ริมชายหาดและมีศูนย์ออกกำลังกาย:
    https://example.com/hotel-search-results.jsp?Ne=292&N=461+4294967240+4294967270

พารามิเตอร์ที่ไม่เกี่ยวข้อง

พารามิเตอร์ที่ไม่เกี่ยวข้องใน URL อาจทําให้ URL จำนวนมาก เช่น

  • พารามิเตอร์การอ้างอิง
    https://example.com/search/noheaders?click=6EE2BF1AF6A3D705D5561B7C3564D9C2&clickPage=OPD+Product+Page&cat=79
    https://example.com/discuss/showthread.php?referrerid=249406&threadid=535913
    https://example.com/products/products.asp?N=200063&Ne=500955&ref=foo%2Cbar&Cn=Accessories
  • พารามิเตอร์การจัดเรียงรายการช็อปปิ้ง
    https://example.com/results?search_type=search_videos&search_query=tpb&search_sort=relevance&search_category=25
  • รหัสเซสชัน
    https://example.com/search/noheaders?sessionid=6EE2BF1AF6A3D705D5561B7C3564D9C2

โปรดพิจารณาใช้ไฟล์ robots.txt เพื่อบล็อก Googlebot ไม่ให้เข้าถึง URL ที่มีปัญหาเหล่านี้

ปัญหาเกี่ยวกับปฏิทิน

ปฏิทินที่สร้างแบบไดนามิกอาจสร้างลิงก์ไปยังวันที่ในอนาคตหรือวันที่ที่ผ่านมาแล้วโดยไม่มีข้อจำกัดสำหรับวันที่เริ่มต้นหรือวันสิ้นสุด เช่น

https://example.com/calendar.php?d=13&m=8&y=2011

หากเว็บไซต์มีปฏิทินที่ไม่จำกัด ให้เพิ่มแอตทริบิวต์ nofollow ให้กับลิงก์ไปยังหน้าปฏิทินในอนาคตซึ่งสร้างแบบไดนามิก

การวาง Relative Link หลักในหน้าที่ไม่ถูกต้องอาจสร้างเว้นวรรคที่ไม่มีที่สิ้นสุดหากเซิร์ฟเวอร์ไม่ตอบกลับด้วยรหัสสถานะ HTTP ที่ถูกต้องสำหรับหน้าเว็บที่ไม่มีอยู่ เช่น Relative Link หลักอย่าง <a href="../../category/stuff">...</a> ใน https://example.com/category/community/070413/html/FAQ.htm อาจพาไปยัง URL ที่ไม่มีจริง เช่น https://example.com/category/community/category/stuff วิธีแก้ไขคือใช้ Relative URL รูทในลิงก์ (แทนการใช้ Relative URL หลัก)

การแก้ไขปัญหาโครงสร้าง URL ที่เกี่ยวข้องกับการ Crawl

หากคุณสังเกตเห็นว่า Google Search ทำการ Crawl URL ที่มีปัญหาเหล่านี้ เราขอแนะนําให้ทําดังนี้