5 เคล็ดลับสำคัญในการพัฒนาวีโอไอพีของคุณ TTFB
เผยแพร่แล้ว: 2019-01-08นี่คือแขกโพสต์โดย Vasili Nikolaev
Time to first byte (TTFB) เป็นหนึ่งในตัวชี้วัดความเร็วที่สำคัญที่สุดของเว็บไซต์ มันบ่งบอกว่าเวลาจะผ่านไปนานแค่ไหนหลังจากที่ผู้ใช้ป้อน URL ร้านค้าวีโอไอพีของคุณและเวลาที่พวกเขาได้รับการตอบกลับ แม้จะเล็กเพียง 1 ไบต์ (ด้วยเหตุนี้ชื่อ "เวลาถึง ไบต์แรก")
เวลาใน ไบต์ แรกมีความสำคัญทั้งสำหรับมนุษย์ (พวกเขาไม่ชอบรอ) และสำหรับหุ่นยนต์เครื่องมือค้นหา (Google เกลียดเว็บไซต์ที่ช้าและจัดอันดับให้ต่ำกว่า ― คลิกที่นี่เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับโซลูชัน Magento 2 SEO ระดับเฟิร์สคลาสโดย เมจเวิร์กซ์).
แต่ในขณะเดียวกันก็มีหลักฐานที่น่าเชื่อถือจาก John Mueller หัวหน้านักพูดของ Google ว่า Google ไม่ได้ใช้ TTFB ในการจัดอันดับ:
ดังนั้น คำแนะนำของเราคืออย่าหมกมุ่นอยู่กับ TTFB มากเกินไปสำหรับ SEO แต่ให้เน้นที่ประสบการณ์ของผู้ใช้และประสิทธิภาพของร้านค้าแทน
เหตุใด TTFB จึงสำคัญกว่าการโหลดแบบเต็มหน้า (เรียกว่า “เวลาถึง ไบต์สุดท้าย”) เพราะยิ่งคุณโหลดไบต์แรกได้เร็วเท่าไร ผู้ใช้ก็จะยิ่งเริ่มอ่านเนื้อหาของคุณเร็วขึ้นเท่านั้น ไม่สำคัญว่าพวกเขาจะไม่เห็นทุกภาพในหน้าทันที สิ่งสำคัญกว่าคือต้องเสนอบางสิ่งให้ผู้ใช้ทำในขณะที่เว็บเซิร์ฟเวอร์ของคุณกำลังโหลดเนื้อหาที่เหลือ
สารบัญ
- 1. ทำความเข้าใจกับคอขวดของคุณเพื่อกำจัดมัน
- TTFB ที่ดีคืออะไร?
- 2. ย้ายไปยังโปรแกรมฐานข้อมูลที่เหมาะสมกว่า
- 3. จับคู่การตั้งค่าเซิร์ฟเวอร์กับความต้องการการรับส่งข้อมูลปัจจุบันของคุณ
- 4. ตั้งค่าโซลูชันแคชที่ดีกว่า
- 5. กำจัดส่วนขยายที่ไร้ประโยชน์
- เคล็ดลับโบนัส: Tweak Store และการตั้งค่าการบันทึกลูกค้า
- การต่อสู้เพื่อประสิทธิภาพอย่างต่อเนื่อง
1. ทำความเข้าใจกับคอขวดของคุณเพื่อกำจัดมัน
TTFB ที่ดีคืออะไร?
Google ระบุว่า TTFB ที่ต่ำกว่า 200 ms เป็นเป้าหมาย ต่ำกว่า 200 มิลลิวินาที เสิร์ชเอ็นจิ้นจะจัดอันดับคุณสูงสุด เมื่อคุณทำเกินค่านี้แล้ว Google จะใช้บทลงโทษกับเว็บไซต์ของคุณ 600 ms ขึ้นไปหมายความว่าคุณไม่สามารถผ่านการทดสอบ TTFB ของ Google ได้ด้วยซ้ำ
มีหลายปัจจัยที่จะส่งผลต่อ TTFB ของคุณ ไม่เรียงลำดับโดยเฉพาะ:
- การกำหนดค่าเว็บเซิร์ฟเวอร์และทรัพยากร
- เนมเซิร์ฟเวอร์แก้ไขความเร็ว
- เวลาดำเนินการรหัสในหน้า
- นำโซลูชันแคชแบ็กเอนด์มาใช้
- การคาดเดาเครือข่าย
ตรวจสอบค่า TTFB ของคุณด้วยบริการของบุคคลที่สามหรือใช้การทดสอบ Google TTFB คุณยังสามารถเปรียบเทียบผลลัพธ์ของคุณกับเว็บไซต์ยอดนิยมหรือกับคู่แข่งของคุณได้ที่นี่ เพื่อดูมุมมองที่ไม่เหมือนใครว่าร้านค้าของคุณโหลดได้อย่างไรสำหรับผู้ใช้มือถือ
เครื่องมือวินิจฉัยที่ยอดเยี่ยมอีกอันคือ Magento 2 Profiler ด้วยสิ่งนี้ คุณสามารถแยกย่อยทุกคำขอของเพจออกเป็นบล็อคเล็กๆ ที่มองเห็นและวิเคราะห์ได้อย่างรวดเร็ว
ในตาราง ให้ความสนใจเป็นพิเศษกับ 2 ค่าสำคัญ คือ เวลา และ การนับ เวลาเป็นตัวอธิบาย เป็นความล่าช้าที่เกิดขึ้นจริงระหว่างคำขอของผู้ใช้และการตอบสนองของเซิร์ฟเวอร์ แถว Cnt สอดคล้องกับจำนวนครั้งที่เรียกใช้รายการนี้ก่อนที่จะสร้างเอาต์พุต
ควรใช้ตัวสร้างโปรไฟล์ฐานข้อมูลร่วมกับตัวสร้างโปรไฟล์เริ่มต้นของ Magento 2 เพื่อวิเคราะห์การสืบค้นฐานข้อมูล
นี่คือขั้นตอนแรกที่คุณต้องดำเนินการ: เปิดใช้งาน Magento Profiler และดูหน้าเว็บที่มีปัญหามากที่สุดกับ TTFB แม้ว่าคุณสามารถใช้ตัวสร้างโปรไฟล์เริ่มต้นได้ เราขอแนะนำให้คุณตั้งค่า Profiler SQL ฟรีและให้ภาพรวมที่สะดวกสบายของจำนวนการสืบค้นต่อเซสชัน
ตัวสร้างโปรไฟล์จะแบ่งคำขอทั้งหมดออกเป็นส่วนเล็กๆ เพื่อให้คุณสามารถดูได้ทันทีว่าส่วนใดที่ลากคุณลงมา
2. ย้ายไปยังโปรแกรมฐานข้อมูลที่เหมาะสมกว่า
ฐานข้อมูลร้านค้า Magento 2 สามารถกลายเป็นคอขวดของประสิทธิภาพที่ใหญ่ที่สุดได้อย่างง่ายดาย หากไม่มีประสิทธิภาพ ช้า หรือใช้เอ็นจิ้นการจัดเก็บข้อมูลที่ไม่ใช่ตัวเลือกที่ดีที่สุดสำหรับการจัดการ Magento
ทำไมสิ่งนี้จึงสำคัญ? มีตัวเลือกมากมายของเอ็นจิ้นการจัดเก็บข้อมูลที่หลากหลายสำหรับ MySQL เราได้นับโซลูชันที่รองรับอย่างน้อย 10 รายการในเอกสารประกอบอย่างเป็นทางการของ MySQL และยังมีอีกมากมาย
แม้ว่าคุณจะสามารถใช้ Magento กับเอ็นจิน MyISAM MySQL ที่เป็นค่าเริ่มต้นได้ แต่กลไกฐานข้อมูลทางเลือก เช่น MariaDB Ari เอ็นจิ้น การจัดเก็บข้อมูล หรือเอ็นจิน Percona XtraDB สามารถทำให้ร้านค้าของคุณมีเสถียรภาพมากขึ้นและ (บางครั้ง) เร็วขึ้นเมื่อเทียบกับการตั้งค่าเริ่มต้น
ตัวอย่างเช่น เอ็นจิ้น Aria ใช้วิธีการที่ชาญฉลาดกว่าในกรณีที่ Magento บังคับให้กลไกการจัดเก็บข้อมูลใช้ตารางชั่วคราวจำนวนมาก
Percona เป็นอีกหนึ่งทางแยกของ MySQL ที่รวมเอาการปรับแต่งประสิทธิภาพจำนวนหนึ่งเพื่อเพิ่มความเร็วในการสืบค้นฐานข้อมูล เมื่อเทียบกับ MyISAM มันทำงานได้เร็วกว่ามากด้วยการสืบค้นแบบขนานจำนวนมากและเชี่ยวชาญด้านการประมวลผลธุรกรรม
แม้ว่าคำแนะนำที่ดีที่สุดสำหรับการเพิ่มประสิทธิภาพฐานข้อมูลคือการตรวจสอบความต้องการของคุณอย่างรอบคอบและเลือกเครื่องมือที่เหมาะสมกับคุณที่สุด เรามีเคล็ดลับบางประการที่จะเป็นประโยชน์สำหรับทุกคน:
- หลีกเลี่ยง MySQL เริ่มต้นสำหรับการค้นหาร้านค้า ติดตั้ง Elasticsearch เพื่อเร่งการค้นหาทั้งหมดบนเว็บไซต์ของคุณ
- เลือกกลไกจัดการฐานข้อมูลที่เหมาะกับคุณที่สุด
3. จับคู่การตั้งค่าเซิร์ฟเวอร์กับความต้องการการรับส่งข้อมูลปัจจุบันของคุณ
การลดราคาโครงสร้างพื้นฐานไม่ใช่ความคิดที่ดี เมื่อเวลาผ่านไป ธุรกิจที่เติบโตอย่างต่อเนื่องจะเห็นลูกค้าเพิ่มขึ้น ธุรกรรมเพิ่มขึ้น และคำสั่งซื้อเพิ่มขึ้น ดังนั้นจึงเป็นเรื่องดีที่จะรักษาการตั้งค่าของคุณไว้ที่ความจุ 80% เพื่อปรับให้เข้ากับการใช้งานแบบสุ่มและการสัญจรของเท้าที่เกิดจากเหตุการณ์ 20% นั้นสามารถรักษาระดับประสิทธิภาพที่ดีได้ในทุกสถานการณ์
ทีมโฮสติ้งที่คุ้มค่าจะบอกคุณว่าข้อกำหนดของระบบใดที่คุณต้องการเพื่อให้ทำงานได้อย่างราบรื่น แต่ถ้าคุณเติบโตอย่างรวดเร็วในช่วงระยะเวลาหนึ่ง จะเป็นความรับผิดชอบของคุณเองที่จะร่างแผนงานในการอัพเกรด
มีจุดวิกฤตหลายจุดในร้านค้า Magento ของคุณที่จะมีอิทธิพลอย่างมากต่อความต้องการของระบบของคุณ:
- ขนาดร้านค้า (จำนวนการดูร้านค้า)
- หมวดหมู่และ SKU ในแคตตาล็อก (พร้อมชุดแอตทริบิวต์และแอตทริบิวต์)
- จำนวนการเข้าชมเฉลี่ย (การดูหน้าเว็บโดยเฉลี่ยและยอดสูงสุดในอดีต)
- ธุรกรรมต่อวัน (การดาวน์โหลดแบบดิจิทัล การชำระเงิน และการดำเนินการที่คล้ายคลึงกัน)
โดยทั่วไป การรับส่งข้อมูลเฉลี่ยของคุณจะส่งผลโดยตรงต่อปริมาณพลังงาน CPU ที่คุณต้องการ ดังนั้น หลังจากที่คุณพบการตั้งค่า CPU ที่เหมาะสมที่สุดแล้ว ให้จับคู่ RAM ของคุณกับความต้องการของ CPU เพื่อสร้างโปรไฟล์เว็บเซิร์ฟเวอร์ที่สมดุล
ขนาดที่เก็บข้อมูลฐานข้อมูลขึ้นอยู่กับ RAM ปัจจุบันของคุณ ดังนั้นคุณควรเลือกให้เพียงพอสำหรับความต้องการในปัจจุบันทั้งหมด สร้างเบาะรองนั่งสำหรับพื้นที่หายใจด้วย เป้าหมายของคุณคือรักษา CPU และ RAM สำรองไว้อย่างน้อย 20-25% เสมอ เพื่อรับมือกับการจราจรที่ติดขัดเป็นครั้งคราว
4. ตั้งค่าโซลูชันแคชที่ดีกว่า
การแคชเว็บไซต์เป็นสิ่งที่ดีที่สุดรองลงมาหลังจากการประดิษฐ์เฟรนช์ฟรายส์ แคชของเซิร์ฟเวอร์ปรับปรุงความรวดเร็วของเว็บไซต์ทำให้รู้สึกเร็วขึ้นมาก การแคชทำงานโดยการย้ายข้อมูลที่ใช้บ่อยจาก SSD หรือฮาร์ดไดรฟ์ไปยัง RAM
เมื่อ HDD สามารถอ่านข้อมูลได้ต่อเนื่องสูงสุด 200 MB/วินาที และ SSD สูงสุด 3200 โมดูล DRAM สามารถทำงานได้ถึง 20 GB/s ซึ่งทำให้เรามีความแตกต่างของ x10 หรืออย่างน้อยหนึ่งลำดับความสำคัญ
ทั้ง Redis และ Varnish เป็นหนึ่งในการอัพเกรดที่ได้รับความนิยมมากที่สุดสำหรับร้าน Magento เป็นตัวเลือกการแคชที่แนะนำสำหรับ Magento 2 โซลูชันทั้งสองทำงานได้ดีกับ Magento 1 เช่นกัน
วานิชเป็นเครื่องมือที่ท้าทายในการกำหนดค่า แต่เมื่อทำถูกต้อง จะเสนอค่า TTFB ใน 100-200 มิลลิวินาที สำหรับการกำหนดค่าแคชแบบเต็มหน้า TTFB จะอยู่ในช่วง 250 มิลลิวินาที
ข้อดีอีกอย่างที่ชัดเจนของวานิช ― ทำงานบนหน้าเว็บต่างๆ ได้มากขึ้น แม้ว่า FPC จะใช้ไม่ได้กับหน้าที่มีเนื้อหาแบบไดนามิกจำนวนมาก แต่ Varnish ให้ประสิทธิภาพที่ดีกว่าแม้สำหรับกรณีการใช้งานที่ท้าทายเหล่านี้
5. กำจัดส่วนขยายที่ไร้ประโยชน์
ความจริงแล้ว การปิดใช้งานส่วนขยายที่ไม่ได้ใช้เป็นเคล็ดลับ #1 สำหรับร้าน Magento 2 ทุกแห่ง แต่มักถูกมองข้าม ทุกส่วนขยายที่ทำงานบนเว็บไซต์ของคุณจะใช้ทรัพยากรบางส่วนของคุณหมด หากกำหนดค่าได้ไม่ดี ก็อาจทำให้ TTFB ของคุณช้าลงได้เช่นกัน
ข้อควรจำ: เซิร์ฟเวอร์ต้องรันโค้ดนี้ก่อนที่จะส่งคำติชมไปยังผู้ใช้
การล้างรายการส่วนขยายของคุณจะทำให้ Magento เร็วขึ้นด้วย แม้ว่าคุณจะไม่สามารถปิดการใช้งานได้ แต่ให้ทั้งร้าน Magento และส่วนขยายของบุคคลที่สามของคุณเป็นปัจจุบันเพื่อรับประโยชน์จากการแก้ไขข้อบกพร่องและการเพิ่มประสิทธิภาพที่จะทำให้ประสิทธิภาพของเว็บไซต์ของคุณ ดีขึ้นอย่างแน่นอน
เคล็ดลับโบนัส: Tweak Store และการตั้งค่าการบันทึกลูกค้า
ตรวจสอบให้แน่ใจว่าได้ปิดการบันทึกลูกค้า Magento แล้ว ซึ่งจะช่วยลดเวลาที่ใช้ในการสืบค้นฐานข้อมูล มันไม่ได้ส่งผลกระทบอย่างใหญ่หลวงเนื่องจากการบันทึกของลูกค้าเป็นกิจกรรมที่ค่อนข้างน้อย การเพิ่มประสิทธิภาพจะขึ้นอยู่กับจำนวนลูกค้าที่มาเยี่ยมชมร้านค้าของคุณในปัจจุบัน
เราไม่แนะนำให้คุณปิดการบันทึกของร้านค้า เป็นเครื่องมือที่มีค่าที่ช่วยในการแก้ไขปัญหาวีโอไอพี แต่แทนที่จะปล่อยให้บันทึกของร้านค้าใช้เวลากับเซิร์ฟเวอร์ คุณสามารถย้ายบันทึกไปยังบริการของบริษัทอื่น เช่น Papertrail
การต่อสู้เพื่อประสิทธิภาพอย่างต่อเนื่อง
ไม่มีร้าน Magento สองแห่งที่เหมือนกัน แต่ละคนจะเผชิญกับความท้าทายที่แตกต่างกันในการปรับหน้าร้านให้เหมาะสมเพื่อความรวดเร็ว สิ่งนี้สามารถเกิดขึ้นได้จริงโดยเฉพาะอย่างยิ่งสำหรับเว็บไซต์ Magento รุ่นเก่า (และใหญ่กว่า) ที่มีส่วนขยายของบุคคลที่สามที่ซับซ้อนจำนวนมาก ฐานข้อมูลขนาดใหญ่ และร้านค้าหลายแห่ง
และในขณะที่เราไม่สามารถ "ชนะ" การต่อสู้เพื่อประสิทธิภาพครั้งนี้ได้ เป้าหมายร่วมกันของเราคือการทำให้ร้านค้า Magento ดีที่สุดในด้านความเร็ว ประสบการณ์ผู้ใช้ และความปลอดภัยในเว็บไซต์อีคอมเมิร์ซทั้งหมด
Vasili Nikolaev กำลัง ตามล่าขุมทรัพย์อย่างถาวรเพื่อค้นหาเคล็ดลับที่มีประสิทธิภาพที่สุดเพื่อทำให้ชีวิตของเจ้าของร้านค้าง่ายขึ้นเล็กน้อย ไม่มีอะไรน่าพอใจไปกว่าการหาทางออกที่ดีสำหรับปัญหาที่ท้าทายสำหรับเขา