CommentOut

非AMP化(AMP解除)の.htaccessでのリダイレクト 非AMP化(AMP解除)の.htaccessでのリダイレクト

非AMP化(AMP解除)の.htaccessでのリダイレクト

公開日:  最終更新日:

GoogleのAMP優遇撤廃を受け、現在多くのサイトで脱AMPが進んでいるようです。

AMPを解除すると言っても、AMPってただ設定を解除するだけでは、ダメなんです。
AMPのURLが残っちゃうから

301リダイレクトを設定して、ちゃんとURLを正規化してあげましょう

AMPのURLって2種類ある?

私のサイトは元々AMPに対応していないため、詳しくないのですが、AMPのリダイレクト方法を調べていたら、AMPのURLは大きくわけて種類あるっぽいです。

  • {URL}/amp/
  • {URL}?amp=1

私のお客さんは後者の方でした。

前者はディレクトリが違うことになるので、ただAMP解除すると404エラーになるはずです。
これは戻した方が良いです。

一方、後者はURLパラメータであるため、AMPを解除後もエラーにはなりません。
しかし、GoogleAnalyticsやSearchConsoleにはURLパラメータ付きで表示されるため、集計が難しくなります。
なので、やっぱり301リダイレクトして直してあげた方が良いでしょう。

.htaccessでAMPページから非AMPページにリダイレクトをかける

リダイレクトは言わずもがな.htaccessで行うのですが、上記2種類の記述方法は大きく異なる物です。

URLが『/amp/』の場合のリダイレクト設定方法

# /amp/ → 非AMPへのリダイレクト
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)/amp/?$ $1 [R=301,L]
</IfModule>

こちらはディレクトリ構造で判断して、/amp/に入った場合、/amp/の手前までのURLにリダイレクトをかけてやる記述です。

URLが『?amp=1』の場合のリダイレクト設定方法

# ?amp=1 → 非AMPへのリダイレクト
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{QUERY_STRING} ^amp=1$
RewriteRule ^(.*)$ $1? [R=301,L]
</IfModule>

URLパラメータの場合、RewriteCondで%{QUERY_STRING}を使います。
%{QUERY_STRING}はURLパラメータを条件に指定できるものです。

もし、URLパラメータに『amp=1』っていう記述があったら、パラメータなしにリダイレクトしてね!っていう記述を行っています。

こちらはURLパラメータなので、ページの評価には影響ないんじゃないかと思っているんですが、それでもGoogleAnalyticsでページURLが別々に表示されているのは気持ち悪いですよね。

今回は短いですが、以上です。

宣伝
WordPressサイトのテンプレート編集やトラブル対応、バグ修正、簡単なJavascriptの作成(カルーセルやバリデーション等)など、小規模なスポット対応を受け付けております。
もしお困りごとがありましたら、お問い合わせフォームよりご相談ください。

この記事を書いた人

uilou

uilou

プログラマー

基本的に、自分自身の備忘録のつもりでブログを書いています。 自分と同じ所で詰まった人の助けになれば良いかなと思います。 システムのリファクタリングを得意としており、バックエンド、フロントエンド、アプリケーション、SQLなど幅広い知識と経験があります。 広いだけでなく、知識をもっと深堀りしていきたいですね。