ページのダウンロード時間は1秒以下にすべき?

WordPress

「Googlebot がページをクロールするときにかかるダウンロード時間が 1,000 ミリ秒を超えると、クロールに支障をきたすかも」という記事が、話題になっていました。

この記事では「ダウンロード時間が 100 〜 500 ミリ秒くらいであれば (Googlebot は)クロールしやすい」とも書かれています。100msって、TLS使ってるとむちゃくちゃ厳しいです。



barasu.org さんのサイトではCDN使っているのに1000ms超えていたらしい。結構厳しいですね、この指標。



このサイトの状況

本サイト(https://www.zukeran.org/)のクロール統計。GoogleBotのアクセス元までのRTTが遠いところで100msを超えるので、この結果は良すぎるぐらいです。近いところ(数ms)からのクロールもあるので平均化されているのかも。



https://wiliki.zukeran.org/ は、cgiを使ってLispインタプリタ(gosh)を起動しているので、さすがに遅いです。一応、nginxのキャッシュは入れてるけど、あまり効果が出てない感じ。



基準の1000ms以下はクリア、100-500msを達成するのも WordPressなら可能、CGI系は厳しそう。

どこで差がついているのか

barasu.org さんの数値が思ったよりも悪いので、GTmetrixを使ってアクセス元を香港にしてチェックしてみました。デフォルトはカナダになっていて太平洋を横断するため、RTTが異常に長い。香港なら沖縄でスマホからアクセスするよりも少し遅いぐらい。

Waterfall Chartを見ると、サーバー側の応答時間に500msぐらいの差があります。これが差の大半。

下図は本サイトの Waterfall Chart。キャッシュが効いているので、応答が速い。広告も含めてページサイズは500KB前後。キャッシュが効かないときは+200〜300ms増える。



こちらはbarasu.org さんのサイト。CDNを使っているので2回目からは速くなるけど、初回のTTFBがとにかく遅い。サーバー側処理に700msほどかかっている。CDNを使っていても、キャッシュされるのはアクセスの多い一部のページだけ。ほとんどのページはキャッシュされないので、初回アクセスは遅くなりがち。特にGoogle Botは全ページ舐めるので、キャッシュにヒットしないのが普通。

従って、クロール速度をあげるには、「キャッシュヒットしないときも早くする」か「とにかくキャッシュヒットさせる」かどちらかが必要となる。本サイトは両方対策している。

(広告抜きでページサイズが400KB超えてるのも気になる。Web fontと画像サムネールのせい?)


ちなみにスコア部分の点数は当てにならないので、これを見るのは無駄。とにかく Waterfall Chart をじっくり見るべき。

不要なプラグインは外そう

Waterfall Chart から判断すると、barasu.orgでは Autoptimize や JetPack などのプラグインを使っているのだと思う。これ外した方がいいです。

Luxeritas作者のサイトにもこう書かれています。

Luxeritas を使ってる場合にオススメしないプラグイン

・All in One SEO Pack などの SEO 関連プラグイン
(中略)
・Autoptimize

不要なプラグイン入れて良いことは何もないです。 “Prime Timeline” というプラグインを使うと、PHP実行にかかる時間をチェックできます。プラグイン1本入れるだけで数10ms遅くなるのがわかります。

うちのサイトは jQuery も外していますが、ここまでやらなくてもプラグイン整理するだけで速くなると思います。

1秒以下にすべきか?

速くて困ることはないので、なるべく速くした方がいいです。1秒を切るのは比較的簡単なので、目標としては良いと思う。さらに高速化する(例えば500ms以下)のはかなり大変なので、個人ブログならそこまでやらなくても良いかも。

広告入れてるサイトはそちらが律速になることも多いので、本体だけ頑張っても仕方ないという面もあるし。

WordPress

Posted by ず@沖縄