商品画像のURLが切れていないか、CSVからまとめて確認する考え方

商品画像のURLが切れていないか、CSVからまとめて確認する考え方 のアイキャッチ

商品画像URLの確認は、画像を1枚ずつブラウザで開いて確認する前に、まずURLとして外部からアクセスできるかをまとめてチェックします。商品CSVの Image Src、Variant Image、フィード側の image_link を一覧化し、空欄、404、403、リダイレクト、重複を分けると、手作業で1件ずつ開くより原因を絞りやすくなります。画像移行や一括登録をしたあとは、特に旧ドメインのURLや仮アップロード時のURLが残っていることが多いため、CSVを使った一括確認が効率的です。

画像URL確認は見た目ではなく到達確認から始める

「画像が表示されているか」を確認したいとき、多くの人は商品ページをブラウザで開いて目視確認します。しかし、商品ページで画像が見えていても、Googleのクローラーが別のURLを取得しようとしてエラーになることがあります。

ブラウザで開けることとGoogleが取得できることは別

  • ブラウザで開ける:あなたのログインセッションやCookieが有効な状態でアクセスできている
  • Googleが取得できる:ログインなしの匿名アクセスで、HTTPステータス200で画像データが返ってくる

つまり、Shopify管理画面にログインしている状態では見えても、ログアウト状態やシークレットモードでは見えない画像URLがある可能性があります。画像URLの確認は、必ずログアウト状態またはシークレットモードで行います。

画像URL確認の基本手順

  1. 商品CSVの Image Src 列を確認し、画像URLが入っているかを確認
  2. 各URLをシークレットモードのブラウザで開き、画像が表示されるか確認
  3. HTTPステータスコードを確認(200、403、404、301/302など)
  4. フィードCSVの image_link 列と照合し、同じURLが使われているか確認

CSVから確認する画像URL列を決める

Shopifyの商品CSVと、Merchant Center向けのフィードCSVでは、画像に関連する列が異なります。どの列を見るべきかを整理します。

Shopify商品CSVの画像関連列

CSV列名 内容 確認すべきこと
Image Src 商品のメイン画像URL URLが空でないか、アクセス可能か
Image Alt Text 画像の代替テキスト 空欄の場合はSEO・アクセシビリティ上の課題
Variant Image バリエーション別画像URL 特定バリエーションだけ画像がないか
Variant Image Src バリエーションの画像ソース Image Srcと同じURLか、別URLか
Image Position 画像の表示順 1番目の画像が商品の代表画像として適切か

フィードCSVの画像関連列

フィード列名 対応するMerchant Center属性 確認すべきこと
image_link image_link(必須) メイン画像URLが空でないか、アクセス可能か
additional_image_link additional_image_link 追加画像URLがすべて有効か
image_name 画像の表示名 空欄でもエラーにはならないが管理上の確認

まず確認する列の優先順位

  1. image_link(フィード側のメイン画像URL)→ ここが空欄または404だと掲載上の問題につながる可能性があります
  2. Image Src(Shopify側のメイン画像URL)→ フィードに送られる元のURL
  3. additional_image_link(フィード側の追加画像URL)→ 複数ある場合はカンマ区切り
  4. Variant Image(Shopify側のバリエーション画像URL)→ バリエーションごとに画像を変えている場合

ステータスコードで原因を分類する

画像URLにアクセスしたときのHTTPステータスコードで、原因を分類できます。すべて手作業で確認するのは大変なので、CSVからURL一覧を抜き出して一括確認する方法をとります。

ステータスコードと原因の分類

ステータスコード 意味 画像URLでの原因例 対応の方向性
200 OK 正常に取得できた 画像が正しく公開されている 画像内容を確認
301 Moved Permanently 恒久的なリダイレクト 旧ドメインから新ドメインへ転送 最終URLに更新
302 Found 一時的なリダイレクト メンテナンス中の転送など 元URLが復旧するか確認
403 Forbidden アクセス拒否 非公開設定、パスワード保護 公開設定に変更
404 Not Found ページが存在しない 画像が削除済み、URL変更 画像を再アップロード
Timeout タイムアウト サーバー応答なし、大きな画像 画像サイズ・ホスティング確認

ステータスコードの確認方法

URLのステータスコードは、以下の方法で確認できます。

  • ブラウザの開発者ツール:Network タブで画像URLへのリクエストを確認
  • curlコマンドcurl -I "画像URL" でヘッダーだけ取得
  • スプレッドシート関数:Googleスプレッドシートで IMPORTDATA やカスタム関数を使う
  • 専用ツール・スクリプト:URL一覧を読み込んでステータスコードを一括取得するスクリプト

CSVに数百〜数千の画像URLがある場合は、スクリプトやツールでの一括確認が現実的です。

同じ画像URLの重複や古いURLを探す

画像URLの問題は、アクセスできないことだけではありません。同じURLが大量の商品に使われていたり、移行前の古いURLが残っていたりする場合もあります。

重複画像URLの確認

すべての商品に同じ画像URL(例:プレースホルダー画像や「画像準備中」の画像)が設定されている場合、フィード審査で問題になることがあります。商品を代表する固有の画像が必要です。

確認方法:

  1. CSVの Image Src 列で、同じURLが何回出現するかをカウント
  2. 出現回数が極端に多いURL(例:全商品の50%以上で使われている)をリストアップ
  3. その画像がプレースホルダーや仮画像でないかを確認

移行前ドメインのURL

別のプラットフォームからShopifyに移行した場合、商品CSVに旧プラットフォームの画像URLが残っていることがあります。例えば以下のようなURLです。

  • https://old-store.example.com/images/product1.jpg(旧ドメイン)
  • https://cdn.shopify.com/s/files/1/xxxx/xxxx/products/old-name.jpg(古いShopifyパス)
  • https://tmp-upload.example.com/img/temp123.jpg(仮アップロード先)

これらのURLは、旧サーバーの契約終了や一時ディレクトリの消去で404になることがあります。

重複・古いURLのチェックリスト

  • ☐ Image Src 列で同一URLの出現回数をカウント
  • ☐ 出現回数が多いURLの画像内容を確認(プレースホルダーでないか)
  • ☐ URLのドメイン部分が現在のストアドメインと一致するか確認
  • ☐ 旧ドメインのURLが含まれていないか確認
  • ☐ 仮アップロード先のURLが含まれていないか確認
  • ☐ URLに日本語やスペースがエンコードされずに含まれていないか確認

到達しても画像として適切かは別で見る

URLが200 OKでアクセスできても、それが商品画像として適切かは別の確認が必要です。Merchant Centerには画像の内容に関するポリシーもあります。

Content-Typeの確認

HTTPレスポンスの Content-Type ヘッダーが image/ で始まっているかを確認します。商品画像のURLを指定しているつもりが、HTMLページを指していることがあります。

  • image/jpeg image/png image/webp image/gif → 画像ファイルとして正常
  • text/html → HTMLページを指している(URLの指定ミスの可能性)
  • application/json → APIレスポンスを指している(URLの指定ミス)

拡張子とファイル形式

URLの拡張子が画像形式として一般的なものかを確認します。

  • .jpg .jpeg .png .webp .gif → 一般的な画像形式
  • .svg → Merchant Centerでは対応していない場合があります
  • .pdf .html → 画像ファイルではない
  • 拡張子なし → CDNのURLでは一般的だが、Content-Typeで確認が必要

サムネイルとフルサイズ画像

Shopifyの画像URLでは、URLのパラメータで画像サイズを指定できます。

  • https://cdn.shopify.com/s/files/.../product.jpg?width=100 → サムネイルサイズ
  • https://cdn.shopify.com/s/files/.../product.jpg?width=2048 → フルサイズ

フィードにはMerchant Centerの要件を満たすサイズの画像を送る必要があります。サムネイルサイズのURLをそのままフィードに送ると、画像サイズ不足で警告が出ることがあります。最新の公式ヘルプで画像サイズ要件を確認してください。

プレースホルダー画像の確認

「NO IMAGE」「画像準備中」といったプレースホルダー画像は、URLとしては有効でも、商品を表す画像としては不適切です。プレースホルダー画像の判定には人間の目視確認が必要です。

確認結果のまとめ方

画像URLの一括確認が終わったら、結果を分類して対応優先順位を付けます。

分類 条件 件数目安 対応優先度 対応方法
正常 200 OK、画像ファイル、固有URL (確認結果を記入) そのまま
空欄 Image Src が空 (確認結果を記入) 画像をアップロード
404エラー ページが存在しない (確認結果を記入) 画像を再アップロード
403エラー アクセス拒否 (確認結果を記入) 公開設定に変更
リダイレクト 301/302 (確認結果を記入) 最終URLに更新
HTMLページ Content-Type が text/html (確認結果を記入) 正しい画像URLに修正
プレースホルダー 同一画像が大量商品に使われている (確認結果を記入) 商品固有の画像を用意
サムネイル 画像サイズが小さい (確認結果を記入) フルサイズURLに更新

自動化できる確認作業

以下の確認は、スクリプトやツールで一括処理できます。

  • 画像URL空欄検出:CSVの Image Src 列と image_link 列が空欄の商品を抽出
  • HTTPステータス取得:URL一覧に対してHEADリクエストを送り、ステータスコードを記録
  • リダイレクト先URLの記録:301/302のレスポンスが返ってきた場合、最終到達URLを記録
  • Content-Type確認:レスポンスヘッダーの Content-Type が image/* かどうかを判定
  • 同一画像URLの重複確認:URLごとの出現回数をカウントし、閾値以上のURLをリストアップ
  • ドメインチェック:URLのドメイン部分が現在のストアドメインと一致するかを判定
  • 拡張子チェック:URL末尾の拡張子が画像形式として一般的なものかを判定

人間判断が必要な確認作業

以下は自動化で候補を出しても、最終的に人間が判断する必要があります。

  • 画像が商品本体を表しているか:自動検出では「画像が存在するか」までしか確認できません。その画像が商品を正しく表しているかは目視判断が必要です。
  • 代替画像を作る優先順位:画像が欠落している商品が多数ある場合、どの商品から画像を用意するかは販売優先度によります。
  • 商品ページ用画像とフィード用画像を分けるか:ポリシー上の問題(ロゴ、透かし、SALE文字など)がある場合、フィード専用の画像を用意するかどうかは運用判断です。
  • プレースホルダー画像の判定:「NO IMAGE」画像も自動的にはプレースホルダーと判定できないため、目視確認が必要です。
  • 画像品質の判定:ぼやけている、背景と同化している、複数商品が写っているなど、画像品質の評価は人間の判断によります。

断定してはいけない注意点

  • Google Merchant Center の image_link 属性の要件は変更される可能性があります。最新の公式ヘルプで画像要件を確認してください。
  • Shopify の画像URLの形式やCDNの仕様は変更されることがあります。画像URLの構造は最新の状態を確認してください。
  • 画像のサイズ要件や対応フォーマットは、Merchant Centerの仕様に依存します。仕様は変わる可能性があります。
  • 大量のURLを一括確認する際は、サーバーに負荷をかけないよう、適切な間隔でリクエストを送ってください。

商品CSVの画像URLが多数あり、どれが切れているのか手作業では見切れない場合はご相談ください。Image Src列の状況と対象商品数をお伺いすれば、確認の方向性をご案内します。初回相談では、機密CSVやスクリーンショットの送付は不要です。

参考にした公式情報

この記事の内容で困っている方へ

Merchant Center / 商品フィード まわりの作業整理、小さな自動化、簡易チェックツール化について相談できます。初回相談で機密CSVやスクリーンショットを送る必要はありません。

無料相談する