Blog Importerは、ブログ記事の移行と同時に、Shopifyの標準301リダイレクト機能への自動登録を行います。 これにより、複雑な操作をすることなく、旧サイトのURLから新しいShopify上のURLへ、検索エンジンからの評価(SEO)をスムーズに引き継ぐことが可能です。
しかし、Shopifyの標準機能には一部リダイレクトできないパターンが存在します。
自動登録ができないパターン:パラメータ入りURL
Shopifyの標準リダイレクト設定は、URLに「?」が含まれる住所(クエリパラメータ)を正確に識別できないという仕様上の制限があります。
- 対応可能な例:
example.com/old-post - 対応可能な例 2階層目以降のパラメータ:
example.com/news/?pid=123 - 対応できない例:
example.com/?pid=123(ドメイン直下のパラメータ付きURL)
上記のパターンのURLは、Blog ImporterやShopifyのリダイレクト機能では、リダイレクト設定ができません。
解決方法
このような古いサイト特有のURL形式から引っ越しを行うには、JavaScriptというプログラムの力を借りて、ブラウザ側で正しいページへと案内し直す必要があります。
なぜJavaScriptが必要なの?
Shopifyの標準リダイレクトはサーバー側で処理されますが、システムの仕組み上、URLの「?」から後ろの部分を読み飛ばすという決まりがあるため、パラメータの違いによって行き先を細かく分けることができません。 この問題を解決するには、お客さまがサイトを開いた瞬間にブラウザ(JavaScript)がURLの全文をパッと確認して、正しいページへと手動で案内し直すという、一段階上の「賢い道案内」が必要になります。
JavaScriptによる実装方法(サンプルコード)
Shopifyテーマの theme.liquid 内、</head> タグの直前に以下のコードを配置します。 redirectMap の中身を、旧URLのパラメータと新URLのパスに書き換えて使用してください。
<script>
(function() {
// Redirect map: Old URL parameters to new paths
var redirectMap = {
"?pid=123": "/blogs/news/article-a",
"?pid=456": "/blogs/news/article-b",
"?p=789": "/pages/contact"
};
var currentQuery = window.location.search;
if (currentQuery && redirectMap[currentQuery]) {
window.location.href = redirectMap[currentQuery];
}
})();
</script>ページ数が多い場合や設定が不安な方へ(有償サポート)
「移行対象が数百件あり、リスト作成が困難」「コードを触るのが不安」「設定ミスでSEO評価を下げたくない」というお客様のために、当アプリ開発チームによる 有償設定代行サービス を承っております。
お客様に代わって最適なリダイレクトコードを作成し、貴社ストアのテーマへ安全に実装いたします。 ご希望の場合は、お問い合わせフォームより「リダイレクト設定代行希望」と明記の上、お気軽にご相談ください。