[{"data":1,"prerenderedAt":175},["ShallowReactive",2],{"tag-articles-ssg":3},[4,9,14,20,25,31,35,40,46,51,56,60,65,70,74,79,83,88,93,98,103,107,112,117,122,127,132,137,142,147,151,156,161,166,171],{"title":5,"description":6,"path":7,"publishedAt":8,"updatedAt":8},"ページ遷移が遅い問題：SSR vs SSG の選択ミス","Nuxt Content + Cloudflare Pages構成で、ページ遷移に2-3秒かかる問題の原因分析と解決策。なぜSSRがデフォルトになっていたのか、ブログサイトにSSGが適切な理由を解説","/ssr-vs-ssg-page-transition-slow","2025-12-05T00:00:00.000Z",{"title":10,"description":11,"path":12,"publishedAt":13,"updatedAt":13},"Google Search Console 404エラー調査","Search Consoleで報告された404エラーとインデックス登録数の問題を調査・分析","/search-console-404-investigation","2025-12-18T00:00:00.000Z",{"title":15,"description":16,"path":17,"publishedAt":18,"updatedAt":19},"Nuxt 3: build vs generate の違い","nuxt buildとnuxt generateの本質的な違いを理解する","/nuxt-build-vs-generate","2025-12-24T00:00:00.000Z",null,{"title":21,"description":22,"path":23,"publishedAt":24,"updatedAt":19},"useOgMetaヘルパーのビルドエラー調査","NuxtコンポーザブルuseOgMetaがSSGビルド時に500エラーを引き起こす問題の調査記録","/useogmeta-build-failure-analysis","2025-12-31T00:00:00.000Z",{"title":26,"description":27,"path":28,"publishedAt":29,"updatedAt":30},"SSGスケーラビリティ課題 - 長期運用における考慮事項","静的サイト生成（SSG）の長期運用で発生するメモリ制限問題と、ハイブリッドレンダリングなどの対策オプション","/ssg-scalability-challenges","2026-01-01T00:00:00.000Z","2026-01-02T00:00:00.000Z",{"title":32,"description":33,"path":34,"publishedAt":30,"updatedAt":19},"Nuxtビルド最適化：341ページを137秒でSSG","devtools無効化とキャッシュ活用で208秒から137秒に短縮。プリレンダリング並列化の仕組みとハードウェアアップグレードの費用対効果を解説。","/nuxt-devtools-optimization",{"title":36,"description":37,"path":38,"publishedAt":39,"updatedAt":19},"Google Search Consoleでインデックス率が低い問題の調査","サイトマップに343ページ送信してインデックス76ページしかない問題を調査。初期仮説のtrailing slash問題ではなく、SSGプリレンダリングの問題が根本原因だった。","/google-index-improvement","2026-01-04T00:00:00.000Z",{"title":41,"description":42,"path":43,"publishedAt":44,"updatedAt":45},"Google Search Console 404エラーの原因：Nuxt SSGのcrawlLinksで発見されないページ","Google Search Consoleで大量の404エラーが報告された原因を調査。Nuxt SSGのcrawlLinksによるプリレンダリングの仕組みと、リンクされていないページが発見されない問題を解説。","/gsc-404-ssg-issue","2026-01-06T00:00:00.000Z","2026-02-03T00:00:00.000Z",{"title":47,"description":48,"path":49,"publishedAt":50,"updatedAt":19},"連結精算表のURLをクエリパラメータからパスベースルーティングに移行した","Nuxt 3の連結精算表ページで、クエリパラメータ方式のURLをパスベースのルーティングに移行。parseSlug/buildPath関数の実装、ブラウザバック問題の修正、SSGプリレンダールート自動生成まで。","/consolidated-worksheet-path-routing-2026-02-02","2026-02-02T00:00:00.000Z",{"title":52,"description":53,"path":54,"publishedAt":55,"updatedAt":19},"2026年2月8日の開発日記 - 複数業種LPを1日でSSG化・デプロイまで完了","複数デザインテンプレートの各業種適用、SSR→SSG移行、SEO全ページ実装、Resendお問い合わせフォーム、UI/UX最終調整を1日で完了した開発記録","/diary-2026-02-08","2026-02-08T00:00:00.000Z",{"title":57,"description":58,"path":59,"publishedAt":55,"updatedAt":19},"Nuxt3マルチテナントLPをSSRからSSGに移行 - 複数業種×Cloudflare Pagesデプロイ","業種別LPサイトのSSR→SSG移行。環境変数によるテナント切替、PowerShellバッチデプロイスクリプト、Cloudflare Pages Static設定を解説","/tax-lp-ssr-to-ssg-2026-02-08",{"title":61,"description":62,"path":63,"publishedAt":64,"updatedAt":19},"SSG環境でのSEO基盤整備 - robots.txt/sitemap.xml静的生成とCloudflare Pages対応","Nuxt3 SSG環境でrobots.txtとsitemap.xmlを静的ファイルとして生成し、Cloudflare Pagesの制約に対応した記録","/ssg-seo-infrastructure-2026-02-09","2026-02-09T00:00:00.000Z",{"title":66,"description":67,"path":68,"publishedAt":69,"updatedAt":19},"Nuxt Content v3 + Cloudflare Pages で直リンク時に404になる問題の解決","Nuxt Content v3をCloudflare Pagesに静的デプロイすると、URLを直接入力したときだけ404になる。原因はトレイリングスラッシュによるuseAsyncDataのキー不一致だった。","/nuxt-content-cloudflare-404-fix","2026-02-11T00:00:00.000Z",{"title":71,"description":72,"path":73,"publishedAt":69,"updatedAt":19},"WordPressブログをNuxt 3 + Cloudflare Pagesに移行した記録","ponponpopopoon.com（17ページ・169記事）をWordPressからNuxt 3 + @nuxt/content v3に移行。Pythonクローリング、日本語ファイル名問題、permalinkルーティング、SSG設定、404トラブルシューティングまでの全工程をまとめた。","/pon-blog-wordpress-to-nuxt3-migration-2026-02-11",{"title":75,"description":76,"path":77,"publishedAt":78,"updatedAt":19},"2026年2月12日の開発日記 - 確定申告資料整理・クライアント切替実装・仕訳ルール自動推測・PDF変換","確定申告資料92件リネーム、クライアント切替機能の設計から実装完了、仕訳ルール自動推測・提案機能の構築、医療費明細OCR対応、PDF複数ページ変換、新規クライアント登録設計まで、tax-assistantを大幅に進化させた一日。","/diary-2026-02-12","2026-02-12T00:00:00.000Z",{"title":80,"description":81,"path":82,"publishedAt":78,"updatedAt":19},"Nuxt 3 SSGで特定ページをプリレンダリングから除外する方法 - 本番環境からの選択的ページ除外","Nuxt 3のcloudflare-pages-staticプリセットで、書籍内容を含むページを本番環境から除外し、開発環境でのみ閲覧可能にする実装手順。prerender.ignoreとimport.meta.devを使った方法を解説。","/nuxt3-ssg-prerender-exclude-pages-2026-02-12",{"title":84,"description":85,"path":86,"publishedAt":87,"updatedAt":19},"oto archiveの2031年コンセプトサイトをNuxtで構築した","既存のotoarchive.comを5年後に進化させたビジョンサイトをNuxt 3で構築。React→Vue変換、Netflix風カルーセル、188地点マスターデータからの5,850件自動生成、Leaflet地図統合、11,732ルートのSSGプリレンダリングまで。","/oto-archive-concept-site-2026-02-15","2026-02-15T00:00:00.000Z",{"title":89,"description":90,"path":91,"publishedAt":92,"updatedAt":19},"Cloudflare AccessとR2でコンセプトサイトのインフラを整備した","oto archiveコンセプトサイトにCloudflare Accessでメール認証を導入し、ライブラリデータをR2に移行してビルド時間を大幅短縮。OBS録画設定の検討やサブドメインローカル開発のドキュメント化も実施。","/oto-archive-infra-2026-02-16","2026-02-16T00:00:00.000Z",{"title":94,"description":95,"path":96,"publishedAt":97,"updatedAt":19},"書籍OCRバッチクリーンアップとtokyo-onkeiデプロイ修正 - 2026年2月20日","yomitokuで75ページのPDFを113秒でOCR変換し、複数冊のDBクリーンアップを並列バッチ処理。tokyo-onkeiのCSS崩れ・リダイレクト問題も解消した開発ログ。","/book-ocr-and-misc-2026-02-20","2026-02-20T00:00:00.000Z",{"title":99,"description":100,"path":101,"publishedAt":102,"updatedAt":19},"2026年3月5日の開発日記 - SSGビルド復旧＆新規クライアント記帳自動化","本番サイトのSSGビルドエラー3件を修正して2週間分のコンテンツを復旧、GA4キーイベント設定とOGP対策、新規クライアントの記帳ゼロ→会計サービス仕訳エクスポートまでを完走した一日","/2026-03-05-diary","2026-03-05T00:00:00.000Z",{"title":104,"description":105,"path":106,"publishedAt":102,"updatedAt":19},"Nuxt SSGビルドエラーを3つ潰して本番デプロイを復旧した","Cloudflare Pagesで2月22日以降の記事が消えていた原因を追い、importパスの階層不足・Date型のsplit問題・未コミットコンテンツの3つを修正して本番復旧した記録","/nuxt-ssg-build-fix-2026-03-05",{"title":108,"description":109,"path":110,"publishedAt":111,"updatedAt":19},"Cloudflare AccessとSSGの相性問題から別プロジェクト分離に至るまで","Cloudflare Accessで/private以下を保護しようとしたが、SSGのプリレンダリングでバイパスされる問題が発覚。ミドルウェア対策を経て、最終的にprivate.eurekapu.comとして別プロジェクトに分離した判断過程の記録","/cloudflare-access-private-site","2026-04-08T00:00:00.000Z",{"title":113,"description":114,"path":115,"publishedAt":116,"updatedAt":19},"3600行のドラフトMDを11個のVueページに変換し、stepsレイアウトを汎用化した記録","会計テキスト教材10章分のマークダウンをVueページへ変換。ドラフトがCloudflareで表示されない原因を突き止め、レイアウトをstepsに統一し、SVGパス解決やトップページ追加まで一気に進めた1日の記録","/beppyo-vue-conversion","2026-04-22T00:00:00.000Z",{"title":118,"description":119,"path":120,"publishedAt":121,"updatedAt":19},"CT Logとbot対策：AI検索で参照されたいならBot Fight Modeを入れてはいけない","CT Log経由のbotスキャン対策を調べていたら、Bot Fight ModeがAI検索クローラーも弾く可能性があるとわかった。税理士事務所など「AI検索で見つかりたい」サイトに向いている代替策を整理した。","/ct-log-bot-and-ai-search","2026-05-06T00:00:00.000Z",{"title":123,"description":124,"path":125,"publishedAt":126,"updatedAt":19},"Cloudflare Pages SSG の OOM を Excel 教材データ分離で根本対応した話 — Codex 再帰レビューと SSR fetch 404 の突破","Cloudflare Pages の SSG ビルドが Node ヒープ 2GB を突き抜けて exit 134 で落ち続けた問題を、Excel 教材データの TS import → JSON fetch 分離で根本対応した。top.vue manifest は 490KB から 18KB に痩せ、10コース 616KB が public/ 配信に逃げた。Codex 再帰レビュー3回、Windows サンドボックス問題の根本対応、SSR fetch 404 のハマりまでを記録する。","/excel-data-separation-cloudflare-ssg-oom","2026-05-10T00:00:00.000Z",{"title":128,"description":129,"path":130,"publishedAt":131,"updatedAt":131},"Nuxt Content サイトに非公開フラグを導入し、HTML・サイトマップ・payload からの漏えいを遮断するまで","Motley Fool 由来のNVIDIA決算記事を非公開化する必要が出たことを起点に、unpublished: true をopt-inで導入。Nuxt Content v3 のSQLite挙動（published未指定もfalse化）を避けるための設計、_raw/sitemap/payload/dist HTML の漏えい遮断機構、検証スクリプトのVitest化、19件への適用、内部リンク12箇所のプレーンテキスト化までを記録する。","/unpublished-leak-prevention","2026-05-22T00:00:00.000Z",{"title":133,"description":134,"path":135,"publishedAt":136,"updatedAt":19},"非公開記事一覧をGoogleにインデックスさせない仕組みを点検した話","/blog/unpublished に置いた非公開記事を検索エンジンに載せたくない。noindex meta を入れる前に、本番ビルドから6経路で除外し本番URLを404にする既存実装が要件を満たしていると分かった点検記録。","/unpublished-noindex","2026-06-01T00:00:00.000Z",{"title":138,"description":139,"path":140,"publishedAt":141,"updatedAt":19},"/blog のカレンダーが一瞬光って消える hydration mismatch を payload null 化で突き止めた","Cloudflare Pages にデプロイした /blog で当月の記事27本が一切表示されない。SSR の HTML には載っているのに、ブラウザで見ると一瞬出てから空に化ける。原因は queryCollection の戻り値が payload reducer で null に落ちることだった。plain POJO に詰め替えて修復し、再発防止ルールを .claude/rules/ に固定した。","/blog-payload-null-root-fix","2026-06-05T00:00:00.000Z",{"title":143,"description":144,"path":145,"publishedAt":146,"updatedAt":19},"Cloudflare Pages の 1MB Worker bundle 制限に当たって構成図A〜Dを書きながら設計判断を整理した","Nuxt 4 アプリの SSR Worker bundle が gzip 後 3.18 MiB まで膨らんで Cloudflare Pages の制限を超過した。プラン A/B/C/D を構成図に起こして比較し、最終的に HTML を public/ に直配置する Plan D へ収束させ、Phase 1 を本番デプロイするまでの設計判断と試行錯誤の記録。","/cloudflare-pages-workers-bundle-architecture","2026-06-16T00:00:00.000Z",{"title":148,"description":149,"path":150,"publishedAt":146,"updatedAt":19},"Nuxt Content v3 でビルド時間20分の壁に並列化で挑んだが意味なかった話","Cloudflare Pages へのデプロイで Nuxt Content v3 のビルド時間が20分に膨らんだ。タグページ削除で13分台まで落とせたが、そこからさらに concurrency: 8 で並列化を試したら逆に遅くなった。Nitro の prerender が worker_threads 未対応で並列化が効かないと判明するまでの試行錯誤を記録する。","/nuxt-build-time-parallel-investigation",{"title":152,"description":153,"path":154,"publishedAt":155,"updatedAt":19},"/blog ページの payload null 化が再発した話 — 再デプロイで直したが原因は特定できず","デプロイ後に /blog の記事一覧が一瞬だけ映って消える hydration mismatch が再発した。2026-06-04 と同じ症状で、対策ルールも入っていたのに本番だけ payload が null に化けた。再デプロイで復旧したが原因は掴めなかった記録。","/blog-payload-null-rerun","2026-06-23T00:00:00.000Z",{"title":157,"description":158,"path":159,"publishedAt":160,"updatedAt":19},"Cloudflare Pages はもう Workers の中に住んでいる ― Static Assets 統合後の地図","「Pages 推奨」だったのに、いつのまにか「Workers の Static Assets が推奨」に変わっていた。Pages が廃止されるのか、Workers と何が違うのか、自分の2プロジェクトはどうなるのかを Before / After の図で整理した。","/cloudflare-pages-to-workers-static-assets","2026-06-29T00:00:00.000Z",{"title":162,"description":163,"path":164,"publishedAt":165,"updatedAt":165},"pnpm generate が exit 134 で落ちた日——ヒープOOMと検証スクリプト偽陽性の二段落ち","SSGビルドが同じ朝に2回、別々の理由で落ちた記録。1回目はV8ヒープ4GB上限到達のOOM（exit 134）、2回目はビルド時検証スクリプトの除外リスト更新漏れによる偽陽性。それぞれの切り分け手順と修正、再発防止策をログ付きで残す。","/generate-oom-and-verify-false-positive","2026-07-04T00:00:00.000Z",{"title":167,"description":168,"path":169,"publishedAt":170,"updatedAt":19},"2026年7月19日の開発日記 - 朝に足した内部リンクが夕方のビルドを3倍遅くしていた","Search Console分析から内部リンク553ページを実装した数時間後、デプロイが26分に膨張。犯人は自分の施策だった。TTS音声7,700ファイル生成、先行指標統計4本の毎朝チェーン組み込みも。","/2026-07-19-diary","2026-07-19T00:00:00.000Z",{"title":172,"description":173,"path":174,"publishedAt":170,"updatedAt":19},"NuxtのSSGビルドが3倍遅くなった原因調査 — 差分ビルドではなくプリレンダー共有キャッシュで立て直す","デプロイが26分に膨らんだ原因を過去計測と突き合わせて調査。関連記事とタグページが毎回全記事を引き直すO(N²)構造を特定し、差分ビルドを見送って全件クエリの1回化とタグ逆引き索引の共有を計画・実装するまでの記録。","/ssg-prerender-fullscan-cache",1784786395809]