Search Engine Friendly URLs

Googleが推奨するURLの構造を目指し、Joomla!のSearch Engine Friendly URLsという機能を利用して、シンプルで分かりやすいURLに変更することとしました。

概要

  •  Google 検索における URL 構造のベスト プラクティス | Documentation | Google Search Central
    • Googleが「サイトが効率的にクロールされるように」推奨しているURL構造が説明されています
  • Joomla! CoreにはSearch Engine Friendly(SEF) URLsという機能が用意されています
  •  Search Engine Friendly URLs | Joomla! Documentation
  • 人間と検索エンジンが理解しやすいURLを生成する機能になります
  • SEFのデフォルト設定では、記事のURLにindex.phpが含まれます
  • これをGlobal Configulationの設定と.htaccessの用意で簡単にindex.phpをURLから削除することができます
  • また、これまでのURLのルールを変更し、日付-時刻を元にしたエイリアスから英文を元にしたエイリアスに変更することとしました

URLからindex.phpを削除する手順

.htaccessの用意 (Apacheの場合)

  •  Enabling Search Engine Friendly (SEF) URLs | Joomla! Documentation
  • WebサーバーがApacheの場合、Joomla!インストール時にドキュメントルートに保存されたhtaccessを.htaccessにリネームします
  • 通常、Joomla!のインストール直後に行う作業ですので、当方サーバーでは作業済でした
$ sudo mv /var/www/html/htaccess.txt /var/www/html/.htaccess

Global Configlationの設定

  1. System > Setup > Global Configlationをクリックします
    Global Configlationをクリック
  2. Site tab > SEO blkへスクロールします
  3. Search Engine Friendly Urls: Yes (デフォルト)を確認します
    Search Engine Friendly Urls: Yesを確認
  4. Use URL Rewriting: Yesに変更します
    Use URL Rewriting: Yesに変更
    • オプションの下部にApache等サーバーでの作業が促されています
    • また、さらなる設定はSystem-SEP Pluginを確認するよう案内があります
  5. Save & Closeをクリックします
Search Engine Friendly UrlsオプションとUse URL Rewritingオプションの組み合わせによる挙動
  • Search Engine Friendly UrlsオプションとUse URL Rewritingオプションの組み合わせにより、次のとおりURLが出力されます
  • なお、上記設定変更後も次の(A)や(B)のURLでアクセスしても(C)のURLにリダイレクトされるため、Search Engineが設定変更前のURLを表示していても問題ありません
Search Engine Friendly Urls - No ...(A)
Use URL Rewritingオプションは非表示となります
index.phpにURLパラメータ(クエリ文字列)が続きます
ex: https://f-labs.jp/?option=com_content&view=article&id=47:open-graph-protocol-plugin&catid=16&Itemid=110
理解しにくいURLと言えます
Search Engine Friendly Urls - Yes / Use URL Rewriting - No ...(B)
index.php/にカテゴリとエイリアスが続きます
ex: https://f-labs.jp/index.php/joomla/open-graph-protocol-plugin
デフォルトの設定です
Search Engine Friendly Urls - Yes / Use URL Rewriting - Yes ...(C)
index.phpが削除され、ドメインの後ろはカテゴリとエイリアスのみとなります
ex: https://f-labs.jp/joomla/open-graph-protocol-plugin
最もシンプルで理解しやすいURLになります

System - SEF Plugin

  • Joomla! CoreのSearch Engine Friendly UrlsをArticle内のリンクもサポートするプラグインになります
    System - SEF Plugin
  • このPluginはデフォルトで有効の状態です
  • Article内のMediaリンクにも影響するため、必ず有効である必要があります

設定変更によるトラブル

  • 上記作業後、FAVICONがJoomla!のに戻ってしまっていることに気づきました
  • 他にもprism.jsなども動作しておりません
  • 確認したところ、Child TemplateのCassiopeia_Extendedが呼び出しているindex.phpがParent Templateのindex.phpに戻ってしまっていました
  • 当サイトではChild TemplateのCassiopeia_childのindex.phpを呼び出していますので、元に戻して改善しました
    Child TemplateのCassiopeia_childのindex.phpを呼び出し

当サイトのURLは果たしてSearch Engine Friendly Urlsか?

これまでの当サイトのURL

  • 当サイトのURLはこれまで次のようなルールとしておりました
    • https://f-labs.jp/category_name/yyyy-mm-dd-hh-mm-ss
    • yyyy-mm-dd-hh-mm-ssはPublished Date-Timeです
  • 即ち、Articleのエイリアスをyyyy-mm-dd-hh-mm-ssとしているのですが、望ましいエイリアスは人間が理解できる文字列であるべきとされています

Auto Generate Alias from Title

  • Joomla! Coreにはこのエイリアスをタイトルから自動生成する機能が用意されています
  • この自動生成機能は、欧文の場合大文字を小文字に変換し、単語をハイフンで接続するので、そのまま問題なく使用できます
  • また、URL使用不可の記号は自動的に削除してくれます
  • ただし、日本語の場合は上手くいきません
  • 漢字はおそらく中国語(簡体字なのか繁体字なのかも判りませんが)の発音に変換され、ひらがなはローマ字読みになり、結果意味不明な文字列になります
    • Search Engine FriendlyなURLに変更 search-engine-friendlynaurlni-bian-geng
  • 日本語のエイリアスを有効にするオプションもありますが、SEF Urlsとは思えません
    • System > Setup > Global Configlation > Site tab > SEO blk > Unicord Aliases: Yes
    • ブラウザのアドレスバーには日本語表示されますが、実態はURLエンコードされた長いURLとなってしまいます
      • Search Engine FriendlyなURLに変更 search-engine-friendly%E3%81%AAurl%E3%81%AB%E5%A4%89%E6%9B%B4
  • そこで最も簡便で一意となるPublished Date-Timeを選択した次第です

今後の当サイトのURL

  • ただし、折角学習したわけですから、エイリアスは人間が理解できる文字列とする方針に変更することとしました
    • その結果、これまでのGoogle Searchの評価もリセット(又はマイナス評価?)され、再クロールされるまではリンク切れ(404 Not Found Error)も発生するわけですが、今後も当サイトを続けることを考慮しての判断です
    • Joomla!にはRedirects Pluginという、期限切れ(無効な)URLから新しいURLへのリダイレクトを管理するPluginが用意されています
      • この機能を利用すれば、Google Searchの評価を引き継いで、新しいURLへ誘導することができます
      • 別稿を作成の予定です

新たな当サイトのURL