検索上位だった記事がたくさん消えた話
最近、サイトのデザインに修正を加えたり、広告の位置を変更したりサイト全体に関わるUIをいじっていた。そしたら大事なコンテンツがいくつも検索結果から消えていた。
原因は、WordPressで書いた記事の更新リストを静的ページのトップページやサイト下部に表示させるために追加したPHPの記述位置。サイト表示は問題なくできていたのですぐには気づけなかった。
インデックス削除の原因
静的ページにWordPressの読み込めるようにするために記述を加えた。
(例)include (‘./wp/wp-blog-header.php’);
この一文を書くことで静的ページでもWordPressの動作をするようになる。いろいろなサイトで解説されていて構文は何種類かあったが必ず書かれていたのが「DOCTYPE宣言より上に書き加える」だった。
うちの環境の場合これがダメだった。
Googlebotがクロールしに来たときに404エラーを返すようになっていてサーチコンソールで再登録しようとしてもエラーになり受け付けてくれなくなっていた。
ブラウザではちゃんと表示されるけどサーチボットやhtmlの構文チェッカーといったbotにはエラーを返すようになっていたのが怖いところ。
解決に向けて
WordPress環境と認識させる記述は記事リストを表示するより前の位置ならどこでも大丈夫なのでは?と思いとりあえず<head>内に書いてみたらちゃんと表示された。
サーチコンソールでのインデックス登録でもクロールエラーは出なくなって登録できるようになっている。
追記)読む込むワードプレス内のファイルをwp-blog-header.phpでなくwp-load.phpだとDOCTYPE宣言の前に書いても問題ないようだ。サーバのフォルダには両ファイルとも存在しているので直接ブラウザで見てみるとwp-blog-header.phpはファイルがありません、wp-load.phpはソースが何も無い真っ白な画面がでた。
まとめ
サーチコンソールやアナリティクスの確認は大事。
自分のサイトでも大丈夫かどうかは分からないのでコピペでつかえるプログラムソースの使用は自己責任。