FTPなどでhtaccessとrobots.txtにリネームした時に気づかなかったところを修正しました。

htaccessはサブディレクトリの設定が先に適応されますが、robots.txtはサブディレクトリにおいても効果がありません。Joomlaの設定について書いていきます。

robots.txt

robots.txtはGoogleやBingなどのクローラーに対する指示で、これを何も指定していないと無意味なページしかインデックスされなかったり、間違ったまま放置すると何もインデックスされないということが起こります。

Joomlaの場合、デフォルトでは

User-agent: *
Disallow: /administrator/
Disallow: /bin/
Disallow: /cache/
Disallow: /cli/
Disallow: /components/
Disallow: /includes/
Disallow: /installation/
Disallow: /language/
Disallow: /layouts/
Disallow: /libraries/
Disallow: /logs/
Disallow: /modules/
Disallow: /plugins/
Disallow: /tmp/

で設定されています。ユーザーは見に来ないページをDISALLOW(クローラー不許可)にしています。

たいていそのままで大丈夫ですが、タグのリストページなどはインデックスして欲しい、クロールして欲しいことがあります。

その場合は、

Allow: /component/tags/tag/

を設定しておく(SEF有効の場合)と、タグページへはクローラーが到達してくれます。

ルートディレクトリに置く!

robots.txtはルートディレクトリに置く必要があります。サブディレクトリに置いた場合は無効になります。

このサイト「Joomla日記」はURLがhttps://tek2tech.com/joomla/ですから、Joomla!のインストールディレクトリにあったrobots.txtをリネームしても無効です。忘れてそのまま放置してしまっていました・・・

ルートディレクトリにrobots.txtを置いて、

User-agent: *
Disallow: /joomla/administrator/
Disallow: /joomla/bin/
Disallow: /joomla/cache/
Disallow: /joomla/cli/
Disallow: /joomla/components/
以下略

のように/joomlaを先頭に設定しておくと有効になります。

メタタグで設定

各ページにメタタグを置いて設定することもできます。書式は、

<meta name="robots" content="noindex nofollow">

と書くとすべてのクローラーに対してインデックス・クロールを不許可にできます。が、robots.txtでは当該ディレクトリに入れないのに対して、メタタグによる設定では、入った後にインデックス拒否されるので、そこでクロールが終わってしまうかもしれません。robots.txtで設定したほうが良さそうです。

メタタグの使いどころ

個別ページに対して設定することができるので、インデックスしてほしくないページだけに指示を置いておく事ができます。

また、使い所が難しそうですが、content="unavailable_after:(日付)"を設定すると、一定期間後には検索結果から外すことも(Googleだけかもしれませんが)できるようになります。せっかく検索から来てくれる機会があったのに失ってしまうので、代わりのコンテンツにリダイレクトしたほうが良いような気がしてなりません。

—Sponsored link—