メインコンテンツへ
短.be

URL フラグメント

URL の「#」以降の部分。ページ内の特定セクションへの直接リンクや、SPA のルーティングに使われる。

2026 年 10 月 16 日 / 約 2 分で読めます

URL 短縮

URL フラグメント (Fragment Identifier、ハッシュ) とは、URL の「#」記号以降の部分のことです。たとえば「https://example.com/page#section2」の「#section2」がフラグメントです。ブラウザーはフラグメントを使って、ページ内の特定の要素 (id 属性が一致する要素) まで自動的にスクロールします。RFC 3986 の 3.5 節はフラグメントを、取得したリソースの内側にある二次的なリソースを間接的に指し示すものと定義しており、その意味の解釈は対象のメディア型に依存するとしています。HTML で id が一致する要素まで移動するのも、この解釈にあたります。id が付いていない箇所を指したい場合には、#:~:text= のあとに本文の文字列そのものを書くテキストフラグメントという書き方もあります。ただしこれは利用者の操作による遷移でのみ働き、対応していないブラウザーや、指定した文字列が本文に見つからない場合は、フラグメント全体が無視されてページの先頭が開かれます。

フラグメントの重要な特性として、サーバーには送信されないという点があります。ブラウザーが「https://example.com/page#section2」にアクセスする際、サーバーに送られるリクエストは「https://example.com/page」のみで、「#section2」はブラウザー側でのみ処理されます。

この特性は短縮 URL の扱いにも関わりますが、フラグメントが失われるとは限りません。HTTP の仕様 (RFC 9110 の 10.2.2 節) は、リダイレクト応答の Location にフラグメントが含まれていない場合、利用者エージェントは元の参照のフラグメントを引き継いだものとしてリダイレクトを処理しなければならないと定めています。つまり「https://example.com/abc#section2」を開いたとき、サーバーが受け取るのは「/abc」だけですが、ブラウザーは転送先に「#section2」を引き継ぎます。引き継がれないのは転送先の URL 自身がフラグメントを持っている場合で、そのときは転送先のフラグメントが優先されます。もう一つ注意したいのは、フラグメントが元のリンクから別のサイトへそのまま渡る点です。同じ仕様の 17.11 節は、これが一方のサイトのフラグメントを別のサイトへ開示する結果になり得るとして、フラグメントに個人に関わる情報を入れているなら、他サイトへのリダイレクトでは (空でもよい) フラグメント部分を付けて引き継ぎを止めるべきだとしています。なお、元の URL にフラグメントを含めて短縮する場合は、保存の時点でその部分を切り落とすサービスもあるため、生成後に実際に開いて確かめるのが確実です。

SPA (Single Page Application) では、フラグメントがルーティングに使われることがあります。「https://app.example.com/#/dashboard」「https://app.example.com/#/settings」のように、フラグメントでページの状態を管理するハッシュルーティングです。この書き方はサーバー側の設定なしで動く手軽さがありますが、Google の URL 構造に関するガイドは、Google 検索は URL のフラグメントを基本的にサポートしていないとして、ページの内容を切り替える目的でフラグメントを使わず History API を使うよう勧めています。JavaScript の SEO に関する文書でも、フラグメントで内容を読み込むハッシュ形式のナビゲーションは避けるべき書き方として挙げられています。History API を使ったパスベースのルーティング (/dashboard、/settings) にする場合は、どの URL で直接開かれてもアプリを返すよう、サーバー側の設定が必要です。

SEO の観点では、フラグメントの違いで内容を切り替える設計は避けるのが無難です。前述のとおり Google は検索が URL のフラグメントを基本的にサポートしないと明言しているため、「example.com/page」と「example.com/page#section2」を別々のページとして扱わせることは期待できません。ページ内の特定セクションを検索結果で独立して扱わせたい場合は、フラグメントではなく別の URL (サブページ) として設計します。

この記事は役に立ちましたか?

関連用語

URL パラメーター

URL の末尾に「?」以降で付加されるキーと値のペア。検索条件やトラッキング情報の受け渡しに使われる。

URL エンコーディング

URL に使用できない文字をパーセント記号と 16 進数で表現する変換方式。日本語や特殊文字を URL に含める際に必須。

パーマリンク

コンテンツに対して恒久的に有効な固定 URL 。ブログ記事や Web ページの永続的な参照先として機能する。

スラッグ

URL のパス部分でリソースを識別する人間が読める文字列。 SEO とユーザビリティの両面で重要な URL 設計要素。

URL 正規化

表記が異なるが同じリソースを指す複数の URL を、統一された標準形式に変換する処理。重複コンテンツの防止に不可欠。

パッセージインデキシング

Google がページ全体の関連性に加えて、ページ内の特定の段落 (パッセージ) の関連性も評価する仕組み。

関連記事

URL 短縮の仕組み - 301 リダイレクトと Base62 エンコードを図解で解説

URL 短縮サービスの技術的な仕組みを図解で解説。301 リダイレクト、Base62 エンコード、データベース設計の基本を初心者にもわかりやすく紹介します。

美しい URL の条件 - デザイナーの視点で考える URL の美学

URL にも「美しさ」がある。読みやすさ、覚えやすさ、ブランドとの調和など、デザインの観点から理想的な URL の条件を考察します。短縮 URL のスラッグ設計にも応用できる美学の原則を紹介。

URL が長くなる理由 - パーツごとに分解して仕組みを解説

Web サイトの URL がやたら長くなる理由を、住所にたとえてわかりやすく解説。プロトコル / ドメイン / パス / パラメーターの各パーツの役割と短縮方法を紹介します。

よくある質問

フラグメントとクエリパラメーターの違いは?
クエリパラメーター (?key=value) はサーバーに送信され、サーバー側の処理に使われます。フラグメント (#section) はサーバーに送信されず、ブラウザー側でのみ処理されます。この違いは短縮 URL のリダイレクト処理に影響します。
短縮 URL でフラグメントは保持されますか?
短縮 URL の末尾に自分でフラグメントを付けた場合は、HTTP の仕様 (RFC 9110 の 10.2.2 節) により、転送先が自分のフラグメントを持たないならブラウザーが元のフラグメントを引き継ぎます。一方、元の URL にフラグメントを含めて短縮した場合、その部分を保存するかどうかはサービスの実装によります。重要な場合は、生成後に実際に開いて確かめてください。
フラグメントは SEO に影響しますか?
Google は検索が URL のフラグメントを基本的にサポートしないと明言しており、フラグメントの違いが別のページとして評価されることは期待できません。ただし、目次からのジャンプのようなページ内リンクは、読み手が目的の箇所にたどり着きやすくなります。これはフラグメント自体が評価されるという話ではなく、読みやすさの改善として意味があるものです。

知識を、実際のリンクで。

無料で URL を短縮する