http-equivとは?meta refreshの書き方・301との違いをコードで解説

http-equivは、HTMLのmeta要素で、ブラウザに対する一部の処理指示を指定する属性です。代表的な用途に、一定時間後の再読み込みや転送を行うrefreshがあります。
ただし、任意のHTTPレスポンスヘッダーをHTMLで代用できるわけではありません。また、meta refreshを書いても、HTTPステータスコードが301になるわけではありません。この記事では、基本の書き方と、リダイレクト方式を選ぶ際の違いを解説します。
http-equivの基本構文
meta要素のhttp-equivに指示の種類、contentに値を指定し、HTMLのhead内に記述します。たとえば次は、指定したURLに転送する例です。
<meta http-equiv="refresh" content="0; url=https://example.com/new-page">
http-equiv="refresh"が再読み込み・転送の指示です。contentの先頭の数値は待ち時間を秒単位で表し、url=の後に転送先を記述します。example.comは説明用のドメインなので、実際の転送先に置き換えてください。
http-equivの名前はHTTP equivalentに由来しますが、HTTPヘッダーそのものを書き換える機能ではありません。ブラウザが解釈する値は限られるため、目的の設定が対応しているかを確認して使います。
meta refreshの書き方:0秒・遅延・再読み込み
0秒で別のページへ転送する
<!doctype html>
<html lang="ja">
<head>
<meta charset="utf-8">
<meta http-equiv="refresh" content="0; url=https://example.com/new-page">
<title>ページを移転しました</title>
</head>
<body>
<p>移動しない場合は、<a href="https://example.com/new-page">新しいページ</a>を開いてください。</p>
</body></html>
0秒は、ページが読み込まれた時点で転送を開始する指定です。サーバー側の転送設定が利用できない場合の代替手段として検討できます。転送先への通常のリンクも置くと、自動で移動できない環境でも行き先を確認できます。
5秒後に別のページへ転送する
<meta http-equiv="refresh" content="5; url=https://example.com/new-page">
これは5秒の待ち時間を指定する例です。案内文を読んでもらう意図があっても、利用者によって読む速さは異なります。入力中や読み上げ中にページが切り替わると操作を妨げるため、待ち時間のある自動転送を安易に使わず、通常のリンクで移動してもらう方法も検討してください。
同じページを再読み込みする
<meta http-equiv="refresh" content="60">
URLを省略すると、指定した時間後に現在のページを再読み込みします。更新監視などの用途が考えられますが、フォームの入力内容や閲覧位置が失われないか、不要な通信が繰り返されないかを確認します。一般的な記事ページには通常必要ありません。
meta refreshと301・302リダイレクトの違い
方式 | 処理する場所 | Google検索での扱い・用途 |
|---|---|---|
301・308 | サーバー側のHTTPレスポンス | 恒久的な移転を示す |
302・307 | サーバー側のHTTPレスポンス | 一時的な転送を示す |
即時のmeta refresh | 受け取ったHTMLをブラウザが解釈 | Googleは恒久的な転送と解釈 |
遅延のmeta refresh | 受け取ったHTMLをブラウザが解釈 | Googleは一時的な転送と解釈 |
Google公式のリダイレクト案内では、即時のmeta refreshと、遅延のあるmeta refreshを区別しています。「0秒にすると、それだけでSEOペナルティを受ける」という説明は適切ではありません。
恒久的なサイト移転でサーバー設定を変更できるなら、301や308を優先して検討します。HTMLを読み込んでから転送する方式との違いを理解し、ホスティングやCMSが提供するリダイレクト機能を確認しましょう。利用者を欺くような転送が問題になることと、転送の待ち時間は別の論点です。
転送を設定しただけで検索順位が保証されるわけではありません。旧ページと新ページの対応関係、内部リンク、サイトマップ、canonicalなども整える必要があります。
http-equivで見かける値と現在の使い方
指定 | 用途・注意点 |
|---|---|
refresh | 再読み込みや転送。待ち時間と転送先を確認する |
content-type | 文字コード指定に使われる旧来の書き方。新しく書くならmeta charsetが簡潔 |
Content-Security-Policy | 対応するセキュリティポリシーを指定。HTTPヘッダー版と機能範囲が同じではない |
x-ua-compatible | Internet Explorer向けの過去の互換性指定。現在の一般的なブラウザ向けの新規実装では通常不要 |
文字コードはmeta charsetで指定する
<meta charset="utf-8">
HTML文書の文字コードを指定するなら、この形式で記述できます。実際のファイルの保存形式や、サーバーのContent-Typeと食い違っていないかも確認します。文字化けの原因がファイル自体にある場合は、meta要素だけを変えても解決しません。
CSPはmetaだけで設定が完結するとは限らない
Content Security Policy(CSP)には、meta要素から指定できるものと、HTTPレスポンスヘッダーで扱う必要があるものがあります。たとえば、frame-ancestorsはmetaによる配信では利用できません。別サイトからの埋め込み制御を目的に、metaへ書くだけで対応したつもりにならないようにしてください。
既存サイトのCSPを変更すると、外部スクリプトや画像などが読み込まれなくなる可能性があります。必要な配信元を確認し、検証環境で動作を確認してから適用します。対応する値はMDNのhttp-equivリファレンスなどで確認できます。
転送されない・想定と違う場合のチェックリスト
- 設置位置:HTMLのhead内にあり、CMSがmeta要素を削除していないか。
- 記述:引用符、セミコロン、urlの綴り、転送先URLが正しいか。
- 公開状態:下書きやプレビューだけを変更していないか。公開HTMLに反映されているか。
- 別の転送:サーバー設定、CMS、JavaScriptなどの転送が競合していないか。
- 循環:旧ページから新ページ、新ページから旧ページへ戻るループがないか。
- 転送先:新ページが正常に開き、404やログイン要求になっていないか。
ブラウザの開発者ツールでNetworkを確認すると、HTTPステータスによる転送なのか、HTMLを取得した後の転送なのかを切り分けられます。meta refreshを使うページが200を返していても、metaの指定だけで301に変わるわけではない点を思い出してください。
サイト移転時は転送後の確認まで行う
変更前に旧URLと新URLの対応表をつくり、代表的なページから検証します。無関係なページをすべてトップページへ送ると、訪問者が必要な情報に到達できません。内容が対応するページへ案内し、内部リンクも新URLに更新します。
公開後はSearch Consoleで旧URLと新URLの状態を確認し、意図したページが検索対象になっているかを追います。あわせてSEOチェックリストを使うと、転送以外の確認漏れを減らせます。
公式情報の確認日:2026年9月22日。




