WordPressでメディアにアップロードした画像の添付ファイルページを削除にしたい!

WordPressではメディアにアップロードした画像に自動で添付ファイルページが作成されてしまうので、それを無効化し、削除する方法を書きたいと思います。

画像用添付ファイルページ

知らない人もわりといるかもしれません。画像だけのページが存在していることをご存知でしょうか?
[管理画面]から[メディア]→[ライブラリ]をクリックします。

どれか画像をクリックします。

画像が表示されると思います。

右下のほうにある「添付ファイルのページを表示」をクリックします。

画像が表示されたページが表示されると思います。

こちらはコメント欄もあったりすると思います。たまにコメントスパムがきた時に、画像のページからのもので初めてこの画像ページに気づく方もいたりします。
この画像ページをギャラリーなどに使う場合もあると思います。
しかし必要ない人も多いかと思います。

添付ファイルページのリンクを設定しない

何も気にせず、投稿記事を書くときに、画像にリンクを貼っていませんか?

投稿記事内で、メディアから画像を選択する時、リンク先として下記4つが選べます。
・なし
・メディアファイル
・添付ファイルのページ
・カスタムURL

もしリンクがいらない場合は、「なし」を選ぶことを忘れずにおこないましょう。
一度「なし」にすれば、次回もデフォルトがなしになります。

画像ページをnoindexに設定する

画像ページをギャラリーなどに使っていてそのまま存在していてかまわないけれど、検索には載ってほしく無いという場合もあると思います。
もしかしたら最近ではデフォルトで添付ページはnoindexになっているのでは?と思います。
ソースを見た時に

<meta name='robots' content='noindex,follow' />

という表示があればnoindexです。
スターターと呼ばれるアンダースコア(_s,underscores)というテーマで試してみても普通にnoindexになっていたので、案外ここの部分は大丈夫なのかもしれません。
もしnoidexになっていないようなら、
子テーマのfunctions.phpに下記を入れてアップすればnoindexになります。

/* メディアページをインデックスしない */
function my_add_noindex_attachment(){
    if (is_attachment()) {
        echo '<meta name="robots" content="noindex,follow" />';
    }
}
add_action('wp_head', 'my_add_noindex_attachment');

参考:https://www.nishi2002.com/26723.html

functions.phpでリダイレクトをかける

添付ファイルページにアクセスすると、404ページにリダイレクトすることで、ページを表示させないようにする方法です。
子テーマのfunctions.phpに下記を追加します。

// 画像の添付ファイルページのリダイレクト
add_action( 'template_redirect', 'attachment404' );

function attachment404() {
  // attachmentページだった場合
  if ( is_attachment() ) {
    global $wp_query;
    $wp_query->set_404();
    status_header(404);
  }
}

こちらをコピペしてアップすれば404エラーになり、添付ファイルページが表示されなくなると思います。
もしもインデックスされていたとしてもそのうち消えると思います。

attachment.phpに命令を入れる

もしfunctions.phpをいじりたくない場合、もしくはテーマの中にattachment.phpがあるなら、こちらのphpを修正する方法でもよいと思います。
attachment.phpを開き、何かソースが書いてあるなら、いったんすべてを消して空欄にします。
その上で下記を入れます。

<?php
// 添付元(投稿、ページなど)のある添付ファイルページの場合、添付元にリダイレクト
if ( $post->post_parent ) {
	wp_redirect( get_permalink( $post->post_parent ), 301 );
}
// 添付元のない添付ファイルページの場合、トップページにリダイレクト
else {
	wp_redirect( home_url(), 302 );
}

これだけをattachment.phpに入れてアップします。
この命令結構よいと思います。

参考:http://wpcj.net/934

インデックスされたURLを早く消したい

Googleでインデックスされてしまった添付ファイルページを削除したい場合、Search Consoleを使います。

Serch Consoleを開いて「Googleインデックス」にある「URLの削除」を開きます。

「一次的に非表示にする」ボタンをクリックします。

入力ボックスを表示させ、ボックス内に削除したいページのURLを入力し「続行」をクリックします。

地味に待てば、該当のページが検索結果から削除されると思います。

コメント