AstroによってWordPressのページを静的化(HTML化)するときの一つの壁となるのが、人気の記事ランキングです。
WordPressでは当たり前にできる、人気の記事の順位付けと表示ですが、静的化するとその順位付けをするための閲覧カウンターが存在しないため、その時の状況に応じたランキングが自動で作成できません。
今回はAstroを導入した場合に、この人気の記事の作り方をどうするかについて経験を元に共有したいと思います。
動的表示なWordPressと静的表示のHTMLの違い
WordPressのブログでは多くの場合、サイドバーに人気の記事を入れる習慣があると思います。この記事のサイドバーにも人気の記事ランキングがあります。
WordPressは動的表示をしており、動的表示というのは、
「アクセスのたびに都度(データベースに)データを取りに行って、コンテンツを表示する」
とイメージしてもらえばいいかなと思います。
記事データを取りに行ったタイミングで、閲覧数のカウントアップという処理も実行することができます。それによって、それぞれの記事に閲覧数が積み重なり、ランキングとして表示することが出来るようになります。
それに対して、静的表示というのは簡単に言うとHTML/CSSのテキストファイルをブラウザに表示しているだけに過ぎません。
つまり、先程のようなプログラムが走るわけでもないですし、データベースにアクセスするわけではありませんので、カウントアップができませんし、何かしらでカウントアップしたところでどこにもデータを貯めることができません。
つまりHTML/CSSだけではランキングのページは作れません。
WordPressに表示されているランキングを表示すれば良いのでは?
Astroで静的化するときは、もともとWordPressで表示されているものをそのままHTMLファイルにするため、すでにサイドバーに表示されているランキングも表示すれば良いのでは?と思いますよね。
ところが、公開したばかりのときは良いかもしれませんが、時間が経つと当然ですが、ページのアクセス数によってランキングが変わるはずですよね。
でも、そのカウントアップができるWordPressについては、サブドメイン(wp.test.comなど)でヘッドレスとして動かすため、直接WordPressサイトにアクセスするわけではないので、このランキングはずっと変化しません。
ということは、ランキング表示自体、何かしらの代替案を考えるしかありません。
その代替案についていくつか上げていこうと思います。
人気の記事の扱いをどうするか
おすすめ順に書いていきたいと思います。
1. 人気の記事ではなくおすすめ記事を表示する
WordPressのテーマによっては人気の記事だけでなく、おすすめ記事として表示する機能を備えたものもあります。
つまり、人気の記事というのを諦めて、見て欲しい記事をランキング形式で表示するというものです。
そうすることで、わざわざカウントアップという難しいことをせずランキング的な表示が実現できます。
おすすめ記事が変わったら、発信元のWordPressでその内容を書き換えるだけで次のビルドからその内容が反映されます。
もし、おすすめ記事のウィジェットがない場合は、ウィジェットの自作やカスタムフィールドなどで何かしらでデータベースにランキング情報を登録出来る仕組みを作れば可能になります。
2. おすすめ記事にGA4のランキングを入れる
これは1番の応用的なものです。
殆どの場合GA4(Googleのアクセス解析ツール)を導入しているはずですので、定期的にGA4のアクセス状況を見に行って、それをおすすめ記事に閲覧数順に並べればいいかなと思います。
このサイトは実はこのやり方をやっていて、GA4の探査のページで、ブログだけのURLパスに条件を絞ってここ1か月の順位を確認して、その記事をウィジェットに入れています。
1番に対して、定期的に入れ替えが発生するのでその労力がかかるのがデメリットです。
3. ビルド時にGA4のAPIをつかってランキングを取得して人気記事一覧を作る
2番では自分でランキングを確認しに行くという話をしましたが、GA4にAPIアクセスをして、順位を自動で鳥にって人気の記事を作るという全自動の方式です。
これやろうと思えばやれるのですが、まだ私自身研究中ですが、正直自分のサイトでない限りはあまりおすすめはしていません。
というのも、GA4だけでなくGoogleのAPI全般がそうですが、仕様変更が発生したときに修復のハードルが割と高いからです。
実は、このAstroではなく、私自身が作ったWEBサービスの中で、GA4のAPIを使ってランキングを作っていたことがあります。
ただ、いつの間にか仕様変更が発生していて、エラーのまま動かず、直すのが大変でその機能を辞めた経緯があります。
また、APIの利用数やアクセス数によってはGoogle Cloudで課金される可能性も出てくるので、今はハードルが高めややり方ではないかと感じています。
もちろん、それを踏まえた上で全自動式にするのであれば、楽で良いなと思っていますが、定期的なメンテナンスが発生する点は覚えて置かなければいけません。
まとめ
いかがでしたでしょうか。
WordPressでは当たり前だった「自動ランキング」も、Astroによる静的化(高速化)を優先する場合、少しだけ考え方を変える必要があります。
しかし、それは決して「不便になる」ということではありません。GA4のデータを見ながら、戦略的に今、読んでほしい記事をピックアップして並べる。このひと手間を加えることで、単なるアクセス数の順位以上に、読者をあなたのサービスへ導く強力な導線にすることができます。
全自動にこだわってコストやメンテナンスリスクを上げるよりも、お問い合わせの成果に繋がる運用の最適解を見つけることこそが、Astro化を成功させる一番の近道かもしれません。
「運用まで見据えた」最適な構築を提案します
- 「Astro化したいけど、ランキングなどの機能はどうなるの?」
- 「爆速表示は魅力的だけど、日々の更新が難しくなるのは困る」
- 「今のサイト構成でAstro化が可能か、専門家に判断してほしい」
Astroへの移行は、単にコードを書き換えるだけの作業ではありません。人気記事ランキングの設計や自動ビルドの構築など、「表示速度」と「運用のしやすさ」をどう両立させるかが、その後のサイト成長を左右します。
TEDASKでは、上級ウェブ解析士の視点で、ビジネス成果に繋がる最適なAstro化・高速化をサポートしています。技術的な不安を解消し、次世代の爆速サイトへアップデートしましょう。
