ปัญหาหน้าเว็บเอกสารซ้ำซ้อน: ผลกระทบและวิธีแก้ไข SEO
แนวทางแก้ไขปัญหาหน้าเว็บเอกสารที่มีชื่อและคำอธิบายซ้ำกันใน Docusaurus, Starlight และ VitePress เพื่อปรับปรุง SEO

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
- Google แนะนำให้ทุกหน้าเว็บมีคำอธิบายและพาดหัวที่แตกต่างกัน
- เฟรมเวิร์กเอกสารมักดึงค่าเริ่มต้นมาใช้ซ้ำหากไม่ได้ระบุหน้า front matter
- สามารถใช้คำสั่ง grep ตรวจสอบไฟล์ HTML ที่สร้างขึ้นเพื่อหาแท็กที่ซ้ำกัน
- การกำหนด title และ description ใน front matter ของแต่ละหน้าคือทางแก้ที่ดีที่สุด
Google Search Central ย้ำเตือนอยู่เสมอว่าทุกหน้าเว็บควรมีคำอธิบาย (description) และพาดหัว (title) ที่ไม่ซ้ำกันและมีความหมายเฉพาะตัว หากเว็บไซต์เอกสารมีหน้าเว็บจำนวน 50 หน้าที่ใช้คำอธิบายเดียวกัน Google จะทำหน้าที่เลือกข้อความตัดตอน (snippet) จากเนื้อหาในหน้ามาแสดงเอง ส่งผลให้ผลการค้นหาหน้าเอกสารทั้งหมดดูคล้ายคลึงกัน และทำให้ผู้ใช้งานแยกแยะและเลือกหน้าที่ต้องการได้ยากขึ้น
สำหรับระบบเอกสารทั่วไป เช่น Docusaurus ค่าคำอธิบายจะถูกดึงมาจากฟิลด์ description ในส่วน front matter หากไม่มีการระบุ Docusaurus จะใช้บรรทัดแรกของเนื้อหา Markdown เป็นคำอธิบายแทน แม้ว่าจะมีการข้ามส่วน imports, บล็อกโค้ด และหัวข้อ # title ไปแล้ว แต่รูปแบบดังกล่าวก็ยังอาจทำให้เกิดข้อความที่ซ้ำกันได้ในหลายหน้า

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
ในส่วนของพาดหัว (titles) จะถูกดึงมาจากฟิลด์ title ใน front matter ตามด้วยหัวข้อ # heading ใน Markdown, รหัสของเอกสาร (doc id) และปิดท้ายด้วยชื่อเว็บไซต์ (site title) ตัวอย่างเช่น หากมีสองหน้าที่ใช้ชื่อว่า "Configuration" ในหมวดหมู่ที่แตกต่างกัน ก็จะกลายเป็นพาดหัว "Configuration | My Project" ที่เหมือนกันทุกประการ
ทุกหน้าเว็บจำเป็นต้องมีพาดหัว แต่คำอธิบายนั้นเป็นทางเลือก โดยใน Starlight หากไม่มีการตั้งค่าคำอธิบายเฉพาะ ระบบจะดึงค่าคำอธิบายระดับเว็บไซต์มาใช้กับทุกหน้าที่ไม่ได้ระบุค่าดังกล่าว ยิ่งมีหน้าเอกสารที่ไม่มีคำอธิบายใน front matter มากเท่าไร ก็จะมีจำนวนหน้าที่ใช้คำอธิบายเว็บไซต์ร่วมกันมากขึ้นเท่านั้น
การจัดการ SEO สำหรับเว็บไซต์เอกสาร (Documentation Site) มักเป็นจุดที่นักพัฒนาซอฟต์แวร์มองข้าม เนื่องจากเนื้อหาส่วนใหญ่เน้นไปที่การใช้งานโค้ดและคู่มือ API แต่ในความเป็นจริง เสิร์ชเอนจิ้นอย่าง Google ให้ความสำคัญกับความเฉพาะตัวของ Metadata อย่างมาก การปล่อยให้หน้าเอกสารนับร้อยหน้าใช้ Description เดียวกันทำให้เกิด Duplicate Content ในระดับ Meta Tags ซึ่งส่งผลโดยตรงต่ออันดับการค้นหาและการเข้าถึงคู่มือของนักพัฒนาท่านอื่น
สำหรับเฟรมเวิร์ก VitePress การตั้งค่าคำอธิบายในไฟล์ .vitepress/config จะแสดงผลบนทุกหน้าเว้นแต่จะถูกแทนที่ด้วยคำอธิบายใน front matter ของหน้านั้นๆ ในขณะที่พาดหัวจะถูกสร้างจาก title หรือแท็ก <h1> แรก พร้อมกับต่อท้ายด้วย titleTemplate ซึ่งประสบปัญหาความซ้ำซ้อนในลักษณะเดียวกัน
นักพัฒนาควรตรวจสอบโค้ด HTML ที่เฟรมเวิร์กสร้างขึ้นจริงไม่ใช่แค่ไฟล์ต้นฉบับ เนื่องจากตัวรวบรวมข้อมูล (crawlers) จะอ่านจากผลลัพธ์ดังกล่าว ตัวอย่างคำสั่งที่สามารถใช้ตรวจสอบคำอธิบายที่ซ้ำกันพร้อมจำนวนครั้งในการใช้งานผ่านเทอร์มินัลประกอบด้วย:
- ตรวจสอบคำอธิบายซ้ำ: grep -rhoE --include = '*.html' '<meta name="description" content="[^"]*">' build | sort | uniq -cd | sort -rn
- ตรวจสอบพาดหัวซ้ำ: grep -rlF --include = '*.html' 'content="Overview"' build
การแก้ไขปัญหาที่ตรงจุดที่สุดคือการกำหนดค่าทั้งฟิลด์ title และ description ใน front matter ของเอกสารแต่ละหน้าอย่างครบถ้วน นอกจากนี้ ฟิลด์ description ยังถูกนำไปใช้เป็นค่า og:description สำหรับการแชร์บนโซเชียลมีเดียอีกด้วย สำหรับเวอร์ชันเก่าที่ไม่ต้องการให้ปรากฏในผลการค้นหา สามารถตั้งค่า noIndex บนเวอร์ชันนั้นๆ ในตัวเลือกของปลั๊กอินเอกสารได้ทันที
ที่มา: Dev.to
พบข้อมูลผิดพลาดในบทความนี้? แจ้งปัญหาบทความนี้
ความคิดเห็น
แสดงความคิดเห็น