web-dev-qa-db-ja.com

WordPress Webサイトのサイト/ページの掲載結果を向上させるにはどうすればよいですか。

サイト/ページのパフォーマンスを向上させるために、ヘッダーを受け入れるために次のコードを追加しました。

<php flush(); ?>

それは動作しますが、おそらくそれはできませんでした。何かアドバイス?

また、私は次のコードを使ってブラウザのキャッシングを活用しようとしました。

# Begin Expires Caching
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 2 days"
</IfModule>
# End Expires Caching

繰り返しになりますが、結果を最適化するためのアドバイスは有り難いです。

4
Emma

試すのが最も一般的なことは、 W3 Total Cache または WP Super Cache のようなコンテンツキャッシングプラグインです。どちらもページ全体をディスクにキャッシュし、Apache Webサーバーが多くのページビューに対してPHP処理を完全に回避できるようにします。 W3 Total Cacheでは、CDN(Content Distribution Network)またはmemcached、APC、XCacheなどのローカルメモリキャッシュサーバーを使用して、システムオブジェクトとデータベースクエリの結果をキャッシュすることもできます。さらに、CSSとJSの組み合わせと最小化を実行できるため、(ブラウザが要求する要求数を減らすことで)パフォーマンスが向上する可能性があります。

他の方法としては、画像を単一の スプライト画像 に結合したり、CSSを使用して適切な部分だけを表示することが挙げられます。これはブラウザがダウンロードしなければならない別々の画像の数を減らします。

より多くの作業/知識/リソースを必要とするその他の可能性:ApacheからNginxまたは他の高性能Webサーバーへの切り替え。 mod_phpからmod_fastcgi + php-fpmに切り替えます。高性能キャッシングプロキシサーバを前面にして、Webサーバに複数のバックエンドを実装します。 複数のMySQLサーバー

6
Dougal Campbell

最良の選択肢はキャッシュプラグインを使うことです。 W3 Total Cacheもお勧めしますが、インストールする前に、データベースとファイルを必ずバックアップし、wordpressを最新バージョンに更新してください。

Wordpressはデータベースに最も高い負荷をかけています。同時に多数のクエリがある場合、プロセッサはデータを取得するために一生懸命に働く必要があります。キャッシングプラグインは、他に何も変わっていないことに気付いた場合、すでに抽出されたコンテンツを提供しようとします。

画像、スクリプト、およびドキュメントをキャッシュしても帯域幅は節約されるだけです。これはワードプレスの主な問題ではありません。帯域幅を節約するために画像やスクリプトを最適化しても構いませんが、それらはそのまま与えられたファイルです。ワードプレスエンジンがデータベースからデータを取得すると、問題が発生します。

あなたがあなたのウェブサイトで詳細なロードスピードテストをするならば、あなたはロードスピードの少なくとも半分が「待っていること」によって引き起こされることに気付くでしょう。ブラウザはサーバーがデータを取得して処理するのを待っています。静的ページで同じテストを実行すると、その時間はほぼ0になります。残りの半分の時間は、実際のイメージのダウンロードに費やされた時間です。これは、サーバーの帯域幅によって異なります。すべての画像とスクリプトをキャッシュして最適化すると、その20〜50%も節約できますが、ブラウザにはスクリプトと画像を保存するデフォルトのキャッシュシステムがすでに用意されています。

2
Lucian

WordpressのWebサイトを最適化するための通常のアプローチはW3 Total Cacheのようなプラグインを使用することですが、多くの人が気付かないことを発見しました。プラグインW3 Total Cacheは、さまざまなサーバー構成のヒープ全体を扱うのにはよく機能しますが、通常は最適な設定を使用することを犠牲にします。

プラグインを必要としないWordpressサイトを最適化するときあなたが試みることができるいくつかのものは:

  1. コンテンツ配信ネットワーク(CDN)を使う - Amazonには Cloudfront という素晴らしいオファーがあります。ブラウザは通常1つのサーバーに対して2つの同時HTTP接続しか持つことができないため、CDNに精通しているとサイトのHTTP要求が減ります。 Cloudfrontはまた、訪問者のファイルに近いサーバーからファイルを処理するため、最も理想的な転送速度と少ない接続ホップ数が得られるため、ページの読み込みが速くなります。

    CDNの支払いをしたくない場合は、実際のドメインに対応するサブドメインを追加することで、ブラウザにCDNの負荷を軽減させることができます。サブドメインは別のドメインと見なされるため、通常のドメインに対する要求は解放されます。たとえば、通常のサイトはhttp://www.somesite.comですが、偽のCDNはhttp://images1.somesite.com/imagefile.jpghttp://images2.somesite.com/imagefile2.jpgなどになります。私は通常4か6を追加してから、javascriptかPHPを使ってランダムにサブドメインを画像のURLに追加します。

  2. あなたのスタイルシートとスクリプトを組み合わせて小さくする - あなたのためにあなたのサイト上のすべてのJSとCSSを組み合わせることができるWordpressのためのプラグインがあります、しかし可能であれば究極のコントロールのためそれをあなた自身してください。

  3. CSSイメージスプライトを使う - あなたのサイトがロードするすべてのイメージに対してリクエストを行います、バックグラウンドイメージのためにそれらを一つの大きなイメージに結合し、それをナビゲートするためにbackground-positionプロパティを使うことができます。スプライト についてはこちら をご覧ください。

  4. ExpiresまたはCache-Controlヘッダーを追加する - これは基本的に訪問者のブラウザに、いつあなたのサーバーから新しいファイルを取得し、代わりにそれらをキャッシュからロードするかを伝えます。 mod_expires についてはこちら を読んでください。

  5. ETagsを設定する - そうではなく、すでに他のところで述べられていることを繰り返してください。これ Yahoo!記事 ではETagとは何か、そしてそれらを正しく設定する方法を説明します。

  6. Flush()を使用する - PHP flush関数を使用すると、部分的に準備が整ったHTML応答をブラウザに送信して、ブラウザがコンポーネントの取得を開始できるようにすることができます。バックエンドは残りのHTMLページで忙しいです。次のように、終了ヘッドタグの直後に配置します。</head><?php flush(); ?>

2

だから私は同じ情報を繰り返さないでください。数ヶ月前、私はチュートリアルを書いた: 最大WordPressパフォーマンスとスピードのための14のヒント

お役に立てれば。

ブトロス。

0