ブログの特定のページの表示速度が遅くなっていたので速くしました。
最初はモバイル3Gの読み込み時間が16秒で要改善と表示されていました。
対策を行ったら4秒にまで短縮され表示速度が速くなりました。
表示速度の測定はGoogleのTest My Site(テストマイサイト)を使いました。
表示速度が遅くなった対象のページは下のカテゴリーページの「私の統合失調症日記」になります。
ブログの環境
【エックスサーバー】+【WordPress】+【テーマCocoon】
Google AdSenseの自動広告も表示させています。
Amazon API情報をバックアップから取得しているのが原因
まずAmazon API (PA-API)のアクセス権が無くなった。
そして、Amazon APIのシャッキュも無くなり、バックアップから取得していた。
バックアップから情報を取得すると処理に時間がかかり表示速度が遅くなるみたいです。
解決方法
Amazon APIの利用をやめれば改善します。
APIを使いたいときは楽天市場のものに変更します。
しかし私はすぐに解決はできませんでした
経緯を最初から説明いたします。
ある日、自分のブログを表示さようとすると体感で遅くなっているのに気が付きました。
しかも、先ほどのカテゴリーページだけが遅いのです。
PageSpeed InsightsとTest My Siteで表示速度の測定
最初はPageSpeed Insightsのモバイルでスコアの確認をしました。
スコアは69と良いとは言えないが悪くもないです。
そしてTest My Siteで速度を測定すると下の16秒になります。
そこで、ブログのトップページと比較しました。
トップページのPageSpeed InsightsのスコアとTest My Siteの速度の結果が下になります。
トップページはスコアが低いが表示速度は良好で速いという結果になりました。
PageSpeed Insightsのスコアが高いほど表示速度は速くなりますが、必ず速くなるわけではないのです。
最終的な確認はTest My Siteですることになります。
PageSpeed Insightsは改善する点を教えてくれますが、しかしスコアの点数が悪くないので原因がわかりません。
なので推測でいろいろ変更して試してみるが解決しません。
コーヒータイム
shortcodes-amazon.phpのエラーメッセージ
ところがある日、対象のページに下のエラーメッセージが表示されるようになりました。
なんだ!これは?初めてみます。
全てのブログ訪問者にエラーメッセージを表示する事態になりました。
shortcodes-amazonとあります。
ネットで検索するとAmazon商品リンクのショートコードに関わるエラーみたいです。
Amazon APIのアクセス権が無くなったからです。
確かに過去に作ったAmazon商品リンクが表示されなくなりました。
Amazon APIのアクセス権が無くなった話は下の記事になります。
Amazon API のアクセス権が無くなっても過去に作った商品リンクは使えるのですが、どうもAPIのキャッシュが無くなっただけではなくてバックアップのキャッシュも無くなったみたいです。
ブログを更新して確認するときに間違ってキャッシュを削除してしまったかもしれません。
しかし、バックアップの方はどうして消えたのだろう?
とりあえず、Amazon商品リンクが表示されないので楽天市場のAPIを使った商品リンクに切り替えました。
しかし、エラーメッセージが消えません。
エラー内容に該当するところを修正しても消えない…
またネットで検索して調べて私が出した結論になります。
エラーメッセージ以外は問題ないので、エラーメッセージを表示させないようにします。
wp-config.phpを編集してエラーメッセージを表示させない
phpファイルのwp-config.phpを編集しました。
今回のやり方については下の記事を参考にさせて頂きました。
WordPressでエラーメッセージを表示させないようにする3つの方法
しかし、私はWordPress初心者です。
phpファイルのwp-config.phpってどこにあるの?
ここから始まりました。
またもネットで検索です。
そして無事に編集することができました。
私が行った作業内容のやり方を説明します。
エックスサーバーのログインはファイルマネージャで行います。
XSERVER WebFTPの画面になったら次の順番でフォルダを開きます。
【ブログのドメイン】→【public_html】
【public_html】のフォルダの中にあるwp-config.phpを開きます。
左の□にチェックを入れて右上のファイルの操作の編集ボタンをクリックします。
(wp-config.phpをクリックするとファイルがダウンロードされます。
念のためにバックアップとして保管しておきましょう。)
ファイルを開いたらコードの一番下まで行きます。
define(‘WP_DEBUG’, false);
の下に
ini_set(‘display_errors’,0); ←モニターにエラーメッセージを表示させないコード
を追加します。
define('WP_DEBUG', false); ini_set('display_errors',0); /* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */
後は保存して終了です。
無事にエラーメッセージの表示が消えました。
そして、この作業をしたら表示速度が速くなりました。
推測ですが、Amazon APIのシャッキュが無くなりバックアップから取得すると遅くなるみたいです。
確かにAmazon APIのアクセス権を無くした時期と表示速度が遅くなった時期が一致しています。
しかし、バックアップから取得して商品リンクは正常に表示されるので気づきませんでした。
Amazon検索ボタンがAPI
その後に気づきました。
テーマCocoonのAPIの設定で「Amazon検索ボタン」をAPI(PA-API)が生成したURLにしていました。
下の画像の□にチェックが入っていました。
このチェックが入っていると下の楽天APIを使って作った商品リンクでも、AmazonボタンはAmazon API(AP-API)経由になります。
しかし、私はアクセス権が無くなっているので、APIが使えないとのエラーメッセージが表示されていたのです。
チェックを外そうと思いましたが、Amazonアソシエイトのレポートを見ると下のように【その他】でクリックがカウントされています。
チェックを外したり付けたりは面倒なので、このまま売上としてカウントされるかを見守りたいと思います。
コメント