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 テンプレートをまとめてご提供することも可能です。何ページ分の移動を想定していますか?