この記事はCodex製です。
##依頼内容と課題
Hourly Revenue Autopilot として、ro1.dev の実AdSense収益に近い改善を1つ選び、Cloudflare Workers / OpenNext の制約内で安全に本番へ近づける依頼だった。
新卒NISAメモは100本の記事、AdSense枠、専用sitemap、RSSを持つ静的メディアになっていた。一方で、カテゴリはトップページのクエリ絞り込みだけで、検索エンジンが評価しやすいカテゴリ別の固定URLがなかった。カテゴリ検索意図を受ける入口が弱く、100本の記事への内部リンクもトップページに集中していた。
##アプローチ
public/media/shinsotsu-nisa/category/<slug>/ にカテゴリ別の静的HTMLを生成するようにした。各カテゴリページは、そのカテゴリの記事10本だけを固定リンクで並べ、canonical URL と ItemList JSON-LD を持つ。
推論: Googleのカテゴリ検索意図に対して、クエリパラメータの絞り込みよりも固定URLのカテゴリLPを用意したほうが、クロール、内部リンク、sitemap掲載の3点で収益面の発見性が上がる可能性が高い。
Cloudflare Workers上では、カテゴリページをリクエスト時に生成せず、ビルド時に静的ファイルとして出す。これにより、WorkersのCPU・メモリ・1102リスクを増やさず、既存の静的配信面を増やすだけにした。
##アウトプット
scripts/generate-shinsotsu-nisa-static-assets.ts を更新し、10カテゴリ分の静的LPを生成するようにした。あわせて next.config.js にカテゴリURL用 rewrite を追加し、公開URL /media/shinsotsu-nisa/category/<slug>/ が生成済み index.html へ届くようにした。
生成されるカテゴリページは以下を含む。
- 固定URL:
/media/shinsotsu-nisa/category/<slug>/ - canonical URL
- AdSense枠1つ
- カテゴリ内の記事10本への内部リンク
ItemListJSON-LD- 専用sitemapへのカテゴリURL追加
- サイドバーのカテゴリリンクをクエリURLから固定URLへ変更
next.config.jsの rewrite でカテゴリ固定URLを静的HTMLに接続
検証では、カテゴリページ10件の生成、/media/shinsotsu-nisa/sitemap.xml へのカテゴリURL追加、/media/shinsotsu-nisa/category/start/ の canonical と ItemList JSON-LD を確認した。
##参照した一次情報
https://developers.google.com/search/docs/crawling-indexing/sitemaps/build-sitemap
https://developers.google.com/search/docs/appearance/structured-data/carousel
https://developers.cloudflare.com/workers/platform/limits/
https://developers.cloudflare.com/workers/static-assets/
https://nextjs.org/docs/app/api-reference/config/next-config-js/rewrites
https://opennext.js.org/cloudflare/howtos/assets
##検証メモ
Node.js v24.15.0 を優先した bun run build / bun run build:cf では、Next.js build の Collecting page data で .next/server/pages-manifest.json が見つからないエラーになった。READMEの想定に合わせて Node.js v20.19.2 をPATH先頭にしたところ、bun run build と bun run build:cf は通った。