WordPress

WordPressでSVGがアップロードできないときの解決法|エラー対処・プラグイン・functions.php対応

スポンサーリンク

SVGファイルをWordPressにアップロードしようとしたときに、
「このファイルタイプはセキュリティ上の理由からアップロードできません」
というエラーが出てしまった経験はありませんか?

ロゴやアイコンなどを高画質のまま軽量に扱えるSVGは、サイトデザインに欠かせないファイル形式です。
しかしWordPressでは初期設定のままではアップロードが制限されているため、思うように使えないと悩む方も多いでしょう。

この記事では、WordPressでSVGをアップロードできない原因とその解決法を徹底解説します。
プラグインで簡単に解決する方法から、functions.phpにコードを追加する方法、SEOやセキュリティ面での注意点までカバーします。


なぜWordPressでSVGがアップロードできないのか?

WordPressは、初期状態ではSVGファイルのアップロードを禁止しています。
理由はシンプルで、セキュリティ上のリスクがあるからです。

SVG(Scalable Vector Graphics)はXMLベースのファイル形式であり単なる画像ではなく「テキストデータで構成された描画命令」です。
この仕組みを悪用すれば、悪意のあるスクリプトを仕込むことも可能です。

実際にSVGをアップロードしようとすると、以下のようなエラーメッセージが表示されます。

  • 「このファイルタイプはセキュリティ上の理由からアップロードできません。」

これはWordPressがユーザーを守るために設けた制限です。
安全に使うには、対策を講じたうえでアップロードを有効化する必要があります。


SVGをアップロードする方法(解決策)

SVGを利用する方法は大きく3つに分かれます。
初心者はプラグインの導入が最も簡単で安全ですが、中級者以上であればfunctions.phpにコードを追加する方法も選択肢になります。


方法1:プラグインを使う(初心者向け)

最も簡単で安全性が高い方法は、専用のプラグインを導入することです。
特におすすめは以下の2つです。

Safe SVG

  • 自動的にSVGファイルをサニタイズ(安全化)してくれる
  • 初心者でも安心して利用可能
  • 導入手順:
  1. 管理画面「プラグイン > 新規追加」から「Safe SVG」を検索
  2. インストールして有効化するだけ

SVG Support

  • インラインSVGとして利用できる
  • CSSやJavaScriptによるアニメーションにも対応可能
  • 高度なカスタマイズをしたい人向け

メリット: 簡単、安全、メンテナンス不要
デメリット: プラグインを増やしたくない人には不向き


方法2:functions.phpにコードを追加(中級者向け)

プラグインを使わずに軽量に仕上げたい方は、テーマのfunctions.phpに以下のコードを追加します。

function add_file_types_to_uploads($file_types){
    $new_filetypes = array();
    $new_filetypes['svg'] = 'image/svg+xml';
    $file_types = array_merge($file_types, $new_filetypes);
    return $file_types;
}
add_filter('upload_mimes', 'add_file_types_to_uploads');

このコードにより、SVGが許可されるようになります。

ただし、この方法はアップロードを許可するだけで、サニタイズ等のセキュリティ対策は一切含まれません。
外部由来のSVGにはXSSなどの悪意あるコードが含まれる可能性があるため、本番運用や初心者は Safe SVG などサニタイズ機能付きプラグインの併用を強く推奨します。


方法3:エラーごとの対処法

実際にSVGをアップロードしても、状況によっては次のような問題が起こります。

  • アップロードできない
    → プラグイン未導入、またはfunctions.phpの記述漏れ。
  • プレビューされない
    → テーマや他プラグインとの相性が原因。SVG Supportを利用すれば解決する場合が多い。
  • 「このファイルタイプは…」のエラーが消えない
    → サーバーのMIMEタイプ設定が原因の可能性。レンタルサーバーのサポートに確認するのも手です。

SVGを安全に使うためのセキュリティ対策

SVGは便利ですが、セキュリティを軽視すると危険です。
安全に利用するためには以下を徹底しましょう。

  • 信頼できるソースのSVGのみを使用する
  • 不要なタグやスクリプトを削除してから利用する
  • Safe SVGのようなプラグインで自動サニタイズする

「functions.phpの追加だけ」で済ませるのはリスクが高いため、初心者は必ずプラグインを使うことを推奨します。


SVGを使うことでSEOに不利益はある?

「SVGを使ったらSEO的に不利になるのでは?」と心配する人もいますが、結論から言えば不利益はありません

不利益はない理由

  • GoogleはSVGを画像として認識可能
  • PNGやJPGと同様にインデックス対象になる
  • 軽量でページ表示速度を改善できるため、SEO的にはむしろプラス

注意点

  • alt属性は必須:SVGでもaltを入れることで検索エンジンに内容を伝えられます。
  • インラインSVGの扱い:HTMLに直接書き込むインラインSVGは、Google画像検索で「画像」として認識されにくいケースが報告されています。Google公式の明確な見解はありませんが、実務上の観測として留意してください。画像検索からの流入を重視する場合は、<img src="xxx.svg"> 形式のほうが安全です。
  • セキュリティリスク:不正SVGが原因でサイトが侵害されれば、SEOにも悪影響が出ます。

FAQ(よくある質問)

Q
SVGがアップロードできないのはなぜ?
A

WordPressがセキュリティ上の理由から禁止しているためです。プラグインやfunctions.phpの設定で有効化できます。

Q
Safe SVG以外の方法でも安全?
A

可能ですが、サニタイズ処理を自分で行う必要があり初心者には不向きです。

Q
SVGは全ブラウザで表示される?
A

主要ブラウザ(Chrome、Firefox、Edge、Safari)は対応済みですが、古いブラウザでは非対応の可能性があります。

Q
SVGを使うとサイトが重くなる?
A

いいえ。SVGは軽量なため、むしろサイトの表示速度改善に役立ちます。


まとめ

  • WordPressはSVGをセキュリティ上の理由から標準で禁止している
  • 解決法は「プラグイン利用」が最も簡単で安全
  • functions.php編集でも対応できますが、サニタイズは自動で行われません。初心者や業務サイトでは、Safe SVG などのプラグイン併用を推奨します。
  • SVGはSEO的に不利益はなく、軽量で表示速度改善に役立つ

SVGを正しく活用すれば、ロゴやアイコンを美しく表示できるだけでなく、サイト全体のユーザー体験向上にもつながります。ぜひ本記事を参考に、安全に導入してみてください。

タイトルとURLをコピーしました