こんにちは、ヨシハルです。
以下のように、管理しているサイトURLでwwwあり・wwwなし、またはURLのあとにindex.html(php)のあり・なしでURLが複数存在する場合は、URLの統一を行ったほうが良いです。
Googleは内容が同じでも、URLが異なると別ページとみなして評価してしまいますので、本来得られるはずの評価が分散されてしまいます。
URLの表示を統一することを「URLの正規化」と言います。
.htaccessの用意
.htaccessファイルはドメイン直下にありますので、既存のサイトにある.htaccessファイルをダウンロードして設定を追記します。
.htaccessがない場合はテキストエディタで作成します。
windowsでは「メモ帳」、Macでは「テキストエディット」でも作成できます。
必要な設定を記述したら「.htaccess」の名前で保存すればOKです。
.htaccessの基本
<IfModule mod_rewrite.c>
RewriteEngine on
<リダイレクト処理を記述>
</IfModule>
<IfModule mod_rewrite.c>・・・</IfModule>
こちらは利用しているサーバーで「もしmod_rewriteが利用できるのであれば」というif文になります。mod_rewriteが利用できない場合、エラーになってしまいますので上記のタグでまず括りましょう。
RewriteEngine Onこちらはリダイレクトの機能を有効化するための記述になります。
wwwありに統一する
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
wwwなしに統一する
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
上記の書き方であればドメイン名に変数をしようしていますので、URLを変更する必要がないので、どのサイトでも汎用的に使用することができます。
wwwのあり・なしはSEOには影響ないのでどちらでも構いません。
あえて言えば、URLは少しでも短いほうが入力しやすかったりしますので「なし」の方が良いです。
httpsへリダイレクト
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
index.html(php)なしに統一
RewriteCond %{THE_REQUEST} ^.*/index.(html|php)
RewriteRule ^(.*)index.(html|php)$ https://%{HTTP_HOST}/$1 [R=301,L]
.htaccess表記例
wwwなし・httpsへリダイレクト・index.html(php)なしに統一の例になります。
また、WordPressを使用している場合、WordPressの表記がありますので、WordPressの表記より上に記述しましょう。
<IfModule mod_rewrite.c>
RewriteEngine on
# wwwなし
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
# httpsへリダイレクト
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# index.html(php)なしに統一
RewriteCond %{THE_REQUEST} ^.*/index.(html|php)
RewriteRule ^(.*)index.(html|php)$ https://%{HTTP_HOST}/$1 [R=301,L]
</IfModule>
アップロードする際の注意
.htaccessをアップロードする前に必ず既存の.htaccessのバックアップを取っておきましょう。
ちょっとした記述ミスでサイトが表示されない場合もありますので、すぐに元に戻せるようにしておいたほうが安心です。