最終確認:2026年10月。
多くの静的書き出しツールはWooCommerceをあきらめています。理由はもっともで、ストアは常に変化するからです。価格はセールで変わり、在庫は売り切れ、訪問者ごとにカートがあります。しかし顧客を呼び込むページ——商品ページ、カテゴリ、コンテンツ——は誰に対しても同じです。そこは静的にでき、個人的・取引的な部分はWordPressに残します。
ストアの静的化が難しい理由
- 価格と在庫が変わるため、書き出した時点で固まったページは誤った価格を表示したり、在庫切れの商品を売ったりしかねません。
- カートは訪問者ひとりのもの。WooCommerceはCookieで識別するセッションにカートを保存します。
- 決済では支払いを処理し、決済サービスとやり取りします。これらはWordPressに届く必要があります。
- マイアカウントにはログインした顧客自身の注文が表示されます。
静的にできるもの、動的に残すもの
| ページ・操作 | 静的にできる? | 方法 |
|---|---|---|
| 商品ページ | できる | 速度とSEOのために静的HTML、その上でライブの価格と在庫を読み込む |
| ショップ・カテゴリページ | できる | 商品ページと同じ |
| ブログ・ガイド・LP | できる | 通常の静的ページ |
| カートに追加 | できない | 商品が訪問者のカートに入るようWordPressに届ける |
| カート・決済・マイアカウント | できない | 常にWordPressが配信 |
| 決済サービスからのコールバック | できない | WordPressに直接届く必要がある |
静的ページでストアを運営する3つの方法
- ストアは動的のまま。コンテンツだけを書き出し、商品は対象外にします。最も簡単で、Pinery Staticなら
productタイプのチェックを外すだけですが、商品ページは速くなりません。 - 静的な商品ページ+ライブデータ。商品とショップページを書き出し、ブラウザでWooCommerceから価格と在庫を更新し、カートと決済はWordPressに残します。Pinery Static Proはこの方式です。
- ヘッドレス化。WooCommerceのAPIの上にJavaScriptフレームワークでストアフロントを作り直します。最も柔軟ですが、最も手間がかかります。
Pinery Static Proはどうやってストアを動かすか
- 商品ページとショップページは、書き出し時点の価格と在庫で静的HTMLとして書き出されます。
- 訪問者がページを開くと、小さなスクリプトがWooCommerce Store API(
/wp-json/wc/store/v1、認証不要の公開API)に現在の価格と在庫を問い合わせ、書き出し時の値を置き換えます。在庫切れの商品はボタンが無効になります。 - カート追加のフォームと
?add-to-cartリンクはWordPressを直接指すので、商品は/cart/や/checkout/が表示する通常のWooCommerceカートに入ります。 - カート・決済・アカウントのページは初期設定で書き出し対象外で、WordPressが配信します。
- 付属のWorkerルーターをドメインで使うと、
?add-to-cart、wc-ajaxリクエスト、すべてのフォーム送信がWordPressに送られます。静的ビルドにないページ——前回のデプロイ後に追加した商品を含む——も404ではなくWordPressにフォールバックします。
ストアで1つのドメインが重要な理由
WooCommerceのカートは、WordPressのドメインが設定するCookieに保存されます。静的ページがexample.com、WordPressがwp.example.comだと、顧客はカートに進む途中でアドレスが変わり、両者の間のリンクもすべて正しく保つ必要があります。両方を同じドメインで配信するルーターならこの問題はありません。静的ページもカートも決済も、1つのアドレス・1つのCookieを共有します。
テストのチェックリスト
- WordPressで価格を変え、書き出し直さなくても静的な商品ページに新しい価格が出るか確認。
- 商品を在庫切れにして、ボタンが無効になるか確認。
- 静的ページからカートに追加し、カートを開いて決済まで進む。
- カートでクーポンを適用する。
- テスト決済をして注文ステータスが更新されるか確認(決済サービスがWordPressに届いている証拠)。
- カート・決済・アカウントのページがCDNにキャッシュされないことを確認。
よくある質問
WooCommerceストアを完全に静的にできますか?
できません。カート・決済・アカウントのページは顧客ごとに異なり、WordPressが配信する必要があります。商品・カテゴリ・コンテンツのページは静的にできます。
顧客に古い価格が表示されませんか?
ライブ更新があれば表示されません。ページの読み込み時に、書き出した価格が現在の価格に置き換わります。カートと決済は常にWordPressで価格を計算するので、請求額は常に最新です。
Simply StaticはWooCommerceに対応していますか?
公式FAQで、ストア・決済・ログインが必要なエリアは静的サイトに向かないとしています。Pinery Static Proは、それらを静的な商品ページと並べて動かすために作られています。
静的化したストアはSEOに役立ちますか?
商品ページやカテゴリページの表示が速くなり、テーマやSEOプラグインが出力する商品の構造化データも書き出したHTMLに残ります。