เพิ่มสปีดเว็บให้โหลดเร็วขึ้น 50%! ด้วย Lazy Load

ในยุคที่การทำเว็บเน้นออกแบบให้ “ครบ จบ ในหน้าเดียว” หรือที่เรียกว่า One Page Design เพื่อให้ผู้ใช้เว็บสะดวกดูข้อมูลเพียงแค่เลื่อนขึ้น หรือลง ก็ทำให้หลายเว็บๆ มีหน้าเว็บที่หนักขึ้นเพราะต้องยัดทุกอย่างไว้ในหน้าเดียว และสิ่งที่กินเวลาในการโหลดมากนั้นก็คือ ภาพ และวิดีโอ

หลายคนคิดว่าการแปะ YouTube จะช่วยให้เว็บโหลดเร็วขึ้นกว่าการนำวิดีโอมาลงในเว็บเอง แต่สคริปท์ที่ใช้สำหรับการลิงก์ยูทูปที่เรียกว่า iFrame นั้นก็หนักมากถึง 600kb เลยทีเดียวนะ!

การทำงานของ Lazy Load… โหลดเบาๆ เอาที่จำเป็นก่อน


ปกติหน้าเว็บจะแสดงผลโดยโหลดทุกสิ่งอย่างพร้อมกัน แต่การทำ Lazy โหลดคือการตั้งค่าให้โหลดเฉพาะบางส่วนของเว็บ แล้วปิดส่วนอื่นๆ ไว้จนกว่าผู้ใช้จะเลื่อนไป คล้ายๆ เว็บคลังภาพอย่าง Pinterest ที่จะโหลดเนื้อหาเพิ่มต่อเมื่อเลื่อนลงไปสุดขอบ (เรียกว่า Infinity Scroll) หรืออย่างบางเว็บที่เมื่อเลื่อนลงมาสุดแล้วจะมีให้กดแสดงผลเพิ่ม เพื่อโหลดข้อมูลเพื่อม และเลื่อนดูต่อ

ข้อดี และข้อเสียของ Lazy Load


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

ส่วนของข้อเสียหลักนั้นคือผลกระทบต่อ SEO เพราะการซ่อนเนื้อหาบางส่วนของเว็บไว้ด้วย Lazy Load ทำให้บอทของ Google ไม่สามารถค้นเจอได้ และอาจทำให้ ลิงก์ ข้อความ หรือคีย์เวิร์ดบางตัวนั้นหายไปจากหน้าเว็บ

  1. ซึ่งหากเป็นกรณีเนื้อหาหน้า Blog เราสามารถนำลิงก์เนื้อหาที่ถูกซ่อนภายใน Lazy Load ไปใส่ไว้ในรายการหน้าเว็บของเราใน Google Search Console ได้ (เป็นการบังคับให้บอทของ Google ต้องเขามาดู และ Index หน้านั้นๆ เข้าไปทันที โดยไม่ต้องรอให้บอทมาตามหาเอง ซึ่งก็อาจจะหาไม่เจอจากการถูกซ่อนไว้ด้วย Lazy Load)
  2. แต่ในกรณีที่ใช้ Lazy Load กับหน้าแรก ในลักษณะที่เป็นการไล่โหลดส่วนต่างๆ ของหน้าเว็บเมื่อผู้เข้าชมค่อยๆ เลื่อนลงไป กรณีนี้อาจเป็นปัญหาใหญ่อยู่ทีเดียว เพราะนั้นอาจเท่ากับว่าบอทจะไม่เห็นเนื้อหาส่วนล่างเกือบทั้งหมดของเว็บ ดังนั้นการนำเทคนิค Lazy Load มาใช้กับหน้าแรกจึงนิยมใช้ในลักษณะของการซ่อนแค่ ภาพ และวิดีโอ ให้ค่อยๆ โหลดขึ้นมา แต่ยังคงโหลดเนื้อหาที่เป็นข้อความขึ้นมาทั้งหมดไว้ก่อน เพื่อให้บอทสามารถเข้าถึงเนื้อหาทั้งหมดได้

Lazy Load ส่วนไหนของเว็บได้บ้างที่ทำให้เว็บเร็วขึ้น และไม่กระทบ Search Engine

  1. เฉพาะจุด โดยยังคงแสดงหน้าเว็บ และโครงเนื้อหาเต็มทั้งหมด แต่ซ่อนเฉพาะไฟล์ภาพ วิดีโอ ซึ่ง Plug-In Lazy Load สำหรับ WordPress ส่วนใหญ่จะรองรับแค่การทำ Lazy Load กับภาพ หรือวิดีโออยู่แล้ว ตัวที่นิยมใช้กันมากที่สุดคือ Rocket Lazy Load และ BJ Lazy Load
  2. สำหรับหน้า Blog ไม่จำเป็นต้องใช้ Lazy Load แต่ใช้เป็นการเลือกหมายเลขหน้าแทน แต่หากต้องการเปลี่ยนมาใช้ Lazy Load ในลักษณะ Infinite Scroll สามารถใช้ปลั๊กอินในการทำจาก WordPress ได้เช่นกัน

นอกจาก Lazy Load อย่างอื่นที่คุณต้องทำเพื่อเพิ่มความเร็วด้วย ลองมาดูกันว่า อะไรบ้างที่ทำให้เว็บ WordPress ของคุณโหลดช้า

เนื้อหาอื่นๆ ที่น่าสนใจ

15 วิธีการตั้งค่าเพื่อเพิ่มความปลอดภัยให้ WordPress

ปลั๊กอิน wordpress คือ? พร้อมแนะนำปลั๊กอิน 8 ตัวที่คุณควรมี

แนะนำ WordPress Hosting แบบละเอียดและเข้าใจง่าย

DNS Servers ของ VPS HiSpeed

นี่คือ DNS servers ของเรา:

ns1.vpshispeed.com 103.13.228.12
ns2.vpshispeed.com 103.13.228.13

เรายังมี:
ns3.vpshispeed.com 178.21.118.79 ซึ่งมีไว้สำหรับการซ่อมบำรุงโฮสต์เนมของลูกค้าเท่านั้น กรุณาอย่านำไปใช้ทำอย่างอื่น

เพิ่มฟังก์ชั่น Duplicate หน้าเว็บ WordPress ง่ายๆ เพียง 5 คลิก!

หลายครั้งที่การสร้างหน้าเว็บๆ ใหม่ก็อาจเป็นเพียงการยกหน้าเดิมที่มีอยู่แล้วมาปรับแก้ข้อความนิดๆ หน่อยๆ ซึ่งเราสามารถใช้การ Duplicate Page/Post ได้ แต่ฟังก์ชั่นนี้ไม่ได้มีแต่เดิมกับตัว WordPress แต่เราก็สามารถเพิ่มฟังก์ชั่นนี้แบบพร้อมใช้ทันที ด้วยขั้นตอนง่ายๆ ดังนี้เลย

1. เข้าไปที่ Appearance > Edit Theme แล้วค้นหาไฟล์ที่มีชื่อว่า Function.php

วิธีเพิ่มฟังก์ชั่น Duplicate หน้าเว็บ WordPress ง่ายๆ เพียง 3 คลิก!

2. แปะโค้ดดังต่อไปนี้ลงไป โดยสามารถวางต่อจากล่างสุดของโค้ดเดิมได้เลยครับ

– – – – – – – –

/*
* Function for post duplication. Dups appear as drafts. User is redirected to the edit screen
*/
function rd_duplicate_post_as_draft(){
global $wpdb;
if (! ( isset( $_GET[‘post’]) || isset( $_POST[‘post’]) || ( isset($_REQUEST[‘action’]) && ‘rd_duplicate_post_as_draft’ == $_REQUEST[‘action’] ) ) ) {
wp_die(‘No post to duplicate has been supplied!’);
}

/*
* Nonce verification
*/
if ( !isset( $_GET[‘duplicate_nonce’] ) || !wp_verify_nonce( $_GET[‘duplicate_nonce’], basename( __FILE__ ) ) )
return;

/*
* get the original post id
*/
$post_id = (isset($_GET[‘post’]) ? absint( $_GET[‘post’] ) : absint( $_POST[‘post’] ) );
/*
* and all the original post data then
*/
$post = get_post( $post_id );

/*
* if you don’t want current user to be the new post author,
* then change next couple of lines to this: $new_post_author = $post->post_author;
*/
$current_user = wp_get_current_user();
$new_post_author = $current_user->ID;

/*
* if post data exists, create the post duplicate
*/
if (isset( $post ) && $post != null) {

/*
* new post data array
*/
$args = array(
‘comment_status’ => $post->comment_status,
‘ping_status’ => $post->ping_status,
‘post_author’ => $new_post_author,
‘post_content’ => $post->post_content,
‘post_excerpt’ => $post->post_excerpt,
‘post_name’ => $post->post_name,
‘post_parent’ => $post->post_parent,
‘post_password’ => $post->post_password,
‘post_status’ => ‘draft’,
‘post_title’ => $post->post_title,
‘post_type’ => $post->post_type,
‘to_ping’ => $post->to_ping,
‘menu_order’ => $post->menu_order
);

/*
* insert the post by wp_insert_post() function
*/
$new_post_id = wp_insert_post( $args );

/*
* get all current post terms ad set them to the new post draft
*/
$taxonomies = get_object_taxonomies($post->post_type); // returns array of taxonomy names for post type, ex array(“category”, “post_tag”);
foreach ($taxonomies as $taxonomy) {
$post_terms = wp_get_object_terms($post_id, $taxonomy, array(‘fields’ => ‘slugs’));
wp_set_object_terms($new_post_id, $post_terms, $taxonomy, false);
}

/*
* duplicate all post meta just in two SQL queries
*/
$post_meta_infos = $wpdb->get_results(“SELECT meta_key, meta_value FROM $wpdb->postmeta WHERE post_id=$post_id”);
if (count($post_meta_infos)!=0) {
$sql_query = “INSERT INTO $wpdb->postmeta (post_id, meta_key, meta_value) “;
foreach ($post_meta_infos as $meta_info) {
$meta_key = $meta_info->meta_key;
if( $meta_key == ‘_wp_old_slug’ ) continue;
$meta_value = addslashes($meta_info->meta_value);
$sql_query_sel[]= “SELECT $new_post_id, ‘$meta_key’, ‘$meta_value'”;
}
$sql_query.= implode(” UNION ALL “, $sql_query_sel);
$wpdb->query($sql_query);
}

/*
* finally, redirect to the edit post screen for the new draft
*/
wp_redirect( admin_url( ‘post.php?action=edit&post=’ . $new_post_id ) );
exit;
} else {
wp_die(‘Post creation failed, could not find original post: ‘ . $post_id);
}
}
add_action( ‘admin_action_rd_duplicate_post_as_draft’, ‘rd_duplicate_post_as_draft’ );

/*
* Add the duplicate link to action list for post_row_actions
*/
function rd_duplicate_post_link( $actions, $post ) {
if (current_user_can(‘edit_posts’)) {
$actions[‘duplicate’] = ‘<a href=”‘ . wp_nonce_url(‘admin.php?action=rd_duplicate_post_as_draft&post=’ . $post->ID, basename(__FILE__), ‘duplicate_nonce’ ) . ‘” title=”Duplicate this item” rel=”permalink”>Duplicate</a>’;
}
return $actions;
}

add_filter(‘page_row_actions’, ‘rd_duplicate_post_link’, 10, 2);
add_filter( ‘post_row_actions’, ‘rd_duplicate_post_link’, 10, 2 );

– – – – – – – –

กด Save และกด Refresh เท่านี้ฟังก์ชั่น Duplicate ก็พร้อมใช้ได้ทันที

คำถามที่พบบ่อย Minecraft

รวมคำถามตั้งแต่ต้นจนเปิดเซิร์ฟ

1.สั่งซื้อยังไงครับ?
@VPS: สั่งซื้อผ่านหน้าเวปและชำเงินได้ทันทีเลยนะครับ การสั่งซื้อมีให้เลือก 2 ระบบปฏิบัติการนะครับ คือ แบบ Linux กับ Windows แบบ Linux จะมี Webmin (ใช้รหัส root เพื่อเข้าไปเอารหัส mcmyadmin และ Filezilla) โดยใช้ Mcmyadmin ในการจัดการเซิร์ฟ และใช้ Fileizlla ในการลงปลั๊กอิน

ส่วนแบบ Windows ใช้ Remote Desktop เข้าไปจัดการเซิร์ฟเวอร์และ Filezilla ในการลงปลั๊กอินเหมือนกันครับ

สั่งซื้อทันทีได้ที่ http://www.colo-minecraft.com/th/

ตัวอย่างขั้นตอนการสั่งซื้อ
https://www.cloudhosting.co.th/knowledgebase.php?action=displayarticle&id=123

2.ชำระเงินยังไงครับ?
@VPS: ชำระเงินได้หลายช่องทางครับ เช่น

1 บัตรเงินสดทรูมันนี่ ให้กรอกรหัสบัตรทรูลงช่องชำระหน้าเวปได้ทันทีครับ สามารถกรอกได้หลายใบหลายรอบ เพื่อสะสมจนครบราคาเซิร์ฟ

2 โอนผ่านบัญชี Tmtopup โดยการระบุ id tmtopup 5 หรือ 6 หลัก ของลูกค้าแล้วทำรายการโอนเงินเข้าบัญชี ‘cloudhosting‘โดยให้ทำรายการผ่านหน้าเวปและระบบจะเชื่อมต่อกับเวป TMT ของลูกค้าเองครับ

3 อินเตอร์เนต แบงค์กิ้ง [internet banking] ทำรายการผ่านหน้าเวปแล้วโอนเข้าบัญชีบริษัท Cloudhosting ได้ทันทีเลยครับ

4 ATM โอนเข้าบัญชีบริษัทแล้วถ่ายรูปสลิปการโอนเข้าข้อความเพจ หรือส่งมาที่  [email protected]

5 Paypal ทำการเลือกชำระเงินแบบ Paypal

6  เคาเตอร์เซอร์วิส พรินท์บาร์โคดออกมาจากเวปแล้วไปชำระที่เซเว่นหรือโลตัสทุกสาขาทั่วประเทศ

ตัวอย่าง https://www.cloudhosting.co.th/knowledgebase.php?action=displayarticle&id=124

 

3.จะได้ไอพียังไงครับ?

@VPS: ระบบจะส่งไอพีกลับไปทางอีเมลหรือการแจ้งเตือนในfacebook ที่ลูกค้าได้สมัครตอนสั่งซื้อไว้ครับ โดยจะส่งให้หลังชำระเงินทันที (กรุณาอ่านเพิ่มเติมในเมลนะครับ)

 

4.ได้ไอพีแล้วจะเปิดเซิร์ฟได้เลยไหม
@VPS :หลังชำระเงิน 15 นาทีสามารถเปิดเซิร์ฟได้ทันทีครับ ส่วนแบบ Windows ถ้าเข้าแล้วรหัสผิดรบกวนรอไม่เกิน 45 นาทีนะครับ

ถ้าเกินให้โทรหาผมได้ทันที ที่  093 173 0181 หรือที่เฟสบุก Ouh Nigorn

 

5.เปลี่ยนเวอร์ชั่นยังไงครับ
@VPS:
1.ไปที่ port 12321 เช่น 103.13.228.251:12321
2.ทำการเข้าสู่ระบบด้วยรหัส root
3.ไปที่เมนู other=>Customer Commands=>
คลิกเลือกเวอร์ชันที่ต้องการ (1.52,1.62,1.64) เสร็จแล้ว restart server ใน mcmyadmin
ส่วนแบบ Windows ให้กดรันเวอร์ชั่นที่เราต้องการเล่นได้ทันทีครับ

ส่วนเวอร์ชั่นอื่น ทำตามนี้นะครับ 

 

6.ลงปลั๊กอินยังไง
@VPS: ทำตามนี้เลยนะครับ https://www.cloudhosting.co.th/knowledgebase.php?action=displayarticle&id=89

7.ให้ op ไงอะครับ
@VPS: ตามนี้เลยนะครับ  https://www.facebook.com/Vpshispeed/photos/pb.598161526872032.-2207520000.1396696454./658814924140025/?type=3&theater

8.มี VDO สอนไหม
@VPS: มีครับ เป็น Chanel ของแอดมินเองนะครับ เข้าไปศึกษาเพิ่มเติมได้ที่ http://www.youtube.com/user/SuperNigorn/videos

9.พี่เกรียนป่าว โกงป่าว โอนเงินแล้วได้เซิร์ฟจริงป่าว
@VPS: บริษัทเราเป็นบริษัทค่อนข้างใหญ่ครับ ไม่โกง ไม่เกรียน เราให้บริการลูกค้ามาด้วยดีตลอดครับ โดยสังเกตไอพีที่ขึ้นต้น 103.13.229.xxx จะเป็นของ VPSHiSpeed ทั้งหมด ลองอ่านเพิ่มเติมที่หน้าเวปเรานะครับ http://www.colo-minecraft.com/th/

10. ถ้าเซิร์ฟมีปัญหาพี่จะช่วยป่าว?
@VPS: ช่วยแน่นอนครับ โทรมาคุยหรือแชทหากันได้ที่ facebook เลยนะครับ หรือที่เพจ https://www.facebook.com/Vpshispeed

 

11.ติดต่อที่เฟสส่วนตัวได้ที่ไหนครับ
@VPS: ติดต่อได้ตลอดเลยนะครับ เฟสส่วนตัว https://www.facebook.com/ouh.nigorn

แอดเป็นเพื่อนกันได้เลยนะครับ หรือติดต่อที่เพจ https://www.facebook.com/Vpshispeed

 

12.ระหว่าง Linux กับ Windows อันไหนดีกว่า

@VPS: แนะนำให้ใช้ Linux ครับเพราะจะเร็วกว่า  Linux จะมี Webmin (ใช้รหัส root เพื่อเข้าไปเอารหัส mcmyadmin และ Filezilla) ใช้ Mcmyadmin ในการจัดการเซิร์ฟ และใช้ Fileizlla ในการลงปลั๊กอิน

ส่วนแบบ Windows จะไม่มี Webmin,mcmyadmin แต่ใช้ Remote Desktop เข้าไปจัดการเซิร์ฟเวอร์ได้ทันที

โดยใช้ Filezilla ในการลงปลั๊กอินหรือโหลดในเซิร์ฟได้เช่นกัน

13.มีคู่มือป่าวครับ
@VPS: มีครับ อ่านเพิ่มเติมได้เลยที่ https://www.cloudhosting.co.th/knowledgebase.php?action=displaycat&catid=10&language=Thai

14.ต่ออายุเซิร์ฟทำยังไงครับ?

@VPS:

1.ให้ไปที่ระบบลูกค้า คลิก https://www.cloudhosting.co.th/clientarea.php

2.เมื่อเข้าสู่ระบบเรียบร้อยแล้ว ในหน้า home จะมีบิลแจ้งการชำระเงิน ให้ลูกค้าทำการคลิก ‘ชำระบิล’ เพื่อทำการต่ออายุเซิร์ฟนั้นๆครับ

3.หลังการชำระบิลครบแล้ว บิลนั้นจะหายไปและกำหนดชำระบิลรอบหน้าก็จะเปลี่ยนทันทีเช่นกัน

 

15.เติมเงินเข้าระบบก่อนเพื่อทำการสะสมไว้ชำระค่าเซิร์ฟได้ไหม

@VPS: สามารถทำได้ครับ วิธีการดังนี้นะครับ คลิก https://www.cloudhosting.co.th/knowledgebase.php?action=displayarticle&id=117

ภาคผนวก

1.เข้ากลุ่ม Facebook คลิก’ลูกค้า Vpshispeed’ มีปัญหาอะไรจะได้ช่วยกันแก้นะครับ

2.ขั้นตอนการแก้ปัญหาเบื้องต้ กรณี รันเซิร์ฟไม่ติด เข้า mcmyadmin ไม่ได้ หรือ remoteไม่ติด

ให้ไปที่ http://www.colo-minecraft.com/th/
1.คลิก ระบบลูกค้า
2.เข้าสู่ระบบ
3.คลิก VPS ของฉัน
4.คลิก ดูข้อมูล
5.คลิกปุ่ม Reboot

ปล.รอประมาณ 1 นาทีค่อยเข้า McMyAdmin ใหม่ กรณีแบบ remote จะขึ้นหน้า shutdown event ให้ไปที่ comment แล้วพิมพ์ไรก็ได้ จากนั้นกด ปุ่ม ok

รูปประกอบ

เปลี่ยนรหัสผ่าน Colo Windows

ให้เราเข้าไปใน Colo และในหน้า Desktop ให้กดปุ่ม Ctrl+Alt+End บนคีย์บอร์ด จากนั้นจะปรากฎดังรูป

ให้เราทำการกดตรง Change Password

จากนั้นจะปรากฎหน้าต่างดังรูป ให้เราใส่ข้อมูลดังนี้เลย

user= ไม่ต้องเปลี่ยน (ใช้ root เหมือนเดิม)
Log on to: ไม่ต้องเปลี่ยน
Old Password: ใส่รหัสผ่านเก่า
New Password: ใส่รหัสผ่านใหม่
Confirm New Password: ใส่รหัสผ่านใหม่อีกครั้ง

**เราสามารถทำการ คัดลอก+วาง ได้