Cloudflare Web AnalyticsでNext.jsサイトのPVを無料で計測する方法【AWS + CloudFront構成】
結論:Cloudflare Web Analyticsは個人ブログの無料PV計測に最適
Cloudflare Web Analyticsは、AWS(S3 + CloudFront)とNext.jsで構成した個人ブログのPV数を、完全無料かつ簡単に計測できるツールです。
高度なユーザー分析はできませんが、 「PV数やアクセス傾向を把握できれば十分」という用途であれば、 Google Analytics(GA4)の代替として十分実用的です。
この記事で分かること
- AWS + Next.js 環境で無料でPVを計測する方法
- CloudFrontのログや自作APIを採用しなかった理由
- Cloudflare Web Analyticsのメリット・注意点
- Next.js(App Router)での具体的な導入手順
なぜ無料でPV計測が必要だったのか
Next.jsなどのフレームワークを使い、 S3 + CloudFront のサーバーレス構成でブログを運営していると、 意外と悩むのが 「PV(ページビュー)数の計測方法」 です。
せっかくAWSの無料枠内で運用しているのに、
- アクセス解析のために追加料金が発生する
- 設定が複雑で管理コストが増える
といった状態になるのは避けたいと考えました。
そこで今回は、
「完全無料」「構成がシンプル」「管理が楽」
という条件を満たす方法を検討しました。
検討したものの、採用しなかった方法
1. CloudFrontのログを利用する方法
CloudFrontのアクセスログをS3に出力して集計する方法です。
一見すると無料で実現できそうですが、
- 標準ログでは情報が限定的
- リアルタイムログなどを使うと追加コストが発生する可能性
- 集計・可視化の仕組みを自作する必要がある
といった理由から、
「PV数を知るだけ」にしてはオーバーエンジニアリングだと判断しました。
2. 自前で計測APIを構築する方法
(JS + API Gateway + Lambda + DynamoDB)
JavaScriptからAPIを叩き、DynamoDBにPV数を書き込む構成です。
この方法には以下の懸念がありました。
- 従量課金のリスク
アクセス増加により、リクエスト数や転送料で無料枠を超える可能性がある - 管理コストの増加
管理画面や可視化ロジックを自作する必要がある
今回は
「とにかくシンプルにPV数が分かればOK」
という要件だったため、この構成も見送りました。
解決策:Cloudflare Web Analytics
最終的に採用したのが Cloudflare Web Analytics です。
このツールは、今回の要件に非常にマッチしていました。
Cloudflare Web Analyticsを選んだ理由
- 完全無料
トラフィック量に関係なく、無料プランで利用可能 - プライバシー重視
Cookieを使用せず、ユーザーを追跡しない - 導入が非常に簡単
軽量なJavaScriptを1行追加するだけ - CloudFront構成でも問題なく利用可能
個人ブログのアクセス把握用途としては、十分すぎる機能です。
AWS + Next.js 環境での構成
今回の構成は以下の通りです。
- フロントエンド:Next.js(SSG)
- ホスティング:Amazon S3
- DNS / CDN:CloudFront
- アクセス解析:Cloudflare Web Analytics
Cloudflareは Analyticsのみ に利用しています。
Cloudflare Web Analyticsの導入手順
導入は非常に簡単で、数分で完了します。
1. Cloudflareにサインアップ
Cloudflareのアカウントを作成します。
2. Web Analytics を選択
ダッシュボードのサイドバーから
「Web分析(Web Analytics)」 を選択します。
3. 計測対象のサイトを追加
PVを計測したいドメインを登録します。
4. JavaScriptをNext.jsに組み込む
発行された JS Snippet を、 Next.js の全ページで読み込まれる場所に追加します。
App Router(layout.tsx)の例
import Script from 'next/script'
export default function RootLayout({ children }) {
return (
<html lang="ja">
<head>
<Script
src="https://static.cloudflareinsights.com/beacon.min.js"
data-cf-beacon='{"token": "あなたのトークン"}'
/>
</head>
<body>{children}</body>
</html>
)
}
<head> 内に <script> タグを直接記述する方法でも動作しますが、
Next.js では next/script の Script コンポーネントを使うのが推奨です。
導入後の確認
スクリプトを追加してデプロイしたら、 Cloudflareのダッシュボードで Web Analytics を開いてください。
数分〜数時間後にデータが反映され始めます。
確認できる主な指標は以下の通りです。
- ページビュー数(PV)
- ユニークビジター数
- 参照元(リファラー)
- ページごとのアクセス数
- 国・地域別のアクセス
このブログで実装してみた実績
公式ドキュメントの「数分〜数時間」は控えめな表現で、自分のブログ(Next.js + S3 + CloudFront構成)で実装した際は 数分で反映 されました。スクリプトをデプロイして少し待つだけで、動作確認用のテストアクセスが即座にダッシュボードに現れます。
GA4との併用による検証
CWAのボットフィルタリングが気になっていたため、現在は CWAとGoogle Analytics 4を併用 しています。数ヶ月運用してみた実感として、両者の計測数値はほぼ同じでした。CWAが極端に数値を少なく表示するようなことはなく、個人ブログのPV把握用途であれば「CWA単体でも問題ない」と判断できる精度でした。
なお、CloudFrontのアクセスログとの照合は行っていません。ログ分析は別環境(Athena等)のコストが発生するため、現時点では「ダッシュボードで十分」と割り切っています。
注意点・制限事項
Cloudflare Web Analytics は万能ではありません。以下の点に留意してください。
- リアルタイム性:データ反映には数分〜数時間のタイムラグがあります(体感では数分)
- 詳細なユーザー分析:GA4のようなイベントトラッキングやコンバージョン計測はできません
- データ保持期間:無料プランでは直近のデータのみ閲覧可能です
- ボットフィルタリング:基本的なフィルタはありますが、完全ではありません
まとめ
| 項目 | 内容 |
|---|---|
| ツール | Cloudflare Web Analytics |
| 費用 | 完全無料 |
| 導入工数 | JSタグ1行追加のみ |
| 主な用途 | PV数・アクセス傾向の把握 |
| 不向きな用途 | 詳細なユーザー行動分析 |
AWS + Next.js のサーバーレス構成で個人ブログを運営している方にとって、 Cloudflare Web Analytics は 最小コスト・最小工数でPVを把握できる最適解 です。
高度な分析が必要になった段階で GA4 等への移行を検討すれば十分でしょう。