プログラミング

ここ数週間の朱雀式の不具合について。

いや、やっと完全解決しました。

  • はてなアンテナが上がらない
  • IEで見ると「詳細を見る」の続きが404になって表示されない
  • なぜかアクセス数が先月の2/3くらいまで低下している

これ、全部同じ原因でした。

Webサイトがブラウザに返す信号には「ステータス」というのがありまして、存在しないページはご存知「404 Not Found」というステータスを返します。これが返ってくると、ブラウザも検索エンジンも、そのページは「ないもの」として(例えあっても)扱うわけです。

しかし、僕が今使っているWordpressのテーマは、見つからないページの時も「そのページはありません」というページを自動生成する仕組みになっていました。これはこれで親切なんだけど困ることもある。

検索エンジンが、404でないばあい「ないもの」として扱わないので、存在しないページがどんどんインデックスされてしまうのです。これを回避するためには、このWordpressの404ページが、ちゃんと「404ステータス」をブラウザに返すようにしなければいけない。

そのために一番手っ取り早い方法は、404のテンプレートのヘッダーに404ステータスを設定することです。


Warning: Cannot modify header information - headers already sent by (output started at /home/users/1/boy.jp-dacelo/web/suzaku-s.net/html/DocumentRoot/wp-content/themes/suzakuopinion/header.php:5) in /home/users/1/boy.jp-dacelo/web/suzaku-s.net/html/DocumentRoot/wp-content/plugins/exec-php/includes/runtime.php(42) : eval()'d code on line 22
      :       :

こうすることによって、存在しないURLの場合、404ステータスを返した上で、自動ページを生成するので、検索エンジンにインデックスされなくなる、という寸法です。

ところが、困ったことがおきました。僕は、この404ヘッダーを、404ページではなくて、全体用のメインテンプレートに設定してしまったのです!

冒頭に挙げた不具合は、全部これが原因でした…。
現在、「アンテナが上がらない」「リンクがエラーになる」は解消されましたが、せっせと404エラーを流し続けたことによって、GoogleからもYahooからも『朱雀式』が抹消されてしまいました…。
今まで、検索エンジンからのアクセスはかなりのものがあったんですねぇ。まあ、これからまたぼちぼちやっていきます。

ご不便をかけた皆様、どうもすみませんでした。アンテナが上がらない、詳細が読めない間にもがんばって書いていましたのでよろしく読んでやってください。

(櫻木)