ツイート埋め込みページの読み込みを高速化する方法【JSを遅延読込させる】

2022年6月26日

当サイトはアフィリエイト広告を利用しています。

疑問

・WordPress(ワードプレス)にツイートを埋め込むと重くなる
・ツイートの埋め込みを増やすと表示が遅くなる

WordPress(ワードプレス)にツイートを埋め込むとページの表示が遅くなってしまうことがあります。

ページ表示速度が遅いと、いい記事を書いても読まれない可能性が高いので改善が必要です。

この記事の前半では、表示が遅くなってしまう原因を、後半ではページの読み込みを高速化する方法を解説します。

ツイートを埋め込む方法とページ読み込みが遅くなる原因

WordPressにツイッター(正確にはツイート)を埋め込む方法は2つあります。

一つはツイートのURLを貼り付ける方法です。

URLを貼り付けてツイッターを埋め込む

この方法だと、URLから画像や表示方法などを解析しないといけないので、ページ表示速度が遅くなります。

もう一つが、ツイートの埋め込みタグを使う方法です。

ツイッター埋め込みで埋め込み用のタグを使う

URLを使うよりは速いのですが、画像や見た目をJS(javascript)から読み込むため、埋め込みが多いとページ読み込みが遅くなってしまいます。

これを解消する方法が「JS(javascript)を削除する方法」と「遅延読込させる方法」です。

埋め込みタグのJS(javascript)を削除して高速化する

ツイート埋め込みタグのJS(javascript)を削除するだけでも、高速化できます。

やり方は簡単でJS部分(下記の赤字部分)を削除してWordPressに貼り付けるだけです。

//変更前
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">最近感じたのはネタを思いついて、時間が足りなくて、全部書ききれないこと。<br><br>外注化したいなと思ったけど、自分がライターとしての経験がないと外注化するときの注意点とか、仕組みがわからない。<br><br>なので、ライター挑戦してみようかなと思った😀</p>&mdash; 仮想つながり💊ブログも投資もコツコツ努力 (@icobitcoinxem) <a href="https://twitter.com/icobitcoinxem/status/1537752413549232129?ref_src=twsrc%5Etfw">June 17, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
//変更後
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">最近感じたのはネタを思いついて、時間が足りなくて、全部書ききれないこと。<br><br>外注化したいなと思ったけど、自分がライターとしての経験がないと外注化するときの注意点とか、仕組みがわからない。<br><br>なので、ライター挑戦してみようかなと思った😀</p>&mdash; 仮想つながり💊ブログも投資もコツコツ努力 (@icobitcoinxem) <a href="https://twitter.com/icobitcoinxem/status/1537752413549232129?ref_src=twsrc%5Etfw">June 17, 2022</a></blockquote>

この場合のデメリットは、テキスト表示だけになってしまうことです。画像などは表示されません。

ツイッター埋め込みでJS(javascript)を使用しない場合の表示

埋め込みタグのJS(javascript)を遅延読込にして高速化する方法

少し手間ですが、埋め込みタグのJS(javascript)を遅延読込設定して高速化する方法があります。

下記の手順で子テーマを使って設定します。

ツイート埋め込みを遅延読込で高速化する手順

  • lazyload-twitter.jsを作成
  • functions.phpを修正
  • ツイート埋め込みタグからJSを削除して貼り付ける

lazyload-twitter.jsを作成

まず下記のJS(javascript)を作成して「lazyload-twitter.js」という名前でファイルを保存します。

ファイルは、子テーマフォルダの中にJSフォルダを作成してその中にFTPでアップロードします。

//<![CDATA[
//lazy load twitter
var lazyloadtw = false;
window.addEventListener("scroll", function() {
  if ((document.documentElement.scrollTop != 0 && lazyloadtw === false) || (document.body.scrollTop != 0 && lazyloadtw === false)) {
    (function() {
      var tw = document.createElement('script');
      tw.type = 'text/javascript';
      tw.async = true;
      tw.src = 'https://platform.twitter.com/widgets.js';
      var sc = document.getElementsByTagName('script')[0];
      sc.parentNode.insertBefore(tw, sc);
    })();

    lazyloadtw = true;
  }
}, true)
//]]>

Googleアドセンスの遅延読込でも利用する遅延読込スクリプトです。

変数名(lazyloadtw)を変えることでGoogleアドセンスの遅延読込とは別に起動させることができます。

functions.phpを修正

次に作成したJS(javascript)を読み込ませるために、functions.phpに下記のコードを追加します。

add_action('wp_footer', function() {

  wp_enqueue_script( 'lazeload_twitter', get_stylesheet_directory_uri() .'/js/lazyload-twitter.js', [], 'v1.0.0' );

}, 11);

フッターで読み込ませれば、このJS(javascript)による読み込み速度低下を防止できます。

ファイルをFTPでアップロードすれば、遅延読込の準備完了です。

ツイート埋め込みタグからJSを削除して貼り付ける

最後にツイートの埋め込みタグのJS部分(下記の赤字部分)を削除して、WordPressの投稿画面に貼り付ければ、遅延読込ができます。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">WPプラグイン「Smush」のLazyLoadを使っていたのですが、初期設定では「Display &amp; Animation」がフェードインになってますが「なし」に設定すれば400ms程度改善できます。アニメーションの落とし穴。<br>左:アニメあり、右:アニメなし。 <a href="https://t.co/n8BBBBip7P">pic.twitter.com/n8BBBBip7P</a></p>&mdash; 仮想つながり💊ブログも投資もコツコツ努力 (@icobitcoinxem) <a href="https://twitter.com/icobitcoinxem/status/1533377485693300736?ref_src=twsrc%5Etfw">June 5, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

正常に動けば、埋め込んだツイートにデザインが適用されます。

遅延読込の注意点

この遅延読込の注意点は、ファーストビューにあると効果がないという点です。

※ファーストビューとは、パソコンやスマホ画面に最初に表示されるページの先頭エリアのことです。

ファーストビューにある場合は、文字だけが表示されスクロールしたタイミングで画像などが読み込まれます。

そのためレイアウトシフトも発生するので、ファーストビューに入らないように埋め込んだ方がいいです。

まとめ

まとめると、ツイートをWordPressに埋め込む時は、埋め込みタグのJS部分を削除して使うことでページ読み込みを高速化できます。

JS部分を削除しただけだと、文字だけの表示になってしまうので、遅延読込の設定をすることでデザインも適用できます。

-ツイッター
-