PINQ - ชุดข้อมูลที่สอบปากคำ การค้นหาแบบ Faceted ดัชนีประกอบในตัว Patching JQuery UI Slider: การตั้งค่าการเปลี่ยนเส้นทาง

( "query": ( "และ": [ ( "terms": ("country": ["be", "fr"]) ), ( "terms": ("หมวดหมู่": ["หนังสือ", "ภาพยนตร์ " "]) ) ] ) )

สำหรับตัวนับ เราสามารถใช้การรวมตัวในตัวจาก Elasticsearch แต่ละแง่มุมจะถูกจัดเก็บเป็นช่องเดียวในดัชนี ดังนั้นเราจึงสามารถใช้การรวมคำศัพท์ในแต่ละช่องเหล่านี้ได้ การรวมจะส่งกลับตัวนับสำหรับค่าของฟิลด์นี้

( "query": ( "และ": [ ( "terms": ("country": ["be", "fr"]) ), ( "terms": ("หมวดหมู่": ["หนังสือ", "ภาพยนตร์ " "]) ) ]), "การรวมกลุ่ม": ( "ประเทศ": ( "เงื่อนไข": ("ฟิลด์": "ประเทศ")), "หมวดหมู่": ( "เงื่อนไข": ("ฟิลด์": "หมวดหมู่" ) ) ) )

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

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

( "query": ( "และ": [ ( "terms": ("country": ["be", "fr"]) ), ( "terms": ("หมวดหมู่": ["หนังสือ", "ภาพยนตร์ " "]) ) ]), "การรวมกลุ่ม": ( "all_products": ( "global": (), "การรวมกลุ่ม": ( "ประเทศ": ( "เงื่อนไข": ("ฟิลด์": "ประเทศ")), " หมวดหมู่": ( "เงื่อนไข": ("ฟิลด์": "หมวดหมู่") ) ) ) ) )

หากเราทำเช่นนี้ ตัวนับของเราจะเหมือนเดิมเสมอ เนื่องจากพวกมันจะนับรวมชุดข้อมูลทั้งหมดเสมอ ไม่ว่าตัวกรองของเราจะเป็นอย่างไร หน่วยของเราต้องซับซ้อนขึ้นอีกเล็กน้อย เพื่อให้ได้ผล เราต้องเพิ่มตัวกรองเข้าไป การรวมแต่ละรายการต้องอาศัยชุดข้อมูลที่ใช้ตัวกรองทั้งหมด ยกเว้นชุดข้อมูลของตัวเอง ดังนั้น การรวมตามบัญชีในฝรั่งเศสจะนับตามชุดข้อมูลที่ใช้ตัวกรองหมวดหมู่ แต่ไม่ใช่ตัวกรองประเทศ:

( "query": ( "และ": [ ( "terms": ("country": ["be", "fr"]) ), ( "terms": ("หมวดหมู่": ["หนังสือ", "ภาพยนตร์ " "]) ) ]), "aggregations": ( "all_products": ( "global": (), "aggregations": ( "ประเทศ": ( "ตัวกรอง": ( "และ": [ ( "terms": ( "category": ["หนังสือ", "ภาพยนตร์"]) ) ] ), "aggregations": ( "filtered_countries": ( "terms": ("field": "country") ) ) ), "categories": ( "filter": ( "และ": [ ( "terms": ("ประเทศ": ["be","fr"]) ) ]), "aggregations": ( "filtered_categories": ( "terms": ( " ฟิลด์": "หมวดหมู่") ) ) ) ) ) ) )

( "took": 153, "timed_out": false, "_shards": ( "total": 5, "successful": 5, "failed": 0), "hits": ( "total": 3, "max_score" ": 0, "hits": ["..."]), "aggregations": ( "all_products": ( "doc_count": 21, "หมวดหมู่ที่กรอง": ( "doc_count": 13, "categories": ( "doc_count_error_upper_bound": 0, "sum_other_doc_count": 0, "buckets": [ ( "key": "movies", "doc_count": 6 ), ( "key": "music", "doc_count": 4 ), ( "key": "books", "doc_count": 3 ) ] ) ), "filtered_countries": ( "doc_count": 15, "countries": ( "doc_count_error_upper_bound": 0, "sum_other_doc_count": 0, "buckets": [ ( "คีย์": "fr", "doc_count": 6 ), ( "คีย์": "br", "doc_count": 4 ), ( "คีย์": "be", "doc_count": 3 ), ( "คีย์": "pt", "doc_count": 2 ) ] ) ) ) ) )

กรอบงาน Yii2 $terms = QueryHelper::terms("categories.name" , "my category" ) ;

$nested = QueryHelper:: ซ้อนกัน ("string_facet" , QueryHelper:: filter ([ QueryHelper:: term ("string_facet.facet_name" , [ "value" => $id , "boost" => 1 ] ) , QueryHelper:: เทอม ("string_facet.facet_value" , ​​​​[ "value" => $value , "boost" => 1 ] ) , ] ) ) ; $filter = QueryHelper::should ($ซ้อน) ;การนำทางแบบประกอบเป็นปัญหาสำหรับไซต์อีคอมเมิร์ซทั้งหมด จำนวนหน้าเว็บที่มากเกินไปที่ใช้สำหรับองค์ประกอบเดียวกันในรูปแบบต่างๆ ก่อให้เกิดภัยคุกคามต่อประสิทธิภาพการค้นหา สิ่งนี้สามารถส่งผลเสียต่อ SEO และ

ประสบการณ์ผู้ใช้

- ผู้เชี่ยวชาญจากบล็อก SEO Hacker อธิบายว่าการนำทางแบบประกอบคืออะไรและจะปรับปรุงอย่างไร

แง่มุมและตัวกรองแตกต่างกัน นี่คือความแตกต่าง:

  • Facets เป็นหมวดหมู่ที่จัดทำดัชนีไว้ ช่วยปรับแต่งรายการผลิตภัณฑ์และทำหน้าที่เป็นส่วนขยายของหมวดหมู่หลัก แง่มุมต่างๆ จะเพิ่มความหมายที่เป็นเอกลักษณ์ให้กับแต่ละตัวเลือกที่ผู้ใช้เลือก เนื่องจากมีการจัดดัชนีแง่มุมต่างๆ จึงต้องส่งสัญญาณที่เกี่ยวข้องไปยังเครื่องมือค้นหา เพื่อให้แน่ใจว่าหน้านั้นมีคุณลักษณะที่สำคัญทั้งหมด

  • ตัวกรองใช้เพื่อจัดเรียงและปรับแต่งรายการภายในรายการ จำเป็นสำหรับผู้ใช้ แต่ไม่ใช่สำหรับเครื่องมือค้นหา ตัวกรองไม่ได้รับการจัดทำดัชนีเนื่องจากไม่ได้เปลี่ยนเนื้อหาของหน้า แต่จะเรียงลำดับตามลำดับอื่นเท่านั้น ส่งผลให้ URL หลายรายการมีเนื้อหาที่ซ้ำกัน

ปัญหาที่อาจเกิดขึ้น

ชุดค่าผสมด้านต่างๆ ที่เป็นไปได้แต่ละชุดจะมี URL เฉพาะของตัวเอง มันอาจทำให้เกิดปัญหาบางอย่างจากมุมมองของ SEO นี่คือสิ่งหลัก:

  • เนื้อหาที่ซ้ำกัน
  • เปลืองงบประมาณในการสแกน
  • ขจัดข้อแตกต่างของลิงก์

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

ความน่าจะเป็นของการกินเนื้อคนก็เพิ่มขึ้นเช่นกัน คำหลัก- หน้าเว็บหลายหน้าพยายามจัดอันดับด้วยคำหลักเดียวกัน ส่งผลให้มีความสอดคล้องน้อยลงและมีการจัดอันดับต่ำลง ปัญหานี้สามารถหลีกเลี่ยงได้หากคำหลักแต่ละคำถูกกำหนดเป้าหมายไปยังหน้าเดียวเท่านั้น

โซลูชั่นการนำทางแบบเหลี่ยมเพชรพลอย

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

อาแจ็กซ์

หากคุณใช้ AJAX ระบบจะไม่สร้าง URL ใหม่เมื่อผู้ใช้คลิกที่ข้อมูลประกอบหรือตัวกรอง เนื่องจากจะไม่มี URL ที่ไม่ซ้ำสำหรับทุกๆ แง่มุมที่เป็นไปได้ ปัญหาเรื่องเนื้อหาที่ซ้ำกัน การแบ่งคำหลักร่วมกัน และต้นทุนการจัดทำดัชนีที่สูญเปล่าจึงอาจหมดไป

AJAX จะมีผลก่อนที่จะมีการเปิดตัวไซต์อีคอมเมิร์ซเท่านั้น ไม่ได้ใช้เพื่อแก้ไขปัญหาทรัพยากรที่มีอยู่ วิธีนี้ยังต้องเสียค่าใช้จ่ายในส่วนของคุณด้วย

แท็ก noindex

แท็ก noindex ใช้เพื่อบอกให้บอทแยกหน้าใดหน้าหนึ่งออกจากดัชนี วิธีนี้จะไม่ปรากฏในผลการค้นหาของ Google ซึ่งจะช่วยลดจำนวนเนื้อหาที่ซ้ำกันที่ปรากฏในดัชนีและผลการค้นหา

การดำเนินการนี้ไม่สามารถแก้ปัญหางบประมาณการรวบรวมข้อมูลได้ เนื่องจากบอทจะยังคงเยี่ยมชมเพจของคุณ แถมยังไม่ได้ช่วยกระจายคุณค่าของลิงค์อีกด้วย

แอตทริบิวต์ rel=canonical

ด้วยแอตทริบิวต์นี้ คุณจะบอก Google ว่าคุณมีหน้าหลักที่ต้องการในการจัดทำดัชนีและจัดอันดับ 1 หน้า และเนื้อหาเวอร์ชันอื่นๆ ทั้งหมดจากหน้านั้นเป็นเพียงหน้าซ้ำที่ไม่จำเป็นต้องจัดทำดัชนี

โซเฟีย อิบรากิโมวา

นักการตลาดเนื้อหา

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

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

Robots.txt

การบล็อกบางหน้าจากการจัดทำดัชนีช่วยให้คุณบรรลุผลสำเร็จ ผลลัพธ์ที่ดี- มันง่ายรวดเร็วและ วิธีที่เชื่อถือได้- วิธีที่ง่ายที่สุดในการทำเช่นนี้คือการตั้งค่าตัวเลือกแบบกำหนดเองเพื่อระบุการผสมผสานแง่มุมและตัวกรองที่เป็นไปได้ทั้งหมดที่คุณต้องการบล็อก รวมไว้ที่ส่วนท้ายของแต่ละ URL ที่คุณต้องการซ่อน (http://ที่อยู่เต็มหน้า/robots.txt) หรือใช้เมตาแท็ก Robots ในพื้นที่ HEAD ของโค้ดหน้า

เมื่อทำการเปลี่ยนแปลง URL โปรดทราบว่าโรบ็อตจะใช้เวลาประมาณ 3-4 สัปดาห์ในการสังเกตและตอบสนองต่อการเปลี่ยนแปลงเหล่านี้

มีปัญหาบางอย่างที่นี่เช่นกัน ค่าของลิงก์จะถูกจำกัด และ URL ที่ถูกบล็อกอาจถูกจัดทำดัชนีเนื่องจากมีลิงก์ภายนอก

คอนโซล ค้นหาโดย Google

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

  • เข้าสู่ระบบ บัญชีคอนโซลและเลือกส่วน "รวบรวมข้อมูล":

  • คลิกที่ปุ่ม "พารามิเตอร์ URL":

  • ระบุผลกระทบที่การตั้งค่าแต่ละรายการจะมีต่อหน้าเว็บ และวิธีที่คุณต้องการให้ Google ปฏิบัติต่อหน้าเหล่านั้น

โปรดทราบว่าวิธีนี้จะซ่อนเฉพาะเนื้อหาที่ซ้ำกันจากโปรแกรมรวบรวมข้อมูลของ Google หน้าต่างๆ จะยังคงปรากฏใน Bing และ Yahoo

วิธีการปรับปรุงการนำทางแบบ Faceted

ลองพิจารณาวิธีการทั้งหมดที่ช่วยให้คุณสร้างการนำทางแบบประกอบที่ถูกต้องโดยสังเขป:

  • การใช้ AJAX
  • ลบหรือซ่อนลิงก์ไปยังหมวดหมู่หรือกรองหน้าที่มีเนื้อหาขาดหายไป
  • อนุญาตให้จัดทำดัชนีชุดค่าผสมของแง่มุมบางรายการที่มีปริมาณการค้นหาสูง
  • การตั้งค่าลำดับชั้นของไซต์ผ่านเบรดครัมบ์ในหมวดหมู่และหมวดหมู่ย่อย
  • การสร้างหน้ามาตรฐาน (หลัก) สำหรับเนื้อหาที่ซ้ำกัน
  • รวมคุณสมบัติการจัดทำดัชนีจากหน้าส่วนประกอบทั่วทั้งชุดโดยใช้มาร์กอัปหน้าด้วย rel="next" และ rel="prev"
บทสรุป

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

คนยุคใหม่พยายามใช้เวลาช้อปปิ้งน้อยลงเรื่อยๆ แคตตาล็อกผลิตภัณฑ์ที่ช้าทำให้ลูกค้าหนีไป ร้านค้าสูญเสียลูกค้าและผลกำไรส่วนหนึ่ง ทำให้ร้านค้าออนไลน์ของคุณน่าสนใจยิ่งขึ้นด้วยเทคโนโลยี facet Facet - เช่น ที่กำหนดไว้ล่วงหน้า ค้นหา. สร้างดัชนีประกอบและเร่งการค้นหาผลิตภัณฑ์และการทำงานของแค็ตตาล็อกทั้งหมดได้อย่างมาก

หมายเหตุ: กลไกการค้นหาแบบประกอบมีให้ใช้งานตั้งแต่เวอร์ชัน 15.0.1 ของโมดูล Information Blocks และรวมเข้ากับส่วนประกอบ ส่วนประกอบคือโค้ดโปรแกรมที่ออกแบบในวิชวลเชลล์ที่ทำหน้าที่เฉพาะของโมดูลเพื่อแสดงข้อมูลในสาธารณะ ส่วนหนึ่ง. เราสามารถแทรกโค้ดบล็อกนี้ลงในหน้าเว็บไซต์ได้โดยไม่ต้องเขียนโค้ดใดๆ โดยตรง

ตัวกรองอัจฉริยะ ส่วนประกอบเตรียมตัวกรองสำหรับการเลือกจากบล็อกข้อมูลและแสดงแบบฟอร์มตัวกรองสำหรับการกรององค์ประกอบ ต้องเชื่อมต่อส่วนประกอบก่อนส่วนประกอบเพื่อแสดงองค์ประกอบแคตตาล็อก มิฉะนั้น รายการองค์ประกอบจะไม่ถูกกรอง ส่วนประกอบนี้เป็นมาตรฐาน ซึ่งรวมอยู่ในการกระจายโมดูลและมีเทมเพลต 3 แบบ: .default , Visual_horizontal และ Visual_vertical (ไม่รองรับเทมเพลตสองอันสุดท้าย แต่ยังคงรักษาความเข้ากันได้ไว้) ในโปรแกรมแก้ไขภาพ ส่วนประกอบตั้งอยู่ตามเส้นทาง.

เนื้อหา > แค็ตตาล็อก > ตัวกรองอัจฉริยะ

ส่วนประกอบเป็นของโมดูลบล็อกข้อมูล

เรียนรู้เพิ่มเติมเกี่ยวกับการค้นหาแบบประกอบ

ลองดูตัวอย่าง:

  • สินค้า;

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

ในตัวกรองอัจฉริยะจะคำนวณล่วงหน้าและแสดงผลทันที การค้นหาผลิตภัณฑ์ประเภทนี้ทำได้เร็วกว่ามาก

มาสร้างดัชนีเหลี่ยมเพชรพลอยด้วยขั้นตอนง่ายๆ ไม่กี่ขั้นตอน:

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

เมื่อเพิ่มใหม่หรือลบคุณสมบัติออกจากตัวกรองอัจฉริยะ

  • เมื่อขนถ่ายสินค้า เช่น จาก 1C หากสินค้าสร้างคุณสมบัติใหม่
  • การค้นหาแบบ Faceted ช่วยปรับปรุงประสิทธิภาพของแค็ตตาล็อกผลิตภัณฑ์ หากต้องการใช้งานคุณต้องมี:
  • ในบทเรียนวันนี้ เราจะพยายามจำลองการค้นหาแบบเหลี่ยมมุมโดยใช้ Javascript ฉันสมมติว่าคุณรู้อยู่แล้วว่าการค้นหาแบบประกอบคืออะไรหากคุณกำลังอ่านบทช่วยสอนนี้ ไม่เช่นนั้น Google หรือลองดูที่ Amazon หรือการสาธิตของฉัน

    ก่อนอื่นเราต้องมีห้องสมุด github.com/eikes/facetedsearch ดาวน์โหลดและเชื่อมต่อไฟล์ facetedsearch.js กับโปรเจ็กต์ของเรา เรายังต้องการไลบรารี jQuery และ Underscore ด้วย

    ข้อจำกัดความรับผิดชอบ: ฉันเข้าใจว่า JQ ไม่ใช่เค้กอีกต่อไป แต่ฉันใช้มันเป็นน้ำตาลวากยสัมพันธ์ที่คุ้นเคย คุณสามารถเขียนใหม่สำหรับไลบรารีที่คุณคุ้นเคยมากกว่าหรือใน vanilla JS

    ก่อนอื่น เรามาสร้างมาร์กอัปง่ายๆ ที่มีการขึ้นต่อกันที่เชื่อมโยงกันก่อน:

    เอกสาร // ที่นี่เราจะแสดงตัวกรองแง่มุม // และนี่คือองค์ประกอบของเรา

    ตอนนี้เราต้องอธิบายการตั้งค่าแอปพลิเคชันของเราและสร้างเทมเพลตสำหรับแสดงองค์ประกอบอาร์เรย์ที่เราจะจัดเรียงโดยใช้แง่มุม:

    $(function())( var item_template = // อธิบายเทมเพลต "" + " " class="img-responsive">" + ", " + "

    " + "" + ", " + ", " + "

    " + "

    " + ""; settings = ( items: example_items, facets: ( // ระบุหมวดหมู่ facet "category" : "What Category", "continent" : "ทวีปไหน", "ภาษา" : "ภาษาโปรแกรม"), resultSelector: "#results", // องค์ประกอบ DOM ที่เราแสดงผลลัพธ์ facetSelector: "#facets", // องค์ประกอบ DOM สำหรับ facets resultTemplate: item_template, paginationCount: 8, // จำนวนองค์ประกอบต่อหน้า orderByOptions: ("firstname": " ชื่อ `, "นามสกุล": "นามสกุล", "หมวดหมู่": "หมวดหมู่", "RANDOM": "สุ่ม"), facetSortOption: ("ทวีป": ["อเมริกาเหนือ", "อเมริกาใต้"]) ) $ facetelize (การตั้งค่า);

    จริงๆ แล้วสร้างอาร์เรย์ JSON ด้วยองค์ประกอบเพื่อแสดงในการค้นหาแบบเหลี่ยมมุมของเราใน JS:

    รายการ Var = [ ( "firstname": "Mary", "lastname": "Smith", "imageURL": "http://lorempixel.com/150/150/cats/2", "description": "Sed Ea Amet. Stet Voluptua. Nonumy Magna Takimata ​​, "หมวดหมู่": "Mouse", "ภาษา": ["Smalltalk", "XSLT"], "ทวีป": "แอฟริกา" ​​), ( "ชื่อ": "Patricia ", "นามสกุล": "Johnson", "imageURL": "http://lorempixel.com/150/150/cats/3", "description": "Ut Takimata Sit Aliquyam Labore Aliquyam Sit Lorem Amet ” , "หมวดหมู่": "สิงโต", "ทวีป": "อเมริกาเหนือ", ... ];

    อาร์เรย์นี้ฉันจะใส่มันไว้ในไฟล์ JS แยกต่างหากที่จะถูกสร้างขึ้นแบบไดนามิกจากฐานข้อมูลเป็นต้น

    เพียงเท่านี้ เราได้รับการค้นหาแบบ faceted ใน JavaScript และสามารถปรับแต่งได้ ต่อไป ฉันจะจัดเตรียมเอกสารไลบรารีที่ได้รับการแปล ซึ่งคุณสามารถดูสิ่งกระตุ้นที่คุณต้องการได้

    คุณสมบัติเอกสารประกอบ

    สองฟังก์ชันจะถูกส่งออกไปยังเนมสเปซ jQuery

    facetelize ใช้เพื่อเริ่มต้นการค้นหาแบบ faceted ด้วยการตั้งค่าที่กำหนด

    facetUpdate สามารถใช้ได้หากคุณต้องการเปลี่ยนสถานะการค้นหา facet จากภายนอก

    การตั้งค่าวัตถุ

    รายการ: อาร์เรย์ของรายการที่จะถูกกรองและจัดเรียงในกระบวนการ

    แง่มุม: วัตถุที่มีคีย์สอดคล้องกับคีย์องค์ประกอบและค่าเป็นส่วนหัวของด้านนั้น รายการจะถูกกรองตามมูลค่าที่มีสำหรับคีย์เหล่านี้

    orderByOptions: คล้ายกับแง่มุม ยกเว้นคู่คีย์-ค่าเหล่านี้ใช้สำหรับการเรียงลำดับเท่านั้น เมื่อเปิดใช้งานคีย์ RANDOM ผลลัพธ์จะถูกสุ่ม

    facetSelector: นี่คือตัวเลือกที่ใช้ค้นหาโหนด DOM ที่จะใช้เลือกตัวกรองด้าน

    resultSelector: นี่คือตัวเลือกที่ใช้ในการค้นหาโหนด DOM ที่แสดงผลลัพธ์

    resultTemplate: สตริงที่ใช้โดยเอ็นจิ้น Underscore template เพื่อแสดงผลแต่ละองค์ประกอบจากอาร์เรย์รายการ คุณลักษณะต่อไปนี้จะถูกเพิ่มลงในแต่ละองค์ประกอบ ซึ่งสามารถใช้ในเทมเพลตได้เช่นกัน: battItemNr, battItemCount และ TotalItemCount

    สถานะ: ออบเจ็กต์นี้เก็บตัวกรองปัจจุบัน เรียงลำดับ: currentResult และอื่น ๆ คุณสามารถระบุสตริง orderBy หรือออบเจ็กต์ตัวกรองเพื่อตั้งค่าล่วงหน้าได้

    EnablePagination: บูลีนเพื่อเปิดใช้งานการแบ่งหน้าและปุ่ม "โหลดเพิ่มเติม" มีค่าเริ่มต้นเป็น true

    paginationCount: หากเปิดใช้งานตัวแบ่งหน้า ให้กำหนดจำนวนองค์ประกอบต่อหน้า โดยค่าเริ่มต้นคือ 50

    facetSortOption: ใช้ฟังก์ชันนี้เพื่อเปลี่ยนลำดับขององค์ประกอบด้าน นำออบเจ็กต์ที่มีคีย์สอดคล้องกับชื่อและค่าของ Facet ลงในอาร์เรย์ของค่า Facet ซึ่งสามารถจัดเรียงตามลำดับที่คุณต้องการให้เป็นได้ ตัวอย่างนี้จะเรียงลำดับทวีปตามลำดับที่แตกต่างกัน โดยเพิ่มรายการที่ไม่รวมอยู่ในอาร์เรย์ตามลำดับตัวอักษร:

    FacetSortOption: ("ทวีป": ["อเมริกาเหนือ", "อเมริกาใต้"])

    มีเทมเพลตเพิ่มเติมอีกบ้าง โปรดดู ซอร์สโค้ด facetedsearch.js เพื่อดูทุกอย่าง ตัวเลือกที่ใช้ได้แม่แบบ

    กิจกรรม

    คุณสามารถเชื่อมโยงกับเหตุการณ์บางอย่างซึ่งควรส่งการแจ้งเตือนเมื่อมีการกระทำบางอย่างเกิดขึ้น ในการทำสิ่งนี้ เราใช้ระบบเหตุการณ์ jquery:

    facetuicreated: คุณสามารถผูกฟังก์ชันนี้กับองค์ประกอบ settings.facetSelector DOM ซึ่งควรได้รับแจ้งเมื่อ ส่วนต่อประสานกับผู้ใช้ถูกสร้างขึ้น

    facetedsearchresultupdate: คุณสามารถผูกฟังก์ชันนี้กับองค์ประกอบ settings.resultSelector DOM เพื่อรับการแจ้งเตือนเกี่ยวกับผลลัพธ์การอัพเดต

    facetedsearchfacetclick: เหตุการณ์นี้จะเริ่มทำงานเมื่อมีการคลิก facet และเริ่มทำงานในองค์ประกอบ settings.facetSelector ซึ่งรับ facet id เป็นอาร์กิวเมนต์

    facetedsearchorderby: เหตุการณ์นี้เกิดขึ้นเมื่อคลิกองค์ประกอบการเรียงลำดับบนองค์ประกอบ settings.facetSelector ใช้ลำดับ ID เป็นอาร์กิวเมนต์

    $(settings.resultSelector).bind("facetedsearchresultupdate", function())( // ทำอะไรสักอย่าง อาจจะ ));

    ในบทความนี้ (ระดับผู้ดูแลเว็บ - ขั้นสูง) เราจะพูดถึงสิ่งที่เรียกว่าจุดตัดในรูปแบบต่างๆ การนำทาง "เหลี่ยมเพชรพลอย" เพื่อให้การดูดซึมเนื้อหาง่ายขึ้น ฉันแนะนำให้อ่านบทความ Wikipedia เรื่อง "การจำแนก Facet" และสิ่งพิมพ์เกี่ยวกับ ภาษาอังกฤษ(แต่มีรูปภาพด้วย!) "ออกแบบการนำทางแบบเหลี่ยมมุมที่ดีขึ้นสำหรับเว็บไซต์ของคุณ"

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

    เหมาะสำหรับผู้ใช้และการค้นหาโดย Google

    เส้นทางที่ชัดเจนไปยังหน้าผลิตภัณฑ์/บทความ:

    การแสดง URL สำหรับหน้าหมวดหมู่:
    http://www.example.com/category.php?category=gummy-candies

    การแสดง URL เฉพาะผลิตภัณฑ์:
    http://www.example.com/product.php?item=swedish-fish

    รายการซ้ำที่ไม่ต้องการเกิดจากการนำทางแบบประกอบ

    หน้าเดียวกันสามารถเข้าถึงได้จากที่อยู่เว็บที่แตกต่างกัน:

    หน้า Canonical



    URL: example.com/product.php? item=ปลาสวีเดน

    หน้าซ้ำกัน



    URL:example.com/product.php? item=swedish-fish&category=gummy-candies&price=5-10


    Category=gummy-candies&taste=เปรี้ยว&ราคา=5-10

    ข้อผิดพลาด:

    • ไม่มีประโยชน์สำหรับ Google เนื่องจากผู้ใช้ไม่ค่อยค้นหา [แยมผิวส้มราคา $9:55]
    • โปรแกรมรวบรวมข้อมูลเว็บไม่มีความหมายที่จะพบรายการเดียวกัน ("สลัดผลไม้") จากหน้าหมวดหมู่หลัก (อาจเป็น "Jummy" หรือ "Sour Gummy")
    • จุดลบสำหรับเจ้าของไซต์ เนื่องจากคำขอจัดทำดัชนีจะเจือจางด้วยหมวดหมู่เดียวกันหลายเวอร์ชัน
    • จุดลบสำหรับเจ้าของเว็บไซต์เนื่องจากไม่มีประโยชน์และเป็นภาระเพิ่มเติม แบนด์วิธเว็บไซต์
    หน้าว่าง:


    URL: example.com/category.php? Category=gummy-candies&taste=sour&price=over-10

    ข้อผิดพลาด:

    • รหัสสำหรับเครื่องมือค้นหาส่งคืนไม่ถูกต้อง (ในกรณีนี้ หน้าเว็บควรส่งคืนรหัส 404)
    • หน้าว่างสำหรับผู้ใช้


    วิธีแก้ปัญหาที่แย่ที่สุด (ไม่เป็นมิตรกับการค้นหา) สำหรับการนำทางแบบประกอบ

    ตัวอย่างที่ 1: มีการใช้พารามิเตอร์ที่ไม่ได้มาตรฐานเป็นส่วนหนึ่งของ URL: เครื่องหมายจุลภาคและวงเล็บแทน คีย์=ค่า&:

    • example.com/category? [ category:gummy-candy ][ sort:ราคาต่ำไปสูง ][ sid:789 ]
    • example.com/category?category , gummy-candy , sort , lowtohigh , sid , 789
    วิธี:
    example.com/category?category=gummy-candy&sort=low-to-high&sid=789

    ตัวอย่างที่ 2: การใช้ไดเร็กทอรีหรือพาธของไฟล์แทนพารามิเตอร์ในรายการค่าที่ไม่เปลี่ยนแปลงเนื้อหาของเพจ:
    example.com/c123 /s789/ product?swedish-fish
    (โดยที่ /c123/ category, /s789/ session ID ซึ่งไม่เปลี่ยนเนื้อหาของหน้า)

    ทางออกที่ดี:

    • example.com /gummy-candy/ product?item=swedish-fish&sid=789 (ไดเรกทอรี /gummy-candy/ เปลี่ยนแปลงเนื้อหาของหน้าในลักษณะที่มีความหมาย)
    ทางออกที่ดีที่สุด:
    • example.com/product?item=swedish-fish&category=gummy-candy&sid=789 (พารามิเตอร์ URL ให้ความยืดหยุ่นมากขึ้นสำหรับเครื่องมือค้นหาในการกำหนดวิธีการรวบรวมข้อมูลอย่างมีประสิทธิภาพ)
    เป็นเรื่องยากสำหรับโปรแกรมรวบรวมข้อมูลที่จะแยกความแตกต่างค่าที่มีประโยชน์ (เช่น "gummy-candy") จากค่าที่ไม่มีประโยชน์ (เช่น "SESSIONID") เมื่อค่าเหล่านี้ถูกวางไว้โดยตรงในเส้นทางลิงก์ ในทางกลับกัน พารามิเตอร์ URL ให้ความยืดหยุ่นสำหรับเครื่องมือค้นหาในการทดสอบและกำหนดอย่างรวดเร็วเมื่อค่าที่กำหนดไม่จำเป็นต้องให้โปรแกรมรวบรวมข้อมูลเข้าถึงตัวเลือกทั้งหมด

    ค่าทั่วไปที่ไม่เปลี่ยนแปลงเนื้อหาของเพจและต้องแสดงเป็นพารามิเตอร์ URL ได้แก่:

    • รหัสเซสชัน
    • การติดตามรหัส
    • รหัสผู้อ้างอิง
    • การประทับเวลา
    ตัวอย่าง #3: การแปลงค่าที่ผู้ใช้สร้างขึ้น (อาจเป็นอนันต์) เป็นพารามิเตอร์ URL ที่สามารถรวบรวมข้อมูลและจัดทำดัชนีได้ แต่ไม่มีประโยชน์สำหรับการค้นหา
    การใช้ข้อมูลรองที่สร้างโดยผู้ใช้ไซต์ (เช่น ลองจิจูด/ละติจูด หรือ "วันที่ผ่านมา") ในที่อยู่ที่รวบรวมข้อมูลและจัดทำดัชนี:
    • example.com/find-a-doctor? รัศมี=15&ละติจูด=40.7565068&ลองจิจูด=-73.9668408
    • example.com/article?category=health& days-ago=7
    วิธี:
    • example.com/find-a-doctor?city=san-francisco&neighborhood=soma
    • example.com/articles?category=health&date=january-10-2014
    แทนที่จะอนุญาตให้ผู้ใช้สร้างค่าเพื่อสร้าง URL ที่รวบรวมข้อมูลได้ (ซึ่งส่งผลให้มีความเป็นไปได้ไม่รู้จบโดยมีมูลค่าต่อผู้เยี่ยมชมน้อยมาก) เป็นการดีกว่าที่จะเผยแพร่หมวดหมู่เพจสำหรับค่าที่ได้รับความนิยมสูงสุด นอกจากนี้ คุณยังสามารถรวมข้อมูลเพิ่มเติมเพื่อ ทำให้หน้ามีคุณค่ามากกว่าหน้าค้นหาปกติพร้อมผลลัพธ์ หรือคุณอาจพิจารณาวางค่าที่ผู้ใช้สร้างขึ้นในไดเร็กทอรีแยกต่างหาก จากนั้นใช้ robots.txt เพื่อป้องกันการรวบรวมข้อมูลจากไดเร็กทอรีนั้น
    • example.com/filtering/ find-a-doctor?radius=15&latitude=40.7565068&longitude=-73.9668408
    • example.com/filtering/ Articles?category=health&days-ago=7
    และใน robots.txt:
    ตัวแทนผู้ใช้: *
    ไม่อนุญาต: /กรอง/

    ตัวอย่างหมายเลข 4 การเพิ่มพารามิเตอร์ URL โดยไม่มีตรรกะ

    • example.com/gummy-candy/lollipops/gummy-candy/gummy-candy/product?swedish-fish
    • example.com/product?cat=gummy-candy&cat=lollipops&cat=gummy-candy &cat=gummy-candy&item=swedish-fish
    ทางออกที่ดี:
    • example.com /gummy-candy/ product?item=swedish-fish
    ทางออกที่ดีที่สุด:
    • example.com/product?item=swedish-fish&category=gummy-candy
    พารามิเตอร์ URL ที่ไม่เกี่ยวข้องมีแต่เพิ่มความซ้ำซ้อน ทำให้เว็บไซต์ได้รับการรวบรวมข้อมูลและจัดทำดัชนีได้อย่างมีประสิทธิภาพน้อยลง ดังนั้นจึงจำเป็นต้องกำจัดพารามิเตอร์ URL ที่ไม่จำเป็นออกและล้างลิงก์ขยะเป็นระยะก่อนที่จะสร้าง URL ใหม่ หากเซสชันผู้ใช้จำเป็นต้องมีพารามิเตอร์จำนวนมาก คุณสามารถซ่อนข้อมูลในคุกกี้ได้ แทนที่จะเพิ่มค่าอย่างต่อเนื่อง เช่น cat=gummy-candy&cat=lollipops&cat=gummy-candy&...

    ตัวอย่างที่ 5: แนะนำการปรับแต่งเพิ่มเติม (การกรอง) เมื่อมีผลลัพธ์เป็นค่าว่าง

    ห่วย:
    อนุญาตให้ผู้ใช้เลือกตัวกรองเมื่อมีรายการว่างที่ต้องปรับแต่ง


    ชี้แจงหน้าเว็บที่ไม่มีผลลัพธ์ (เช่น ราคา=เกิน 10) ซึ่งทำให้ผู้ใช้หงุดหงิดและทำให้เกิดการร้องขอที่ไม่จำเป็นสำหรับเครื่องมือค้นหา

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


    ไม่อนุญาตให้แสดงหน้าเว็บที่ไม่มีผลลัพธ์ (เช่น ราคา=เกิน 10) และยังห้ามผู้ใช้ทำการคลิกที่ไม่จำเป็น และเครื่องมือค้นหาจะไม่รวบรวมข้อมูลนี้ หน้าที่มีประโยชน์.

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

    สำหรับไซต์ใหม่ที่ผู้ดูแลเว็บกำลังพิจารณาใช้การนำทางแบบประกอบ มีหลายตัวเลือกในการเพิ่มประสิทธิภาพการรวบรวมข้อมูล (ชุดที่อยู่ในไซต์ของคุณที่ Google รู้จัก) ของหน้าเนื้อหาที่ไม่ซ้ำ และลดหน้าที่ซ้ำกันจากการเข้าสู่ดัชนีของเครื่องมือค้นหา (การรวมการจัดทำดัชนี สัญญาณ)

    กำหนดพารามิเตอร์ URL ที่จำเป็นสำหรับเครื่องมือค้นหาในการรวบรวมข้อมูลหน้าเนื้อหาแต่ละหน้า (นั่นคือ กำหนดพารามิเตอร์ที่จำเป็นในการสร้างเส้นทางการคลิกอย่างน้อยหนึ่งเส้นทางไปยังแต่ละรายการ) พารามิเตอร์ที่จำเป็นอาจรวมถึง item-id , category-id , หน้า ฯลฯ

    พิจารณาว่าพารามิเตอร์ใดจะเป็นประโยชน์ต่อผู้เข้าชมเมื่อมีการสืบค้น และพารามิเตอร์ใดมีแนวโน้มที่จะทำให้เกิดการซ้ำซ้อนในการรวบรวมข้อมูลและการจัดทำดัชนี ในตัวอย่างขนมหวาน (แยมผิวส้ม) พารามิเตอร์ URL "taste" อาจมีประโยชน์สำหรับผู้ใช้ที่มีข้อความค้นหาในตัวอย่าง taste=sour อย่างไรก็ตาม การพิจารณาพารามิเตอร์ "price" ทำให้เกิดความซ้ำซ้อนโดยไม่จำเป็นของ category=gummy-candies&taste=sour&price=over-10 ตัวอย่างทั่วไปอื่นๆ:

    • พารามิเตอร์ที่มีค่าสำหรับเครื่องมือค้นหา: item-id , category-id , name , brand ...
    • พารามิเตอร์ที่ไม่จำเป็น: session-id , price-range ...
    มาดูการใช้ตัวเลือกการกำหนดค่าตัวใดตัวหนึ่งสำหรับ URL ที่มีพารามิเตอร์ที่ไม่จำเป็น เพียงตรวจสอบให้แน่ใจว่าไม่จำเป็นต้องใช้พารามิเตอร์ URL ที่ "ไม่จำเป็น" สำหรับโปรแกรมรวบรวมข้อมูลของเครื่องมือค้นหาในการรวบรวมข้อมูลหรือเพื่อให้ผู้ใช้ค้นหาผลิตภัณฑ์แต่ละรายการ!

    ตัวเลือกที่ 1: และลิงก์ภายใน

    ทำเครื่องหมาย URL ที่ไม่จำเป็นทั้งหมดด้วยนามสกุล . ซึ่งจะช่วยลดต้นทุนค่าแรง หุ่นยนต์ค้นหาและจะป้องกันความถี่ในการสแกนลดลง คุณต้องจัดการการสแกนทั่วโลกผ่าน robots.txt (หมายเหตุของนักแปล: ดูบทความ " ")
    ใช้แอตทริบิวต์ rel="canonical" เพื่อแยกหน้าสำหรับดัชนีการค้นหาออกจากหน้าที่ไม่จำเป็น (เช่น ในหน้า price=5-10 คุณสามารถเพิ่มแอตทริบิวต์ rel="canonical" ซึ่งระบุหมวดหมู่ของทั้งหมด แยมผิวส้ม example.com/category.php?category=gummy-candies&taste=sour& page=all )

    ตัวเลือกที่ 2: Robots.txt และ Disallow

    URL ที่มีพารามิเตอร์ที่ไม่จำเป็นจะรวมอยู่ในไดเร็กทอรี /filtering/ ซึ่งจะถูกปิดใน robots.txt (ไม่อนุญาต) วิธีนี้จะช่วยให้เครื่องมือค้นหาทั้งหมดรวบรวมข้อมูลเฉพาะลิงก์ใน (เนื้อหา) ที่ "ถูกต้อง" ของเว็บไซต์ แต่จะบล็อกการรวบรวมข้อมูล URL ที่ไม่ต้องการในครั้งเดียว ตัวอย่างเช่น (example.com/category.php?category=gummy-candies) หากพารามิเตอร์ที่มีค่าคือรายการ หมวดหมู่ และรสชาติ และรหัสเซสชันและราคานั้นไม่จำเป็น ดังนั้น URL ของรสชาติจะเป็นดังนี้:
    example.com/category.php?category=gummy-candies&taste=sour แต่พารามิเตอร์ที่ไม่จำเป็นทั้งหมด เช่น ราคา จะรวมอยู่ใน URL ในไดเรกทอรีที่กำหนดไว้ล่วงหน้า - /filtering/:
    example.com/filtering/category.php?category=gummy-candies&price=5-10 ,
    ซึ่งจะถูกห้ามผ่าน robots.txt:
    ตัวแทนผู้ใช้: *
    ไม่อนุญาต: /กรอง/

    ตัวเลือกที่ 3: แยกโฮสต์

    ตรวจสอบให้แน่ใจ โซลูชั่นที่ดีที่สุดรายการข้างต้น (เช่น สำหรับที่อยู่ที่ไม่จำเป็น) ยังคงมีผลบังคับใช้ มิฉะนั้นเครื่องมือค้นหาได้สร้างลิงก์จำนวนมากในดัชนีแล้ว วิธีนี้งานของคุณจะมุ่งเป้าไปที่การลดการเติบโตต่อไป หน้าที่ไม่จำเป็น, ดูโดยใช้ หุ่นยนต์กูเกิลและการรวมสัญญาณการจัดทำดัชนี

    ใช้พารามิเตอร์ที่มีการเข้ารหัสมาตรฐานและรูปแบบคีย์=ค่า

    ตรวจสอบให้แน่ใจว่าค่าที่ไม่เปลี่ยนเนื้อหาของหน้า เช่น รหัสเซสชัน ถูกนำไปใช้เป็น key=value แทนที่จะเป็นไดเร็กทอรี

    ไม่อนุญาตให้คลิกหรือสร้าง URL เมื่อไม่มีองค์ประกอบให้กรอง

    เพิ่มตรรกะในการแมปพารามิเตอร์ URL: ลบพารามิเตอร์ที่ไม่จำเป็นออกแทนที่จะเพิ่มค่าอย่างต่อเนื่อง (เช่น หลีกเลี่ยงการสร้างลิงก์เช่นนี้ example.com/product?cat=gummy-candy&cat=lollipops &cat=gummy-candy&item=swedish-fish )

    จัดเก็บพารามิเตอร์ที่มีคุณค่าไว้ใน URL โดยแสดงรายการไว้ก่อน (เนื่องจาก URL จะปรากฏอยู่ในผลการค้นหา) และพารามิเตอร์ที่เกี่ยวข้องน้อยกว่าจะอยู่หลังสุด (เช่น รหัสเซสชัน)
    หลีกเลี่ยงโครงสร้างลิงก์นี้: example.com/category.php?session-id=123&tracking-id=456 &category=gummy-candies&taste=sour
    กำหนดค่าพารามิเตอร์ URL ในเครื่องมือของผู้ดูแลเว็บ หากคุณมีความเข้าใจที่ชัดเจนเกี่ยวกับวิธีการทำงานของลิงก์บนไซต์ของคุณ

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

    ปรับปรุงการจัดทำดัชนีหน้าต่างๆ ของเนื้อหาเดียวกันโดยการระบุแอตทริบิวต์ rel="canonical" บนหน้าเวอร์ชันสิทธิพิเศษ แอตทริบิวต์ rel="canonical" สามารถใช้ได้ภายในโดเมนตั้งแต่ 1 โดเมนขึ้นไป

    เพิ่มประสิทธิภาพการจัดทำดัชนีเนื้อหาที่มีการแบ่งหน้า (เช่น page=1 และ page=2 จากหมวดหมู่ "gummy candy") โดยวิธีใดวิธีหนึ่งต่อไปนี้

    • เพิ่มแอตทริบิวต์ rel="canonical" ลงในชุดหน้าเว็บที่ระบุหมวดหมู่ Canonical ด้วยพารามิเตอร์ "view-all" (เช่น page=1, page=2 และ page=3 จากหมวดหมู่ "gummy candies" พร้อมด้วย with rel=”canonical” ใน category=gummy-candies&page=all ) ตรวจสอบให้แน่ใจว่าหน้าเว็บมีความเกี่ยวข้องกับผู้ใช้และโหลดได้รวดเร็ว
    • ใช้มาร์กอัปการแบ่งหน้า rel="next" และ rel="prev" เพื่อระบุความสัมพันธ์ระหว่างแต่ละหน้า (ดู "การแบ่งหน้าด้วย rel="next" และ rel="prev" ")
    รวมเฉพาะลิงก์ Canonical ในแผนผังไซต์ของคุณ