スムーズスクロール系ページ内のアンカーに飛ぶためにスムーズスクロール系のプラグインも使っています。これも何年かに一度見直さないといけないコンフリクト発生装置です。[SSL]に落ち着いていたのですが、気づけば全く更新されていないので、更新が新しいプラグインに変えてみていました。散々な目に遭ってテストを繰り返し最終的にわかったことなんですが、新しいスムーズスクロールのプラグインがコンフリクトの原因でした。Linksに戻したところ、上手く動いたというオチとなりました。古いほうが安定していました。Categoriesです。Widget内でタクソノミーの折りたたみ表示を実現します。こいつもキャッシュ系やスクリプト遅延・縮小系と相性が悪くて、油断しているとすぐに動かなくなります。必須なのでまずこいつが動くかどうかを優先して判断しています。テストを重ねて、どうにかかろうじて動かす設定を見つけました。他のスクリプトあとは自分でこしらえたメニューバーが上部に張り付くスクリプトも問題を抱えていて、何かの拍子に動かなくなります。これは動かなくても支障はないので放っておいてもいいのですが、何らかのエラーが出ているのは間違いないので放置もしておけないという。こいつが動かないエラーは先ほど書いたスムーズスクロール系の新しいプラグインが原因でした。jquery.jsのバージョン違いをお互いに読み込んでしまい衝突しているのが原因と推測できますが対処の方法を知りませんので新しいプラグインの停止で解決を図りました。以上、問題が起きて動かなくなるスクリプトですが、原因は何となくもうわかっています。問題の発生原因はjQuery.jsとjquery-migrate.min.jsjQuery.jsとjquery-migrate.min.jsはWordpressが自動で読み込むライブラリです。Speedから「ブロックしているjavascriptを排除」と指摘される項目ですね。このふたつを非同期にしたりFooterで遅延読み込みしたりすると、読み込まれる順番がおかしくなり、これらの読み込み済みを前提しているスクリプトに影響が出ます。いくら叱られても、非同期や遅延読み込みをしてはいけないんですね。エラーはこれらを除外することで問題なく動くと思われますね。実際、私の環境ではそうでした。除外するjquery.jsを遅延させる高度な方法もあるようですが、そうするとそれに準じているプラグインやスクリプトもすべてそれ以降に読み込ませないといけません。プラグインの大幅な改造も必要で、そんなスキルまったくありませんからjquery.jsの非同期なんか諦めます。jquery.jsとjquery-migrate.min.jsを除外することにより、PageSpeedの点数はぐっと低くなります。ならないものは仕方ありません。除外とはいえまだ諦めきれずにあれこれ検索やテストを続けました。そもそもjquery.jsとjquery-migrate.min.jsってのが何なのか、それすら私は知らないのですが、あるサイトに大事なことが書いてありました。jquery.jsっていうのはライブラリですね。それは何となくわかります。これを前提に作られているいろいろなプラグインがありますが、どうやらお行儀のよいプラグインはjquery.jsがヘッダで読み込み済みでなければ動作しないというような、そういうことはまずないそうなのです。footerで読み込まれていようと、非同期で読み込まれていようと、ちゃんとしたスクリプトを書く人なら正しく動作するように作るはずであるというのです。