はじめに
運営しているウェブサイトを SearchConsole でインデックスの状況を確認している方が多いと思います。
私も確認しており、最近「ページにリダイレクトがあります」が多く検出されるようになりました。
調べてみると、コチラに紹介されている特徴ある URL へのアクセスがリダイレクトされており、
Google の検索順位に影響が出てきていると考えています。
似ている URL へ補完されてリダイレクトされます。
解決策を調べると、テーマの functions.php を編集する記事がいくつか出てきましたが、
本サイトのテーマは AFFINGER6 を使っており、こまめにアップデートしています。
そのため、更新するごとに編集が必要となるため、自作プラグインで何とかしようと考えました。
そこで、本記事では WordPress の自動補完機能をプラグインで無効化する方法をご紹介いたします。
functions.php を編集して無効化(解決せず)
一応、functions.php を編集する方法も紹介しておきます。
テーマを更新しない方は、こちらの方が手っ取り早いかと思います。
コチラで紹介されている通り、functions.php に以下を追加すると無効化することができます。
1 2 3 4 5 6 7 8 |
function disable_auto_complete_redirect( $redirect_url ) { if ( is_404() ) { return false; } return $redirect_url; } add_filter( 'redirect_canonical', 'disable_auto_complete_redirect' ); |
functions.phpの場所
<DocumentRoot>/wp-content/themes/<有効なテーマ>/functions.php
公開プラグインでの対応(解決せず)
どのプラグインも所望の動作をしませんでしたが、プラグインの概要と現象を紹介しておきます。
All 404 Redirect to Homepage
- 概要:
公式ページ - 現象:
レイアウトが崩れた画面が表示される現象となりました。
私のテーマではキャッシュ制御のためにリソースの URL が細工されています。
架空のバージョン値をクエリに追加する細工ですが、それが存在しない URL となり
読込中に 500 のエラーが発生して CSS が正常に読み込まれていませんでした。
Functionality
- 概要:
公式ページ - 現象:
Edit Functions がメニューに出てこない現象です。
おそらく、最新の WordPress に対応していないか、他のプラグインと競合しているのだと思われます。
補完リダイレクトを無効化する自作プラグイン(解決)
手順は簡単で、以下の 3 ステップで完了です。順に説明していきます。
- プラグインのディレクトリ作成
- プラグインのコードを記述、アップロード
- プラグインの有効化
step
1プラグインのディレクトリ作成
コマンドラインで作成、FTP ツールなどで作成、など、どのような方法でも OK です。
場所は、「<DocumentRoot>/wp-content/plugins」の直下です。
command
cd <DocumentRoot>/wp-content/plugins
mkdir stop-canonical-redirection
step
2プラグインのコードを記述、アップロード
以下のコードを記述し、Step.1 で作成したディレクトリ直下にアップロードします。
ディレクトリ名と同じファイル名で保存する必要があるので注意してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
<?php /* Plugin Name: Stop Canonical Redirection Description: 自動補完リダイレクトを停止するプラグイン Version: 1.0.0 Requires at least: 6.3 Tested up to: 6.4 Requires PHP: 7.4 */ add_action('init', 'StopCanonicalRedirection::init'); class StopCanonicalRedirection { static function init() { return new self(); } function __construct() { add_filter('redirect_canonical', [$this, 'stop_canonical_redirection']); } function stop_canonical_redirection( $redirect_url ) { if (is_404()) { return false; } return $redirect_url; } } ?> |
step
3プラグインの有効化
普通のプラグインを有効化するのと同様に、Wordpress 管理画面の左メニューから「プラグイン」を選び、
作成したプラグイン「Stop Canonical Redirection」を有効化します。
SearchConsole でリダイレクトが検出されたページになどにアクセスし、
以下のような 404 ページが表示されれば完了となります。
参考ページ
funcions.php を変更する方法(テーマを更新するたびに修正必須):
- https://rilaks.jp/blog/disable-wp-auto-complete-redirect/
- https://wpmake.jp/contents/security/wordpress_canonical/
- https://irodori-design-web.com/blog/blog-1885/
上手く動かなかった公式プラグイン:
- https://ja.wordpress.org/plugins/all-404-redirect-to-homepage/
- https://wordpress.org/plugins/functionality/
リダイレクトが SEO にとても影響していると思った記事:
自作プラグインの作成方法: