.htaccess
による URL の最適化は、検索エンジンに正しく評価されるための第一歩です。このページでは、URLを整えるためのリライトルールと、重複コンテンツ回避・評価集中のための基本設定を解説します。
1. URL統一による評価集約(www有無・HTTPS化)
SEOにおいて、同じコンテンツが複数のURLで表示されることは「重複コンテンツ」としてマイナス評価の対象になります。
そのため、wwwあり/なしの統一、HTTP → HTTPSのリダイレクト を .htaccess
で明確に設定しておきましょう。
例1:非www → www に統一
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
例2:HTTP → HTTPS に強制
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
2. クエリパラメータを含むURLのリライト
よくある非SEO型のURL:
https://example.com/product.php?id=123
リライト後の理想的なURL:
https://example.com/product/123
対応 .htaccess
例:
RewriteEngine On
RewriteRule ^product/([0-9]+)$ product.php?id=$1 [L,QSA]
このように「意味のあるURLパス」にすることで、検索エンジンとユーザーの両方に優しいサイト設計になります。
3. カテゴリや言語別URLの最適化
ブログやマルチ言語サイトでは、カテゴリや言語を明示したURL が好まれます。
カテゴリ別:
https://example.com/category/news
→ category.php?type=news
RewriteRule ^category/([a-zA-Z0-9_-]+)$ category.php?type=$1 [L,QSA]
言語別ページ切り替え:
https://example.com/en/about → about.php?lang=en
RewriteRule ^(en|ja)/about$ about.php?lang=$1 [L,QSA]
4. 落とし穴と注意点
症状 | 原因 | 対策 |
---|---|---|
無限ループが発生する | RewriteCond の不備 | RewriteCond %{HTTP_HOST} !^www\. を忘れずに記述 |
リダイレクトが2重になる | すでにリライト済みのURLが対象になっている | 変数 %{HTTPS} や %{REQUEST_URI} の確認が必要 |
Google Search Console に警告が出る | canonicalと矛盾 | リライトと <link rel="canonical"> の整合を確認 |
5. まとめ
.htaccess
のリライトで 評価URLを一本化 → SEO効果が上がる- 動的URL → 読みやすいURL に変換することで クリック率も向上
- HTTPS化、www統一、カテゴリ構造の整理 は最低限設定をおすすめ