Title: Safe SVG
Author: 10up
Published: <strong>ଜୁଲାଈ 3, 2015</strong>
Last modified: ଏପ୍ରିଲ 14, 2026

---

Search plugins

![](https://ps.w.org/safe-svg/assets/banner-772x250.png?rev=2683939)

![](https://ps.w.org/safe-svg/assets/icon.svg?rev=2779013)

# Safe SVG

 By [10up](https://profiles.wordpress.org/10up/)

[Download](https://downloads.wordpress.org/plugin/safe-svg.2.4.0.zip)

[Live Preview](https://ory.wordpress.org/plugins/safe-svg/?preview=1)

 * [Details](https://ory.wordpress.org/plugins/safe-svg/#description)
 * [Reviews](https://ory.wordpress.org/plugins/safe-svg/#reviews)
 *  [Installation](https://ory.wordpress.org/plugins/safe-svg/#installation)
 * [Development](https://ory.wordpress.org/plugins/safe-svg/#developers)

 [Support](https://wordpress.org/support/plugin/safe-svg/)

## Description

Safe SVG is the best way to Allow SVG Uploads in WordPress!

It gives you the ability to allow SVG uploads whilst making sure that they’re sanitized
to stop SVG/XML vulnerabilities affecting your site. It also gives you the ability
to preview your uploaded SVGs in the media library in all views.

#### Current Features

 * **Sanitised SVGs** – Don’t open up security holes in your WordPress site by allowing
   uploads of unsanitised files.
 * **SVGO Optimisation** – Runs your SVGs through the SVGO tool on upload to save
   you space. This feature is disabled by default but can be enabled by adding the
   following code: `add_filter( 'safe_svg_optimizer_enabled', '__return_true' );`
 * **View SVGs in the Media Library** – Gone are the days of guessing which SVG 
   is the correct one, we’ll enable SVG previews in the WordPress media library.
 * **Choose Who Can Upload** – Restrict SVG uploads to certain users on your WordPress
   site or allow anyone to upload.

Initially a proof of concept for [#24251](https://core.trac.wordpress.org/ticket/24251).

SVG Sanitization is done through the following library: [https://github.com/darylldoyle/svg-sanitizer](https://github.com/darylldoyle/svg-sanitizer).

SVG Optimization is done through the following library: [https://github.com/svg/svgo](https://github.com/svg/svgo).

## Blocks

This plugin provides 1 block.

 *   Safe SVG Display the SVG icon

## Installation

Install through the WordPress directory or download, unzip and upload the files 
to your `/wp-content/plugins/` directory

## FAQ

### Can we change the allowed attributes and tags?

Yes, this can be done using the `svg_allowed_attributes` and `svg_allowed_tags` 
filters.
 They take one argument that must be returned. See below for examples:

    ```
    add_filter( 'svg_allowed_attributes', function ( $attributes ) {

        // Do what you want here...

        // This should return an array so add your attributes to
        // to the $attributes array before returning it. E.G.

        $attributes[] = 'target'; // This would allow the target="" attribute.

        return $attributes;
    } );


    add_filter( 'svg_allowed_tags', function ( $tags ) {

        // Do what you want here...

        // This should return an array so add your tags to
        // to the $tags array before returning it. E.G.

        $tags[] = 'use'; // This would allow the <use> element.

        return $tags;
    } );
    ```

## Reviews

![](https://secure.gravatar.com/avatar/71f6586dbbc3ee4e15425b5c5aacba2f9b65db3566e3dae8ee207c0ea9cb5aa9?
s=60&d=retro&r=g)

### 󠀁[Works Well](https://wordpress.org/support/topic/works-well-3155/)󠁿

 [devlin1](https://profiles.wordpress.org/devlin1/) ମାର୍ଚ୍ଚ 11, 2026 1 reply

Needed SVG upload support, and this plugin did the job. Very lightweight and easy
to use. No issues so far. Some additional settings would be nice, but overall, it’s
quite solid.

![](https://secure.gravatar.com/avatar/dac57dd68e7365677d7dac1e85643c8e914074c6f703a424de5388db05bd6a47?
s=60&d=retro&r=g)

### 󠀁[Nice And Easy](https://wordpress.org/support/topic/nice-and-easy-450/)󠁿

 [Reza Asadi](https://profiles.wordpress.org/asadister/) ନଭେମ୍ବର 19, 2025 1 reply

Nice And Easy plugin for using SVG files

![](https://secure.gravatar.com/avatar/9def864927160fb7e47804e7cf79694bbbc5a709a915434e221019a8e78f21b2?
s=60&d=retro&r=g)

### 󠀁[Good plugin, but missing …](https://wordpress.org/support/topic/good-plugin-but-missing/)󠁿

 [rrvoigt](https://profiles.wordpress.org/rrvoigt/) ଜୁନ୍ 21, 2025 1 reply

Would have given a 5 star, but it seems support is missing for the taxonomy / terms
section (like in categories) upload for SVG images. Keep getting an error that the
upload isn’t supported. Hopefully this will be fixed in a future update. Will update
once this is added. Cheers!

![](https://secure.gravatar.com/avatar/91db05863fab71aeade0dec63660fe332672727d0f7d5dac4fec60fb76f8547e?
s=60&d=retro&r=g)

### 󠀁[Wonderful + fetaure request](https://wordpress.org/support/topic/wonderful-fetaure-request/)󠁿

 [Stefano](https://profiles.wordpress.org/stefacchio/) ଏପ୍ରିଲ 30, 2025 1 reply

Great plugin! very usefull, but please can you add the possibility to add an inline
SVG on the block pasting svg code? Thanks!

![](https://secure.gravatar.com/avatar/6a4a9f84970680fef58ccd8c5fc25cd8807105c66718bdcf07e86f65386df076?
s=60&d=retro&r=g)

### 󠀁[ELEMENTOR+Safe SVG=It works](https://wordpress.org/support/topic/elementorsafe-svgit-works/)󠁿

 [bandgamin](https://profiles.wordpress.org/bandgamin/) ମାର୍ଚ୍ଚ 25, 2025 1 reply

Thanks to the plugin developers. The plugin helped me solve my issue.

![](https://secure.gravatar.com/avatar/590c1a85322729f2345aa128684db6522b37951ea328215b6f501ed8439c0a91?
s=60&d=retro&r=g)

### 󠀁[Effortless](https://wordpress.org/support/topic/effortless-26/)󠁿

 [Jimmy Lee](https://profiles.wordpress.org/shirtguy72/) ନଭେମ୍ବର 14, 2024 1 reply

Thanks for creating this plugin!

 [ Read all 77 reviews ](https://wordpress.org/support/plugin/safe-svg/reviews/)

## Contributors & Developers

“Safe SVG” is open source software. The following people have contributed to this
plugin.

Contributors

 *   [ 10up ](https://profiles.wordpress.org/10up/)
 *   [ Daryll Doyle ](https://profiles.wordpress.org/enshrined/)
 *   [ Jeffrey Paul ](https://profiles.wordpress.org/jeffpaul/)

“Safe SVG” has been translated into 29 locales. Thank you to [the translators](https://translate.wordpress.org/projects/wp-plugins/safe-svg/contributors)
for their contributions.

[Translate “Safe SVG” into your language.](https://translate.wordpress.org/projects/wp-plugins/safe-svg)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/safe-svg/), check out
the [SVN repository](https://plugins.svn.wordpress.org/safe-svg/), or subscribe 
to the [development log](https://plugins.trac.wordpress.org/log/safe-svg/) by [RSS](https://plugins.trac.wordpress.org/log/safe-svg/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 2.4.0 – 2025-09-22

 * **Added:** Ability to upload SVGs from more admin locations (props [@stormrockwell](https://github.com/stormrockwell),
   [@darylldoyle](https://github.com/darylldoyle), [@wpexplorer](https://github.com/wpexplorer),
   [@smerriman](https://github.com/smerriman), [@jeffpaul](https://github.com/jeffpaul),
   [@dkotter](https://github.com/dkotter) via [#279](https://github.com/10up/safe-svg/pull/279)).
 * **Changed:** Added `$attachment_id` argument to filters `safe_svg_use_width_height_attributes`
   and `safe_svg_dimensions` (props [@roborourke](https://github.com/roborourke),
   [@dkotter](https://github.com/dkotter) via [#278](https://github.com/10up/safe-svg/pull/278)).
 * **Fixed:** Inconsistent or incorrect data type for `$svg` argument in the filters`
   safe_svg_use_width_height_attributes` and `safe_svg_dimensions` (props [@roborourke](https://github.com/roborourke),
   [@dkotter](https://github.com/dkotter) via [#278](https://github.com/10up/safe-svg/pull/278)).

#### 2.3.3 – 2025-08-13

 * **Security:** Update the `enshrined/svg-sanitize` package from `0.19.0` to `0.22.0`
   to fix an issue with case-insensitive attributes slipping through the sanitiser
   and address PHP 8.4 deprecation warnings (props [@darylldoyle](https://github.com/darylldoyle),
   [@sudar](https://github.com/sudar), [@georgestephanis](https://github.com/georgestephanis),
   [@dkotter](https://github.com/dkotter), [@realazizk](https://github.com/realazizk)
   via [#268](https://github.com/10up/safe-svg/pull/268), [#272](https://github.com/10up/safe-svg/pull/272)).
 * **Security:** Bump `form-data` from 4.0.0 to 4.0.4 (props [@dependabot](https://github.com/apps/dependabot),
   [@faisal-alvi](https://github.com/faisal-alvi) via [#270](https://github.com/10up/safe-svg/pull/270)).
 * **Security:** Bump `tmp` from 0.2.3 to 0.2.5 and `@inquirer/editor` from 4.2.9
   to 4.2.16 (props [@dependabot](https://github.com/apps/dependabot), [@dkotter](https://github.com/dkotter)
   via [#271](https://github.com/10up/safe-svg/pull/271)).

#### 2.3.2 – 2025-07-21

 * **Fixed:** Visual parity between the front end and the block editor (props [@s3rgiosan](https://github.com/s3rgiosan),
   [@dkotter](https://github.com/dkotter) via [#261](https://github.com/10up/safe-svg/pull/261),
   [#266](https://github.com/10up/safe-svg/pull/266)).
 * **Changed:** Bump WordPress “tested up to” version 6.8 (props [@godleman](https://github.com/godleman),
   [@jeffpaul](https://github.com/jeffpaul), [@dkotter](https://github.com/dkotter)
   via [#251](https://github.com/10up/safe-svg/pull/251), [#254](https://github.com/10up/safe-svg/pull/254)).
 * **Changed:** Bump WordPress minimum supported version to 6.6 (props [@godleman](https://github.com/godleman),
   [@jeffpaul](https://github.com/jeffpaul), [@dkotter](https://github.com/dkotter)
   via [#254](https://github.com/10up/safe-svg/pull/254)).
 * **Security:** Bump `ws` from 7.5.10 to 8.18.0, `@wordpress/scripts` from 27.9.0
   to 30.6.0, `nanoid` from 3.3.7 to 3.3.8 and `mocha` from 10.2.0 to 11.0.1 (props
   [@dependabot](https://github.com/apps/dependabot), [@peterwilsoncc](https://github.com/peterwilsoncc)
   via [#245](https://github.com/10up/safe-svg/pull/245)).
 * **Security:** Bump `@babel/runtime` from 7.23.9 to 7.27.0, `axios` from 1.7.4
   to 1.8.4, `cookie` from 0.4.2 to 0.7.1, `express` from 4.21.0 to 4.21.2 and `
   @wordpress/e2e-test-utils-playwright` from 0.26.0 to 1.20.0 (props [@dependabot](https://github.com/apps/dependabot),
   [@dkotter](https://github.com/dkotter) via [#250](https://github.com/10up/safe-svg/pull/250)).
 * **Security:** Bump `http-proxy-middleware` from 2.0.6 to 2.0.9 (props [@dependabot](https://github.com/apps/dependabot),
   [@iamdharmesh](https://github.com/iamdharmesh) via [#253](https://github.com/10up/safe-svg/pull/253)).
 * **Security:** Bump `tar-fs` from 3.0.8 to 3.0.9 (props [@dependabot](https://github.com/apps/dependabot),
   [@dkotter](https://github.com/dkotter) via [#258](https://github.com/10up/safe-svg/pull/258)).
 * **Security:** Bump `bytes` from 3.0.0 to 3.1.2 and `compression` from 1.7.4 to
   1.8.1 (props [@dependabot](https://github.com/apps/dependabot), [@dkotter](https://github.com/dkotter)
   via [#265](https://github.com/10up/safe-svg/pull/265)).

#### 2.3.1 – 2024-12-05

 * **Fixed:** Revert changes made to how we determine custom dimensions for SVGs(
   props [@dkotter](https://github.com/dkotter), [@martinpl](https://github.com/martinpl),
   [@subfighter3](https://github.com/subfighter3), [@smerriman](https://github.com/smerriman),
   [@gigatyrant](https://github.com/gigatyrant), [@jeffpaul](https://github.com/jeffpaul),
   [@iamdharmesh](https://github.com/iamdharmesh) via [#238](https://github.com/10up/safe-svg/pull/238)).

#### 2.3.0 – 2024-11-25

 * **Added:** New setting that allows large SVG files (roughly 10MB or greater) 
   to be uploaded and sanitized properly (props [@kirtangajjar](https://github.com/kirtangajjar),
   [@faisal-alvi](https://github.com/faisal-alvi), [@darylldoyle](https://github.com/darylldoyle),
   [@manojsiddoji](https://github.com/manojsiddoji), [@dkotter](https://github.com/dkotter)
   via [#201](https://github.com/10up/safe-svg/pull/201)).
 * **Added:** New `get_svg_dimensions` function in order to reduce code duplication(
   props [@gabriel-glo](https://github.com/gabriel-glo), [@jeremymoore](https://github.com/jeremymoore),
   [@darylldoyle](https://github.com/darylldoyle), [@iamdharmesh](https://github.com/iamdharmesh),
   [@dkotter](https://github.com/dkotter) via [#216](https://github.com/10up/safe-svg/pull/216)).
 * **Changed:** Updated the `enshrined/svg-sanitize` package from 0.16.0 to 0.19.0
   to fix a PHP 8.3 compatibility issue (props [@sksaju](https://github.com/sksaju),
   [@TylerB24890](https://github.com/TylerB24890), [@darylldoyle](https://github.com/darylldoyle),
   [@rolf-yoast](https://github.com/rolf-yoast), [@faisal-alvi](https://github.com/faisal-alvi)
   via [#214](https://github.com/10up/safe-svg/pull/214)).
 * **Changed:** Update how image dimensions are passed in `get_image_tag_override`
   and `one_pixel_fix` methods (props [@gabriel-glo](https://github.com/gabriel-glo),
   [@jeremymoore](https://github.com/jeremymoore), [@darylldoyle](https://github.com/darylldoyle),
   [@iamdharmesh](https://github.com/iamdharmesh), [@dkotter](https://github.com/dkotter)
   via [#216](https://github.com/10up/safe-svg/pull/216)).
 * **Changed:** Bump WordPress “tested up to” version to 6.7 (props [@colinswinney](https://github.com/colinswinney),
   [@jeffpaul](https://github.com/jeffpaul) via [#232](https://github.com/10up/safe-svg/pull/232),
   [#233](https://github.com/10up/safe-svg/pull/233)).
 * **Changed:** Bump WordPress minimum from 6.4 to 6.5 (props [@colinswinney](https://github.com/colinswinney),
   [@jeffpaul](https://github.com/jeffpaul) via [#232](https://github.com/10up/safe-svg/pull/232),
   [#233](https://github.com/10up/safe-svg/pull/233)).
 * **Changed:** Remove composer dev dependencies from archived project (props [@TylerB24890](https://github.com/TylerB24890),
   [@szepeviktor](https://github.com/szepeviktor), [@peterwilsoncc](https://github.com/peterwilsoncc)
   via [#220](https://github.com/10up/safe-svg/pull/220)).
 * **Fixed:** Use proper block category for the Safe SVG Icon block (props [@kirtangajjar](https://github.com/kirtangajjar),
   [@fabiankaegy](https://github.com/fabiankaegy) via [#226](https://github.com/10up/safe-svg/pull/226)).
 * **Security:** Only allow SVG file types to be uploaded if our sanitizer is able
   to run on those files (props [@darylldoyle](https://github.com/darylldoyle), 
   [@xknown](https://github.com/xknown), [@dkotter](https://github.com/dkotter) 
   via [#228](https://github.com/10up/safe-svg/pull/228)).
 * **Security:** Bump `webpack` from 5.90.1 to 5.94.0 (props [@dependabot](https://github.com/apps/dependabot),
   [@peterwilsoncc](https://github.com/peterwilsoncc) via [#222](https://github.com/10up/safe-svg/pull/222)).
 * **Security:** Bump `ws` from 7.5.10 to 8.18.0, `serve-static` from 1.15.0 to 
   1.16.2 and `express` from 4.19.2 to 4.21.0 (props [@dependabot](https://github.com/apps/dependabot),
   [@Sidsector9](https://github.com/Sidsector9), [@faisal-alvi](https://github.com/faisal-alvi)
   via [#227](https://github.com/10up/safe-svg/pull/227), [#230](https://github.com/10up/safe-svg/pull/230),
   [#234](https://github.com/10up/safe-svg/pull/234)).

#### 2.2.6 – 2024-08-28

 * **Changed:** Bump WordPress “tested up to” version to 6.6 (props [@sudip-md](https://github.com/sudip-md),
   [@ankitguptaindia](https://github.com/ankitguptaindia), [@jeffpaul](https://github.com/jeffpaul)
   via [#212](https://github.com/10up/safe-svg/pull/212), [#213](https://github.com/10up/safe-svg/pull/213)).
 * **Changed:** Bump WordPress minimum from 5.7 to 6.4 (props [@sudip-md](https://github.com/sudip-md),
   [@ankitguptaindia](https://github.com/ankitguptaindia), [@jeffpaul](https://github.com/jeffpaul)
   via [#212](https://github.com/10up/safe-svg/pull/212), [#213](https://github.com/10up/safe-svg/pull/213)).
 * **Security:** Add svg sanitization on the `wp_handle_sideload_prefilter` filter(
   props [@dkotter](https://github.com/dkotter), [@xknown](https://github.com/xknown),
   [@iamdharmesh](https://github.com/iamdharmesh) via [GHSA-3vr7-86pg-hf4g](https://github.com/10up/safe-svg/security/advisories/GHSA-3vr7-86pg-hf4g)).
 * **Security:** Bump `braces` from 3.0.2 to 3.0.3, `pac-resolver` from 7.0.0 to
   7.0.1, `socks` from 2.7.1 to 2.8.3, `ws` from 7.5.9 to 7.5.10 and remove `ip`(
   props [@dependabot](https://github.com/apps/dependabot), [@Sidsector9](https://github.com/Sidsector9)
   via [#206](https://github.com/10up/safe-svg/pull/206)).
 * **Security:** Bump `axios` from 1.6.7 to 1.7.4 (props [@dependabot](https://github.com/apps/dependabot),
   [@faisal-alvi](https://github.com/faisal-alvi) via [#218](https://github.com/10up/safe-svg/pull/218)).

[View historical changelog details here](https://github.com/10up/safe-svg/blob/develop/CHANGELOG.md).

## Community plugin

This plugin is developed and supported by a community. [Contribute to this plugin](https://github.com/10up/safe-svg)

## Meta

 *  Version **2.4.0**
 *  Last updated **5 days ago**
 *  Active installations **1+ million**
 *  WordPress version ** 6.6 or higher **
 *  Tested up to **7.0**
 *  PHP version ** 7.4 or higher **
 *  Languages
 * [Belarusian](https://bel.wordpress.org/plugins/safe-svg/), [Catalan](https://ca.wordpress.org/plugins/safe-svg/),
   [Chinese (Taiwan)](https://tw.wordpress.org/plugins/safe-svg/), [Czech](https://cs.wordpress.org/plugins/safe-svg/),
   [Dutch](https://nl.wordpress.org/plugins/safe-svg/), [Dutch (Belgium)](https://nl-be.wordpress.org/plugins/safe-svg/),
   [English (Australia)](https://en-au.wordpress.org/plugins/safe-svg/), [English (Canada)](https://en-ca.wordpress.org/plugins/safe-svg/),
   [English (New Zealand)](https://en-nz.wordpress.org/plugins/safe-svg/), [English (UK)](https://en-gb.wordpress.org/plugins/safe-svg/),
   [English (US)](https://wordpress.org/plugins/safe-svg/), [French (France)](https://fr.wordpress.org/plugins/safe-svg/),
   [Galician](https://gl.wordpress.org/plugins/safe-svg/), [German](https://de.wordpress.org/plugins/safe-svg/),
   [Hungarian](https://hu.wordpress.org/plugins/safe-svg/), [Italian](https://it.wordpress.org/plugins/safe-svg/),
   [Japanese](https://ja.wordpress.org/plugins/safe-svg/), [Korean](https://ko.wordpress.org/plugins/safe-svg/),
   [Marathi](https://mr.wordpress.org/plugins/safe-svg/), [Persian](https://fa.wordpress.org/plugins/safe-svg/),
   [Polish](https://pl.wordpress.org/plugins/safe-svg/), [Portuguese (Portugal)](https://pt.wordpress.org/plugins/safe-svg/),
   [Russian](https://ru.wordpress.org/plugins/safe-svg/), [Spanish (Chile)](https://cl.wordpress.org/plugins/safe-svg/),
   [Spanish (Colombia)](https://es-co.wordpress.org/plugins/safe-svg/), [Spanish (Ecuador)](https://es-ec.wordpress.org/plugins/safe-svg/),
   [Spanish (Spain)](https://es.wordpress.org/plugins/safe-svg/), [Spanish (Venezuela)](https://ve.wordpress.org/plugins/safe-svg/),
   [Swedish](https://sv.wordpress.org/plugins/safe-svg/), and [Ukrainian](https://uk.wordpress.org/plugins/safe-svg/).
 *  [Translate into your language](https://translate.wordpress.org/projects/wp-plugins/safe-svg)
 * Tags
 * [media](https://ory.wordpress.org/plugins/tags/media/)[mime](https://ory.wordpress.org/plugins/tags/mime/)
   [security](https://ory.wordpress.org/plugins/tags/security/)[SVG](https://ory.wordpress.org/plugins/tags/svg/)
   [Vector](https://ory.wordpress.org/plugins/tags/vector/)
 *  [Advanced View](https://ory.wordpress.org/plugins/safe-svg/advanced/)

## Ratings

 4.9 out of 5 stars.

 *  [  69 5-star reviews     ](https://wordpress.org/support/plugin/safe-svg/reviews/?filter=5)
 *  [  7 4-star reviews     ](https://wordpress.org/support/plugin/safe-svg/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/safe-svg/reviews/?filter=3)
 *  [  1 2-star review     ](https://wordpress.org/support/plugin/safe-svg/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/safe-svg/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/safe-svg/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/safe-svg/reviews/)

## Contributors

 *   [ 10up ](https://profiles.wordpress.org/10up/)
 *   [ Daryll Doyle ](https://profiles.wordpress.org/enshrined/)
 *   [ Jeffrey Paul ](https://profiles.wordpress.org/jeffpaul/)

## Support

Issues resolved in last two months:

     1 out of 2

 [View support forum](https://wordpress.org/support/plugin/safe-svg/)