ยานเดกซ์ขูด Google และการเรียนรู้ SEO อื่น ๆ จากการรั่วไหลของซอร์สโค้ด
เผยแพร่แล้ว: 2023-01-31“ชิ้นส่วน” ของโค้ดเบสของ Yandex รั่วไหลทางออนไลน์เมื่อสัปดาห์ที่แล้ว Yandex เป็นแพลตฟอร์มที่มีหลายแง่มุมเช่นเดียวกับ Google เช่น อีเมล แผนที่ บริการแท็กซี่ เป็นต้น การรั่วไหลของรหัสมีคุณลักษณะเด่นของทั้งหมด
ตามเอกสารในนั้น codebase ของยานเดกซ์ถูกรวมเข้าไว้ในพื้นที่เก็บข้อมูลขนาดใหญ่ที่เรียกว่า Arcadia ในปี 2013 โค้ดเบสที่รั่วออกมาเป็นส่วนย่อยของโครงการทั้งหมดใน Arcadia และเราพบองค์ประกอบหลายอย่างที่เกี่ยวข้องกับเครื่องมือค้นหาใน "เคอร์เนล" "ห้องสมุด" ,” “Robot,” “Search” และ “ExtSearch”
การเคลื่อนไหวครั้งนี้ไม่เคยเกิดขึ้นมาก่อน ไม่ใช่เนื่องจากข้อมูลคำค้นหาของ AOL ในปี 2549 มีเนื้อหาที่เกี่ยวข้องกับเครื่องมือค้นหาเว็บที่ป้อนเป็นสาธารณสมบัติ
แม้ว่าเราจะขาดข้อมูลและไฟล์จำนวนมากที่ถูกอ้างอิง แต่นี่เป็นตัวอย่างแรกของการมองที่จับต้องได้ว่าเสิร์ชเอ็นจิ้นสมัยใหม่ทำงานในระดับโค้ดอย่างไร
โดยส่วนตัวแล้ว ฉันไม่สามารถเข้าใจได้ว่าเวลาที่ยอดเยี่ยมเพียงใดที่จะสามารถเห็นโค้ดได้จริงๆ เมื่อฉันอ่านหนังสือ “The Science of SEO” เสร็จ ซึ่งฉันกำลังพูดถึงการดึงข้อมูล เครื่องมือค้นหาสมัยใหม่ทำงานอย่างไร และวิธีการ เพื่อสร้างแบบง่ายๆด้วยตัวคุณเอง
ในกรณีใด ๆ ฉันได้แยกวิเคราะห์รหัสตั้งแต่วันพฤหัสบดีที่แล้วและวิศวกรคนใดจะบอกคุณว่าไม่มีเวลาพอที่จะเข้าใจว่าทุกอย่างทำงานอย่างไร ดังนั้นฉันสงสัยว่าจะมีอีกหลายโพสต์ในขณะที่ฉันแก้ไขต่อไป
ก่อนที่เราจะกระโดดลงไป ฉันอยากจะตะโกนออกไปถึง Ben Wills ที่ Ontolo ที่แบ่งปันโค้ดกับฉัน ชี้ให้ฉันเห็นทิศทางเริ่มต้นว่าของดีอยู่ที่ไหน และกลับไปกลับมากับฉันเมื่อเราถอดรหัสสิ่งต่างๆ อย่าลังเลที่จะคว้าสเปรดชีตที่มีข้อมูลทั้งหมดที่เรารวบรวมไว้เกี่ยวกับปัจจัยการจัดอันดับที่นี่
นอกจากนี้ ตะโกนเรียก Ryan Jones สำหรับการขุดค้นและแบ่งปันการค้นพบที่สำคัญบางอย่างกับฉันทาง IM
ตกลงมายุ่งกันเถอะ!
ไม่ใช่รหัสของ Google แล้วเราจะสนใจทำไม
บางคนเชื่อว่าการทบทวน codebase นี้เป็นสิ่งที่ทำให้ไขว้เขวและไม่มีสิ่งใดที่จะส่งผลกระทบต่อการตัดสินใจทางธุรกิจของพวกเขา ฉันพบสิ่งที่น่าสงสัยเมื่อพิจารณาว่าคนเหล่านี้มาจากชุมชน SEO เดียวกันที่ใช้โมเดล CTR จากข้อมูล AOL ปี 2549 เป็นมาตรฐานอุตสาหกรรมสำหรับการสร้างแบบจำลองในเครื่องมือค้นหาใดๆ ก็ตามเป็นเวลาหลายปี
ที่กล่าวว่า Yandex ไม่ใช่ Google ถึงกระนั้นทั้งสองก็เป็นเครื่องมือค้นหาเว็บที่ล้ำสมัยซึ่งยังคงรักษาความทันสมัยของเทคโนโลยีไว้ได้
วิศวกรซอฟต์แวร์จากทั้งสองบริษัทเข้าร่วมการประชุมเดียวกัน (SIGIR, ECIR ฯลฯ) และแบ่งปันสิ่งที่ค้นพบและนวัตกรรมในการดึงข้อมูล การประมวลผล/ทำความเข้าใจภาษาธรรมชาติ และการเรียนรู้ของเครื่อง ยานเดกซ์ยังมีการปรากฏตัวใน Palo Alto และ Google ก่อนหน้านี้มีการแสดงตนในมอสโก
การค้นหา LinkedIn อย่างรวดเร็วทำให้ค้นพบวิศวกรสองสามร้อยคนที่เคยทำงานในทั้งสองบริษัท แม้ว่าเราจะไม่ทราบว่ามีกี่คนที่ทำงานบนการค้นหาจริง ๆ ที่ทั้งสองบริษัท
ในการซ้อนทับกันโดยตรง Yandex ยังใช้เทคโนโลยีโอเพ่นซอร์สของ Google ที่มีความสำคัญต่อนวัตกรรมในการค้นหา เช่น TensorFlow, BERT, MapReduce และ Protocol Buffers ในระดับที่น้อยกว่ามาก
ดังนั้น แม้ว่ายานเดกซ์จะไม่ใช่ Google อย่างแน่นอน แต่ก็ไม่ใช่โครงการวิจัยแบบสุ่มที่เรากำลังพูดถึงที่นี่ มีหลายอย่างที่เราสามารถเรียนรู้เกี่ยวกับวิธีสร้างเสิร์ชเอ็นจิ้นสมัยใหม่ได้จากการตรวจสอบโค้ดเบสนี้
อย่างน้อยที่สุด เราสามารถละทิ้งความคิดล้าสมัยบางอย่างที่ยังคงแทรกซึมอยู่ในเครื่องมือ SEO เช่น อัตราส่วนข้อความต่อโค้ดและการปฏิบัติตาม W3C หรือความเชื่อทั่วไปที่ว่าสัญญาณ 200 สัญญาณของ Google เป็นเพียงคุณลักษณะทั้งในและนอกหน้า 200 รายการแทนที่จะเป็นคลาสของ ปัจจัยประกอบที่อาจใช้มาตรการแต่ละอย่างนับพัน
บริบทบางอย่างเกี่ยวกับสถาปัตยกรรมของยานเดกซ์
หากไม่มีบริบทหรือความสามารถในการคอมไพล์ รัน และทำขั้นตอนให้สำเร็จ ซอร์สโค้ดก็เข้าใจได้ยาก
โดยทั่วไปแล้ว วิศวกรใหม่จะได้รับเอกสาร คำแนะนำ และมีส่วนร่วมในการเขียนโปรแกรมคู่เพื่อเข้าร่วมกับโค้ดเบสที่มีอยู่ และมีเอกสารการเริ่มต้นใช้งานบางส่วนที่เกี่ยวข้องกับการตั้งค่ากระบวนการสร้างในไฟล์เก็บถาวรเอกสาร อย่างไรก็ตาม โค้ดของยานเดกซ์ยังอ้างอิงถึงวิกิภายในทั้งหมด แต่สิ่งเหล่านั้นไม่ได้รั่วไหล และความคิดเห็นในโค้ดก็ค่อนข้างเบาบาง
โชคดีที่ Yandex ให้ข้อมูลเชิงลึกเกี่ยวกับสถาปัตยกรรมในเอกสารสาธารณะ นอกจากนี้ยังมีสิทธิบัตร 2-3 ฉบับที่เผยแพร่ในสหรัฐฯ ซึ่งช่วยให้กระจ่างขึ้น คือ:
- วิธีการและระบบที่ใช้คอมพิวเตอร์ในการค้นหาดัชนีกลับด้านที่มีรายการผ่านรายการจำนวนมาก
- อันดับผลการค้นหา
ขณะที่ฉันค้นคว้า Google สำหรับหนังสือของฉัน ฉันได้พัฒนาความเข้าใจที่ลึกซึ้งยิ่งขึ้นเกี่ยวกับโครงสร้างของระบบการจัดอันดับผ่านเอกสารรายงาน สิทธิบัตร และคำปราศรัยจากวิศวกรที่ขัดแย้งกับประสบการณ์ SEO ของฉัน ฉันยังใช้เวลามากในการทำความเข้าใจหลักปฏิบัติที่ดีที่สุดสำหรับการดึงข้อมูลทั่วไปสำหรับเครื่องมือค้นหาเว็บ ไม่น่าแปลกใจเลยที่มีแนวทางปฏิบัติที่ดีที่สุดและความคล้ายคลึงกันบางประการในการเล่นกับยานเดกซ์
เอกสารของ Yandex กล่าวถึงระบบซอฟต์แวร์รวบรวมข้อมูลแบบกระจายคู่ โปรแกรมหนึ่งสำหรับการรวบรวมข้อมูลแบบเรียลไทม์เรียกว่า "โปรแกรมรวบรวมข้อมูลสีส้ม" และอีกโปรแกรมหนึ่งสำหรับการรวบรวมข้อมูลทั่วไป
ในอดีต Google ได้รับการกล่าวขานว่ามีการแบ่งดัชนีออกเป็นสามกลุ่ม หนึ่งสำหรับการเก็บข้อมูลตามเวลาจริง หนึ่งสำหรับการรวบรวมข้อมูลเป็นประจำ และอีกหนึ่งสำหรับการรวบรวมข้อมูลที่ไม่ค่อยได้ แนวทางนี้ถือเป็นแนวทางปฏิบัติที่ดีที่สุดใน IR
ยานเดกซ์และ Google แตกต่างกันในแง่นี้ แต่แนวคิดทั่วไปของการรวบรวมข้อมูลแบบแบ่งกลุ่มซึ่งขับเคลื่อนโดยความเข้าใจในความถี่ในการอัปเดต
สิ่งหนึ่งที่ควรค่าแก่การกล่าวถึงก็คือยานเดกซ์ไม่มีระบบการเรนเดอร์แยกต่างหากสำหรับจาวาสคริปต์ พวกเขาพูดแบบนี้ในเอกสารประกอบ และแม้ว่าพวกเขาจะมีระบบที่ใช้ Webdriver สำหรับการทดสอบการถดถอยด้วยภาพที่เรียกว่า Gemini แต่พวกเขาก็จำกัดตัวเองให้รวบรวมข้อมูลตามข้อความเท่านั้น
เอกสารประกอบยังกล่าวถึงโครงสร้างฐานข้อมูลแบบแยกส่วนที่แบ่งหน้าออกเป็นดัชนีกลับด้านและเซิร์ฟเวอร์เอกสาร
เช่นเดียวกับเครื่องมือค้นหาเว็บอื่นๆ ส่วนใหญ่ กระบวนการจัดทำดัชนีจะสร้างพจนานุกรม แคชหน้า แล้ววางข้อมูลลงในดัชนีกลับด้านเพื่อให้แสดงบิ๊กแกรมและไตรกัมและตำแหน่งในเอกสาร
สิ่งนี้แตกต่างจาก Google ที่พวกเขาเปลี่ยนไปใช้การจัดทำดัชนีแบบวลี ซึ่งหมายถึง n-grams ที่สามารถยาวกว่า trigrams เมื่อนานมาแล้ว
อย่างไรก็ตาม ระบบยานเดกซ์ใช้ BERT ในไปป์ไลน์ด้วยเช่นกัน ดังนั้นในบางจุดเอกสารและข้อความค้นหาจะถูกแปลงเป็นการฝัง และใช้เทคนิคการค้นหาเพื่อนบ้านที่ใกล้ที่สุดในการจัดอันดับ
กระบวนการจัดอันดับเป็นสิ่งที่เริ่มน่าสนใจมากขึ้น
ยานเดกซ์มีเลเยอร์ที่เรียกว่า Metasearch ซึ่งจะแสดงผลการค้นหายอดนิยมที่แคชไว้หลังจากที่ประมวลผลคำค้นหาแล้ว หากไม่พบผลลัพธ์ คำค้นหาจะถูกส่งไปยังเครื่องต่างๆ หลายพันเครื่องในเลเยอร์ การค้นหาพื้นฐาน พร้อมกัน แต่ละรายการจะสร้าง รายการโพสต์ ของเอกสารที่เกี่ยวข้อง จากนั้นส่งคืนไปยัง MatrixNet ซึ่งเป็นแอปพลิเคชันโครงข่ายประสาทเทียมของ Yandex เพื่อจัดลำดับใหม่ เพื่อสร้าง SERP
จากวิดีโอที่วิศวกรของ Google พูดถึงโครงสร้างพื้นฐานของ Search กระบวนการจัดอันดับนั้นค่อนข้างคล้ายกับ Google Search พวกเขาพูดคุยเกี่ยวกับเทคโนโลยีของ Google ที่อยู่ในสภาพแวดล้อมที่ใช้ร่วมกันซึ่งมีแอปพลิเคชันต่างๆ อยู่ในทุกเครื่อง และงานจะถูกกระจายไปตามเครื่องเหล่านั้นตามความพร้อมใช้งานของพลังการประมวลผล
หนึ่งในกรณีการใช้งานคือสิ่งนี้ การกระจายการสืบค้นไปยังเครื่องต่างๆ เพื่อประมวลผลดัชนีที่เกี่ยวข้องอย่างรวดเร็ว การคำนวณรายการโพสต์เป็นสถานที่แรกที่เราต้องพิจารณาปัจจัยการจัดอันดับ
มี 17,854 ปัจจัยการจัดอันดับใน codebase
ในวันศุกร์หลังจากการรั่วไหล Martin MacDonald ผู้เลียนแบบไม่ได้แบ่งปันไฟล์จาก codebase ที่เรียกว่า web_factors_info/factors_gen.in ไฟล์นี้มาจากไฟล์เก็บถาวร "เคอร์เนล" ในการรั่วไหลของโค้ดเบสและมีปัจจัยการจัดอันดับ 1,922 รายการ
โดยธรรมชาติแล้ว ชุมชน SEO ทำงานกับหมายเลขนั้นและไฟล์นั้นเพื่อกระจายข่าวข้อมูลเชิงลึกในนั้นอย่างกระตือรือร้น หลายคนแปลคำอธิบายและสร้างเครื่องมือหรือ Google ชีตและ ChatGPT เพื่อให้เข้าใจถึงข้อมูล ซึ่งทั้งหมดนี้เป็นตัวอย่างที่ดีของพลังของชุมชน อย่างไรก็ตาม 1,922 เป็นเพียงหนึ่งในหลาย ๆ ปัจจัยการจัดอันดับใน codebase
การเจาะลึกลงไปใน codebase เผยให้เห็นว่ามีไฟล์ปัจจัยการจัดอันดับจำนวนมากสำหรับชุดย่อยต่างๆ ของระบบประมวลผลแบบสอบถามและการจัดอันดับของยานเดกซ์
เมื่อรวมเข้าด้วยกัน เราพบว่ามีปัจจัยการจัดอันดับทั้งหมด 17,854 รายการ ปัจจัยการจัดอันดับเหล่านี้รวมอยู่ในเมตริกต่างๆ ที่เกี่ยวข้องกับ:
- คลิก
- เวลาอยู่.
- ใช้ประโยชน์จาก Metrika ที่เทียบเท่ากับ Google Analytics ของ Yandex
นอกจากนี้ยังมีโน้ตบุ๊ก Jupyter อีกหลายชุดที่มีปัจจัยเพิ่มเติมอีก 2,000 รายการนอกเหนือไปจากรหัสหลัก สันนิษฐานว่าโน้ตบุ๊ก Jupyter เหล่านี้เป็นตัวแทนของการทดสอบที่วิศวกรกำลังพิจารณาปัจจัยเพิ่มเติมเพื่อเพิ่มในโค้ดเบส อีกครั้ง คุณสามารถตรวจสอบคุณลักษณะทั้งหมดเหล่านี้ด้วยข้อมูลเมตาที่เรารวบรวมจากทั่วทั้งโค้ดเบสได้ที่ลิงก์นี้
เอกสารประกอบของ Yandex ชี้แจงเพิ่มเติมว่าพวกเขามีปัจจัยการจัดอันดับสามประเภท: Static, Dynamic และปัจจัยที่เกี่ยวข้องกับการค้นหาของผู้ใช้โดยเฉพาะและวิธีดำเนินการ ในคำพูดของพวกเขาเอง:
ในโค้ดเบส สิ่งเหล่านี้จะระบุไว้ในไฟล์อันดับปัจจัยที่มีแท็ก TG_STATIC และ TG_DYNAMIC ปัจจัยที่เกี่ยวข้องกับการค้นหามีหลายแท็ก เช่น TG_QUERY_ONLY, TG_QUERY, TG_USER_SEARCH และ TG_USER_SEARCH_ONLY
ในขณะที่เราได้เปิดเผยปัจจัยการจัดอันดับ 18k ที่เป็นไปได้ให้เลือก เอกสารที่เกี่ยวข้องกับ MatrixNet ระบุว่าการให้คะแนนนั้นสร้างขึ้นจากปัจจัยนับหมื่นและปรับแต่งตามคำค้นหา
สิ่งนี้บ่งชี้ว่าสภาพแวดล้อมการจัดอันดับนั้นมีไดนามิกสูง คล้ายกับสภาพแวดล้อมของ Google ตามสิทธิบัตร "กรอบการทำงานสำหรับการประเมินฟังก์ชันการให้คะแนน" ของ Google พวกเขามีสิ่งที่คล้ายคลึงกันมานานแล้วโดยมีการเรียกใช้หลายฟังก์ชันและส่งคืนชุดผลลัพธ์ที่ดีที่สุด
สุดท้าย เมื่อพิจารณาว่าเอกสารอ้างอิงอ้างอิงถึงปัจจัยการจัดอันดับนับหมื่น เราควรระลึกไว้เสมอว่ามีไฟล์อื่น ๆ อีกมากมายที่อ้างอิงในโค้ดซึ่งหายไปจากไฟล์เก็บถาวร ดังนั้นจึงมีแนวโน้มว่าจะเกิดขึ้นอีกมากโดยที่เรามองไม่เห็น นี่คือภาพประกอบเพิ่มเติมโดยการตรวจสอบภาพในเอกสารการเริ่มต้นใช้งานซึ่งแสดงไดเร็กทอรีอื่นที่ไม่มีอยู่ในไฟล์เก็บถาวร
ตัวอย่างเช่น ฉันสงสัยว่ามีความเกี่ยวข้องกับ DSSM มากกว่าในไดเร็กทอรี /semantic-search/
น้ำหนักเริ่มต้นของปัจจัยการจัดอันดับ
ฉันดำเนินการครั้งแรกภายใต้สมมติฐานว่า codebase ไม่มีน้ำหนักสำหรับปัจจัยการจัดอันดับ จากนั้นฉันตกใจมากที่เห็นว่าไฟล์ nav_linear.h ในไดเร็กทอรี /search/relevance/ มีค่าสัมประสิทธิ์เริ่มต้น (หรือน้ำหนัก) ที่เกี่ยวข้องกับปัจจัยการจัดอันดับในการแสดงผลแบบเต็ม
ส่วนนี้ของรหัสเน้น 257 จาก 17,000+ ปัจจัยการจัดอันดับที่เราระบุ ( คำแนะนำแก่ Ryan Jones ในการดึงสิ่งเหล่านี้และเรียงตามคำอธิบายปัจจัยการจัดอันดับ)
เพื่อความชัดเจน เมื่อคุณนึกถึงอัลกอริทึมของเครื่องมือค้นหา คุณอาจนึกถึงสมการทางคณิตศาสตร์ที่ยาวและซับซ้อนซึ่งแต่ละหน้าจะได้รับคะแนนตามชุดของปัจจัยต่างๆ แม้ว่าจะเป็นการทำให้เข้าใจง่ายเกินไป ภาพหน้าจอต่อไปนี้คือข้อความที่ตัดตอนมาจากสมการดังกล่าว ค่าสัมประสิทธิ์แสดงถึงความสำคัญของแต่ละปัจจัย และคะแนนที่คำนวณได้คือสิ่งที่จะใช้ให้คะแนนหน้าตัวเลือกสำหรับความเกี่ยวข้อง
ค่าเหล่านี้ถูกฮาร์ดโค้ดแสดงว่านี่ไม่ใช่ที่เดียวที่มีการจัดอันดับ ฟังก์ชันนี้มีแนวโน้มมากที่สุดที่การให้คะแนนความเกี่ยวข้องเริ่มต้นจะทำเพื่อสร้างชุดรายการการผ่านรายการสำหรับแต่ละส่วนที่ได้รับการพิจารณาสำหรับการจัดอันดับ ในสิทธิบัตรฉบับแรกที่ระบุไว้ข้างต้น พวกเขาพูดถึงเรื่องนี้ว่าเป็นแนวคิดของ Query-independent Relevance (QIR) ซึ่งจะจำกัดเอกสารก่อนที่จะตรวจสอบความเกี่ยวข้องของ Query-Specific Relevance (QSR)
รายการโพสต์ที่เป็นผลลัพธ์จะถูกส่งต่อไปยัง MatrixNet พร้อมคุณสมบัติการสืบค้นเพื่อเปรียบเทียบ ดังนั้น แม้ว่าเราจะไม่ทราบรายละเอียดเฉพาะของการดำเนินการดาวน์สตรีม (แต่) น้ำหนักเหล่านี้ก็ยังมีประโยชน์ต่อการทำความเข้าใจ เนื่องจากจะบอกคุณถึงข้อกำหนดสำหรับเพจที่จะมีสิทธิ์ได้รับชุดการพิจารณา
อย่างไรก็ตาม นั่นทำให้เกิดคำถามต่อไป: เรารู้อะไรเกี่ยวกับ MatrixNet บ้าง
มีรหัสการจัดอันดับประสาทในไฟล์เก็บถาวรเคอร์เนล และมีการอ้างอิงจำนวนมากถึง MatrixNet และ “mxnet” รวมถึงการอ้างอิงจำนวนมากถึง Deep Structured Semantic Models (DSSM) ตลอดทั้งโค้ดเบส
คำอธิบายของหนึ่งในปัจจัยการจัดอันดับ FI_MATRIXNET ระบุว่า MatrixNet ใช้กับปัจจัยทั้งหมด
ปัจจัย {
ดัชนี: 160
ชื่อ Cpp: “FI_MATRIXNET”
ชื่อ: “เมทริกซ์เน็ต”
แท็ก: [TG_DOC, TG_DYNAMIC, TG_TRANS, TG_NOT_01, TG_REARR_USE, TG_L3_MODEL_VALUE, TG_FRESHNESS_FROZEN_POOL]
คำอธิบาย: “MatrixNet ใช้กับทุกปัจจัย – สูตร”
}
นอกจากนี้ยังมีไฟล์ไบนารีจำนวนมากที่อาจเป็นโมเดลที่ได้รับการฝึกฝนมาล่วงหน้า แต่ฉันจะต้องใช้เวลามากขึ้นในการไขรหัสเหล่านั้น
สิ่งที่ชัดเจนในทันทีคือการจัดอันดับมีหลายระดับ (L1, L2, L3) และมีรูปแบบการจัดอันดับที่สามารถเลือกได้ในแต่ละระดับ
ไฟล์ Selecting_rankings_model.cpp แนะนำว่าอาจมีการพิจารณาโมเดลการจัดอันดับที่แตกต่างกันในแต่ละเลเยอร์ตลอดกระบวนการ นี่เป็นวิธีการทำงานของโครงข่ายประสาทเทียม แต่ละระดับเป็นส่วนที่ทำให้การดำเนินการเสร็จสมบูรณ์และการคำนวณที่รวมกันทำให้ได้รายการเอกสารที่จัดลำดับใหม่ซึ่งท้ายที่สุดจะปรากฏเป็น SERP ฉันจะติดตามการเจาะลึกเกี่ยวกับ MatrixNet เมื่อฉันมีเวลามากกว่านี้ สำหรับผู้ที่ต้องการแอบดู สิทธิบัตรตัวจัดอันดับผลการค้นหา
สำหรับตอนนี้ เรามาดูปัจจัยการจัดอันดับที่น่าสนใจกันบ้าง
ปัจจัยการจัดอันดับเริ่มต้นที่มีน้ำหนักเชิงลบ 5 อันดับแรก
ต่อไปนี้เป็นรายการของปัจจัยการจัดอันดับเริ่มต้นที่มีน้ำหนักเชิงลบสูงสุดพร้อมน้ำหนักและคำอธิบายสั้น ๆ ตามคำอธิบายที่แปลจากภาษารัสเซีย
- FI_ADV: -0.2509284637 - ปัจจัยนี้กำหนดว่ามีการโฆษณาใดๆ บนหน้าเว็บ และออกบทลงโทษที่มีน้ำหนักมากที่สุดสำหรับปัจจัยการจัดอันดับเดียว
- FI_DATER_AGE: -0.2074373667 – ปัจจัยนี้คือความแตกต่างระหว่างวันที่ปัจจุบันและวันที่ของเอกสารที่กำหนดโดยฟังก์ชัน dater ค่าคือ 1 ถ้าวันที่ในเอกสารเหมือนกับวันนี้ เป็น 0 ถ้าเอกสารมีอายุ 10 ปีขึ้นไป หรือถ้าไม่ได้กำหนดวันที่ สิ่งนี้บ่งชี้ว่ายานเดกซ์ชอบเนื้อหาที่เก่ากว่า
- FI_QURL_STAT_POWER: -0.1943768768 – ปัจจัยนี้คือจำนวนการแสดงผล URL ที่เกี่ยวข้องกับข้อความค้นหา ดูเหมือนว่าพวกเขาต้องการลดระดับ URL ที่ปรากฏในการค้นหาหลายครั้งเพื่อส่งเสริมความหลากหลายของผลลัพธ์
- FI_COMM_LINKS_SEO_HOSTS: -0.1809636391 – ปัจจัยนี้คือเปอร์เซ็นต์ของลิงก์ขาเข้าที่มี anchor text “เชิงพาณิชย์” ปัจจัยจะเปลี่ยนกลับเป็น 0.1 หากสัดส่วนของลิงก์ดังกล่าวมากกว่า 50% มิฉะนั้น จะตั้งค่าเป็น 0
- FI_GEO_CITY_URL_REGION_COUNTRY: -0.168645758 – ปัจจัยนี้เป็นความบังเอิญทางภูมิศาสตร์ของเอกสารและประเทศที่ผู้ใช้ค้นหา อันนี้ไม่สมเหตุสมผลเลยถ้า 1 หมายถึงเอกสารและประเทศตรงกัน
โดยสรุปแล้ว ปัจจัยเหล่านี้บ่งชี้ว่าเพื่อให้ได้คะแนนที่ดีที่สุด คุณควร:
- หลีกเลี่ยงโฆษณา
- อัปเดตเนื้อหาเก่าแทนที่จะสร้างหน้าใหม่
- ตรวจสอบให้แน่ใจว่าลิงก์ส่วนใหญ่ของคุณมี anchor text ที่มีตราสินค้า
ทุกสิ่งทุกอย่างในรายการนี้อยู่นอกเหนือการควบคุมของคุณ
ปัจจัยการจัดอันดับเริ่มต้นที่มีน้ำหนักเชิงบวก 5 อันดับแรก
หากต้องการติดตาม ต่อไปนี้คือรายการปัจจัยการจัดอันดับเชิงบวกที่ถ่วงน้ำหนักสูงสุด
- FI_URL_DOMAIN_FRACTION: +0.5640952971 – ปัจจัยนี้เป็นการทับซ้อนกันของข้อความค้นหากับโดเมนของ URL ตัวอย่างที่ให้ไว้คือ Chelyabinsk Lottery ซึ่งเรียกโดยย่อว่า chelloto ในการคำนวณค่านี้ Yandex ค้นหาตัวอักษรสามตัวที่ครอบคลุม (che, hel, lot, olo) ดูสัดส่วนของชุดค่าผสมสามตัวอักษรทั้งหมดในชื่อโดเมน
- FI_QUERY_DOWNER_CLICKS_COMBO: +0.3690780393 – คำอธิบายของปัจจัยนี้คือ "การผสมผสานระหว่าง FRC และ pseudo-CTR อย่างชาญฉลาด" ไม่มีการระบุทันทีว่า FRC คืออะไร
- FI_MAX_WORD_HOST_CLICKS: +0.3451158835 – ปัจจัยนี้คือความสามารถในการคลิกได้ของคำที่สำคัญที่สุดในโดเมน ตัวอย่างเช่น สำหรับข้อความค้นหาทั้งหมดที่มีคำว่า "วิกิพีเดีย" ให้คลิกบนหน้าวิกิพีเดีย
- FI_MAX_WORD_HOST_YABAR: +0.3154394573 – คำอธิบายปัจจัยระบุว่า “คำค้นหาที่มีลักษณะเฉพาะมากที่สุดซึ่งสอดคล้องกับไซต์ ตามแถบ” ฉันถือว่านี่หมายถึงคำหลักที่มีการค้นหามากที่สุดใน Yandex Toolbar ที่เชื่อมโยงกับไซต์
- FI_IS_COM: +0.2762504972 – ปัจจัยคือโดเมนเป็น .COM
กล่าวอีกนัยหนึ่ง:
- เล่นเกมคำศัพท์กับโดเมนของคุณ
- ตรวจสอบให้แน่ใจว่าเป็นดอทคอม
- กระตุ้นให้ผู้คนค้นหาคำหลักเป้าหมายของคุณใน Yandex Bar
- ขับเคลื่อนการคลิกต่อไป
มีปัจจัยการจัดอันดับเริ่มต้นที่ไม่คาดคิดมากมาย
สิ่งที่น่าสนใจกว่าในปัจจัยการจัดอันดับแบบถ่วงน้ำหนักเริ่มต้นคือสิ่งที่คาดไม่ถึง ต่อไปนี้เป็นรายการปัจจัย 17 ประการที่โดดเด่น
- FI_PAGE_RANK: +0.1828678331 – PageRank เป็นปัจจัยถ่วงน้ำหนักสูงสุดอันดับที่ 17 ในยานเดกซ์ ก่อนหน้านี้พวกเขาลบลิงก์ออกจากระบบการจัดอันดับทั้งหมด ดังนั้นจึงไม่ใช่เรื่องน่าตกใจที่อันดับจะอยู่ในอันดับต่ำ
- FI_SPAM_KARMA: +0.00842682963 – กรรมของสแปมนั้นตั้งชื่อตาม “แอนตี้สแปมเมอร์” และมีความเป็นไปได้ที่โฮสต์จะเป็นสแปม ตามข้อมูลของ Whois
- FI_SUBQUERY_THEME_MATCH_A: +0.1786465163 – ข้อความค้นหาและเอกสารตรงกับหัวข้อมากน้อยเพียงใด นี่คือปัจจัยที่มีน้ำหนักสูงสุดอันดับที่ 19
- FI_REG_HOST_RANK: +0.1567124399 – Yandex มีปัจจัยการจัดอันดับโฮสต์ (หรือโดเมน)
- FI_URL_LINK_PERCENT: +0.08940421124 – อัตราส่วนของลิงก์ที่มี anchor text เป็น URL (แทนที่จะเป็นข้อความ) ต่อจำนวนลิงก์ทั้งหมด
- FI_PAGE_RANK_UKR: +0.08712279101 – มี PageRank เฉพาะของยูเครน
- FI_IS_NOT_RU: +0.08128946612 – เป็นสิ่งที่ดีหากโดเมนไม่ใช่ .RU เห็นได้ชัดว่าเครื่องมือค้นหาของรัสเซียไม่เชื่อถือไซต์ของรัสเซีย
- FI_YABAR_HOST_AVG_TIME2: +0.07417219313 – นี่คือเวลาเฉลี่ยที่รายงานโดย YandexBar
- FI_LERF_LR_LOG_RELEV: +0.06059448504 – นี่คือความเกี่ยวข้องของลิงก์ตามคุณภาพของแต่ละลิงก์
- FI_NUM_SLASHES: +0.05057609417 – จำนวนเครื่องหมายทับใน URL เป็นปัจจัยในการจัดอันดับ
- FI_ADV_PRONOUNS_PORTION: -0.001250755075 – สัดส่วนของคำสรรพนามบนหน้า
- FI_TEXT_HEAD_SYN: -0.01291908335 – การมีอยู่ของคำ [query] ในส่วนหัว โดยคำนึงถึงคำพ้องความหมาย
- FI_PERCENT_FREQ_WORDS: -0.02021022114 – เปอร์เซ็นต์ของจำนวนคำ ซึ่งเป็นคำที่ใช้บ่อยที่สุด 200 คำในภาษานั้น จากจำนวนคำทั้งหมดในข้อความ
- FI_YANDEX_ADV: -0.09426121965 – เจาะจงมากขึ้นเกี่ยวกับความไม่พอใจต่อโฆษณา Yandex ลงโทษหน้าเว็บที่มีโฆษณา Yandex
- FI_AURA_DOC_LOG_SHARED: -0.09768630485 – ลอการิทึมของจำนวนงูสวัด (พื้นที่ของข้อความ) ในเอกสารที่ไม่เหมือนกัน
- FI_AURA_DOC_LOG_AUTHOR: -0.09727752961 – ลอการิทึมของจำนวนงูสวัดซึ่งเจ้าของเอกสารนี้ได้รับการยอมรับว่าเป็นผู้เขียน
- FI_CLASSIF_IS_SHOP: -0.1339319854 – เห็นได้ชัดว่า Yandex จะให้ความรักคุณน้อยลงหากเพจของคุณเป็นร้านค้า
ประเด็นหลักจากการตรวจสอบปัจจัยการจัดอันดับแปลก ๆ เหล่านี้และอาร์เรย์ของปัจจัยที่มีอยู่ใน Yandex codebase คือมีหลายสิ่งหลายอย่างที่อาจเป็นปัจจัยในการจัดอันดับ
ฉันสงสัยว่า "200 สัญญาณ" ที่รายงานโดย Google แท้จริงแล้วเป็นสัญญาณ 200 คลาส โดยที่แต่ละสัญญาณเป็นส่วนประกอบที่สร้างขึ้นจากส่วนประกอบอื่นๆ มากมาย ในลักษณะเดียวกับที่ Google Analytics มีมิติข้อมูลที่มีเมตริกจำนวนมากที่เกี่ยวข้อง Google Search น่าจะมีระดับของสัญญาณการจัดอันดับที่ประกอบด้วยคุณลักษณะมากมาย
Yandex ขูด Google, Bing, YouTube และ TikTok
ฐานรหัสยังเผยให้เห็นว่ายานเดกซ์มีโปรแกรมแยกวิเคราะห์จำนวนมากสำหรับเว็บไซต์อื่นๆ และบริการที่เกี่ยวข้อง สำหรับชาวตะวันตก สิ่งที่โดดเด่นที่สุดคือสิ่งที่ฉันได้ระบุไว้ในหัวข้อด้านบน นอกจากนี้ ยานเดกซ์ยังมีโปรแกรมแยกวิเคราะห์สำหรับบริการต่างๆ ที่ฉันไม่คุ้นเคย รวมถึงบริการของตัวเองด้วย
สิ่งที่เห็นได้ชัดทันทีคือตัวแยกวิเคราะห์นั้นมีคุณสมบัติครบถ้วน ทุกองค์ประกอบที่มีความหมายของ Google SERP จะถูกดึงออกมา ในความเป็นจริง ใครก็ตามที่อาจพิจารณาที่จะคัดลอกบริการเหล่านี้อาจควรตรวจสอบรหัสนี้
มีรหัสอื่นที่ระบุว่ายานเดกซ์กำลังใช้ข้อมูล Google บางส่วนเป็นส่วนหนึ่งของการคำนวณ DSSM แต่ 83 ปัจจัยการจัดอันดับของ Google ที่ตั้งชื่อเองทำให้ชัดเจนว่ายานเดกซ์พึ่งพาผลลัพธ์ของ Google ค่อนข้างมาก
เห็นได้ชัดว่า Google จะไม่ดึง Bing ออกจากการคัดลอกผลลัพธ์ของเครื่องมือค้นหาอื่น และจะไม่พึ่งพาผลลัพธ์ของเครื่องมือค้นหาอื่นในการคำนวณการจัดอันดับหลัก
ยานเดกซ์มีขอบเขตบนที่ต่อต้าน SEO สำหรับปัจจัยการจัดอันดับบางอย่าง
315 ปัจจัยการจัดอันดับมีเกณฑ์ที่ค่าที่คำนวณใด ๆ ที่เกินกว่านั้นบ่งชี้ให้ระบบทราบว่าคุณลักษณะของหน้านั้นได้รับการปรับให้เหมาะสมมากเกินไป 39 ของปัจจัยการจัดอันดับเหล่านี้เป็นส่วนหนึ่งของปัจจัยถ่วงน้ำหนักเริ่มต้นที่อาจทำให้เพจไม่รวมอยู่ในรายการโพสต์เริ่มต้น คุณสามารถค้นหาสิ่งเหล่านี้ได้ในสเปรดชีตที่ฉันเชื่อมโยงไว้ด้านบนโดยการกรองสำหรับค่าสัมประสิทธิ์อันดับและคอลัมน์ Anti-SEO
ไม่ใช่เรื่องเกินจริงที่จะคาดหวังว่าเครื่องมือค้นหาสมัยใหม่ทั้งหมดจะกำหนดเกณฑ์สำหรับปัจจัยบางอย่างที่ SEO เคยใช้ในทางที่ผิดในอดีต เช่น anchor text, CTR หรือการยัดคำหลัก ตัวอย่างเช่น Bing ถูกกล่าวว่าใช้ประโยชน์จากการใช้เมตาคีย์เวิร์ดในทางที่ผิดเป็นปัจจัยลบ
ยานเดกซ์เพิ่ม "โฮสต์ที่สำคัญ"
ยานเดกซ์มีชุดของกลไกการเพิ่มประสิทธิภาพตลอดทั้งโค้ดเบส สิ่งเหล่านี้คือการปรับปรุงปลอมในเอกสารบางอย่างเพื่อให้แน่ใจว่าเอกสารเหล่านั้นได้คะแนนสูงขึ้นเมื่อได้รับการพิจารณาให้จัดอันดับ
ด้านล่างนี้คือความคิดเห็นจาก "ตัวช่วยสร้างการบูสต์" ซึ่งแนะนำว่าไฟล์ขนาดเล็กจะได้ประโยชน์ดีที่สุดจากอัลกอริทึมการบูสต์
บูสต์มีหลายประเภท ฉันเคยเห็นการเพิ่มประสิทธิภาพอย่างหนึ่งที่เกี่ยวข้องกับลิงก์ และฉันยังเห็นชุดของ “HandJobBoosts” ซึ่งฉันเดาได้ว่าเป็นการแปลแบบแปลกๆ ของการเปลี่ยนแปลงแบบ “ด้วยตนเอง”
การเพิ่มประสิทธิภาพอย่างหนึ่งที่ฉันพบว่าน่าสนใจเป็นพิเศษนั้นเกี่ยวข้องกับ “Vital Hosts” โดยที่โฮสต์ที่สำคัญสามารถเป็นไซต์ใดก็ได้ที่ระบุ ตัวแปรที่กล่าวถึงโดยเฉพาะคือ NEWS_AGENCY_RATING ซึ่งทำให้ฉันเชื่อว่า Yandex ให้การสนับสนุนโดยให้ผลลัพธ์ที่เอนเอียงกับองค์กรข่าวบางแห่ง
หากไม่พูดถึงภูมิรัฐศาสตร์ สิ่งนี้จะแตกต่างจาก Google อย่างมากตรงที่พวกเขายืนกรานว่าจะไม่นำอคติเช่นนี้มาใช้ในระบบการจัดอันดับของตน
โครงสร้างของเซิร์ฟเวอร์เอกสาร
ฐานรหัสเผยให้เห็นวิธีการจัดเก็บเอกสารในเซิร์ฟเวอร์เอกสารของยานเดกซ์ สิ่งนี้มีประโยชน์ในการทำความเข้าใจว่าเสิร์ชเอ็นจิ้นไม่ได้เพียงแค่สร้างสำเนาของหน้าและบันทึกลงในแคชเท่านั้น แต่ยังบันทึกคุณลักษณะต่างๆ เป็นข้อมูลเมตาเพื่อใช้ในกระบวนการจัดอันดับดาวน์สตรีม
ภาพหน้าจอด้านล่างเน้นส่วนย่อยของคุณสมบัติที่น่าสนใจเป็นพิเศษ ไฟล์อื่นๆ ที่มีการสืบค้น SQL แนะนำว่าเซิร์ฟเวอร์เอกสารมีคอลัมน์เกือบ 200 คอลัมน์ รวมถึงแผนผัง DOM, ความยาวของประโยค, เวลาในการดึงข้อมูล, ชุดของวันที่ และคะแนนป้องกันสแปม, ห่วงโซ่การเปลี่ยนเส้นทาง และไม่ว่าเอกสารจะถูกแปลหรือไม่ก็ตาม รายการที่สมบูรณ์ที่สุดที่ฉันเจออยู่ใน /robot/rthub/yql/protos/web_page_item.proto
สิ่งที่น่าสนใจที่สุดในเซตย่อยนี้คือจำนวนซิมแฮชที่ใช้ Simhashes เป็นตัวแทนตัวเลขของเนื้อหาและเครื่องมือค้นหาใช้สำหรับการเปรียบเทียบอย่างรวดเร็วสำหรับการกำหนดเนื้อหาที่ซ้ำกัน มีหลายกรณีในไฟล์เก็บถาวรของโรบ็อตที่ระบุว่าเนื้อหาที่ซ้ำกันถูกลดระดับอย่างชัดเจน
นอกจากนี้ ในฐานะส่วนหนึ่งของกระบวนการจัดทำดัชนี โค้ดเบสจะนำเสนอ TF-IDF, BM25 และ BERT ในไปป์ไลน์การประมวลผลข้อความ ไม่ชัดเจนว่าทำไมกลไกเหล่านี้ทั้งหมดมีอยู่ในโค้ด เนื่องจากมีความซ้ำซ้อนในการใช้กลไกเหล่านี้ทั้งหมด
ปัจจัยเชื่อมโยงและการจัดลำดับความสำคัญ
วิธีที่ยานเดกซ์จัดการกับปัจจัยเชื่อมโยงนั้นน่าสนใจเป็นพิเศษ เพราะก่อนหน้านี้ยานเดกซ์ได้ปิดการใช้งานผลกระทบทั้งหมด โค้ดเบสยังเปิดเผยข้อมูลจำนวนมากเกี่ยวกับปัจจัยของลิงก์และวิธีจัดลำดับความสำคัญของลิงก์
เครื่องคำนวณสแปมลิงก์ของยานเดกซ์มี 89 ปัจจัยที่พิจารณา สิ่งใดก็ตามที่ทำเครื่องหมายเป็น SF_RESERVED จะเลิกใช้แล้ว คุณสามารถค้นหาคำอธิบายของปัจจัยเหล่านี้ได้ใน Google ชีตที่ลิงก์ด้านบน
โดยเฉพาะอย่างยิ่งยานเดกซ์มีอันดับโฮสต์และคะแนนบางส่วนที่ดูเหมือนว่าจะอยู่ในระยะยาวหลังจากที่ไซต์หรือเพจพัฒนาชื่อเสียงในด้านสแปม
อีกสิ่งหนึ่งที่ยานเดกซ์ทำคือตรวจทานสำเนาทั่วทั้งโดเมนและพิจารณาว่ามีเนื้อหาที่ซ้ำกับลิงก์เหล่านั้นหรือไม่ ซึ่งอาจเป็นตำแหน่งลิงก์ทั่วทั้งไซต์ ลิงก์บนหน้าที่ซ้ำกัน หรือเพียงแค่ลิงก์ที่มี anchor text เดียวกันซึ่งมาจากไซต์เดียวกัน
สิ่งนี้แสดงให้เห็นว่าเป็นเรื่องเล็กน้อยที่จะลดราคาลิงก์หลายลิงก์จากแหล่งเดียวกันและชี้แจงความสำคัญของการกำหนดเป้าหมายลิงก์ที่ไม่ซ้ำใครจากแหล่งที่มาที่หลากหลายมากขึ้น
เราสามารถใช้ Yandex กับสิ่งที่เรารู้เกี่ยวกับ Google ได้อย่างไร
แน่นอนว่านี่ยังคงเป็นคำถามในใจของทุกคน แม้ว่ายานเดกซ์และ Google จะมีความคล้ายคลึงหลายอย่าง แต่ตามจริงแล้ว มีเพียงวิศวกรซอฟต์แวร์ของ Google ที่ทำงานเกี่ยวกับการค้นหาเท่านั้นที่สามารถตอบคำถามนี้ได้อย่างแน่ชัด
แต่นั่นเป็นคำถามที่ผิด
จริงๆ แล้วโค้ดนี้น่าจะช่วยเราขยายความคิดเกี่ยวกับการค้นหาสมัยใหม่ ความเข้าใจโดยรวมเกี่ยวกับการค้นหาส่วนใหญ่สร้างขึ้นจากสิ่งที่ชุมชน SEO ได้เรียนรู้ในช่วงต้นทศวรรษ 2000 ผ่านการทดสอบและจากปากของวิศวกรการค้นหาเมื่อการค้นหามีความคลุมเครือน้อยกว่ามาก โชคไม่ดีที่ไม่ทันกับนวัตกรรมที่ก้าวไปอย่างรวดเร็ว
ข้อมูลเชิงลึกจากคุณลักษณะและปัจจัยต่างๆ ของการรั่วไหลของยานเดกซ์ควรให้สมมติฐานเพิ่มเติมเกี่ยวกับสิ่งที่ต้องทดสอบและพิจารณาสำหรับการจัดอันดับใน Google นอกจากนี้ยังควรแนะนำสิ่งต่างๆ ที่สามารถแยกวิเคราะห์และวัดได้โดยการรวบรวมข้อมูล SEO การวิเคราะห์ลิงก์ และเครื่องมือจัดอันดับ
ตัวอย่างเช่น การวัดความคล้ายคลึงกันของโคไซน์ระหว่างข้อความค้นหาและเอกสารโดยใช้การฝัง BERT อาจเป็นประโยชน์ในการทำความเข้าใจเมื่อเทียบกับหน้าเว็บของคู่แข่ง เนื่องจากเป็นสิ่งที่เครื่องมือค้นหาสมัยใหม่กำลังทำอยู่
ในทางที่บันทึกการค้นหา AOL ทำให้เราไม่ต้องเดาการกระจายของการคลิกบน SERP ฐานรหัสยานเดกซ์ย้ายเราออกจากสิ่งที่เป็นนามธรรมไปสู่รูปธรรม และข้อความ "มันขึ้นอยู่กับ" ของเราก็มีคุณสมบัติที่ดีกว่า
ด้วยเหตุนี้ codebase นี้จึงเป็นของขวัญที่จะมอบให้ต่อไป เพิ่งผ่านไปหนึ่งสัปดาห์และเราได้รวบรวมข้อมูลเชิงลึกที่น่าสนใจจากโค้ดนี้แล้ว
ฉันคาดว่าวิศวกร SEO ที่มีความทะเยอทะยานบางคนที่มีเวลามากขึ้นจะคอยขุดค้นและอาจเติมสิ่งที่ขาดหายไปให้เพียงพอเพื่อรวบรวมสิ่งนี้และทำให้มันทำงานได้ ฉันยังเชื่อว่าวิศวกรของเครื่องมือค้นหาต่างๆ กำลังดำเนินการและแยกวิเคราะห์นวัตกรรมที่พวกเขาสามารถเรียนรู้และเพิ่มเข้าไปในระบบของพวกเขาได้
ในขณะเดียวกัน ทนายความของ Google อาจกำลังร่างจดหมายหยุดและยุติที่เกี่ยวข้องกับการขูดรีดทั้งหมด
ฉันอยากเห็นวิวัฒนาการของพื้นที่ของเราซึ่งขับเคลื่อนโดยผู้คนที่อยากรู้อยากเห็นซึ่งจะเพิ่มโอกาสนี้ให้สูงสุด
แต่เดี๋ยวก่อน หากการรับข้อมูลเชิงลึกจากโค้ดจริงไม่มีประโยชน์สำหรับคุณ คุณสามารถกลับไปทำสิ่งที่สำคัญกว่า เช่น การโต้เถียงเกี่ยวกับโดเมนย่อยกับไดเรกทอรีย่อย
ความคิดเห็นที่แสดงในบทความนี้เป็นความคิดเห็นของผู้เขียนรับเชิญและไม่จำเป็นต้องเป็น Search Engine Land ผู้เขียนเจ้าหน้าที่อยู่ที่นี่