1. XML Sitemaps|エラーが表示される場合の対策方法
WordPressでXML Sitemapsなどのプラグインを使用して作成したサイトマップを確認すると、以下のようなエラーが表示されてサイトマップが表示されない場合があります。
error on line 2 at column 6: XML declaration allowed only at the start of the document
Below is a rendering of the page up to the first error.
今回は、このエラーメッセージを対策したいと思います。
※XML Sitemapを生成するプラグインを使わずに、WordPressがデフォルトで生成するXMLサイトマップ(wp-sitemap.xml)でエラーの場合は、そもそもエラー表示やサイトマップ自体が何も表示されません。)
このエラーメッセージの意味は簡単に言うと「1行目からサイトマップを記述してください」というものです。
つまり1行目ではない箇所からサイトマップが記述されていることになります。
結論からすると、ほとんどの人に当てはまるのはPHPによるエラーだと思われます。
おそらく直近でカスタマイズしようとして、テーマファイルで「functions.php」の最下部にコードを入力したり消したりして触っているのではないでしょうか。
ちなみに私がこのエラーを解決したのはTCDのテーマです。
原因は色々あると思いますが、当てはまりそうな場合まずは今回紹介している解決策を試してみてください。
1-1. 解説策
解決策としては、テーマファイル「functions.php」の一行目と最終行の余白を詰めます。
途中の中間部分の余白は詰めなくて大丈夫です。要は最初と最後の余白改行を詰めてテーマファイルの上下がびっちり書かれた状態にするわけです。
↓1行目は、1行目から開始します。
↓最終行の下には余白が無い状態にします。
直近で何かカスタマイズしようとして、最終行に書き込んだり消したりした場合、最終行の下に余白改行がある場合が多いです。
なので、もし原因が今回紹介していることの場合、1行目と最終行の下に余白改行が無い状態にすれば解決します。
1-2. そもそもの原因
ちなみにこれはPHPに終了タグ「?>
」を使用して書いているか書いていないかによります。
例えば、テーマファイル「functions.php」の最終行に「?>
」と書かれているテーマの場合、最終行の下に余白改行があるとサイトマップでエラーが出ることがあります。
//エラーになるパターン
<?php
if ( !defined( 'ABSPATH' ) ) {
exit;
}
?>
一方で、PHPの終了タグ「?>」を使用せずに書かれている場合、最終行の下に余白改行があっても問題ない場合が多いです。
//大丈夫なパターン
<?php
if ( !defined( 'ABSPATH' ) ) {
exit;
}
そもそもPHPは終了タグ「?>」を使用してもしなくても大丈夫なコードです。終了タグを使うか使わないかは製作者のコーディングスタイルによるものだと思います。
※ちなみに上記の説明の通り、「?>
」が最終行に書いていなくもミスではないので、「?>
」を書き加えないようにしてください。プログラム誤作動の原因となります。間違えて消してしまったかどうか分からない場合、元々どちらだったか確実にチェックした方がいいです。
有名どころのテーマで言えば、COCOON、AFFINGER5はPHPの終了タグを使わない書き方なので最終行の下に余白改行があってもエラーにはなりません。
TCDテーマの場合、終了タグを使った記述なので、最終行の下に余白改行があるとエラーになります。
2. サイトマップのエラーは重大?
ちなみに書いておくと、サイトマップのエラーが出たとしてもGoogleなどの検索エンジンにインデックスされないわけではありません。
あくまでもサイトマップのエラーというのは、こちらからGoogleに任意で通知できないだけであって、Google側はサイトやページを認知できます。
サイトマップというのは、そもそもページ更新の通知などを検索エンジンに知らせる役割ですが、アクセスのあるサイトの場合は何もしなくてもクローラーが入ってくるのでサイトマップを送信しなくても大丈夫です。
新規サイトの場合は、最初にサイトマップを送信した方がインデックスされるのが早い可能性があるのでSEO的には有利です。
2-1. 小規模のウェブサイトはサイトマップ不要
すでに稼働している既存のウェブサイトで規模が小さい場合、サイトマップの送信は不要です。
Googleのドキュメントには、500ページ以下の小さいサイトではサイトマップの送信は不要と書かれています。
例えば、頻繁に更新しない個人店のウェブサイドやホームページ、ページ数が少ないサイトなどは毎日サイトマップを送信しても意味がありません。
ちなみにページがインデックスされているか確かめる方法は、以下の記事を参考にしてください。
≫Google Search Console|インデックス登録をリクエストする方法
サイトマップのエラーが出たとしても、今日明日で検索順位が落ちたりインデックスから外されたりするわけではありません。
焦らず落ち着いて対処すれば大丈夫です。
合わせて読みたい
- Google Search Console|不要なサイトマップを削除する方法
- Google Search Console|WordPressサイトでサイトマップの登録と更新
- Bing|ウェブマスターツールでサイトマップを送信する方法
- Google Search Console|インデックス登録をリクエストする方法