ユーザビリティ調査を実施しています。お時間あればご協力お願いします。

AFFINGERのAMPページをやめる時のリダイレクト設定

AFFINGERにはAMP設定がありますが、開発は中止しています。

そのため、AMPページでエラーが起きた時の修正対応は基本的にありません。

また、AMPページを生成した状態でAFFINGERから他のテーマに移行すると、AMPページは生成できないので404エラー(ページがありません)になってしまいます。

対策としてAMPプラグインを入れる方法もありますが、この記事ではAFFINGERのAMP設定を停止して本来のURLにリダイレクトする方法を紹介します。

AMPページを元のページにリダイレクトする方法

AMPページのURLは、下記のように正規のURLの後ろに「/amp/」がついた形式になっています。

AMPのURL https://xxxx.com/xxxx/amp/
正規のURL https://xxxx.com/xxxx/

「amp/」を削除した正規URLにリダイレクトすればAMPページがなくても404エラーになりません。

リダイレクト時のAMPページのサーバー応答は、301(恒久的な転送)を指定してこのページはもう存在しないことを明示します。

AMPページを停止する

まず、AFFINGERでAMPページを停止させます。

全ページで有効にしている場合は「AFFINGER 管理」>「Google・広告/AMP」に移動して、AMP対応の項目のチェックを外します。

AFFINGERでサイト全体のAMPを設定する方法

個別記事投稿のAMP設定の「AMPに対応する(β)」にチェックを入れてる場合は、チェックを外します。

AFFINGERで投稿記事からAMP設定する方法

WordPressに追加するコード

AMPページを停止した上で、functions.phpに下記のコードを追加します。

function is404_redirect_home() {
  if( is_404() ){
    $match = preg_match('/(\/amp\/)/', $_SERVER["REQUEST_URI"]);
    if($match==1) {
      $url = preg_replace('/(amp\/)/', '', $_SERVER["REQUEST_URI"]);
      $redirect_url = home_url().$url;
      wp_safe_redirect($redirect_url , 301 );
      exit();
    }
  }
}
add_action( 'template_redirect', 'is404_redirect_home' );

AMP設定を無効にしたことで「404エラー」になるページから、AMPページ(/amp/を含むページ)を抽出して、301で正規URLにリダイレクトしています。

「is_404()」の部分を「is_single()」や「is_page()」などに変更すれば、AMPページを停止せずにリダイレクトできます。

  //is_404()以外を指定
  if( is_single() || is_page() ){

   //投稿ページや固定ページならampページをリダイレクト

  }

AMPページのエラーはSearch Consoleで確認できる

AMPページのエラー内容は、Search Consoleの「拡張」>「AMP」で確認できます。

SearchConsoleでAMPエラーが表示される

AFFINGERの場合は、loading属性、CSSの!importantなどでAMPページにエラーがでてしまうようです。

-ワードプレステーマ
-,