CMSで更新したのにサイトに反映されない——キャッシュ4層の切り分け方
管理画面では新しいのに、クライアントの画面は古いまま。ヘッドレスCMS+Cloudflare構成で更新が止まるのは、ブラウザ・エッジ・オブジェクトキャッシュ・DBの4層のどれか。ヘッダーとServer-Timingで切り分ける手順と、層ごとの待ち時間の理屈を実測値つきでまとめます。
ホームページ制作の発注ガイドから、コーディング・表示速度といった実践的な知見まで。 「頼む前に知っておきたいこと」を、わかりやすく発信しています。

管理画面では新しいのに、クライアントの画面は古いまま。ヘッドレスCMS+Cloudflare構成で更新が止まるのは、ブラウザ・エッジ・オブジェクトキャッシュ・DBの4層のどれか。ヘッダーとServer-Timingで切り分ける手順と、層ごとの待ち時間の理屈を実測値つきでまとめます。

ヘッドレス構成でも画像は勝手に最適化されない。変換を通る画像と通らない画像の違い、変換が静かに止まる壊れ方、1年immutableだから「上げ直し」になる理由、消す前の確認まで。自分のブログを実際に直し、一覧12枚を578KBから78KBにした記録つき。

「公開日を過ぎたのにサイトマップに載らない」。予約投稿が効かない原因は管理画面ではなくインフラ側にありました。表示とサイトマップの判定のズレ、CloudflareでCron Triggerが要る理由、引き渡し前に見る3点を実装者目線で整理します。

「英語版も足せますか」と後から言われて慌てないために。EmDashとAstroのi18nを軸に、1言語=1行というデータの持ち方、既定言語にURL接頭辞を付けると管理画面が404になる罠、訳さない項目の決め方、未翻訳ページの扱いを実務目線で整理しました。

納品後に「項目が消えた」と連絡が来るのは、触れる場所まで渡してしまったから。EmDashの5段階ロールを軸に、公開権とスキーマ変更の境界、APIトークンやAIコネクタのスコープ、引き渡し前に決める4つを実務目線で整理しました。

納品後に飛んでくる「記事を消した」「前の版に戻したい」。ヘッドレスCMSの復元は下書き・リビジョン・ゴミ箱・データベースの4層に分かれ、戻せる範囲も期限も層ごとに違います。自サイト53記事の履歴件数、6週間前のゴミ箱、D1 Time Travelの守備範囲まで実測つきで整理しました。

記事が増えたのにサイト内検索が当たらない。原因は本文を索引にするときの区切り方で、既定は英語向けです。SQLite FTS5のトークナイザをtrigramに替えると日本語の途中一致を拾える。2文字以下が落ちる穴と、UIでの吸収まで実測つきで。

ヘッダーのメニューやサイト名も、ヘッドレスCMSならクライアントが編集できます。EmDashのメニュー・サイト設定・ウィジェットエリアの3つを整理し、どこまで渡してどこをコードに残すか、自サイトの実装を例に線引きの基準をまとめました。

記事の途中にCTAボックスや比較表、動くデモを入れたい。ヘッドレスCMSでそれを実現する方法をHTMLブロック・セクション・カスタムブロック・プラグインの4段階に整理し、自サイトでGSAPデモを埋め込んだときに詰まった点も含めて実装者視点でまとめました。

納品後のWordPress更新や監視、バックアップは件数分だけ積み上がります。Workers+D1+R2のCloudflare前提で組むと何が消え、何が残るのか。自サイトの運用実態と無料枠の注意点まで正直に整理しました。

静的サイトは速いがフォームやOGPが動かないのでは、という懸念はCloudflare Workersで解消できます。自サイトで動くフォーム送信・メール通知・動的OGP・下書きプレビューの実例と、動的CMSに寄せるべきケースの判断基準をまとめました。

記事が300本あるサイトを脱WordPressするとき、どこまで自動でどこから手作業か。WXRインポートの流れ、変換表に無いブロックやACFの扱い、順位を落とさないリダイレクトまで実装者の視点で。