AI活用事例

[GPT5.6SOL] PCだけWordPressの更新が反映されない原因は?Elementor×iframeのキャッシュ問題を解決した実践記

今回は実際の本番環境にアップロードした後に見た目が変わらなくて苦労したのでそれをAI実践記として記事にしてみました。

モデルはGPT5.6SOL、寝る前だしせっかくなのでウルトラモードでやってみた所クロードコワークに比べると作業自体は結構早い、しかしこの記事は体感結構時間がかかった、実際結構作り込んであるなと思うもののGeminiの一発出しも案外嫌いではない。

作業している環境で変わるかな、この辺はやってた内容をその日の終わりとかに作ってもらえばいいかなとかルール決めですね、ネタだけ集めてトレンド情報で勝負って感じならSNSでしょうがこっちはリアルな実践記なので読んでくれた人が解決できるようにこのぐらい作り込んだほうが良いかもねと最近やっと人間らしい感情が生まれてきた感じがします。

WordPress Troubleshooting / 実践記

スマホでは最新版、PCでは旧版。URLをコピーしたら直った理由

Elementorの固定ページで、別デザインが上下に現れ、端末ごとに更新結果まで違って見えた実例をもとに、iframeとキャッシュの仕組みを図解します。

WordPress Elementor iframe Browser Cache

先に結論:PC版とスマホ版へ別々のHTMLが自動配信されていたわけではありません。今回の本質は、Elementorに残った複数iframeと、外側・内側で別々に効くキャッシュ、そして開いていたURL自体の違いでした。

3本修正前のElementorに保存されていたiframe
48時間max-age=172800 で再利用可能だった期間
1本修正後の固定ページが参照するロードマップ

何が起きていたのか

ロードマップの固定ページを更新したところ、スマートフォンでは期待していた画面が見える一方、PCでは古いデザインのまま変化しませんでした。さらにPCでは、ロードマップの下にキーワード工場まで続けて表示されていました。

見た目だけを見ると「レスポンシブ設定でPC版とスマホ版が分岐している」ように感じます。しかし、PC用とスマホ用のUser-Agentで取得したHTMLを比較すると、配信内容は同じでした。端末判定より先に、ページの構造とURLを調べる必要があったのです。

図解① ページは「外側」と「内側」の2階建て

iframeは単なる画像枠ではなく、もう1つのHTMLページを読み込む仕組みです。そのため、外側の固定ページと内側のロードマップは別々にキャッシュされます。

上下に別素材が出た直接原因

修正前のElementor HTMLウィジェットには、実際に3本のiframeが保存されていました。

図解② 「1つの素材が壊れた」のではなく、複数素材が縦積みだった

ブラウザが旧版と新版を勝手に合成したのではありません。保存されていた外側HTMLが、2つの表示用iframeを忠実に縦へ並べていました。

図解③ 修正前と修正後

「見えないようにする」のではなく、不要な参照をElementorの保存データから物理的に取り除くことが再発防止になります。

なぜスマホのURLをPCへ貼ると直ったのか

ここが今回もっとも重要なポイントです。スマートフォンからPCへキャッシュが移動したわけではありません。

PCでそれまで見ていたのはWordPress固定ページでした。一方、スマートフォンからコピーしたURLは、比較ラボに置かれた候補版HTMLの直URLでした。

固定ページの例
/aiトレンドロードマップ/

コピーした直URLの例
/ai-trend-lab/candidate-YYYYMMDD/ai-trend-universe.html

これは同じページの再読み込みではなく、別のパスにある別ファイルへ移動したことを意味します。WordPressとElementorの外枠を迂回し、目的のHTMLを直接開いたため、固定ページに残っていた複数iframeや外側キャッシュの影響を受けませんでした。

図解④ URLが変わると、参照先とキャッシュキーが変わる

HTTPキャッシュは、少なくともリクエストメソッドと対象URIを使って保存済み応答を選びます。パスやクエリが異なれば、通常は別のキャッシュ項目として扱われます。
注意:「URLを貼り直せば必ず直る」わけではありません。今回効いた主因は、コピーしたURLが固定ページと同一ではなく、目的のHTMLへの別パスの直URLだったことです。
調査上の大切な区別:コピーして表示した候補版は約7.7MBのx-dc版で、現在の固定ページが参照する56,269バイトのプレーンHTML版とは別ファイルです。直URLで期待した画面が出たことは「正しいデザインが存在する場所を特定できた」という意味であり、固定ページURLそのものの差し替え完了とは分けて判断します。

キャッシュは1枚ではなく、層になっている

調査では、固定ページと埋め込み先HTMLの双方が Cache-Control: max-age=172800 を返していました。172,800秒は48時間です。

一度取得した応答をブラウザや中間キャッシュが再利用できるため、同じURLのファイルを上書きしても、先に開いていたPCだけ古い内容を見続ける可能性があります。

1. PCが旧URLを先に閲覧

外側の固定ページと内側のiframeをそれぞれキャッシュ。

2. サーバー上のHTMLを同じURLのまま更新

ファイル内容は変わっても、住所が同じなので保存済み応答を再利用できる。

3. スマホは別URLまたは未取得URLを開く

キャッシュがないため、新しい内容を取得した可能性が高い。

4. 正しい直URLをPCへコピー

PCも別の対象URIへ移動し、目的のHTMLを直接取得。

?v= がしていること

更新後のiframeには、新しいバージョン番号を付けました。

<iframe
  src="/roadmap.html?v=20260715-2"
  loading="eager"
  title="ロードマップ"
></iframe>

?v= はファイルを書き換える命令ではありません。同じ実体を「新しい住所として取りに行かせる」ための目印です。

/roadmap.html?v=20260715
/roadmap.html?v=20260715-2

この2つは通常、異なる対象URIとして別のキャッシュキーになります。ただし、CDNやキャッシュ設定がクエリを無視する構成もあるため、本番環境での確認は必要です。

#5 はキャッシュ破棄に使えない

/roadmap.html#5 のようなハッシュは、取得したHTML内の位置やスライド番号をブラウザ側で指定する情報です。通常はサーバーへのHTTPリクエストに含まれないため、キャッシュ更新用のバージョン番号には使えません。

スーパーリロードで変わらなかった理由

スーパーリロードはブラウザ側キャッシュの影響を切り分けるには有効です。しかし、保存されている元データや参照先そのものを書き換える操作ではありません。

  • Elementorの保存データ自体に3本のiframeがあれば、再取得しても3本が表示されます。
  • 固定ページが旧いiframe URLを出力していれば、正しく再読み込みしても旧い参照先へ進みます。
  • サーバー・CDN・Elementor側が古いHTMLを返していれば、ブラウザだけ更新しても変わりません。
  • そもそも別URLを開いている場合、再読み込みはその別URLを忠実に読み直すだけです。

つまりスーパーリロードは「正しい住所にいるが、ブラウザだけが古い」という条件では効きます。一方、「住所や建物の案内板そのものが違う」場合は、構造と参照URLを直す必要があります。

実際に行った修正

  1. 固定ページのElementorデータをバックアップ
    本番を触る前に、元へ戻せる状態を確保しました。
  2. 本番で使うプレーンHTMLを正本に決定
    全6スライド・STEP 0〜10を持つ56,269バイト版を本番の参照先としました。
  3. 不要なiframeをDOMから削除
    旧Overviewとキーワード工場を固定ページから外し、ロードマップ1本に統一しました。
  4. 新しいバージョン番号へ変更
    iframeの参照先を ?v=20260715-2 に変更しました。
  5. Elementorから公開
    HTML本体だけでなく、それを呼び出す外側の保存データも更新しました。
  6. ログアウト状態でも検証
    PC・スマホ幅、iframe数、コンソールエラー、公開HTMLのハッシュを確認しました。

同じ問題が起きたときの診断表

症状最初に見る場所判断
直URLは新しいが、固定ページは古い Elementorのiframe src と外側キャッシュ 中身は正常。WordPress側の参照経路に問題がある
直URLも固定ページも古い 静的HTML本体・CDN・ブラウザキャッシュ 埋め込み先ファイルまで最新版が届いていない
別素材が上下に並ぶ 固定ページ内のiframe数 キャッシュの合成ではなく、複数iframeが保存されている可能性
URLを変えたときだけ直る パス、クエリ、Cache-Control 別キャッシュキーまたは別ファイルへ移動した可能性
ログイン中だけ新しく見える ページキャッシュ・CDN・キャッシュ除外条件 管理者と一般訪問者でキャッシュ経路が違う可能性

再発防止チェックリスト

  • 本番で使うHTMLの正本を1つに決める
  • 候補版と本番版の保存場所を分ける
  • 固定ページ内のiframe数を公開前に確認する
  • display:none の旧素材も不要なら削除する
  • 更新ごとに新しいversion queryを付ける
  • 外側と内側を別ページとして検証する
  • ログアウトまたはシークレット環境で確認する
  • PC・スマホで取得URLが同じか確認する
  • ElementorのFiles & Dataも必要に応じてクリアする
  • 公開ファイルの容量・更新日時・ハッシュを記録する

今後の運用ルール

1
同じURLへ黙って上書きしない

更新日や短いハッシュをクエリへ付け、公開のたびに参照URLを更新します。

2
比較ラボと本番を混ぜない

候補版は比較用ディレクトリ、本番は本番用ファイルとして役割を分離します。

3
CSSで隠すより、不要なDOMを消す

見えない旧素材も読み込み・管理ミス・将来の再表示につながります。

4
「外側 → 内側」の順で調べる

固定ページの構造、iframeのURL、静的HTML本体、各キャッシュ層の順に切り分けます。

参考資料

まとめ

今回、上下に別素材が出た直接原因はElementorへ保存された複数iframeでした。PCだけ旧版に見えた背景には、最大48時間のキャッシュと、PC・スマホで開いていたURLの違いがありました。

スマホのURLをPCへコピーして直ったのは、キャッシュが同期されたからではありません。WordPressの外枠を迂回し、別URIにある正しいHTMLを直接開いたからです。

WordPressで「更新したのに端末ごとに表示が違う」ときは、レスポンシブ設定だけでなく、外側のページ、iframeの参照先、静的HTML、URLごとのキャッシュを分けて確認することが解決への近道になります。

AIで出した素材はPC環境でのチェックが多いと思いますが結局世の中スマホファーストなのでスマホ環境で見れる方法をGPTに相談中だったりします、今日何度か試したけど今のところうまくいかず、とはいえ何かやり方はあるだろうからまた別な機会に調べておきます、多分

ではまた

関連記事

  1. 40代からのAI活用とキャリア戦略

  2. 【完全自動化】面倒なサーバー作業を丸投げ!GPT Codexの「ブラウ…

  3. AIと健康がいかに稼げる可能性を秘めているかというお話

  4. AIで環境問題を解決する事について検討してみる

  5. 40代ビジネスパーソンのための最新AI活用動向:仕事に生かす米国トレン…

  6. AI活用事例、AIを使って稼ぐためのロードマップとツール設計について

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

PAGE TOP