WooCommerce向けWhatsApp画像の即時更新
WooCommerce向けWhatsApp画像の即時更新とは、商品を保存した瞬間に正しいカードが準備されていることを意味します。WhatsAppがコマンドに応じてリンクを再読み込みするという意味ではありません。WhatsAppにリンクを再読み込みさせることは誰にもできません。WhatsAppは受信者のアプリ内でプレビューをキャッシュし、更新用のAPIを公開していないためです。あなたが制御できるのはストア側のすべてであり、それだけで次にリンクを共有する人が現在の商品、価格、写真を見られるようになります。
簡潔な回答
WhatsAppのプレビューには2つの時計があり、そのうちあなたが所有するのは1つだけです。
| 時計 | 所有者 | 即時にできるか |
|---|---|---|
あなたのページが配信するog:image |
あなた(ストア) | はい — 修正すべきはこの部分です |
| WhatsAppがページを読み取り、読んだ内容をキャッシュする | WhatsApp、受信者ごと | いいえ — APIもデバッガーも回避策もありません |
2行目を無視した「即時更新」の主張はすべて嘘であり、1行目だけを修正する製品でも、WhatsAppが再びページを見た時点で正しい画像が表示されます。要点はこれだけです。ストア側を証明可能なまでに正しくしたうえで、WhatsAppが協力してくれることを期待するのはやめることです。
更新が反映されない理由
「価格を変更した」から「プレビューが変わった」までの間には、4つの独立したキャッシュが存在します。マーチャントはほぼ必ず、間違ったキャッシュを疑います。
| # | キャッシュ | キー | 実際にクリアする方法 |
|---|---|---|---|
| 1 | ストアのページキャッシュ / CDN | ページのURL | ページキャッシュをパージする |
| 2 | WhatsAppのリンクプレビューキャッシュ | 共有されたリンク | 何もなし — WhatsAppのスケジュールで期限切れになる |
| 3 | WhatsAppが保持する画像バイトのコピー | 画像のURL | 新しい画像URL |
| 4 | 画像CDN / レンダーキャッシュ | 画像のURL | 新しい画像URL、またはそのパージ |
見落とされがちなのは行1です。キャッシュされたHTMLページには依然として古いog:image URLが含まれているため、完璧に再生成されたカードであっても検出されることはありません。まずページキャッシュをパージしてから、残りを確認してください。
行3と行4こそが、画像URLにバージョンを付加することが唯一信頼できるキャッシュバスターである理由です — 新しい画像URLは、あらゆる場所で同時にキャッシュミスになります。
WooCommerce の部分:タグが古いままになることはありません
WooCommerce では、タグの問題は通常次の 2 つのいずれかであり、どちらも WhatsApp のせいではありません:
og:imageがまったく存在しない。 WordPress と WooCommerce は、product、product_cat、またはショップページに対して何も出力しません。SEO プラグインが 1 つ提供しますが、商品の場合には静的なアイキャッチ画像を参照します。- タグは存在するが、固定ファイルを指している。 静的な画像 URL は、価格が変わっても変更できません。編集後の共有はすべて、同じ古い画像を再キャッシュするだけです。
FastOG は別の道を取ります。カバーは署名付き URL で、そのクエリにはそれを生成した値が含まれており、リクエストのたびにライブカタログから読み取られます:商品名、現在の価格(get_price() — 割引商品ではセール価格)、比較用の「元」価格、セールバッジ、評価、在庫状況、商品写真です。
これには明確に述べておくべき帰結があります:価格の変更は URL の変更です。 古い URL はもはやその商品を表さないため、CDN が配信できる古いものは何もなく、次のフェッチで再レンダリングされます。キャッシュバスティングのハックも、「パージしたかどうか」のチェックリストも不要です。
商品で保存を押したときに何が起こるか
Facebook に関しては、誰でも問い合わせできる唯一のプラットフォームであり、FastOG が代わりに問い合わせを行います:
- WooCommerce がネイティブの
product.updated/product.createdWebhook を発火します(permalinkはペイロードに含まれています)。 - FastOG はストアのカタログレコードを更新するため、次回のカバーは最新のデータから生成されます。
- その商品のページ URL に対して
RefreshMetaPreviewジョブがキューに登録されます。インラインではなくキューに登録されるのは、カタログ全体の同期で項目ごとに Meta へのブロッキング呼び出しを 1 回追加してはならないためです。また、重複排除されるため、同じ商品を繰り返し保存しても Meta のレート制限を消費しません。 - ジョブはアプリアクセストークンを使って Meta のスクレイプエンドポイントを呼び出し、Meta はそのページのプレビューのキャッシュされたコピーを置き換えます。
これは設計上ベストエフォートです。Meta が遅い、拒否する、またはレート制限をかけた場合でも、同期は成功します。ページ上のタグはすでに正しく、唯一のコストは Meta が即時ではなく独自のスケジュールで更新することだけです。
WhatsApp、LinkedIn、X は更新されません。これらはいずれも何かを更新するための API を提供していないためです。これは FastOG の制限ではなく、相手側にエンドポイントが存在しないことによるものです。
正しい順序で確認する
プレビューが更新されない場合は、推測せずにこのリストを上から順に確認してください:
# 1. Does the page still serve the OLD tag? (page cache — cache row 1)
curl -s https://your-store.com/product/example | grep -i 'og:image'
# 2. Is that image URL reachable without credentials? (cache row 3)
curl -I "https://...the-og-image-url-from-step-1..."
# 3. Did the image URL change after the edit? Compare with the URL from before.
ステップ1でまだ編集前のURLが表示される場合、後続のどのステップも役に立ちません — ページキャッシュをパージしてください。ステップ1で新しいURLが表示され、ステップ2がimage/png付きの200 OKを返す場合、ストア側は正しく、キャッシュの行2、つまりWhatsAppの時計を見ていることになります。
4行すべてを外部から確認したいですか?商品URLをSee Your Links The Way Buyers Doに貼り付けてください — クローラーと同じ方法でページを取得し、ライブのタグを読み取り、WhatsApp、X、Messengerでの表示どおりに結果をレンダリングし、同じ商品データから生成されたFastOGのカバーと並べて表示します。サインアップは不要です。
キャッシュバスティングプラグインや ?v=2 は効果がありますか?
それらが役立つのは限られた一つの場面だけで、トレードオフは現実に存在します。
プレビューは、人々が共有したリンクに対してキャッシュされます。誰も共有したことのない URL にはキャッシュされたプレビューが存在しません。だからこそ、変化するクエリ文字列(?v=2)を付加する手法がよく使われるのです。これは機能しますが、代償があります。共有されるリンクは正規の商品 URL ではなくなり、検索エンジンは別のアドレスとして認識し、アナリティクスではトラフィックが分断されます。
FastOG は同じ仕組みを一段下のレベルで、コストのかからない形で適用します。ページの URL は正規のまま維持され、画像の URL だけがコンテンツに応じて変わります。これにより、古いカバー画像が再び配信されることはなく、共有するリンクはインデックスさせたい商品ページのままです。
誰にも直せないもの、そしてそう言う理由
- WhatsApp はプレビューを受信者のアプリ内にキャッシュします。API もデバッガーも、私たちのものを含めて、そこに到達できるツールは存在しません。
- LinkedIn と X も、文書化されたプログラムによる無効化 API を公開していません。これらのクローラーは独自のスケジュールで再読み取りを行います。サードパーティによるタイミングの推定をプラットフォームの保証として扱わないでください。
- Facebook は例外であり、FastOG がお客様に代わって ping を送る唯一のプラットフォームです。仕組みについては Facebook の Open Graph キャッシュを強制的に更新する をご覧ください。
WhatsApp を更新すると謳うベンダーは、Facebook の挙動を説明しているにすぎず、お客様が確認しないことを期待しています。私たちはむしろ、正確な地図をお渡ししたいと考えています。
FAQ
WhatsApp にリンクプレビューを即座に更新させることはできますか?
いいえ。WhatsApp は更新用のエンドポイントもデバッガーも公開しておらず、キャッシュされたプレビューは受信者のアプリ内に存在します。できるのは、次に読み取られる際に正しい画像が待ち受けているようにすることだけです。
WhatsApp はリンクプレビューをどのくらい保持しますか?
公表された数値はなく、問い合わせる方法もありません。受信者ごと、デバイスごとに異なります。「WhatsApp が別の判断を下すまで」と考え、代わりにストア側を最適化してください。
自分には更新されたのに、顧客には更新されないのはなぜですか?
それは、自分のデバイスから一度も共有されたことのないリンクを共有してテストしたか、新しいチャットに送信したからです。顧客はキャッシュされたプレビューを見ています。顧客のプレビューとあなたのプレビューは独立しています。
商品 URL を変更すれば更新を強制できますか?
誰も共有していない URL にはキャッシュされたプレビューが存在しないため、可能です。ただし、同じ商品に対して 2 つ目のアドレスを持つというコストが伴います。画像 の URL を変更すれば、パーマリンクに触れることなく同じ効果が得られます。FastOG が行っているのはこちらです。
プラグインは必要ですか、それともテーマを自分で編集できますか?
テーマに静的な og:image を置くだけでも、何もないよりはるかに良く、しかも無料です。ただし、商品ごとに画像を手作業で作成しない限り商品ごとに異なる内容にすることはできず、価格変更を追跡することもできません。そこが、動的なカバー画像がコストに見合う分岐点です。
私のサイトは FastOG を使っていません。それでもこの内容は役に立ちますか?
はい。4 つのキャッシュ、確認の順序、プラットフォームの制限は、FastOG ではなく各プラットフォームの挙動です。curl とデバッガーを使ってリストを進めてください。
無料プランはありますか?
はい。無料の Community ティアでは、商品・カテゴリ・ショップ・ブログ記事ページにわたって最大 100 アイテムを、5 つの基本テンプレートに加えて Black Friday と Seasonal Offer の商品テンプレートでカバーします。カバー画像はクリーンです。Community を含め、どのプランにもウォーターマークは入りません。Community は共有の Community サーバー上でレンダリングされ、ブランディングではなくストア/IP のレート制限によって制約されます。有料プランは Community とは別の専用サーバーを使用し、アイテム上限を引き上げ、追加のテンプレートと機能を解放します(Starter からは評価バッジ、Pro からはメタフィールドマッピング、Scale からはスコープ付きルールと優先レンダリング)。有料プランにはクレジットカード不要の 14 日間トライアルも含まれます。