WooCommerce: วิธีการเปลี่ยนโครงสร้าง Permalink

เผยแพร่แล้ว: 2021-09-28

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

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

นั่นหมายความว่าอย่างไรสำหรับผู้สร้างร้านค้า WooCommerce?

ประการแรก ฐาน URL เช่น /shop/ , /product-category/ และ /product/ ถือได้ว่าไม่จำเป็น เนื่องจาก Google รู้วิธีกำหนดหน้าร้านค้าและหน้าผลิตภัณฑ์โดยไม่จำเป็นต้องระบุสิ่งนั้นภายใน URL

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

หากคุณเห็นด้วยกับข้อความดังกล่าว คุณควรทำความเข้าใจวิธีออกแบบโครงสร้างลิงก์ถาวรใน WooCommerce ใหม่ ดังนั้นอ่านล่วงหน้าเพื่อหาข้อมูลเกี่ยวกับสิ่งนั้น

โครงสร้างลิงก์ถาวรของ WooCommerce เริ่มต้นคืออะไร

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

มีบางสิ่งที่คุณต้องระบุเมื่อสร้างการตั้งค่าลิงก์ถาวร:

  • ฐานหมวดหมู่ผลิตภัณฑ์ (ซึ่งก็คือ /product-category/ โดยค่าเริ่มต้น)
  • ฐานแท็กผลิตภัณฑ์ ( /product-tag/ โดยค่าเริ่มต้น)
  • ฐานหน้าผลิตภัณฑ์ (อาจเป็น /product/ , /shop/ หรือฐานที่กำหนดเองอื่น ๆ )

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

ดังนั้น URL เริ่มต้นสำหรับหน้าร้านค้าอาจเป็นดังนี้:

  • สำหรับหน้าหมวดหมู่: site.com/ product-category /category-slug
  • สำหรับหน้าแท็ก: site.com/ product-tag /tag-slug
  • สำหรับหน้าผลิตภัณฑ์: site.com/ product /product-slug

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

เหตุใดจึงควรพิจารณาเปลี่ยนลิงก์ถาวรเริ่มต้น

บางครั้งผู้ใช้ WooCommerce แนะนำให้กำจัด /product-category/ และ /product/ bases หรือจัดการโครงสร้าง URL มาตรฐานด้วยวิธีอื่น มันเกิดขึ้นเนื่องจากเหตุผลสำคัญสองประการ:

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

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

มีแหล่งข้อมูลที่น่าเชื่อถือไม่กี่แห่งที่บอกเราถึงวิธีจัดโครงสร้างลิงก์ถาวร และเหตุใด URL ที่สั้นกว่าจึงดีกว่า – ปัจจัยการจัดอันดับของเครื่องมือค้นหา Backlinko (จุดที่ 10) แนวทางปฏิบัติที่ดีที่สุดของ Moz สำหรับการจัดโครงสร้าง URL (จุดที่ #6 และ #11)

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

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

วิธีลบ /product-category/ และ /product/ จากลิงก์ถาวรของ WooCommerce

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

สิ่งแรกที่คุณต้องทำคือไปที่ WP Settings > Permalinks และเลื่อนไปที่ “ Product category base ” และเขียน “” (จุด) เป็นฐานที่กำหนดเอง

จากนั้นวางข้อมูลโค้ดนี้ลงในไฟล์ functions.php ของคุณ:

add_filter( 'request', function( $vars ) {

    global $wpdb;

    if( ! empty( $vars['pagename'] ) || ! empty( $vars['category_name'] ) || ! empty( $vars['name'] ) || ! empty( $vars['attachment'] ) ) {

        $slug = ! empty( $vars['pagename'] ) ? $vars['pagename'] : ( ! empty( $vars['name'] ) ? $vars['name'] : ( !empty( $vars['category_name'] ) ? $vars['category_name'] : $vars['attachment'] ) );

        $exists = $wpdb->get_var( $wpdb->prepare( "SELECT t.term_id FROM $wpdb->terms t LEFT JOIN $wpdb->term_taxonomy tt ON tt.term_id = t.term_id WHERE tt.taxonomy = 'product_cat' AND t.slug = %s" ,array( $slug )));

        if( $exists ){

            $old_vars = $vars;

            $vars = array('product_cat' => $slug );

            if ( !empty( $old_vars['paged'] ) || !empty( $old_vars['page'] ) )

                $vars['paged'] = ! empty( $old_vars['paged'] ) ? $old_vars['paged'] : $old_vars['page'];

            if ( !empty( $old_vars['orderby'] ) )

                    $vars['orderby'] = $old_vars['orderby'];

                if ( !empty( $old_vars['order'] ) )

                    $vars['order'] = $old_vars['order'];    

        }

    }

    return $vars;

});

จากนั้นเพิ่มตัวกรองเพื่อลบ /product/ base จาก URL หน้าผลิตภัณฑ์:

function na_remove_slug( $post_link, $post, $leavename ) {

        if ( 'product' != $post->post_type || 'publish' != $post->post_status ) {

        return $post_link;

    }

        $post_link = str_replace( '/product/', '/', $post_link );

        return $post_link;

}

add_filter( 'post_type_link', 'na_remove_slug', 10, 3 );

function change_slug_struct( $query ) {

        if ( ! $query->is_main_query() || 2 != count( $query->query ) || ! isset( $query->query['page'] ) ) {

        return;

    }

                if ( ! empty( $query->query['name'] ) ) {

                $query->set( 'post_type', array( 'post', 'product', 'page' ) );

                } elseif ( ! empty( $query->query['pagename'] ) && false === strpos( $query->query['pagename'], '/' ) ) {

                $query->set( 'post_type', array( 'post', 'product', 'page' ) );

        // We also need to set the name query var since redirect_guess_404_permalink() relies on it.

        $query->set( 'name', $query->query['pagename'] );

    }

}

add_action( 'pre_get_posts', 'change_slug_struct', 99 );

ตัวอย่างข้อมูลนำมาจากการสนทนาของ StackOverflow และดูเหมือนว่าจะทำงานได้ดีสำหรับผู้ใช้ส่วนใหญ่ ยกเว้นในบางกรณี:

  • URL ดั้งเดิมจะตอบสนองด้วยข้อผิดพลาด 404 ดังนั้น หากคุณมีหน้าเหล่านั้นที่จัดทำดัชนีไว้ก่อนหน้านี้ อย่าลืมสร้างการเปลี่ยนเส้นทาง 301 ไปยังหน้าที่เกี่ยวข้อง
  • อาจไม่ทำงานกับการแบ่งหน้าหรือทำให้เกิดปัญหากับตัวกรอง ทั้งนี้ขึ้นอยู่กับธีมและปลั๊กอินที่คุณใช้

วิธีตั้งค่ากฎ Permalinks ขั้นสูงด้วย Custom Permalinks สำหรับ WooCommerce

แม้ว่า WooCommerce ในเอกสารของพวกเขาจะเตือนเราเกี่ยวกับการลบ /product/ , /product-category/ หรือ /shop/ ออกจาก URL คุณสามารถไปและค้นหา Custom Permalinks สำหรับส่วนขยาย WooCommerce ในตลาดซื้อขายอย่างเป็นทางการ เป็นวิธีที่ปลอดภัยที่สุดในการเปลี่ยนตัวเลือกลิงก์ถาวรเริ่มต้นสำหรับหมวดหมู่และหน้าผลิตภัณฑ์

ลิงก์ถาวรบางส่วนสำหรับหน้าหมวดหมู่มีอยู่ที่นี่:

Category slug เพียงอย่างเดียวหมายถึง การลบ /product-category/ part จาก URL ทั้งหมด ออกจากโดเมน + หมวดหมู่ slug

พาธแบบเต็มหมายถึงการลบ /product-category/ และเพิ่ม slug หมวดหมู่หลัก (หากมีหมวดหมู่) ก่อน slug หมวดหมู่ที่เกี่ยวข้อง

นอกจากนี้ยังมีตัวเลือกมากมายสำหรับหน้าผลิตภัณฑ์:

บุ้งผลิตภัณฑ์เพียงอย่างเดียวจะลบส่วนที่เกินของ URL และปล่อยให้โดเมน + บุ้งผลิตภัณฑ์เท่านั้น

ตัวบุ้งผลิตภัณฑ์ที่มีชื่อหมวดหมู่จะสร้าง URL ผลิตภัณฑ์ที่ได้รับความนิยมสูงสุด: โดเมน + บุ้งหมวดหมู่ + บุ้งผลิตภัณฑ์

เส้นทางแบบเต็มทำงานในลักษณะเดียวกับตัวเลือก #2 โดยมีข้อยกเว้นหนึ่งข้อ – จะขยาย URL ด้วยกระสุนหมวดหมู่หลักหากหมวดหมู่ผลิตภัณฑ์ดั้งเดิมมี

ปลั๊กอินนี้ช่วยขจัดปัญหาการแบ่งหน้าและการกรอง ทำงานโดยไม่ขึ้นอยู่กับธีมของคุณ และปกป้องคุณจากผลที่ตามมาของโปรแกรมรวบรวมข้อมูลที่อาจเกิดขึ้น

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

วิธีเพิ่มนามสกุลเช่น .html ให้กับ URL

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

อาจเป็นสาเหตุหลักที่คุณอาจมองหาวิธีแก้ปัญหานี้เพราะการ ย้ายจาก CMS อื่น หากคุณตัดสินใจย้ายจากแพลตฟอร์มอื่นไปยัง WooCommerce คุณอาจต้องการจำลอง URL เก่าของคุณ (เช่น URL ที่มี .html ต่อท้าย)

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

แต่เนื่องจากเหตุผลอื่นๆ ที่เกี่ยวข้องกับการย้ายเนื้อหา UI ใหม่ และโอกาสที่ลิงก์เสีย คุณอาจไม่ต้องการเสี่ยงและพยายามสร้าง URL เดิมที่คุณมีขึ้นใหม่

ลิงก์ถาวรที่กำหนดเองสำหรับ WooCommerce ให้โอกาสคุณในการเพิ่มส่วนขยายใดๆ ที่ส่วนท้าย URL ไม่ว่าจะเป็น .html, .php., .htm หรือสิ่งที่คุณต้องการ:

วิธีหลีกเลี่ยงปัญหา SEO หลังจากเปลี่ยนลิงก์ถาวร

ส่วนที่ยุ่งยากในการเปลี่ยน URL คือเนื้อหาที่ซ้ำกัน ข้อผิดพลาด 404 และการเปลี่ยนเส้นทาง

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

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

  1. มีเพจ โพสต์ การจัดหมวดหมู่ ประเภทโพสต์ที่กำหนดเอง หรือเอนทิตีที่เป็นไปได้อื่นๆ ที่มีกระสุนเดียวกัน กับหมวดหมู่หรือหน้าผลิตภัณฑ์หรือไม่ หากคุณพบบางตัว ให้ลองเปลี่ยนทากเป็นแบบพิเศษเพื่อหลีกเลี่ยงความขัดแย้ง
  2. ไปที่คอนโซลการค้นหาของ Google และตรวจสอบหน้าที่มีการตอบสนอง 404 หากคุณพบ ลิงก์เสีย คุณควรสแกนไฟล์ sitemap.xml เพื่อค้นหาลิงก์เหล่านั้นหรือหน้าเว็บไซต์อื่นๆ ซึ่งคุณสามารถวางลิงก์เก่าด้วยตนเองได้
  3. ในกรณีที่มีโอกาสพบ URL เก่าจากที่ใดที่หนึ่ง อย่าลืม ใส่แท็ก 'rel=canonical' ซึ่งเป็นสิ่งจำเป็นเพื่อให้โปรแกรมรวบรวมข้อมูลทราบว่าจะให้เครดิตกับเนื้อหาจากหน้าใด จากนั้น Google จะไม่ลงโทษคุณสำหรับการสร้างรายการที่ซ้ำกัน
  4. อย่าลืมเกี่ยวกับการเปลี่ยนเส้นทาง 301 ทุกครั้ง เป็นสิ่งสำคัญสำหรับผู้เยี่ยมชมเว็บไซต์และสำหรับโปรแกรมรวบรวมข้อมูล หลังจากที่คุณเปลี่ยนลิงก์ถาวรแล้ว ลิงก์เก่าจะไม่สามารถเข้าถึงได้อีกต่อไป ดังนั้นทุกคน รวมถึงโปรแกรมรวบรวมข้อมูล จะได้รับข้อผิดพลาด 404 ข้อผิดพลาดในการเข้าชมลิงก์เหล่านั้น หากคุณเปลี่ยนลิงก์ถาวรด้วยสคริปต์ ขอแนะนำให้ติดตั้งปลั๊กอินการเปลี่ยนเส้นทางเพื่อ จัดการการเปลี่ยนเส้นทาง

แต่คุณสามารถนอนหลับได้ดี: ลิงก์ถาวรที่กำหนดเองสำหรับ WooCommerce จะสร้างการเปลี่ยนเส้นทาง 301 และ 'rel=canonical' สำหรับ URL เก่าเมื่อคุณเปลี่ยนโครงสร้างลิงก์ถาวร และเมื่อใช้ร่วมกับปลั๊กอิน Yoast พวกเขาจะสร้างแผนผังเว็บไซต์ใหม่ในนามของคุณพร้อม URL ที่เหมาะสม

บทสรุป

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

มันจะช่วย SEO ของคุณหรือไม่?

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

และถ้าคุณเลือกที่จะยิง ทำอย่างไรให้ปลอดภัย?

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

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

ปลั๊กอินสามารถครอบคลุมทุกความต้องการของคุณ และการสนับสนุนที่มีอยู่บน WooCommerce.com จะช่วยคุณจัดการกับปัญหาที่อาจเกิดขึ้น เนื่องจากลิงก์ถาวรมีความสำคัญสำหรับ SEO การถูกทิ้งให้อยู่ตามลำพังกับปัญหาดังกล่าวจึงเป็นฝันร้าย