Duplicator – Backups & Migration Plugin – Cloud Backups, Scheduled Backups, & More
WordPress Backup & Migration Plugin Duplicator provides a simple way to move WordPress sites, create reliable backups, or clone a site for staging. With Duplicator, you can easily migrate, transfer, or clone your WordPress site between domains or hosts with no downtime. Create full backups of your website, or package your entire site to download and install elsewhere with only a few steps. At Duplicator, reliabilty, security, and ease of use are our top priorities. Our variety of cloud backup integrations and easy migration wizard make Duplicator the most beginner-friendly backup and migration plugin on the market. You don’t have to hire a developer. Create a backup and migrate sites in just a few minutes. Duplicator Pro This plugin is the Lite version of Duplicator Pro, which comes with scheduled backups, cloud storage integrations, multisite support, and more. Get Duplicator Pro for the complete migration and backup solution. Easy Site Migration, Backup, and Cloning Duplicator streamlines site migrations by packaging your website files and database into a single file, known as a “backup”. Download and re-install your “backup” on any new WordPress location or server without dealing with complicated setups. Launch at your new destination without installing WordPress. Duplicator is the only migration and backup plugin that works on an empty site. See why experts love Duplicator: “Duplicator provides an easy to use tool to make backups of your site, or to transfer it to another location.” Richard McAdams – Expert Web Developer Secure WordPress Backups Duplicator offers cloud WordPress backups with military-grade encryption. Automatically backup your entire WordPress site to secure cloud storage. Recovery Points (1-click Restore) Duplicator makes 1-click restores for WordPress backups easy and stress-free. Quickly restore your entire website in minutes just like a time machine. Fast WordPress Migrations Duplicator makes WordPress website migrations fast and stress-free. Quickly move to a new host, domain, or server. No downtime, no data loss, and no coding required. WordPress Multisite Backups Duplicator offers automatic WordPress Multisite backups with easy 1-click restore. Safely backup your entire Multisite network to secure cloud storage. WooCommerce Backups Duplicator offers reliable WooCommerce backups with military-grade encryption. Easily and automatically back up your entire online store to secure cloud storage. Pre-configured WordPress Installs Never start from scratch with Duplicator’s smart pre-configured WordPress installs. Save time and hassle duplicating ready-made sites with 1-click. WordPress Recovery Points with Quick Rollbacks Duplicator offers hourly recovery points and 1-click rollbacks for WordPress sites. Quickly and automatically recover from failed WordPress updates or disasters. Partial WordPress Backup Plugin Duplicator makes partial backups for WordPress quick and easy. Save storage and restore sites faster with database-only, media-only, or completely custom backups. Server to Server WordPress Migration Import Tool Duplicator makes server-to-server WordPress migrations fast and hassle-free. Quickly import your website to a new server in minutes. No downtime, no data loss. Smart WordPress Migration Wizard Duplicator’s smart WordPress migration wizard makes transferring your website to a new host or server effortless. No downtime, no data loss, and no code required. Drag & Drop Import WordPress Website Tool Migrating WordPress sites has never been easier with Duplicator’s drag & drop import tools. Quickly transfer your site to a new host or server in minutes, no code required. Clone WordPress Website Plugin Duplicator clones your entire WordPress website with 1-click, no code needed. Perfect for staging sites, sandbox, or site migration. WordPress Staging Site Duplicator Pro lets you create a WordPress staging site directly from your WordPress dashboard. Safely test plugin updates, theme changes, and new features on a staging environment before pushing changes to your live site. No manual setup, no separate hosting, and no risk to your production site. Duplicator Pro Features Duplicator Pro takes Duplicator to the next level with features you’ll love, such as: WordPress staging sites – create a staging copy of your site to safely test changes before going live Drag and Drop installs – just drag the backup file to the destination site! Scheduled backups Cloud Storage to Dropbox Backups, Google Drive Backups, Microsoft OneDrive Backups, Amazon S3 Backups and FTP/SFTP Backups Custom Backups and Cloning: want just plugins, or just themes, just the database? No problem! A special 2-step streamlined installer mode for mega-fast installs Recovery Points added for very fast emergency site restores Support for managed and shared hosts such as WordPress.com, WPEngine, GoDaddy Managed, and more Multi-threaded to support larger websites & databases Migrate an entire multisite WordPress network or a sub site as a standalone site Database and user creation in the installer with cPanel API Connect to cPanel directly from the installer Custom plugin hooks for developers Advanced permissions Email notifications Professional support … and much more! Supported Backup Cloud Storage Integrations We support any Amazon S3 compatible storage providers plus these first-party integrations. Localhost Backups FTP/ SFTP Backups Dropbox Backups Google Drive Backups Microsoft OneDrive Backups Amazon S3 Backups Cloudflare R2 Backups Wasabi Backups Dream Objects Backups Vultr Backups Digital Ocean Spaces Backups Google Cloud Storage Backups Backblaze B2 Storage Backups Linode Object Storage Backups You can easily see why Duplicator is the best WordPress backup and migration plugin on the market! Want to unlock these features? Upgrade to our Pro version Branding Guidelines Duplicator® is a registered trademark of Snap Creek LLC. When writing about the backup & migration plugin by Duplicator, please make sure to uppercase the initial first letter. Duplicator (correct) duplicator (incorrect)
Top keywords
- wordpress35×3.91%
- backups34×3.80%
- duplicator32×3.58%
- site19×2.12%
- backup16×1.79%
- migration12×1.34%
- storage11×1.23%
- cloud9×1.01%
- website9×1.01%
- sites8×0.89%
- cloud storage7×0.78%
- entire7×0.78%
No unsafe-inline
Content Security Policy (CSP) is a computer security standard introduced to prevent cross-site scripting (XSS), clickjacking and other code injection attacks resulting from execution of malicious content in the trusted web page context. Cross-site scripting (XSS) is a type of security vulnerability that can be found in some web applications. XSS attacks enable attackers to inject client-side scripts into web pages viewed by other users. A cross-site scripting vulnerability may be used by attackers to bypass access controls like the same-origin policy. Looking at National Vulnerability Database run by US NIST, more than 1100 (November 2025) vulnerabilities are reported as XSS for WordPress’ plugins and themes. Keeping your site up-to-date with the latest versions of plugins and themes is the first line of defense to ensure your site’s security. The second thing to do, is to deploy a strict Content Security Policy. The main problem The main problem with Content Security Policies implemented in the real world is that they are too weak to really protect your site and that many of them can be trivially bypassed by an attacker. The proposed solution Google researchers recommend, instead of whole host whitelisting, to activate individual scripts via a CSP nonces approach. In addition, in order to facilitate the adoption of nonce-based CSP, they proposed the ’strict-dynamic’ keyword. The problem(s) with CSP in WordPress Manual creation of a policy Usually, a WordPress project is a mix of code written by different authors who contributed to the Core and or wrote plugins and themes. If it is possible to whitelist every external script loaded from a , the real truth is that in a WordPress project you can have dozens of those scripts included with your plugins and calculate a cryptographic hash for each of them to be included in your CSP header can be a frustrating job. However, there are many browser extensions and WordPress’ plugins that can help you in this job. Inline scripts WordPress core, and plugins, use inline scripts. For these scripts, you can compute hashes to be inserted manually into your policy, only if these scripts do not change at any page load. Unfortunately, this is not very common, as it is frequent to include variable values calculated server side in inline scripts. And it means that your inline scripts change too frequently to manually add their hashes to your policy. This commonly happens when scripts are “localized”. WordPress has no API to implement nonces for CSP Even if it is easy to generate a nonce for each page view, this nonce has to be inserted in every script tag used to embed inline scripts in your page as doWhatever(); and in your script-src directive: script-src 'nonce-rAnd0m'; And, of course, a nonce must be unique for each HTTP response. Unsafe hashes / Inline styles Sometimes, HTML elements as images or buttons use HTML Event Attributes (onclick, onsubmit…) to let events trigger actions in a browser. You cannot use hashes or nonces for script included in event attributes and, adopting a strict CSP, requires refactoring those patterns into safer alternatives or to use ‘unsafe-hashes’. You got a similar problem when inline styles are used in HTML tags: This is a heading This is a paragraph. CSP Level 2 browsers may be ok with just putting the hash in your style-src directive. However, to allow hashes in the style attribute on inline CSS on browsers that support CSP Level 3, you may get an error like this Refused to apply inline style because it violates the following Content Security Policy directive: "style-src 'self' 'sha256-nMxMqdZhkHxz5vAuW/PAoLvECzzsmeAxD/BNwG15HuA='". Either the 'unsafe-inline' keyword, a hash ('sha256-nMxMqdZhkHxz5vAuW/PAoLvECzzsmeAxD/BNwG15HuA='), or a nonce ('nonce-...') is required to enable inline execution. To allow inline styles you need to use ‘unsafe-hashes’ in your style-src directive (that is, in facts, unsafe). ^ This plugin approach This plugin affords those problems in this way: During a capture phase, it detects the scripts, styles and other embedded content present in the pages of your site and stores them in the database. Then you have to whitelist these contents from plugin admin. The plugin uses machine learning to cluster inline scripts trying to aggregate scripts generated by the same server side (PHP) code. So, you can authorize one script example to authorize all scripts that the classifier predicts to label as whitelisted clusters. You can choose to use hashes to authorize external scripts (and the plugin will allow you to include Subresource Integrity in your and ) You can use hashes or nonces to authorize inline scripts. You can ask the plugin to refactor your page to not use event attributes (converted in a inline script) and inline styles (converted in an internal CSS). You can set one or more violations’ report endpoints. The plugin supports multisite installations and has (too) many options documented in inline help. Creating a Content Security Policy After plugin activation, go to Settings menu and search for CSP Settings submenu. The steps you are supposed to do are the following. From the Tools tab, activate the capture of the tags and use your site by visiting all the pages or having your users visit them for a long time long period based on the use of your site (hours or days). From the Tools tab, perform the data clustering in the database (it can use many server resources). Go to the Base rules tab and include in the CSP directives the desired values (help you with the table at the bottom of the page). Go to the external scripts tab, inline scripts tab and scripts invoked by event handlers tab and authorize the execution of all the legitimate scripts present on the pages of your site. Leaving the tag capture active, activate the policy test (at this stage the plugin will generate some violations of the temporary policy used to record additional values to be included in the directives of your “content security policy”). After visiting again your site pages, disable the capture of the tags and repeat the previous steps 2, 3 and 4. Enable site protection. N.B. When you update plugins or themes, if something doesn’t work properly on your site pages, temporarily deactivate the protection and repeat steps 1 to 7. Plugin hooks Filters nunil_output_csp_headers_header_csp nunil_output_csp_headers_header_csp is available since version 1.2.3 and can be used to modify the Content-Security-Policy header before it is sent to browser no_unsafe_inline_not_sri_sources no_unsafe_inline_not_sri_sources can be used to modify the list of external resources that do not support SRI (Subresource Integrity) no_unsafe_inline_final_output no_unsafe_inline_final_output is an internal filter used to manipulate the output of the WordPress process just before the output is sent to the browser. no_unsafe_inline_meta_injector no_unsafe_inline_meta_injector is an internal filter hook used to inject meta http-equiv=”Content-Security-Policy” if variable is set Actions nunil_upgrade Functions hooked on nunil_upgrade will run when the plugin is upgraded nunil_output_csp_headers Functions hooked to nunil_output_csp_headers will run when the plugin output the CSP HTTP response header Code and libraries This version of the plugin uses: * to parse HTML: * ivopetkov/HTML5DOMDocument on PHP 2.13.09 * \Dom\HTMLDocument: The new ext-dom features with HTML5 support on PHP>8.4 * RubixML for machine learning from version 1.1.0 – PHP-ML was used in versions 1.0.x; * opctim/php-nilsimsa to calculate and compare Nilsimsa digests. The log functions have been taken from * perfectyorg/perfecty-push-wp, something you should really try if you want to implement web Push notifications in your site. The complete list of dependencies used in this plugin can be seen in dependency graph on GitHub. Contributions, Issues, Bugs Plugin code is hosted on a public repository on GitHub. Reach me over there to help and suggest.