WordPressプラグインを「All in One SEO」に変えたのは「Head Cleaner」と「Yoast SEO」の相性がどうもよくないから

Head Cleaner

Googleアナリティクスでトラッキングできていない

新しくWordpressでサイトを起ち上げ、Googleアナリティクスを設定。確認のためトラッキングされているか調べると、あれ?トラッキングされていません…。なぜ??

問題はプラグインによってまとめられたjavascript

サイトコンソールを見てみると、javascriptでunexpected tokenとエラーを吐いていました。予期しない場所に「:(コロン)」があって困っているみたいです。

エラー場所を確認すると、下記の一文にあたりました。

{"@context": "https://schema.org/~~~"}

なるほど、こいつか。サイトの構造化データをJSON形式で指定するあれです。

構造化データはld+jsonで指定する

構造化データは、JSON-LDとして指定されなければなりません。それが、Wordpressのプラグイン「Head Cleaner」によって他のjavascriptたちと同様にひとつにまとめられてエラーが発生し、その後に続く、アナリティクスのコードが読み込まれていなかったのでした。

<!-- schemaの本来の指定場所 -->
<script type="application/ld+json"></script>

<!-- Head Cleanerによってtext/javascriptにまとめられていた -->
<script type="text/javascript"></script>

上のようにjavascriptのタイプ指定が適切なものになっていなかったため、unexpectedエラーが発生していたのでした。

問題解決に向けて

Yoast SEO と Head Cleaner

まず当該サイトは、先出のHead CleanerとサイトにSEO対策を施してくれるYoast SEOというド定番のプラグインを使用していました。

今回は、Schemaの記述(Yoast SEOが書き出す)部分が、本来あってはいけない部分に記述されていた(Head Cleanerがやっちゃった処理)ということで、どちらかの設定を見直せば何とかなりそうです。

まずはHead Cleanerの設定を。と、思ったら…

原因が判明したので、早速Head Cleaner側の設定でjavascriptを一つにまとめないように設定しようとしたところ、そんな項目が見当たらない…。

Head Cleaner設定画面

なぜに?仕様がかわったの?わからない…

結局Head Cleanerの設定をいじることはあきらめました。

Yoast SEO の設定をいじってSchemaを無効化する

仕方がないので、YoastがSchemaデータを作成するのをやめさせたいと思います。下記のサイトを参考にfunction.phpにコードを追加します。

【参考】YOAST SEO GUIDE: HOW TO DISABLE SCHEMA JSON-LD IN WORDPRESS

function remove_json_from_yoast( $data ) {
  $data = array();
  return $data;
}
add_filter( 'wpseo_json_ld_output', 'remove_json_from_yoast', 10, 1 );

最後のとどめ。Tag Managerの読み込みコードが…

これで大丈夫と思いきや、またエラー。

Google Tag Manegerを使っていたんですが、その読み込みコードのシングルクオートの片方を、Head Cleanerさんが勝手にダブルクオートに変換していたようです。

なのでダブルクオートに書き換えました。

// 一部抜粋
// シングルクオートからダブルクオートへ
j.src="https://www.googletagmanager.com/gtm.js?id="+i+dl;

これでコンソールにエラーが出ることもなくなりました。しかし、そんなに重たいサイトでもないので、ここまでの手数をかけてまでHead Cleanerを使う意味はあるのか…。悩みどころです。

All in One SEOに変えました【追記: 2017.4.20】

やっぱりhead部分がゴチャゴチャしているのは気に食わないので、「Head Cleaner」は使いたい。

と、いうことで、Yoast SEOやめました

Yoastと同じくらい人気のAll in One SEOに変更してみました。こちらはHead Cleanerと併用しても何事もなく、問題なさそうです!

(Visited 173 times, 1 visits today)

“WordPressプラグインを「All in One SEO」に変えたのは「Head Cleaner」と「Yoast SEO」の相性がどうもよくないから” への3件の返信

コメントは受け付けていません。