WooCommerce: パーマリンク構造を変更する方法
公開: 2021-09-28WooCommerce のパーマリンク構造は、新規参入者にとっては奇妙に見えるかもしれません。 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 構造を操作するように求めることがあります。 これは、次の 2 つの重要な理由により発生します。
- SEO の観点からもメリットが得られる、シンプルで明確な URLを見たいと考えています。
- 別の CMS から WP\Woo に切り替え、同じ URL 構造を維持したい場合
URL のこれらの部分を削除することで SEO の結果が改善されるかどうかは議論の余地があります。 しかし、人々が WooCommerce のデフォルトのパーマリンク構造を台無しにすることさえ考えている最も一般的な理由です。
パーマリンクを構造化する方法と、なぜ短い URL が優れているのかを教えてくれる、いくつかの信頼できる情報源があります。Backlinko 検索エンジンのランキング要因 (ポイント #10)、URL 構造化に関する Moz のベスト プラクティス (ポイント #6 と #11) です。
新しいウェブサイトを開始する場合は、このような実験を実行して、SEO にどのように役立つかを確認しても問題ありません。 一方、すでに確立された Web サイトのパーマリンクを変更することは、危険な作業になる可能性があります。 私の懸念をさらに説明します。
一方、古いウェブサイトの URL に一致するようにパーマリンクを変更することに関しては、それは合理的であり、SEO の実績を損なわない可能性が高くなります。
WooCommerce パーマリンクから /product-category/ と /product/ を削除する方法
次の方法は、URL が変更されたことをユーザーやクローラーに知らせるために 301 リダイレクトをいじる必要がない場合、新しい Web サイトで安全に使用できます。
最初に行う必要があるのは、WP 設定 > パーマリンクに移動し、「製品カテゴリ ベース」までスクロールして「.」と書くことです。 (ドット)カスタムベースとして。
次に、このスニペットを 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 拡張機能のカスタム パーマリンクを検索できます。 カテゴリと製品ページのデフォルトのパーマリンク オプションを変更する最も安全な方法を提供します。
カテゴリ ページのパーマリンクのいくつかのバリエーションは、次の場所で利用できます。
カテゴリ スラッグだけでは、すべての URL から/product-category/の部分を削除し、ドメイン + カテゴリ スラッグを残すだけです。
フル パスとは、 /product-category/を削除し、対応するカテゴリ スラッグの前に親カテゴリ スラッグ (カテゴリにカテゴリ スラッグがある場合) を追加することを意味します。
製品ページにもいくつかの選択肢があります。
製品スラッグのみでは、URL の余分な部分が削除され、ドメイン + 製品スラッグのみが残ります。
カテゴリ名を含む製品スラッグは、製品 URL の最も一般的なバージョンを作成します:ドメイン + カテゴリ スラッグ + 製品スラッグ。
フル パスはオプション #2 と同じように機能しますが、1 つの例外があります。ネイティブ製品カテゴリに親カテゴリ スラッグがある場合、URL が親カテゴリ スラッグで展開されます。
このプラグインは、ページネーションとフィルタリングの問題を解消し、テーマとは独立して動作し、クローラーによる結果からユーザーを保護します。
これらのパーマリンクを変更する際に注意すべき唯一のことは、URL の重複です。 カテゴリや商品と同じスラッグを持つページや投稿タイプがないかどうかを再確認してください。 見つかった場合は、重複を避けるためにそれらのスラッグを一意に変更してください。
.html などの拡張子を URL に追加する方法
正直なところ、この SEO を行うことのメリットやデメリットがあるかどうかはわかりません。 しかし、多くの人がそれを求めているので、このトピックを無視することはできません.
おそらく、これに対する解決策を探している主な理由は、別の CMS からの移行です。 別のプラットフォームから WooCommerce に移行する場合は、古い URL を複製することをお勧めします (例: 末尾に .html があるもの)。
もちろん、301 リダイレクトを使用して、新しい URL をすべての人に知らせることができますが、Web サイトをしばらくの間大量の 301 リダイレクトで満たした後、トラフィックと SERP の位置がわずかに減少することに気付くことがよくあります。 Google が言うように、リダイレクトを使用しても PageRank にペナルティが課せられなくなったため、おそらくリダイレクト自体とは何の関係もありません。
ただし、コンテンツの移行、新しい UI、およびリンク切れの可能性に関連するその他の理由により、危険を冒して以前と同じ URL を再作成しようとするのは望ましくない場合があります。
WooCommerce のカスタム パーマリンクを使用すると、.html、.php、.htm など、必要な拡張子を URL の末尾に追加できます。
パーマリンクを変更した後に SEO の問題を回避する方法
URL の変更で厄介なのは、コンテンツの重複、404 エラー、およびリダイレクトです。
ドメイン、ページ ランク、および Google インデックスの URL の実績がない最近作成された Web サイトで URL を操作する場合、心配する必要はありません。 自由に実験を行って、好きなパーマリンクの組み合わせを選ぶことができます。
しかし、歴史があり、SERP の順位が高いウェブサイトでパーマリンクを変更する場合は、次の 4 つの柱を慎重に再確認する必要があります。
- カテゴリや商品ページと同じスラッグを持つページ、投稿、タクソノミー、カスタム投稿タイプ、またはその他の可能性のあるエンティティはありますか? 見つかった場合は、競合を避けるためにスラッグを固有のものに変更することを検討してください。
- Google 検索コンソールに移動し、404 応答のあるページを確認します。 壊れたリンクが見つかった場合は、sitemap.xml ファイルをスキャンして、それらのリンクまたは古いリンクを手動で配置できる他の Web サイト ページを探してください。
- 古い URL がまだどこかにある可能性がある場合は、必ず「rel=canonical」タグを含めてください。 これは、コンテンツの功績を認めるべきページをクローラーに知らせるために必要であり、Google は重複を作成しても罰しません。
- 301 リダイレクトを決して忘れないでください。 ウェブサイトの訪問者だけでなく、クローラーにとっても重要です。 パーマリンクを変更すると、古いパーマリンクにはアクセスできなくなるため、クローラーを含むすべての人がパーマリンクにアクセスすると 404 エラーが発生します。 スクリプトでパーマリンクを変更した場合は、リダイレクト プラグインをインストールしてリダイレクトを処理することをお勧めします。
しかし、よく眠ることができます: WooCommerce のカスタム パーマリンクは、パーマリンク構造を変更すると、古い URL に対して 301 リダイレクトと 'rel=canonical' を作成します。 また、Yoast プラグインと組み合わせて、適切な URL を含む新しいサイトマップを生成します。
結論
WooCommerce は、パーマリンクを変更すると、Web サイトの速度低下や URL の競合などの結果が生じることを警告しています。 しかし、その声明がずっと前に行われたことを考えると、それ以来、まさにそのことを行っているこのプレミアムプラグインを検証したため、WooCommerce はパーマリンクの問題について考えを変えたのかもしれません.
それはあなたのSEOに役立ちますか?
うーん、それはもっと複雑な質問です。 はいと言う研究者もいます。 一部の SEO 専門家は、製品やカテゴリへのパスにあるフォルダーの数を減らし、短い URL を設計することを推奨しています。 しかし、私はこの決定をあなたに任せます。 最終的に、SEO に関して絶対的な真実はありません。
そして、試してみることにした場合、安全に行うにはどうすればよいでしょうか?
新しい Web サイトを構築している場合は、好きな方法を選択できます。コード スニペットを追加するか、プラグインをインストールします。どちらも安全なようです。 すべてが sitemap.xml に配置されているかどうか、および Google 検索コンソール側にコメントがあるかどうかを確認することを忘れないでください。
既存のサイトのパーマリンクの操作を検討している場合は、検証済みプラグインを使用することを強くお勧めします. おそらく、運命を誘惑してリンク切れやコンテンツの重複を台無しにしたり、誤ってリダイレクト ループを作成したりしたくないでしょう。
プラグインはすべてのニーズをカバーでき、WooCommerce.com で利用可能なサポートは、潜在的な問題に対処するのに役立ちます. パーマリンクは SEO にとって非常に重要であるため、このような問題を放っておくのは悪夢です。