サポート » 使い方全般 » 人気記事一覧の設置について

  • category.phpやsingle.phpにて、人気上位10件の投稿を取得する場合、rest apiにページビュー数のカスタムフィールドを追加して取得する方法とプラグインのWordPress Popular Postsを使って表示する方法ですと、どちらの方法がサーバーの負荷は低いでしょうか?

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • こんにちは

    どのような要件でどのようなプログラムを書くのかによって異なりますので回答が難しいですが、Popular Posts より負荷が軽い処理を書けば Popular Posts より負荷は軽いでしょう。

    yyyaaa12さん、こんにちは。

    負荷については munyagu さんのおっしゃる通りかと思います。ページビューが秒間数百とかの人気サイトですと、そもそもどちらの方法もお勧めしません。データベースへの書き込みが多すぎてサイトが死にます。

    そこまでのサイトでしたら Google Analytics 等からページビューを取得して利用するのがよろしいかと。ただしリアルタイムでの取得はできないので、前日までの人気順とかになりますかね…

    ご参考になれば。

    トピック投稿者 yyyaaa12

    (@yyyaaa12)

    @munyagu さん

    @shokun0803 さん

    ご回答ありがとうございます。

    とても参考になりました。

    いただいたご意見と状況を踏まえてwp rest apiを使った人気上位10件の投稿の取得を考えています。

    【状況】
    ・Popular Postsを使用すると、サーバー通信が頻繁に発生してサーバーへの負荷が高い
    ・現状、GAがGA4のアップデートを頻繁に行っており仕様が変わる可能性がある
     ・UAは今年廃止

    【上記踏まえた対応】
    ・投稿記事に閲覧数をカウントするカスタムフィールドを追加
    ・wp rest apiの独自エンドポイントを作成
     ・閲覧数が多い人気記事を10件出力
    ・独自エンドポイントが出力したjsonをWP REST Cacheなどでキャッシュ
     ・ブログの投稿、更新、削除が行われたらキャッシュされたファイルを破棄
     ・キャッシュの保持期間は1年などブログの投稿、更新、削除がされなければキャッシュされたファイルはほぼ破棄されない
    ・category.php、single.phpは、キャッシュされたjsonを参照して人気記事一覧を出力

    上記対応ですとサーバーの負荷は抑えられそうでしょうか?
    そもそも、ページビューが凄い多いサイトでは無い為、
    問題ないとは思うのですがせっかく実装するなら最善のものをと考えておりまして。

    素人質問で申し訳ありませんが、もしご回答いただけるようでしたら幸甚です。

    • この返信は1年、 1ヶ月前にyyyaaa12が編集しました。

    ここで回答できるのは一般論だけです。

    REST を使うと負荷が抑えられるかは分かりません。単純に考えればサーバーへのリクエストが1つ増えます。

    キャッシュを使えば一般的には早くなる可能性があります。

    負荷を抑えるというのは、Popular Posts と比較してということだと思いますが、Popular Posts についてよく知らないので明確には答えられません。
    しかし、集計の要件が特定の条件に特化しているのであれば Popular Posts より負荷がさげられるのではないかと思います。
    特に、記事の閲覧数を単純にカウントアップするだけであれば要件が単純そうなので負荷は低そうです。

    環境に依存する部分もありますので、明確にこうすれば負荷が低いとは言いにくいです。
    満足いく結果を得るには作ってみて計測し、試行錯誤しかないんじゃないでしょうか。

    トピック投稿者 yyyaaa12

    (@yyyaaa12)

    @munyagu さん

    そうですね、試行錯誤してみます。

    ありがとうございます。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「人気記事一覧の設置について」には新たに返信することはできません。