WordPressサイトを運営していると、記事内にX(エックス)を埋め込む機会がありますよね。お客様のリアルタイムなポストや、口コミをそのままコンテンツに反映できて便利です。
とはいえ、一度に多くのポスト(ツイート)を埋め込みすぎるとページの読み込みが極端に遅く(重く)なることがあります。せっかくの反響をシェアしたくても、ページの読み込み前に離脱されてはもったいない。
そこで今回は、Xの埋め込み過ぎによってページ表示速度が重くなる問題を解決する方法をご紹介いたします。1ページ内で複数のポストを埋め込みたい場合に有効です。
目次
XのJSを削除して、読み込むタイミングを変える
対策はシンプルなのですが、いくつか前提知識が必要になります。手順通りに進めれば誰でも対応できるように、わかりやすく解説いたします。以下の流れで進めていきます。
1. ポストの埋め込み方を確認する
WordPressでポストを埋め込む際、URLをそのまま本文に貼り付ける方法もありますが、今回の対策を行うには専用の「埋め込みコード」が必要です。
公式のコード生成ツール「X Publish(旧Twitter Publish)」にアクセスし、埋め込みたいポストのURLを入力して埋め込みコード(HTML)を取得してください。
WordPressでは、X(旧Twitter)のコンテンツを非常に簡単に表示させることができます。当記事では、Xの投稿やタイムラインを埋め込む方法について解説していきますので、参考にしてください。 Xで埋め込む代表的なコンテンツは2つ サイト上にXを表示する場合は、下記の2つが一...
2. 埋め込みコードからスクリプトを削除する
1.の手順で埋め込み方法を変更したのは、ある特定のスクリプトを手動で削除するためです。例えば、下記のポストを表示するため埋め込みコードを「Twitter Publish」で取得した場合・・・
不動産ポータルサイトが作れるWordPressテーマを作りました。レインズのように自社サイトに物件掲載ができます。https://t.co/nw5cpOpYJJ
— WordPressテーマTCD (@tcd_jp) February 7, 2025
エディタには以下のように出力されます。
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">不動産ポータルサイトが作れるWordPressテーマを作りました。レインズのように自社サイトに物件掲載ができます。<a href="https://t.co/nw5cpOpYJJ">https://t.co/nw5cpOpYJJ</a></p>— WordPressテーマTCD (@tcd_jp) <a href="https://twitter.com/tcd_jp/status/1887813049425522717?ref_src=twsrc%5Etfw">February 7, 2025</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
一番下にある <script async src="https://platform.twitter.com/widgets.js" …></script> という記述が、表示を重くしている原因です。
記事内に貼り付けるすべてのポストから、この最後の1行(<script>〜</script>)を削除してください。
※このスクリプトを削除した状態では、一時的にXのデザイン(枠線やいいねボタンなど)が適用されず、ただのテキストとリンクとして表示されますが、次のステップで解決するので問題ありません。

3. 読み込むタイミングを変えたJSを追記する
ページを開いた瞬間ではなく、ユーザーがスクロールなどの「操作」を開始した瞬間に、削除したスクリプトを1回だけ読み込ませるコードを設置します。
記事の最下部(または「カスタムHTML」「カスタムスクリプト」ブロックなど)に、以下のコードをコピペして貼り付けてください。
そこで、ページの表示速度に影響しないタイミングでJSを読み込む記述を追記します。
ポストを埋め込んでいるページのエディタを開き、クラシックエディタのテキストエディタにて下記の記述をコピペします。エディタの最下部に設置すればOKです。右上のボタンからコピーいただけます↓
<script>
(function(window, document) {
function loadXWidget() {
// X(Twitter)のJSを動的に1回だけ読み込み
var script = document.createElement('script');
script.type = 'text/javascript';
script.async = true;
script.src = 'https://platform.twitter.com/widgets.js';
script.charset = 'utf-8';
var firstScript = document.getElementsByTagName('script')[0];
firstScript.parentNode.insertBefore(script, firstScript);
}
var isLazyLoaded = false;
function triggerLazyLoad() {
if (isLazyLoaded === false) {
isLazyLoaded = true;
// 複数回呼び出しを防ぐためイベントを解除
window.removeEventListener('scroll', triggerLazyLoad);
window.removeEventListener('mousemove', triggerLazyLoad);
window.removeEventListener('mousedown', triggerLazyLoad);
window.removeEventListener('touchstart', triggerLazyLoad);
window.removeEventListener('keydown', triggerLazyLoad);
loadXWidget(); // XのJSを実行
}
}
// ユーザーの操作を検知するイベントリスナー
window.addEventListener('scroll', triggerLazyLoad, { passive: true });
window.addEventListener('mousemove', triggerLazyLoad, { passive: true });
window.addEventListener('mousedown', triggerLazyLoad, { passive: true });
window.addEventListener('touchstart', triggerLazyLoad, { passive: true });
window.addEventListener('keydown', triggerLazyLoad);
// ページ更新時やアンカー遷移で既にスクロールされている場合
window.addEventListener('load', function() {
if (window.pageYOffset > 0) {
triggerLazyLoad();
}
});
})(window, document);
</script>
【コードの解説】
このスクリプトは、ユーザーがページを開いた後、以下のいずれかの操作を行った瞬間に初めてXのプログラム(widgets.js)を読み込みます。
- scroll・・画面をスクロールしたとき
- mousemove・・マウスを動かしたとき
- mousedown・・マウスのボタンを押したとき
- touchstart・・タッチされたとき
- keydown・・キーボードを押したとき
最初の「ページを開いた瞬間(初期ローディング時)」の通信負荷をゼロにできるため、ページ表示速度が劇的に高速化します。ユーザーが画面を動かした瞬間にデザインがパッとX仕様に切り替わるため、閲覧上の違和感もほとんどありません。
実際に表示速度を検証してみた
以下それぞれのケースの検証結果をシェアいたします。
A:ポストのURLだけを記事内に埋め込んだ場合
B:XのJSを削除して、読み込むタイミングを変えて対策した場合(今回ご紹介した方法)
当サイトのお知らせに、約40ポストを埋め込んだページがあるので、そのページのテスト環境をPageSpeed Insightsにて検証した結果です。
- Aの検証結果
- Bの検証結果


上記はPCの表示速度の点数ですが、圧倒的に改善されていることが確認できます。
Aでは白い画面が何秒も表示されておりましたが、対策を施したBでは、体感表示速度も他のページと差はありませんでした。前述の通り、スクロール等の動作を行った瞬間にポストのJSが読み込まれるので、Xのスタイルも問題なく適用されます。
対策前(URL直貼り):初期読み込み時に40回分の外部通信が走り、白い画面のまま数秒待たされる(スコアも大幅低下)。
対策後(本対策を適用):初期読み込みが通常のページと変わらない速さになり、パフォーマンススコアが劇的に改善。体感速度も驚くほど軽くなりました。
PageSpeed Insightsのスコア改善方法の記事もご参照ください。
まとめ
Xのポストを多く埋め込むとサイトが重くなる問題は、「個別のスクリプトを消して、ユーザーの操作後に一括で遅延読み込みさせる」ことで綺麗に解決できます。
少しテクニカルに感じるかもしれませんが、作業自体は「コードの一箇所を消す」「最後に専用コードを貼る」のコピペだけで完了します。
サイトの表示速度はSEOや離脱率に直結する重要な要素ですので、口コミまとめ記事などを書く際はぜひこの方法を試してみてください!
WordPressテーマ集











コメント