Wordpressでアドセンスの広告が表示されない。Xseverの設定が原因だった
Wordpressで、音楽系のサイトを個人運営しています。
音楽系の検索クエリって、なんともお金にはなりにくいので、自分のプロダクトを持つまではアドセンスがかかせません。
にもかかわらず、ここ1週間近くGoogleアドセンスの広告が表示されない状況が続いていました。
多くないケースかもしれませんが、一応解決したのでまとめておきます。
結論を先に確認したい方はこちら。
アドセンスが表示されなかった今回の状況
まず前提として、サイトはWordpressで構築しています。
ご自身の状況と照らし合わせやすい様に、今回問題が起きた時の状況詳しく共有致します。
状況
CMS:Wordpress
テーマ:the thor
レンタルサーバー:Xserver
広告:googleアドセンス
一部のページだけが表示されない
(厳密には、ルートディレクトリのサイトだけが表示されない)たまに表示されたりする
私のサイトは、ルートディレクトリのサイトと、サブディレクトリのサイトが2つでできています。
ルートディレクトリと、サブディレクトリ1のサイトにはアドセンス広告を。
サブディレクトリ2のサイトには、広告を設置していません。
このうち、ルートディレクトリのサイトだけでアドセンスが表示されない問題が発生していました。
根本的な原因(アドセンスというよりiframe)
今回のケースでは、挿入していたアドセンス広告が表示されなかったため、最初は、単純に「アドセンスが表示されない」という問題にしか目をむけられていませんでした。
しかし厳密には、全てのiframeタグが正常に表示されていないというトラブルが発生していました。
そこで、devtoolsでレンダリングされているコードを見てみると、
<iframe>が<pagespeed__iframe>というタグに差し替えられていました。
「pagespeed」といえば、何となくXserverでおこなったあの設定が原因なのだろうと気付けました。
Xserverの『Xpagespeed』が原因だった
Xserverでは、ページスピード改善のためのXpagespeedという機能が提供されています。
いまでは、検索順位を上げる(落とさないため)には、ページスピードの改善は重要ですので、さっそく利用してみました。
セキュリティ的に、プラグインをあまり増やしたくない私にとって、安心もできましたので。
そんなXpagespeedの設定は、以下6項目に分かれています。
画像最適化
画像遅延読み込み
CSS最適化
CSS遅延読み込み
JavaScript最適化
JavaScript遅延読み込み
今回原因となっていたのは、このうち『JavaScript遅延読み込み』という設定でした。
この設定をオンにすると、Javascriptの読み込みを遅らせてコンテンツの表示速度を早めることができます。
この機能で、どんな処理が行われているのか詳しく理解できていないのですが、オンにすると<iframe>が<pagespeed__iframe>に差し変わる様になっています。
私のサイトでは、普通の<iframe>はユーザーの画面に表示されるのに対し、<pagespeed__iframe>では非表示となってしまいます。
そのため、Xpagespeedの『JavaScript遅延読み込み』設定をオフにしたら、無事広告が表示される様になりました。
私のケースでは、<pagespeed__iframe>だと表示されませんが、なぜ表示されないのかは理解できていません。
『JavaScript遅延読み込み』をオンにしても、環境次第では問題ないのかと思います。