経緯
はてなブログ、Markdownで書けるから好きなんだけど、表示が遅い。 自分が使っているテンプレートのせいかもしれないけど、もっと早く表示できても良いと思う。
というわけで、調査して、改善できそうなところは改善してみました。
結果
Before
表示完了までに、読み込んでいるファイル数が多くしかもサイズが大きい 以下が、無対策時のトップページを表示する際に読み込むファイル数とサイズです。1.95MB 重い! 、116ファイル 多い!
After
ちょっとだけ早くなりました。本当はもっと早くしたかったけど、後述の原因でできず。
やったこと
- SNS投稿ボタンの削除
- はてなスターボタンの削除
SNS投稿ボタンの削除
はてなブックマーク、Facebook、Twitterへの投稿ボタンを削除しました。 結果は、1.3秒高速化、約500KB軽量化、読み込みファイルは27個減少とまずまずの結果。
はてなスターボタンの削除
これ、はてなブログを使っているのにこのボタンを消すの最高にcoolだと思うんですが、断腸の思いで削除。
結果はSNS投稿ボタンの削除からの差分です。読み込み時間、ファイルサイズほぼ変わらず、読み込みファイル数が20減る、という結果になりました。
よくわからん。測定ツール側でキャッシュされた?なさそうだけどなぁ。または、はてなスターのJSは非同期読み込みされている?
本当はやりたいこと
- はてなブログから提供されるJS, CSSの圧縮
- 非同期読み込みも
- Webフォントの不使用
はてなブログから提供されるJS, CSSの圧縮
テンプレートにも依ると思うんですが、はてなブログで提供されるJSとCSSって圧縮されていないものがあるんですよね。以下のものとか。
- https://blog.st-hatena.com/css/blog.css?version=6cada605fa36a97a082dd32ff3efe050
- https://blog.st-hatena.com/js/hatenablog.js?version=6cada605fa36a97a082dd32ff3efe050 https://blog.st-hatena.com/js/hatenablog.js?version=6cada605fa36a97a082dd32ff3efe050
他にも、Reactのライブラリはコンパイル版ではないものがインポートされるようになっている。 自分で書き換えられれば良いんですが、それを敢えてさせない仕組みになっているのも不満です。
また、それらの外部ファイルが同期的に読み込まれるので、Googleに「テメーのWebサイトおせーぞ」と言われています。
本当は直したいんですが、できないものは仕方ない。中の人 🙏
Webフォントの不使用
テンプレ作成者の意図通りWebページを見せるなら必要だけど、速度を犠牲にしてまで再現する必要はないかな…というのが正直な感想です。
1回読み込めばキャッシュされるし、それはgoogleのCDNとか使ってれば他のサイトで見たときもキャッシュがヒットして良いんですが、その最初の1回重たいのすらも正直要らないかな…という感想。
まとめ
- はてなブログで表示高速化をするのは面倒
- できないことも多い
- 自分でブログ構築するか、他サービス使った方が早く表示できるかも