はじめに
前回はsitemap.xmlの静的化について触れましたが、今回はさらに一歩踏み込んで、Google AdSense審査や運用の健全性に欠かせない『ads.txtの設置』と『404エラーの適切な処理』について解説します。
ads.txtについて
WordPressで使用出来るテーマは大体広告掲載に対応しているものが多いと思います。
せっかくなので、テーマの広告設定を活かして対応しました。
1)広告に対応したテーマでads.txtを設定
このサイトで使っているCocoonでは、Cocoon設定の広告タブの中で設定出来ます。
実際の設定方法は各テーマのマニュアルを参照してください。

2)SimplyStatic ADDITIONAL URLSにads.txtを追加
以前の記事で紹介したsitemap.xmlの対応と同じようにads.txtを出力するよう追加設定して、静的コンテンツとして出力を実行します。

3)静的コンテンツが出力されたら、アップロードします
アップロードしたら、実際のURLにアクセスして表示確認しましょう。
404エラー対応
CloudFrontの設定は404などのエラーでも200を返してしれっとインデックスを表示しておりました。これはSEO的にもボット対策としても不健全です。そこで、『WordPressで200 OKのふりをして404ページを出力させ、CloudFrontで404として再定義する』という力技を実装しました。
1)固定ページとして、404ページを作成
- ポイント
- 固定ページとして作成することで、SimplyStaticによってページが出力が可能
noindex/nofollowを設定
編集画面下部のSEO設定エリアにあるチェックを有効にしておきましょう。
これによりsitemap.xmlの対象外となります。

2)CloudFrontの設定変更
AIアシスタントを活用して、terraformコードを修正。以下のカスタムエラー設定を追加。
修正後、Applyして無事に404エラーの対応が無事確認できました。
S3をオリジンにしている場合、権限設定(OAC/OAI)によってはファイルが存在しない時に404ではなく403(Forbidden)が返されることがあります。そのため、403もセットで404ページへマッピングするのが、S3静的ホスティングにおける『鉄壁の配管』です。
# 403 → 404として独自の404ページを返答
custom_error_response {
error_code = 403
response_code = 404 # 404でレスポンスする
response_page_path = "/404-error/index.html"
error_caching_min_ttl = 300
}
# 404 → 独自の404ページ
custom_error_response {
error_code = 404
response_code = 404
response_page_path = "/404-error/index.html"
error_caching_min_ttl = 300
}
思わぬ伏兵(トラブル)
404対応を完璧にした結果、思わぬ伏兵が現れました。Simply Staticで出力対象外だった『月別アーカイブ』が、意図せず全て404になってしまったのです。静的サイト化において、動的なURL階層をどこまで維持するか……今回は『不要なリンクを削ぎ落とす』という判断で、サイドバーのウィジェットからアーカイブをパージしました。
まとめ
- 404エラー対応が無事実装できた。
- sitemap.xmlの対象からも除外できていた。
- ads.txt出力は問題なし。
- 無事にAdSense側で認識(承認済みのステータスを確認)
- 少し寂しくなったがアーカイブメニューを削除して表面的にはリンク切れはなくなったはず。
今回の対応でさらに「WordPressの静的サイト化」の完成度が充実してきたなと実感できました。
あとは無事に審査が通るか祈るばかりです。
ではでは。
