44歳で退職から会社設立?!事の顛末を綴るブログ

Multisite Language Switcherでgoogleのhreflangを満足させてみた(前編)

2015.03.20

Multisite Language Switcherでgoogleのhreflangを満足させてみた(前編) はコメントを受け付けていません。

雑記帳アイキャッチ画像

この記事を読むのに必要な時間は約 7 分です。

あんまりwordpressネタは書きたくないのです。理由は簡単、分からないから。分からないのに使っているので、正しいかどうか判断できずに使っています。でも今回これについて書こうと思っているのは、後で見返すためです。何をしたか記録しておかないと、修正もできませんので。まさにブログとして真っ当な使い方だと思っているのです。

さて、一人で会社のサービスサイトを製作しているのですが、多言語化しようと考えています。まずはwordpressを使います。何故ってテーマが豊富だから(安直)。デザイン能力が無いので、コンテンツは考えられても配置ができないのです。もう一つプログラムする能力が無い。情報の多いものを使うっていうのが正攻法でしょう。最大の理由はお金がないこと。これに尽きます。プロに頼めばもっと良いものができるだろうに...。

さて、多言語化は以下の条件で行うこととしました。

WordPressでマルチサイト
言語選択サイト:www.aaa.com
日本語サイト:www.aaa.com/ja/
英語サイト:www.aaa.com/en/

とサブディレクトリ型でマルチサイトを構築します。だってSSL証明書が1枚で済むから。マルチサイトの構築は以下を参考にしました。
WordPress のマルチサイトを使った2ヶ国語のサイトの作成
WordPressのマルチサイトの設定方法|1つのWPで複数のブログを管理しよう(?ver.4.0)
wordpressのマルチサイトで【参加サイトに表示されない】

テーマは言語選択サイト含め全て子テーマを使用。子テーマの構築は以下を参考にしました。
【簡単! CSS @import 未使用】WP 子テーマの better な作り方
子テーマで親テーマのスタイルシートを読み込む2つの方法

子サイトのメディアにSSLが付いてこないので以下を参考にしました。
WordPress をSSL運用すると管理画面でアップロードした画像が見れない

多言語プラグインはMultisite Language Switcherを使用

ここが今回の話題の中心です。このプラグインは日本語で書かれたwww.aaa.com/ja/aaa.htmlに相当する英語で書かれたwww.aaa.com/en/bbb.htmlに内部でリンクさせることができます。

翻訳するのは自分の仕事ですが、日本語をメインにサイト制作し、そっくり同じ内容を多言語で展開するにはもってこいの機能を有しています。私は記事単位のリンクを使用するつもりがないので、着目すべきは次の機能です。

「ブログの言語と管理画面の言語を使い分けられる」

これスゴク便利ですよね。www.aaa.com/en/は一般設定で英語を選択すると管理画面が英語になっちゃう。これだと日本人の私は管理しづらい。ましてや、マレー語、インドネシア語となるとお手上げになります。ところが、一般設定で日本語を設定しても、このプラグインの管理画面でブログ言語はマレー語、管理画面の言語は日本語というように、使い分けられる設定が可能なのです。助かる~!

まぁ、インストールは簡単です。以下のサイトをチラ見させてもらいました。
Multisite Language Switcher 使い方 インストール

さて、ここで問題発生です。サイトの多言語化をしても、その言語の地域で閲覧してもらわなくては意味がありません。その為には検索エンジンに拾ってもらい、現地向け検索サイトでヒットしてもらわなくてはなりません。そこでgoogleさんの出番です。
言語や地域の URL に hreflang を使用する
最終形は以下のとおり。
言語選択サイトは特定の地域や言語を対象としていないので、
<link rel=”alternate” hreflang=”x-default” href=”http://www.aaa.com/” />

日本語サイトは
<link rel=”alternate” hreflang=”ja” href=”http://www.aaa.com/ja/” />

英語サイトは
<link rel=”alternate” hreflang=”en” href=”http://www.aaa.com/en/” />

としたいのです。

ところが実際に出力されたのは、
<link rel=”alternate” hreflang=”ja” href=”http://www.aaa.com” />
<link rel=”alternate” hreflang=”ja” href=”http://www.aaa.com/ja” />
<link rel=”alternate” hreflang=”en_GB” href=”http://www.aaa.com/en” />

問題点1:全てのURLの末尾に”/”が無い。これはgoogle的にダメそうです。
問題点2:x-defaultが表示されていない。そりゃそうです。このプラグインにそんな設定は無いんですから。jaと表示されているのはプラグインでブログ言語を日本語に設定しているからです。
問題点3:en-gbじゃなくen_GBと表示されている。google的に言語表記は決まっているようで。これじゃダメみたいです。
問題点4:enだけで良いのにen_GBと表示されている。GBはイギリス、USはアメリカなどを示すのですが、wordpressには単純にenという言語が無いのです。今回は地域指定したくない。

いっそのこと、このプラグインでの出力をやめちゃえばいいんです。

remove_action( 'wp_head', 'msls_head' );

これを子テーマに設置した各function.phpに追記してやればいいってことです。あぁすっきり。

でもね、つまり各子テーマのheader.phpに言語が追加される度に上のタグを全て書き換え更新するってことなのですよ。

それはイヤだー!

このプラグインを使うと、多言語子サイトが追加される度に、他の子サイトのheadに自動でhreflangが追加されていくのですよ。さすがマルチサイト対応!

ということで、順番に問題解決していきます。ここまで書いてちょっと長くなったので、後編につづきます。

関連記事

コメントは利用できません。