投稿日:
2018年5月13日
最終更新日:
【StaticPress】sitemap関連のファイルが出力されない場合の対処方法
YouTubeも見てね♪
ねこじゃすり
猫を魅了する魔法の装備品!
Anker PowerCor
旅行には必須の大容量モバイルバッテリー!
【最新機種】GoPro hero11 Black
最新機種でVlogの思い出を撮影しよう!
ペヤング ソースやきそば 120g×18個
とりあえず保存食として買っておけば間違いなし!
Bauhutte ( バウヒュッテ ) 昇降式 L字デスク ブラック BHD-670H-BK
メインデスクの横に置くのにぴったりなおしゃれな可動式ラック!
BANDAI SPIRITS ULTIMAGEAR 遊戯王 千年パズル 1/1スケール
もう一人の僕を呼び覚ませ!!
MOFT X 【新型 ミニマム版】 iPhone対応 スマホスタンド
Amazon一番人気のスマホスタンド!カード類も収納出来てかさ張らないのでオススメです!
目次
StaticPressでsitemapが転送されない
あれ、sitemapが無い・・・?
先日、WordPressサイトにおけるsitemapファイルの自動生成プラグインの導入方法について紹介しました。
基本的にはこのプラグインを利用していれば問題は無いのですが、StaticPress等を利用してS3バケットでサイト運用をする際は、そのままだとsitemapファイルやrobots.txtファイルが転送されません。
sitemapがないと、検索エンジンが正しくサイトコンテンツを解析してくれないので、PVが伸びにくくなってしまいます。
アドセンスやアフェリエイトをやっている方だとPVの伸び悩みは深刻な問題ですよねorz
現状の確認
試しに、sitemap.xmlが生成されている状態で、管理画面から再構築ボタンをクリックし、出力ディレクトリを確認したところ、確かにsitemap関連のxmlとrobots.txtが対象ディレクトリに出力されていませんでした。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
ls -la
合計 164
drwxr-xr-x 14 apache apache 4096 5月 12 06:06 .
drwxr-xr-x 7 apache apache 4096 4月 25 17:24 ..
drwxr-xr-x 4 apache apache 4096 5月 12 06:06 2018
-rw-r--r-- 1 apache apache 49707 5月 12 06:06 404.html
drwxr-xr-x 3 apache apache 4096 5月 12 06:06 author
drwxr-xr-x 4 apache apache 4096 5月 12 06:06 category
drwxr-xr-x 3 apache apache 4096 5月 12 06:06 comments
drwxr-xr-x 2 apache apache 4096 5月 12 06:06 feed
-rw-r--r-- 1 apache apache 53292 5月 12 06:04 index.html
drwxr-xr-x 5 apache apache 4096 5月 12 06:05 wp-admin
drwxr-xr-x 4 apache apache 4096 5月 12 06:06 wp-content
drwxr-xr-x 7 apache apache 4096 5月 12 06:06 wp-includes
drwxr-xr-x 2 apache apache 4096 5月 12 06:06 wp-json
drwxr-xr-x 3 apache apache 4096 5月 12 06:06 未分類
|
確かに出力されていませんね。
このままだと、StaticPressS3を使ってS3バケットに転送されないので、SEO対策が足りていない状態となります。
また、GoogleSearchConsoleへの登録も出来ません。
原因は既存バグ?
原因を特定するために、pluginのソースを読んで見たところ、class-static_press.phpに原因がありました。
まずは、658行目辺りをみると、sitemap.xmlやrobots.txtをクローリングするための関数は定義されています。
ここではSEO関連ファイルをseo_filesというグループで定義しています。
1
2
3
4
5
|
//658行目辺り
// Check correct sitemap url by robots.txt
private function seo_url($url_type = 'seo_files'){
・・・
}
|
では、次に実際にファイル出力をしているところを確認してみました。
373行目辺りを見ていると、クローリング対象のファイルを出力している部分があるのですが、ここで先ほどの関数で定義したseo_filesが出力対象として指定されていませんでした。
1
2
3
4
5
6
7
8
|
switch ($file_type) {
case 'front_page':
case 'single':
case 'term_archive':
case 'author_archive':
case 'other_page':
// get remote file
・・・
|
手順
スポンサーリンク
336×280
一行追加するだけ
では、原因は特定出来たので、問題を解決するために以下の一行をcase句に追加してみましょう。
1
2
3
4
|
//375行目辺り
case 'author_archive':
case 'seo_files'://追加
case 'other_page':
|
確認
修正が終わったら、もう一度再構築ボタンをクリックしてみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
ls -la
合計 236
drwxr-xr-x 14 apache apache 4096 5月 13 06:00 .
drwxr-xr-x 7 apache apache 4096 4月 25 17:24 ..
drwxr-xr-x 4 apache apache 4096 5月 13 06:00 2018
-rw-r--r-- 1 apache apache 49707 5月 13 06:00 404.html
drwxr-xr-x 3 apache apache 4096 5月 13 06:00 author
drwxr-xr-x 4 apache apache 4096 5月 13 06:00 category
drwxr-xr-x 3 apache apache 4096 5月 13 06:00 comments
drwxr-xr-x 2 apache apache 4096 5月 13 06:00 feed
-rw-r--r-- 1 apache apache 53292 5月 13 05:58 index.html
-rw-r--r-- 1 apache apache 49707 5月 13 06:00 robots.txt
-rw-r--r-- 1 apache apache 998 5月 13 06:00 sitemap-misc.xml
-rw-r--r-- 1 apache apache 849 5月 13 06:00 sitemap-pt-page-2018-04.xml
-rw-r--r-- 1 apache apache 867 5月 13 06:00 sitemap-pt-post-2018-04.xml
-rw-r--r-- 1 apache apache 890 5月 13 06:00 sitemap-pt-post-2018-05.xml
-rw-r--r-- 1 apache apache 1199 5月 13 06:00 sitemap.xml
drwxr-xr-x 5 apache apache 4096 5月 13 05:59 wp-admin
drwxr-xr-x 4 apache apache 4096 5月 13 06:00 wp-content
drwxr-xr-x 7 apache apache 4096 5月 13 06:00 wp-includes
drwxr-xr-x 2 apache apache 4096 5月 13 06:00 wp-json
drwxr-xr-x 3 apache apache 4096 5月 13 06:00 未分類
|
正常に出力されるようになりましたね♪
もちろんS3バケットにも転送がされています。
終わりに
以上のように、プラグインのソースコードを修正しないと直らない問題でした。
原因さえ分かれば1行の修正で直るので、もし同じようにハマって困っている方がいましたらこの記事を参考にしてみてください。