ドメイン再利用したら未登録ページが大量発生した

10秒チェック
  • Google Search Consoleに未登録ページ136
  • 以前運用していたブログの内容が残っていた
  • 410(Gone)でインデックスから消えるかどうか試す

Google Search Consoleとは

Google Search Console(グーグルサーチコンソール以降GSC)とは、サイトマップを登録することで、自分のブログやサイトがGoogle検索でどう見られているか、目で見てわかるようにしてくれるツールです。またインデックスされていないページが無いか管理することもできます。

大事なところは、あくまで「Googleが」そのページに対してどのように見ているかを表すものです。

またGSCは「Google」から見て自分のWebページがどのような状態かを判断します。状態と意味、対策の有無について表にします。

状態意味対策が必要か
インデックス登録済みGoogleが検索結果に載せている
インデックス未登録Googleが検索に載せなかったURLの検索を依頼できる
クロール済みGoogleが見て回った登録済みか確認が必要
noindexタグなどインデックスしないと命令した意図的なら大丈夫
404エラーページが見つからない削除済み
410エラーサイト側から永久に削除意図的な削除に効果的
ソフト404ページの内容が薄い内容の見直しが必要
リダイレクト指定のURLにリダイレクト正しいURLか確認

まとめてしまえばGSCは、Googleに正しく認識されているかを私たちが知るツールです。特にインデックス漏れや、削除ミスを確認できるのは便利です。

Google Search Consoleが必要な理由

GSCはサイトを運営をする上でとても便利なツールです。GSCを使う上で主だった2つのメリットを挙げたいと思います。

第1にサイトマップをGSCに上げることができることにあると思います。サイトマップはそのWebサイトの設計図です。sitemap.xmlをアップロードすることでGoogleのクロールの効率化や新しいページを早く見つけてもらえることなど、簡単な方法でより良い結果が得られます。

第2にURL検査があります。URL検査ではWebページを早く見つけてもらえるようGoogleにリクエストを行うことができます。これによりWebページがGoogleに少しでも早く検索結果に載せてもらえるようお願いができます。

このようなメリットがあるためGoogle Search Consoleにサイトを登録することは重要なことでもあります。

私のサイトの場合

実はこの大量の未登録ページを吐き出しているドメインは使い回しのドメインだったりします。昔、取得したものを再利用したということです。ドメイン代がもったいないですから。

最後の更新の後、半年ほど時間が経ち、全てのページを消去して新しくこのサイトを立ち上げました。適当にページを作っていたところ、URL検査をしようとGSCを見ました。

Google Search Consoleの結果
Google Search Consoleの結果

未登録136項目!いつの間にそんな酷いことになっていたとは。4月の初めに全ての未登録を削除依頼しました。しかし削除とはいえ半年間の一時的な削除です。なんとか恒久的に削除できないかと思いました。

自分のサイトの状態をチェックする

対策を練るにしても自分のサイトの状態をチェックする必要があります。そこで何がエラーを吐き出しているのかを見てみました。

未登録の内訳
未登録の内訳

何度見ても酷い結果だと思います。

?PageSpeed=noscriptとは

ずば抜けて多いのはnoindexタグの多さです。中を覗いてみると?PageSpeed=noscriptが語尾に付くものが多いことがわかりました。これはGoogleがWebサーバ用の高速化モジュールのようで、次のような効果を与えてくれるものです。

  • HTML/CSS/JavaScriptの圧縮
  • 画像の最適化
  • キャッシュ設定
  • JavaScriptが無効になっていてもページが正しく表示
  • noscriptタグ内に表示するためのバックアップ的なURLにも使用

有益なものばかりです。しかし自動で付いてしまうことは気持ちの良いものではありません。もちろんSEO上も問題なく、検索インデックスにも載らず、重複のエラーはGoogleが勝手に除外しますので無害です。

特に問題がなければ放置していても大丈夫です。どうしても気になるのであれば、後に記述しますがgoneurl.txtで410エラーで返す方法も一つの手かもしれません。

クロール済み – インデックス未登録

この項目は結構困るものです。GoogleのクローラーであるGooglebotがページを巡回した(クロール済み)したにも関わらず、Googleがインデックスに登録しないと判断した場合に起こります。

原因はいくつかわかっていますが、次のようなものが有名だと思います。

原因内容対処
コンテンツの重複他のWebページと同じに見える独創性を強化する
コンテンツの質が低い内容が薄い、見出しなどがない構成を見直す
noindexが設定されている不明noindexを見直す
アクセス制限ログインを必要としている公開状態にする
タグ・カテゴリ等自動生成価値が低いと判断されるnoindexにする

私の場合は/tag/や/category/や/feed/がほぼ全てでした。これについてはそもそも生成させないことで対処ができそうです。

/feed/を無効にする方法については、Cocoonの作成者であるわいひらさんが答えてくれていました。

こちらのカスタマイズ方法でいけるのではないかと思います。
http://wpcj.net/1243

子テーマのfunctions.phpに以下のコードを貼り付けます。

わいひらさんの示してくださったコード。

//feedを出力させない
remove_action('do_feed_rdf', 'do_feed_rdf');
remove_action('do_feed_rss', 'do_feed_rss');
remove_action('do_feed_rss2', 'do_feed_rss2');
remove_action('do_feed_atom', 'do_feed_atom');

念の為noindexをつけてみました。

//念の為noindexを付ける
add_action( 'template_redirect', function() {
	if ( is_feed() && headers_sent() === false ) {
		header( 'X-Robots-Tag: noindex, follow', true );
	}
} );
  • 子テーマCocoon Childのテーマエディタfunction.phpの設定に上記コードを貼り付ける

これでだいぶ改善されるかもしれません。

代替ページ(適切なcanonical有り)について

よくわからないのですが「ページが重複しているため正しいページ(canonialタグ)をインデックスします」というような感じだと思います。

canonicalタグは<head>内に<link rel=”canonical” href=” ” />があると、そちらがこちらのページが正規URLだと検索エンジンに伝えるタグのようです。

このステータスになってしまう主な原因はわかっているだけで次のようなものが挙げられます。

原因内容解決策
意図的に指定している自分で設定したなし
自動的についてしまったテーマ、plugin、Cocoon必要なら修正
内容が重複と判断されたパラメータ違いや似たページ設定見直し、ページ統合

意図したcanonicalであれば問題はありません。放置をしていて大丈夫です。放置をしていてもGoogleは正しい方をインデックスしてくれます。

タグ・カテゴリページにcanonicalがついている場合は要注意です。この場合、本来インデックスされるべきWebページが無視される可能性が大いにあります。修正しましょう。

見つかりませんでした404

私の場合は全て削除したページを指していました。404 not foundではなくgoneurl.txtでHTTP 410(Gone)で返してみたいと思います。

削除するには

適当なテキストエディターを用意します。そこにこのように記述していきます。タイトル名は「goneurl.txt」で文字エンコードはUTF-8で保存して下さい。

# goneurl.txtの中身
/sakujo/
/shitehoshii/
/url-ga/
/arunodesu/

削除したいURLの相対パスだけを記入します。そしてそれを「goneurl.txt」として保存します。

レンタルサーバーのファイルサーバー内のWordpressに保存します。Cocoon Childであれば次のパスになります。

/あなたのドメイン/public_html/wp-content/themes/cocoon-child-master/

ここにcocoon-child-masterの直下にgoneurl.txtを配置して準備は完了です。

子テーマのfunction.phpに記述する

goneurl.txtをcocoon-child-master直下に配置しただけでは、まだ効果がありません。サーバーが認識してくれなければ効果がありません。

それはCocoonテーマには、標準でgoneurl.txtを読み込むことができません。よって410(Gone)を返す機能がないからです。そこでfunction.phpをいじることでなんとかしてみたいと思います。

Cocoon Childの場合は外観>テーマファイルエディタ>function.phpで記述することができます。記述する場所はfunction.phpの一番下に追加するだけで大丈夫だと思います。

// goneurl.txtを有効化させる方法
function check_gone_url_from_txt() {
    if (is_404()) {
        $gone_file = get_stylesheet_directory() . '/goneurl.txt';
        if (file_exists($gone_file)) {
            $gone_urls = file($gone_file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
            $request_uri = $_SERVER['REQUEST_URI'];
            if (in_array($request_uri, $gone_urls)) {
                status_header(410);
                nocache_headers();
                include(get_404_template()); // or your own 410 template
                exit;
            }
        }
    }
}
add_action('template_redirect', 'check_gone_url_from_txt');

これでgoneurl.txtに書かれたリストを削除(410エラー)にすることができると思います。

robots.txtの見直し

ついでにrobots.txtの見直しもしてみます。robots.txtは、goneurl.txtを置いたレンタルサーバーのドメイン>public_htmlの直下にあると思います。

User-agent: *
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /?s=
Disallow: /search
Allow: /wp-admin/admin-ajax.php
Disallow: /feed/
Disallow: /*/feed/

Sitemap: https://あなたのサイト/sitemap.xml

効果があるのかはわかりませんが、Googleがクロールするときに少しでも見えやすくなってくれればと思います。

Google Search Consoleへの再登録

あまり推奨されていない方法ですが、今回はサイトの構造の変化やタイトルの変更があったため、念の為ということでGSCへ再リクエストを送りました。

再リクエストを送信したからといってGoogleに登録されるのが早まるわけではないです。しかし、サイト構造の変更やタイトルの変更があった際は有効と聞いたので再リクエストを送りました。

結果が出ましたら追記します。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です