PDFリンクでファビコンが変わる問題の解決方法【favicon.ico】

公開日
最終更新日
PDFファイルのリンクにもファビコンを表示させたい

オリジナルのファビコンをきちんと設定したのに、PDFファイルへのリンクを開いたときだけ、WordPressのデフォルトのファビコンが表示されてしまう——地味に気になるポイントです。

結論から言うと、favicon.icoというファイルをサイトのルートディレクトリに設置するだけで、PDFファイルのリンクにもオリジナルのファビコンが表示されるようになります。この記事では、なぜPDFだけファビコンが変わってしまうのかという理由と、その解決法を解説します。

なぜPDFだとファビコンが変わるのか

WordPressで設定するファビコン(サイトアイコン)は、各ページのHTMLの<head>内に<link rel="icon">という形で読み込まれています。ブラウザはこの記述を見て、「このページのファビコンはこれ」と表示しています。

ところが、PDFファイルはHTMLを介さず、ファイルそのものが直接ブラウザに表示されます。つまり、ファビコンを指定する<head><link>が存在しません。指定がないと、ブラウザは昔ながらの決まりに従い、サイトのルートにあるfavicon.icoを探して表示しようとします。

ルートにfavicon.icoがないと、ブラウザはファビコンを見つけられず、デフォルトのアイコン(環境によってはWordPress関連のもの)が表示されてしまう、というわけです。原因は「PDFにはファビコンの指定がなく、ルートのfavicon.icoも置かれていない」ことにあります。

解決法:favicon.ico をルートに置く

解決はシンプルです。favicon.icoという名前のファビコンファイルを用意し、サイトのルートディレクトリ(トップの階層)に設置するだけです。

これで、ブラウザがファビコンの指定を見つけられなかったとき(=PDFを直接開いたときなど)でも、ルートのfavicon.icoが使われるようになり、オリジナルのファビコンが表示されます。HTMLページ側はこれまでどおりWordPressの設定が使われるため、サイト全体でファビコンが統一されます。

この挙動はPDFに限りません。画像ファイルやテキストファイルなど、HTMLを介さず直接ブラウザに表示されるファイル全般で、同じように<link>による指定が効かず、ルートのfavicon.icoが参照されます。ルートに1つ置いておけば、これらすべてをまとめてカバーできるわけです。

補足として、WordPressの「サイトアイコン」機能で設定したファビコンは各ページに自動で読み込まれますが、これはあくまでHTMLページ向けの仕組みです。ルートのfavicon.icoを別途置いておくことで、HTMLページと直接表示されるファイルの両方をカバーできる、と考えると分かりやすいでしょう。

favicon.ico の作り方

favicon.icoは、.ico形式のアイコンファイルです。手元にあるロゴやアイコンの画像(PNGなど)から、ファビコン作成用のWebサービスやツールでICO形式に変換して用意します。サイズは16×16や32×32ピクセルなどが一般的です。

作成したfavicon.icoを、FTPソフトやサーバーのファイルマネージャーでルートディレクトリにアップロードすれば完了です。反映されないときは、ブラウザのキャッシュが残っている場合があるので、キャッシュを削除してから再度確認してみてください。

まとめ

  • PDFはHTMLを介さず表示されるため、ファビコンの指定(<link>)が効かない
  • 指定がないと、ブラウザはルートのfavicon.icoを探す
  • favicon.icoをルートディレクトリに置けば、PDFリンクでもオリジナルのファビコンが表示される

細かい部分ですが、こうした一貫性はサイトの完成度に効いてきます。ファビコンを設定したら、あわせてルートにfavicon.icoも置いておくと安心です。

IPPEI FUKUTA(株式会社バッズブルー 代表)

IPPEI FUKUTA(株式会社バッズブルー 代表)

WordPress専門のWeb制作者として15年・150サイト以上を担当。現場でつまずいた問題と解決策を、同じ制作者・フリーランスの方に向けて発信しています。無料のWeb便利ツール集「バドツール」を開発・運営中。