Q.
たとえば https://example1.com/ の中の一部のページを https://example2.com/ に移動する時、やっておいた方がいいことは何ですか?それは、やっておかないとかなり影響がでることですか?また簡単にすます方法はありませんか?
A.
ドメイン間でページを移動する際には、SEOやユーザー体験に大きな影響が出る可能性があるため、以下の対策を 必ず行うべきです。放置すると、アクセス数の減少・検索順位の大幅低下などが起こることがあります。
✅ 必ずやっておいた方がいいこと(影響が大きい)
項目 | 内容 | 理由 |
---|---|---|
301リダイレクト | 旧ページ(example1.com)から新ページ(example2.com)へ恒久的なリダイレクトを設定する | 検索エンジンに移転を伝え、被リンクや評価を引き継ぐ |
Search Consoleに「移転通知」 | Google Search Consoleでexample1.comとexample2.comを登録し、「アドレス変更ツール」で通知(※ドメイン全体の移転なら) | Googleに正式なドメイン変更を通知 |
canonicalタグの確認 | 移動後のページにrel="canonical" が正しく設定されているか確認 | 重複コンテンツ判定を避け、評価を集中させる |
リンク修正 | 内部リンク・外部リンク・SNS・メール署名などのURLを新しいドメインに修正 | リンク切れや混乱を防ぐ |
サイトマップの再送信 | 新しいドメインでのXMLサイトマップを作り、Search Consoleに送信 | クロールとインデックスを促進 |
🚀 簡単に済ませる方法(ただし慎重に)
一括301リダイレクト設定
- Apacheなら
.htaccess
でRedirect 301 /oldpage https://example2.com/newpage
など - NginxやCloudflareでも可能
- Apacheなら
DNSやCDNを統合運用
- example1.com→example2.comの移転をドメイン単位で制御することで統一管理
一部のページだけなら「iframe埋め込み」や「クロスリンク」でも
- 簡易的な移設にはなりますが、SEO的な評価は引き継がれません(非推奨)
❗やらないと起こるリスク
- 旧URLが404(Not Found)になる → SEO評価の損失
- 検索結果に重複・古いURLが残る
- ユーザーが迷う、信用低下
- 被リンクからのトラフィックが失われる
まとめ
簡単に済ませる方法はあるが、リダイレクトとSearch Console対応は必須です。とくに一部ページだけの移動はGoogleにとっても曖昧になりやすいため、慎重な移転処理をおすすめします。
必要なら、ApacheやNginxでのリダイレクトの具体例もお出しできます。設定ファイルの環境はわかりますか?
Q.
hugoの静的ページで301を
A.
Hugoで生成された静的サイトを運用している場合、Hugo自体に301リダイレクトの機能はないため、Webサーバー(ApacheやNginx)やCDN(Cloudflareなど)側でリダイレクトを設定する必要があります。
以下に、代表的な3つの方法を紹介します:
✅ 1. Netlifyで運用している場合
Hugo公式でも推奨されているホスティングの一つです。
static/_redirects
ファイルに以下のように記述:
/old-page https://example2.com/new-page 301
- ファイルは
static/
フォルダに置く(ビルド時にルートにコピーされる) 301
は恒久的リダイレクト
✅ 2. Apacheを使っている場合(.htaccess)
.htaccess
ファイルに以下を記述:
Redirect 301 /old-page https://example2.com/new-page
public/
以下に.htaccess
を手動で置くか、ビルド後にコピーRewriteEngine
の設定が不要なシンプルなリダイレクト
✅ 3. Nginxを使っている場合(server block)
Nginxの設定ファイルで:
location = /old-page {
return 301 https://example2.com/new-page;
}
- サーバー管理者権限が必要
hugo
側ではなく、サーバー設定で対応
✅ 4. Cloudflare Pagesなどで運用している場合
_redirects
ファイルが使える(Netlify互換)- または Cloudflare Rules で設定可能
🔁 Hugoの仕組みだけで対応したい場合(疑似的対応)
Hugoでは meta refresh を使った簡易リダイレクトが可能ですが、SEO的には非推奨です:
<!-- layouts/redirect.html -->
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="refresh" content="0; url=https://example2.com/new-page" />
<title>Redirecting...</title>
</head>
<body>
<p>Redirecting to <a href="https://example2.com/new-page">new page</a>...</p>
</body>
</html>
このテンプレートを使って、対象のページに layout: redirect
を指定すればリダイレクトになります。
🎯まとめ
方法 | 推奨度 | コメント |
---|---|---|
.htaccess | ◎ | もっとも確実。共有サーバーでも可 |
_redirects (Netlify) | ◎ | Hugoとの親和性高。Git管理も可能 |
Nginx設定 | ◎ | サーバー権限があれば最適 |
meta refresh | △ | 最終手段。SEO評価が引き継がれない |
ご使用のホスティング環境(Netlify、GitHub Pages + Cloudflare、VPSなど)を教えていただければ、さらに最適な方法を案内できます。どの環境ですか?
Q.
.htaccess 内で Redirect を記述する位置は最初とか最後とか決まりはありますか?.htaccess を設置できるのはルートディレクトリのみですか?
A.
.htaccessファイルにおける Redirect
の記述にはある程度のルールと推奨位置があります。以下に詳しく解説します。
✅ 1. Redirect
の記述位置:できれば先頭付近が安全
.htaccess
内の 上から順に処理されるため、Redirect
はできるだけ 他の記述の前(特にRewriteRule
の前)に書くのが安全です。- 特に
mod_rewrite
のルールと混在する場合、Redirect
がRewriteEngine On
の下にあると処理順や意図と違う動作になることがあります。
📌 推奨構成(例):
# 301 Redirects – 最初に書く
Redirect 301 /old-page https://example2.com/new-page
# 以下 RewriteRule など
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule (.*) https://www.example.com/$1 [R=301,L]
✅ 2. .htaccess を設置できる場所:原則は任意ディレクトリ
.htaccess
はルートディレクトリ以外にも置けます。- ただし、その
.htaccess
が置かれたディレクトリ以下にしか影響しません。
例:
/public_html/.htaccess ← サイト全体に影響
/public_html/blog/.htaccess ← /blog 以下にのみ影響
Redirect
の対象がルート配下のURL(例:/old-page
)であれば、ルートディレクトリに置く必要があります。- サーバーの設定で
.htaccess
の使用が無効化されている場合もあるので注意(AllowOverride
の設定)。
⚠️ 注意点
Redirect
はmod_alias
モジュールの機能です。多くのApacheでは標準で有効ですが、まれに無効化されているサーバーもあります。.htaccess
は毎リクエスト処理されるので、リダイレクト数が多い場合は速度や負荷に注意。
✅まとめ
項目 | 内容 |
---|---|
記述位置 | .htaccess の先頭(Rewriteルールより前)が安全 |
設置場所 | ルート以外にも可。ただし、影響範囲はそのディレクトリ以下のみ |
モジュール | mod_alias が有効であることを確認 |
ご利用中のサーバー(共有レンタルサーバー、VPS、Xserver、さくらなど)がわかれば、さらに具体的にアドバイスできます。設置環境は何でしょうか?
Q.
コアサーバーです。
A.
ありがとうございます。**コアサーバー(CORESERVER)**をご利用の場合、.htaccessを使ったリダイレクトは問題なく可能です。以下に、コアサーバーでの最適な設定方法をまとめます。
✅ コアサーバーでの .htaccess
によるリダイレクト設定
🔹 記述場所・設置場所
.htaccess
は、ドメイン直下のルートディレクトリ(例:public_html/
やhtml/
など)に置くことで、サイト全体に影響させられます。- たとえば
/html/.htaccess
に以下のように記述すればOKです。
# 旧ページから新ドメインへリダイレクト
Redirect 301 /old-page https://example2.com/new-page
- これは
/old-page
にアクセスしたときに、https://example2.com/new-page
に301リダイレクトします。
🔹 複数ページをまとめてリダイレクトしたい場合
旧ドメイン全体を新ドメインに移すなら:
RedirectMatch 301 ^/(.*)$ https://example2.com/$1
このルールは、
https://example1.com/foo/bar
→https://example2.com/foo/bar
- といった形でディレクトリ構造を維持したまま移行可能です。
🔹 .htaccess
の注意点(コアサーバー特有)
項目 | 内容 |
---|---|
ファイル名 | 必ず .htaccess (拡張子なし)で、BOMなしUTF-8が望ましい |
アップロード | FTPやファイルマネージャーで隠しファイルの表示をONにしないと見えないことがあります |
上書きの優先順位 | .htaccess に記述したリダイレクトは、WordPressのRewriteルールより前に書くと確実に動作します |
サポート | mod_alias(Redirect)とmod_rewrite(RewriteRule)はコアサーバーで利用可能です(公式で明記) |
✅ テストのポイント
- ブラウザでアクセスして正しくリダイレクトされるか確認
curl -I https://example1.com/old-page
で HTTPステータスコードが301
になっているか確認
🔚 まとめ:コアサーバー用チェックリスト
項目 | 内容 |
---|---|
ファイル設置 | /html/.htaccess に設置(ルート) |
内容 | Redirect 301 /旧パス https://新ドメイン/新パス |
優先度 | RewriteEngine より上に書く |
テスト | リダイレクト先確認+HTTPステータス確認(301) |
必要であれば、コアサーバー用の .htaccess
テンプレートをまとめてご提供することも可能です。何ページ分の移動を想定していますか?