URL フラグメント (Fragment Identifier、ハッシュ) とは、URL の「#」記号以降の部分のことです。たとえば「https://example.com/page#section2」の「#section2」がフラグメントです。ブラウザはフラグメントを使って、ページ内の特定の要素 (id 属性が一致する要素) まで自動的にスクロールします。
フラグメントの重要な特性として、サーバーには送信されないという点があります。ブラウザが「https://example.com/page#section2」にアクセスする際、サーバーに送られるリクエストは「https://example.com/page」のみで、「#section2」はブラウザ側でのみ処理されます。
この特性は短縮 URL サービスに影響します。短縮 URL にフラグメントを含めた場合 (例: https://miji.be/abc#section2)、短縮 URL サービスのサーバーはフラグメント部分を受け取れないため、リダイレクト先にフラグメントを引き継げない場合があります。元の URL にフラグメントを含めて短縮する場合は、サービスがフラグメントを正しく保持するか事前に確認が必要です。
SPA (Single Page Application) では、フラグメントがルーティングに使われることがあります。「https://app.example.com/#/dashboard」「https://app.example.com/#/settings」のように、フラグメントでページの状態を管理するハッシュルーティングです。ただし、現在は History API を使ったパスベースのルーティング (/dashboard、/settings) が主流になっています。
SEO の観点では、Google はフラグメントを無視してページをインデックスします。つまり「/page」と「/page#section2」は同じページとして扱われます。ページ内の特定セクションを検索結果に表示させたい場合は、フラグメントではなく別の URL (サブページ) として設計する方が効果的です。関連書籍は Amazon でも探せます。