WooCommerce: 영구 링크 구조를 변경하는 방법

게시 됨: 2021-09-28

WooCommerce 퍼머링크 구조는 신규 이민자에게 비정상적으로 보일 수 있습니다. URL의 /product//product-category/ 부분은 잘 알려진 고유한 기능이지만 일부 전문가는 이것이 SEO 방식으로 퍼머링크를 처리하는 가장 편리한 방법이라는 데 동의하지 않습니다.

일반적인 생각은 항상 URL 구조를 가능한 한 단순하게 유지하고 불필요한 부분을 제거하는 것입니다. Google의 공식 가이드라인에서는 불필요한 매개변수가 포함된 긴 URL을 피하도록 제안하므로 해당 전문가나 저의 말을 들을 필요가 없습니다.

그렇다면 WooCommerce 스토어 빌더에게 정확히 무엇을 의미합니까?

우선 /shop/ , /product-category//product/ 와 같은 URL 기반은 Google이 URL 내에서 지정하지 않고도 상점 및 제품 페이지를 정의하는 방법을 알고 있기 때문에 불필요한 것으로 간주될 수 있습니다.

그리고 아마도 크롤러가 해당 페이지를 실제보다 낮게 평가하지 않도록 사이트 깊이에 대한 잘못된 인식을 만들고 싶지 않을 것입니다. 다시 말하지만, 잘 알려진 교훈 - 메인 폴더(도메인)에 더 가까운 페이지는 검색 엔진에 더 의미가 있습니다.

이러한 진술에 동의한다면 WooCommerce에서 영구 링크 구조를 재설계하는 방법을 이해하는 데 도움이 될 것입니다. 그래서 그것에 대해 알아 보려면 미리 읽으십시오.

기본 WooCommerce 영구 링크 구조는 무엇입니까?

이제 퍼머링크가 어떻게 작동하는지 그리고 더 사용자 친화적으로 만들기 위해 우리가 할 수 있는 일을 봅시다.

영구 링크 설정을 생성할 때 반드시 표시해야 하는 몇 가지 사항이 있습니다.

  • 제품 카테고리 기반(기본적으로 /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/ 기반을 제거하거나 다른 방식으로 표준 URL 구조를 조작하도록 촉구합니다. 두 가지 중요한 이유 때문에 발생합니다.

  • 그들은 SEO 관점에서도 이점을 얻을 수 있는 간단하고 명확한 URL 을 보고 싶어합니다.
  • 다른 CMS에서 WP\Woo로 전환 하여 동일한 URL 구조를 유지 하려는 경우

URL의 해당 부분을 제거하면 SEO 결과가 향상될 수 있는지 여부는 논란의 여지가 있습니다. 그러나 사람들이 WooCommerce의 기본 영구 링크 구조를 망치는 것을 고려하는 가장 인기있는 이유입니다.

Permalink를 구성하는 방법과 짧은 URL이 더 나은 이유를 알려주는 몇 가지 존경받는 출처가 있습니다. Backlinko 검색 엔진 순위 요소(포인트 #10), URL 구조화에 대한 Moz 모범 사례(포인트 #6 및 #11).

새 웹사이트를 시작하는 경우 이러한 실험을 실행하고 이것이 SEO에 어떻게 도움이 되는지 확인하는 것이 안전합니다. 이미 잘 구축된 웹사이트에서 퍼머링크를 변경하는 것은 위험한 일이 될 수 있습니다. 내 우려를 더 설명하겠습니다.

반면에 기존 웹사이트 URL과 일치하도록 영구 링크를 변경하는 것과 관련하여 이는 합리적으로 보이며 SEO 실적에 해를 끼치지 않을 가능성이 더 높습니다.

WooCommerce 퍼머링크에서 /product-category/ 및 /product/를 제거하는 방법

다음 방법은 사용자와 크롤러가 URL이 변경되었음을 알리기 위해 301 리디렉션을 가지고 놀 필요가 없는 경우 새 웹사이트에서 사용하는 것이 안전합니다.

가장 먼저 해야 할 일은 WP 설정 > 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;

});

그런 다음 필터를 추가하여 제품 페이지 URL에서 /product/ base를 제거합니다.

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 리디렉션을 생성해야 합니다.
  • 사용하는 테마 및 플러그인에 따라 페이지 매김과 함께 작동하지 않거나 필터 문제가 발생할 수 있습니다.

WooCommerce용 사용자 지정 영구 링크로 고급 영구 링크 규칙을 설정하는 방법

문서의 WooCommerce가 URL에서 /product/ , /product-category/ 또는 /shop/ 제거에 대해 경고하지만 공식 마켓플레이스에서 WooCommerce 확장에 대한 Custom Permalinks를 검색할 수 있습니다. 카테고리 및 제품 페이지에 대한 기본 영구 링크 옵션을 변경하는 가장 안전한 방법을 제공합니다.

카테고리 페이지에 대한 영구 링크의 몇 가지 변형은 여기에서 사용할 수 있습니다.

카테고리 슬러그는 단순히 모든 URL에서 /product-category/ 부분을 제거 하고 도메인 + 카테고리 슬러그를 남겨두는 것을 의미합니다.

전체 경로는 /product-category/ 를 제거하고 해당 카테고리 슬러그 전에 상위 카테고리 슬러그(카테고리에 하나가 있는 경우)를 추가하는 것을 의미합니다.

제품 페이지에 대한 몇 가지 선택 사항도 있습니다.

제품 슬러그만으로도 URL의 과도한 부분을 제거하고 도메인 + 제품 슬러그만 남깁니다.

카테고리 이름이 있는 제품 슬러그는 제품 URL의 가장 인기 있는 버전인 도메인 + 카테고리 슬러그 + 제품 슬러그 를 생성합니다.

전체 경로는 한 가지 예외를 제외하고 옵션 #2와 동일한 방식으로 작동합니다. 기본 제품 카테고리에 상위 카테고리 슬러그가 있는 경우 URL을 확장합니다.

이 플러그인은 페이지 매김 및 필터링 문제를 제거하고 테마와 독립적으로 작동하며 크롤러가 만든 결과로부터 사용자를 보호합니다.

이러한 영구 링크를 변경할 때 주의해야 할 유일한 사항은 중복 URL입니다. 카테고리 또는 제품과 동일한 슬러그를 가진 페이지 또는 게시물 유형이 없는지 다시 확인하십시오. 일부를 찾으면 중복을 피하기 위해 해당 슬러그를 고유하게 변경하십시오.

URL에 .html과 같은 확장자를 추가하는 방법

솔직히, 나는 SEO 현명하게 이것을 하는 것의 어떤 이점이나 결함이 있는지 모르겠습니다. 그러나 많은 사람들이 그것을 요구하고 있으므로 이 주제를 무시할 수 없습니다.

아마도 이것에 대한 솔루션을 찾고 있는 주된 이유 는 다른 CMS에서 마이그레이션 하기 때문일 것입니다. 다른 플랫폼에서 WooCommerce로 이동하기로 결정했다면 이전 URL(예: 끝에 .html이 있는 URL)을 복제할 수 있습니다.

물론 301 리디렉션을 사용하여 모든 사람에게 새 URL에 대해 알릴 수 있지만 일정 기간 동안 웹사이트를 301 리디렉션으로 채운 후 트래픽 및 SERP 위치가 약간 감소하는 것을 종종 볼 수 있습니다. Google이 말했듯이 리디렉션 사용에 대해 PageRank에 더 이상 불이익을 주지 않기 때문에 리디렉션 자체와 관련이 없을 것입니다.

그러나 콘텐츠 마이그레이션, 새로운 UI 및 끊어진 링크 가능성과 관련된 다른 이유로 인해 위험을 감수하고 동일한 URL을 다시 만들려고 하지 않을 수 있습니다.

WooCommerce용 Custom Permalinks를 사용하면 .html, .php., .htm 등 필요한 모든 확장자를 URL 끝에 추가할 수 있습니다.

퍼머링크를 변경한 후 SEO 문제를 피하는 방법

URL 변경의 까다로운 부분은 콘텐츠 중복, 404 오류 및 리디렉션입니다.

도메인, 페이지 순위 및 Google 색인의 URL에 대한 추적 기록 없이 최근에 만든 웹사이트에서 URL을 조작하면 걱정할 필요가 없습니다. 자유롭게 실험을 수행하고 원하는 영구 링크 조합을 선택할 수 있습니다.

그러나 역사 및 고급 SERP 위치가 있는 웹사이트에서 영구 링크를 변경할 때 다음 네 가지 기둥을 주의 깊게 다시 확인해야 합니다.

  1. 카테고리 또는 제품 페이지 와 동일한 슬러그 를 가진 페이지, 게시물, 분류, 사용자 정의 게시물 유형 또는 기타 가능한 엔티티가 있습니까? 일부를 찾으면 충돌을 피하기 위해 슬러그를 고유한 것으로 변경하는 것이 좋습니다.
  2. Google 검색 콘솔로 이동하여 404 응답이 있는 페이지를 확인합니다. 깨진 링크 가 있는 경우 sitemap.xml 파일에서 해당 링크 또는 이전 링크를 수동으로 배치할 수 있는 다른 웹사이트 페이지를 검색해야 합니다.
  3. 이전 URL이 어딘가에서 여전히 발견될 가능성이 있는 경우 'rel=canonical' 태그를 포함 해야 합니다. 이는 크롤러가 콘텐츠에 대해 크레딧을 부여할 페이지를 알려주는 데 필요하며 Google은 중복 생성에 대해 귀하를 처벌하지 않습니다.
  4. 301 리디렉션에 대해 절대 잊지 마십시오. 크롤러뿐만 아니라 웹사이트 방문자에게도 중요합니다. 영구 링크를 변경한 후에는 더 이상 이전 영구 링크에 액세스할 수 없으므로 크롤러를 포함하여 모든 사람이 영구 링크를 방문할 때 404 오류가 발생합니다. 스크립트로 영구 링크를 변경했다면 리디렉션을 처리 하기 위해 리디렉션 플러그인을 설치하는 것이 좋습니다.

하지만 잘 자고 있을 수 있습니다. WooCommerce용 맞춤 영구 링크는 영구 링크 구조를 변경하면 이전 URL에 대해 301 리디렉션 및 'rel=canonical'을 생성합니다. 또한 Yoast 플러그인과 함께 적절한 URL이 포함된 새 사이트맵을 대신 생성합니다.

결론

WooCommerce는 웹사이트 속도 저하 및 URL 충돌과 같은 영구 링크 변경의 결과에 대해 경고합니다. 그러나 그 진술이 오래전에 만들어졌고 그 이후로 정확히 그 일을 하는 이 프리미엄 플러그인을 확인했다는 점을 고려하면 WooCommerce가 영구 링크 문제에 대해 마음을 바꿨을 수도 있습니다.

SEO에 도움이 될까요?

글쎄요, 그것은 더 복잡한 질문입니다. 일부 연구자들은 그렇다고 말합니다. 일부 SEO 전문가는 제품 및 카테고리 경로의 폴더 수를 줄이고 더 짧은 URL을 디자인할 것을 권장합니다. 그러나 나는 이 결정을 당신에게 맡깁니다. 결국 SEO와 관련하여 절대적인 진실은 없습니다.

그리고 그것을 시도하기로 선택한 경우 안전하게 수행하는 방법은 무엇입니까?

새 웹사이트를 구축하는 경우 코드 조각을 추가하거나 플러그인을 설치하는 등 원하는 방법을 선택할 수 있습니다. 둘 다 안전한 것 같습니다. sitemap.xml에 모든 것이 있는지 확인하고 Google 검색 콘솔에 의견이 있는지 확인하는 것을 잊지 마십시오.

기존 사이트의 퍼머링크에 대한 조작을 고려한다면 검증된 플러그인을 사용하는 것이 좋습니다. 당신은 아마 운명을 시험하고 깨진 링크, 콘텐츠 중복을 엉망으로 만들거나 실수로 리디렉션 루프를 만들고 싶지 않을 것입니다.

플러그인은 모든 요구 사항을 충족할 수 있으며 WooCommerce.com에서 제공되는 지원은 잠재적인 문제를 처리하는 데 도움이 됩니다. 퍼머링크는 SEO에 매우 중요하기 때문에 이러한 문제를 혼자 남겨두는 것은 악몽이 될 것입니다.