bloggerのテーマ「Tokyo」で「link rel」と"canonical"の問題

2025年7月1日

web/computer

 Search Consoleでだいぶ前からページのインデックスが未登録という問題があった。

これの大きな問題は「ページのリダイレクトに失敗しました」の件。

その前の「代替ページ(適切なcanonicalタグあり)」は、失敗しましたとなってはいても正規URLが登録されてはいるのでまあ良いだろう、と。

問題となっていたのは「?m=1」、モバイル表示ページ

リダイレクト、代替ページ、どちらも原因となっている例として上がっているのはほぼ「heml?m=1」となっているページだった。

つまるところ、モバイル用のページの正規URLがPC用ページにリダイレクトされていないということで、いくら訪問者を想定していないブログと言えど気持ちが良くないのでとりあえず修正を試みてみることに。

Search Consoleで「未登録」ページが大量にあるのを修正

要は「?m=1」がそれがついていないページにリダイレクトされていれば良い、ということでまずはテーマをカスタマイズ。

毎度思うんだけど、テーマをカスタマイズする場所ってわかりずらくない?
「テーマ」>「カスマイズ」>「HTMLを編集」
まあ言いたいことはわかるんだけど、こう……一発で行けないものかと。

それはさておき、<head>タグ内に、

<b:if cond='data:blog.url'>
 <link expr:href='data:blog.canonicalUrl' rel='canonical'/>
</b:if>

を記述。
これでとりあえずは全ての記事に rel='canonical'が付与されるだろうということで早速該当ページを開き「ソースコードを表示」で確認。

<link rel="canonical" href="ブログ記事のURL">

となっているタグがない。

おかしいと思って探してみたら、

<link href='ブログ記事のURL' rel='canonical'/>

はあった。

なんでだ?とgeminiに聞いてみたら、

Blogger のテンプレートや HTML の書き方では、属性の書き方が異なることがよくあります。

  • あなたが確認された <link href='ブログ記事のURL' rel='canonical'/> は、おそらく XML (XHTML) 形式で記述された HTML 要素です。

  • 一般的な HTML5 の書き方では <link rel="canonical" href="ブログ記事のURL"> となります。

だそうです。
ならまあいっか、ということで処理は終了、あとはGoogleのクロール待ち。
間違っていないのなら問題はないけど、なぜにXML表記なのだろうか。