AIにブログを任せるときの落とし穴
GSCで重複エラーの通知
Antigravityでブログ運営を効率化していたら、思わぬところで躓きました。
Google Search Consoleを見ていたら、ある記事が「重複しています」と表示されている。正規ページとして選択されていないため、インデックス登録されないとのこと。
つい先日まで何の問題もなかったのに? 順調に記事を増やしていたつもりだったのに、何が起きているのか。
何が問題なのか
GSCの指摘をみると、同じ記事が2つのURLで存在していると判定されていました。
具体的には、こういうことです。
https://example.com/articles/my-article(拡張子なし)https://example.com/articles/my-article.html(拡張子あり)
GitHub Pagesは両方のURLでアクセスできてしまうので、Googleは別々のページだと認識します。
そして、どちらが正規ページかを判断するために、canonical URLやsitemap.xmlを参照します。ここに不整合があると、重複判定されてしまう。
canonical URLとsitemapの役割
少しSEOの話になりますが、Googleがページを正しく認識するために重要な要素が2つあります。
canonical URLは、「このページの正式なURLはこれです」とGoogleに伝えるためのものです。HTMLの<head>内に記述します。
同じ内容が複数のURLでアクセスできる場合、どれを検索結果に表示すべきかGoogleは迷います。canonical URLを指定することで、「こっちが本物」と明示できます。
sitemap.xmlは、サイト内のページ一覧をGoogleに伝えるファイルです。「このサイトにはこれらのページがあります」というリストを提供することで、クロールを効率化できます。
重要なのは、これらが一致していることです。canonical、sitemap、OGP、そして実際の内部リンク。すべてが同じURL形式を指していないと、Googleは混乱します。
調査してみたら
Claude Codeに「全体を確認して」と頼んでみました。
すると、サイト内で.htmlありとなしが混在していることが判明。
| 場所 | URL形式 |
|---|---|
| index.htmlのリンク | 拡張子なし |
| canonical URL | 拡張子あり |
| sitemap.xml | 拡張子あり |
| OGP og:url | 拡張子あり |
canonical、sitemap、OGPは.htmlありで一致していました。しかし、index.htmlから記事へのリンクだけが.htmlなしになっていた。
Googleはindex.htmlのリンクをたどって記事ページに到達します。そのときのURLは/articles/my-article(拡張子なし)。でもcanonicalには/articles/my-article.html(拡張子あり)と書いてある。
「今アクセスしているURLと、canonicalで指定されているURLが違う」とGoogleは判断し、重複ページとして扱ってしまったのです。
なぜこの問題に気づかなかったか
答えは単純です。サイトは普通に動いていたから。
GitHub Pagesは拡張子があってもなくてもページを返してくれます。ユーザーから見れば、どちらのURLでアクセスしても同じページが表示される。
見た目では何も問題がない。だから気づかない。
SEO的な不整合は、実際にGoogle Search Consoleを確認するまでわからないものでした。
原因は自分だった
思い返してみると、原因は自分にありました。
以前、Antigravityから「URLから.htmlを消したい」と依頼したことがあります。
理由は単純で、クリーンなURLの方が見た目がいいから。/articles/my-article.htmlより/articles/my-articleの方がスッキリしている。SNSでシェアするときも、拡張子がない方がモダンな印象を受けます。
この判断自体は間違っていなかったと思います。実際、多くのモダンなWebサイトは拡張子なしのURLを採用しています。
問題は、依頼の仕方でした。
「リンクの.htmlを消して」と頼んだ。AIは依頼されたとおり、リンク部分だけを修正しました。canonical URLやsitemap.xmlまでは手をつけなかった。
AIは指示されたことを忠実にこなします。「ここだけ直して」と言えば、そこだけを直す。関連する他の箇所まで自動で修正してくれるわけではない。
部分的な修正依頼が、サイト全体の整合性を崩していたのです。
学んだこと
AIにブログ運営を任せるときは、「部分修正」より「全体の整合性」を意識する必要があります。
たとえば、URL形式を変えたいなら、「リンクの.htmlを消して」ではなく、「URL形式を拡張子なしに統一して」と依頼する。
そうすれば、AIはcanonical URL、sitemap.xml、OGP、構造化データなど、関連するすべての箇所を修正してくれます。
URL以外にも、同じようなミスが起きやすいケースがあります。
- 日付形式の変更:記事内は「2026.01.24」、構造化データは「2026-01-24」。途中で形式を変えると混在する
- 画像パスの変更:相対パスと絶対パスが混在。ディレクトリ構成を変えたときに一部だけ更新漏れ
- タイトルの変更:記事タイトルを変えたのに、OGPやJSON-LDのタイトルが古いまま
- ナビゲーションの更新:新しいページを追加したのに、他ページのナビゲーションに追加し忘れ
共通するのは、「一箇所を変えたら、関連する複数箇所も変える必要がある」ということ。AIに部分的な修正を依頼すると、この連鎖を見落としやすい。
便利だからこそ、依頼の仕方には気をつけないといけない。今回の失敗で、それを実感しました。
おわりに
Antigravityのような生成AIツールにブログ運営を任せると、本当に楽になります。
ただ、AIは指示されたことしかやりません。全体を見渡して整合性を保つのは、結局のところ人間の役目です。
部分的な修正を重ねていると、いつの間にか不整合が生まれることがある。定期的にAIに「全体を確認して」と頼む習慣をつけておくと良さそうです。