Skip to content

WordPress Plugins — How to Install, Manage and Update Plugins Safely

DodaTech Updated 2026-06-27 14 min read

In this tutorial, you'll learn what WordPress plugins are, how to install them from the official repository or upload premium plugins, manage and update your plugin ecosystem, and avoid common pitfalls that break sites.

What You'll Learn

  • What plugins are and how they extend WordPress functionality without changing core files
  • The WordPress plugin repository at WordPress.org/plugins
  • How to install plugins from the admin dashboard
  • How to upload a premium plugin via ZIP file
  • How to install plugins via FTP by uploading to wp-content/plugins/
  • How to manage plugins: activate, deactivate, delete, and bulk actions
  • How to update plugins safely — manual vs automatic updates
  • Plugin dependencies with TGM Plugin Activation and Composer
  • Must-Use plugins in wp-content/mu-plugins/
  • How to diagnose plugin conflicts
  • Why poorly coded plugins slow down your site

Why It Matters

Plugins are the superpower of WordPress. The core software gives you a solid foundation, but plugins add specific features — contact forms, SEO tools, e-commerce, security, Caching. With over 60,000 free plugins in the official directory, you can extend WordPress to do almost anything without writing custom code. But plugins also introduce risk: conflicts, security vulnerabilities, performance drag, and update breakage. Understanding how to choose and manage plugins safely keeps your site fast, secure, and stable.

Real-World Use

You build a portfolio site for a photographer. Core WordPress handles pages and posts, but you need a gallery to showcase images, a contact form for inquiries, and SEO optimization to rank in search results. Instead of writing custom code for each feature, you install three plugins: a gallery plugin, a contact form plugin, and an SEO plugin. Each plugin adds its feature without modifying WordPress core, and you can update or replace each one independently.

Learning Path

flowchart LR
    A[Posts vs Pages] --> B[Plugin Basics]
    B --> C[Essential Plugins]
    B --> D[SEO Plugins]
    B --> E[Contact Forms]
    C --> F[Security Plugins]
    C --> G[Backup & Migration]
    C --> H[Page Builders]
    C --> I[Caching Plugins]

What Is a Plugin?

A plugin is a package of PHP code that adds specific functionality to WordPress. Think of it like installing an app on your phone. Your phone works without apps — it makes calls and sends texts. But apps add features: a camera app, a maps app, a music player. Similarly, WordPress works without plugins, but plugins add the features you need.

How Plugins Work

When WordPress boots up, it looks in the wp-content/plugins/ directory. Every plugin it finds there with an active status gets loaded. The plugin's code hooks into WordPress using actions and filters — the WordPress event system.

// A minimal plugin file. Save as wp-content/plugins/my-plugin/my-plugin.php
<?php
/**
 * Plugin Name: My Simple Plugin
 * Description: Adds a custom message to the end of every post
 * Version: 1.0
 */

// Hook into WordPress: add content after each post
function my_simple_plugin_add_content($content) {
    if (is_single()) {
        $content .= '<p>Thanks for reading this post!</p>';
    }
    return $content;
}
add_filter('the_content', 'my_simple_plugin_add_content');

Every plugin needs a plugin header comment (the block at the top) so WordPress recognizes it. The header tells WordPress the plugin's name, description, version, and author.

The Plugin Repository

The official plugin directory lives at WordPress.org/plugins. It contains over 60,000 free plugins, all reviewed by the WordPress team.

flowchart TD
    A[WordPress.org/plugins] --> B[Search for a plugin]
    B --> C[Check: Last Updated,
Active Installs, Rating] C --> D{Meets criteria?} D -->|Yes| E[Download or
Install from admin] D -->|No| F[Look for alternative] E --> G[Activate and configure]

How to Choose a Plugin from the Repository

When you search for a plugin, check these indicators:

  • Active Installs: More than 10,000 active installs is a good sign. Millions is better.
  • Last Updated: Should be within the last 6 months. Abandoned plugins don't get security fixes.
  • Rating: 4+ stars out of 5. Read the negative reviews too — they often reveal real problems.
  • WordPress Version: Listed as "Compatible with WordPress 6.x" or higher.
  • Support Forum: Check if the developer responds to support requests.

Installing from the Admin Dashboard

The easiest way to install a free plugin is directly from your WordPress admin.

Steps

  1. Go to Plugins > Add New in the admin menu.
  2. Search for the plugin by name or keyword.
  3. Click Install Now on the plugin you want.
  4. Click Activate after installation.
// WordPress fetches the plugin from the repository using the WordPress API
// The API endpoint is: https://api.wordpress.org/plugins/info/1.2/
// This returns plugin data: name, version, download link, rating, etc.

When you click Install Now, WordPress downloads the plugin ZIP from the WordPress.org servers, extracts it into wp-content/plugins/, and shows the Activate button.

Uploading a Plugin via ZIP

Premium plugins (like WP Rocket, Gravity Forms, or premium themes) are not in the repository. You install them by uploading a ZIP file.

Steps

  1. Download the plugin ZIP file from the vendor.
  2. Go to Plugins > Add New.
  3. Click the Upload Plugin button at the top.
  4. Choose the ZIP file and click Install Now.
  5. Click Activate Plugin after installation.
# When you upload a ZIP, WordPress does this internally:
# 1. Validates the ZIP file
# 2. Extracts it into wp-content/plugins/
# 3. Checks for a valid plugin header
# 4. Shows success or error message

Why ZIP Upload Exists

The repository only hosts free plugins. Premium plugins — which you pay for — are distributed by their developers. The ZIP upload feature allows you to install any plugin from any source, as long as it's packaged correctly.

Installing via FTP

Sometimes the admin dashboard isn't available (a white screen error, for example). In that case, install plugins via FTP.

Steps

  1. Connect to your server using an FTP client (FileZilla, CyberDuck).
  2. Navigate to wp-content/plugins/.
  3. Upload the plugin folder (already extracted from the ZIP).
  4. Go to the WordPress admin dashboard.
  5. Find the plugin in the Plugins list and click Activate.
# FTP structure after uploading
wp-content/
├── plugins/
│   ├── akismet/
│   ├── hello-dolly/
│   └── your-custom-plugin/
│       ├── your-custom-plugin.php
│       ├── includes/
│       └── assets/

If the plugin is a single file (rare), you can upload just the .php file directly into wp-content/plugins/.

Managing Plugins

The Plugins screen (Plugins > Installed Plugins) shows every plugin in your wp-content/plugins/ directory.

Plugin Statuses

  • Active: The plugin is loaded on every page load. It can affect your site's behavior and performance.
  • Inactive: The plugin exists on the server but isn't loaded. It doesn't affect your site.
  • Network Active: On a WordPress Multisite network, the plugin is active across all sites.

Bulk Actions

Select multiple plugins and choose an action from the dropdown:

  • Activate: Turn on selected plugins.
  • Deactivate: Turn off selected plugins without deleting them.
  • Delete: Remove the plugin files from the server entirely.
// Programmatically activate a plugin
function my_activate_plugin() {
    $plugin = 'my-plugin/my-plugin.php';
    if (!is_plugin_active($plugin)) {
        activate_plugin($plugin);
    }
}

When to Deactivate vs Delete

Deactivate a plugin when you want to troubleshoot a conflict or temporarily disable a feature. Delete a plugin only when you're sure you won't need it again. Deactivated plugins still exist on your server and can be reactivated instantly. Deleted plugins must be reinstalled.

Updating Plugins

Plugin updates provide bug fixes, security patches, and new features. But updates can also break your site if they conflict with your theme or other plugins.

Manual Updates

  1. Go to Dashboard > Updates.
  2. See available plugin updates.
  3. Select the plugins to update.
  4. Click Update Plugins.

Automatic Updates

WordPress can update plugins automatically. You enable this on the Plugins screen:

// Enable automatic updates for all plugins
add_filter('auto_update_plugin', '__return_true');

// Enable automatic updates for specific plugins only
function my_auto_update_specific($update, $item) {
    $allowed = array('akismet', 'wordfence');
    if (in_array($item->slug, $allowed)) {
        return true;
    }
    return $update;
}
add_filter('auto_update_plugin', 'my_auto_update_specific', 10, 2);

The Safe Update Workflow

  1. Check the changelog — look for breaking changes or major version bumps.
  2. Back up your site — database and files, before every update.
  3. Test on staging — if you have a staging environment, update there first.
  4. Update during low traffic — do updates when few visitors are online.
  5. Update one plugin at a time — if something breaks, you know which plugin caused it.
  6. Test critical features — after updating, check forms, checkout, and key pages.
flowchart TD
    A[Update Available] --> B[Read Changelog]
    B --> C[Backup Site]
    C --> D[Test on Staging]
    D --> E{Works on staging?}
    E -->|Yes| F[Update on Production]
    E -->|No| G[Contact Developer]
    F --> H[Test Production Site]
    H --> I{Downtime?}
    I -->|Yes| J[Restore from Backup]
    I -->|No| K[Update Complete]

Plugin Dependencies

Some plugins require other plugins to work. For example, a WooCommerce extension needs WooCommerce itself.

TGM Plugin Activation

TGM Plugin Activation is a library that theme and plugin developers use to require or recommend plugins. When you install a theme that uses TGM, you see a notice saying "The following plugins are required: ..." with a link to install them.

// Example TGM configuration in a theme's functions.php
function my_theme_register_required_plugins() {
    $plugins = array(
        array(
            'name'     => 'WooCommerce',
            'slug'     => 'woocommerce',
            'required' => true,
        ),
        array(
            'name'     => 'Contact Form 7',
            'slug'     => 'contact-form-7',
            'required' => false,
        ),
    );
    tgmpa($plugins);
}
add_action('tgmpa_register', 'my_theme_register_required_plugins');

Composer for Plugin Management

For developer workflows, you can manage plugins with Composer:

{
    "require": {
        "wpackagist-plugin/wordfence": "^7.10",
        "wpackagist-plugin/akismet": "^4.3"
    }
}

WordPress Packagist mirrors the WordPress plugin repository as Composer packages. This is useful when deploying WordPress with CI/CD pipelines.

Must-Use Plugins

Must-Use (MU) plugins live in wp-content/mu-plugins/. They activate automatically and cannot be deactivated from the admin dashboard.

When to Use MU-Plugins

  • Site-wide functionality that should never be turned off
  • Custom code snippets for client sites
  • Security hardening that should always be active

How to Create an MU-Plugin

// Save this file as: wp-content/mu-plugins/my-mu-plugin.php
<?php
// MU-plugins don't need a plugin header comment
// but including one helps with identification

/**
 * Custom login URL - always active
 */
function my_custom_login_url() {
    return home_url('/custom-login/');
}
add_filter('login_headerurl', 'my_custom_login_url');

MU-plugins load before regular plugins, so they can override plugin behavior. They are ideal for settings that must remain active regardless of what a client or user does in the admin.

Plugin Conflicts

When two plugins try to modify the same WordPress behavior, they can conflict. Symptoms include white screens, JavaScript errors, broken layouts, or features not working.

How to Diagnose a Plugin Conflict

  1. Check error logs — look at your server's error log for PHP fatal errors.
  2. Deactivate all plugins — if the problem goes away, a plugin is causing it.
  3. Reactivate one by one — activate plugins one at a time until the problem returns.
  4. The last activated plugin — that's the conflict source.
  5. Switch to a default theme — the conflict might be between a plugin and your theme.
// Enable WordPress debugging in wp-config.php to see errors
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

Why Conflicts Happen

Plugins use hooks (actions and filters) to modify WordPress behavior. When two plugins hook into the same action with incompatible code, they clash. Think of it like two people trying to drive the same car — they both have their hands on the wheel, but they're steering in different directions. The car jerks or goes nowhere.

Plugin Performance

Every active plugin loads code on every page of your site. A single poorly coded plugin can add 500ms to your page load time.

Signs of a Slow Plugin

  • The plugin makes many database queries on every page load
  • The plugin loads CSS and JavaScript on every page, even pages where it isn't needed
  • The plugin uses external HTTP requests that depend on third-party server response times
  • The plugin loads large libraries (like jQuery UI) without checking if they're already loaded
// Check how many database queries a plugin makes
// Add this to wp-config.php during development
define('SAVEQUERIES', true);

// Then in your footer template, you can inspect
// global $wpdb; echo $wpdb->num_queries;

Performance Testing Before Installing

  1. Check the plugin's support forum for performance complaints.
  2. Install it on a staging site and run Lighthouse or GTmetrix before and after.
  3. Use Query Monitor plugin to see what the plugin does on each page load.
  4. Look at the plugin's code if you can — thousands of lines loaded on every request is a red flag.

Common Mistakes

  1. Installing too many plugins. Each plugin adds code, database queries, and potential security surface. Beginners often install 40+ plugins. Most sites need 10-15 well-chosen plugins. Ask yourself: do you really need a plugin for this, or can you do it with a few lines of code?

  2. Using abandoned plugins. A plugin not updated in 2+ years is a security risk. WordPress core changes, PHP versions evolve, and security vulnerabilities are discovered. An abandoned plugin never gets patched. Always check the Last Updated date before installing.

  3. Updating plugins without a backup. Updates can break your site. A plugin update might introduce a bug, remove a feature you rely on, or conflict with another plugin. Always back up before updating, especially for major version bumps (1.x to 2.x).

  4. Deleting plugins instead of deactivating. Deleting removes the plugin's data too. If a plugin stores settings in the database, deleting it wipes those settings. Deactivate first, research what data the plugin stores, then delete if you're sure.

  5. Using nulled plugins. "Nulled" plugins are premium plugins distributed for free, often with malware injected. They install backdoors, send your data to third parties, or add hidden spam links. Never install nulled plugins — they're the most common source of WordPress hacks.

Practice Questions

  1. Why should you check the "Last Updated" date before installing a plugin from the repository? What risks does an abandoned plugin pose?

  2. What's the difference between deactivating a plugin and uninstalling it? When would you use each?

  3. You update a plugin and your contact form stops working. What steps do you take to diagnose and fix the problem?

Challenge: Set up a WordPress site locally. Install 10 plugins from different categories (SEO, security, forms, caching, performance). Use Query Monitor to analyze how many database queries each plugin adds on the homepage. Rank the plugins by their performance impact and decide which ones you would keep on a production site.

FAQ

### What happens to my site when I deactivate a plugin?

Deactivating a plugin stops it from loading on your site, but its files and data remain on your server. You can reactivate it later with all settings intact. The plugin's database tables and options remain in the database.

Can I have multiple plugins that do the same thing?

You can, but it's not recommended. Two SEO plugins, two caching plugins, or two security plugins will conflict. They try to modify the same WordPress features and can break your site. Pick one per category.

How do I know if a plugin is slowing down my site?

Use the Query Monitor plugin to see which plugins run on each page and how long they take. Run Lighthouse before and after installing a plugin. Compare page load times to measure the impact.

Do I need to update plugins immediately?

Security updates — install immediately. Feature updates — you can wait a few days. Check the changelog first. If the update mentions "security fix," don't delay. For other updates, wait 3-7 days to see if other users report issues.

What happens if I delete a plugin with my data?

The plugin's files are removed from the server. If the plugin stored data in the WordPress database, that data may remain (orphaned data) or may be deleted depending on the plugin's uninstall routine. Good plugins clean up their data on uninstall. Always check the plugin's documentation.

Mini Project

Build a plugin management workflow for a client site.

  1. Install WordPress locally (or use an existing installation).
  2. Install the following plugins from the repository: Akismet Anti-Spam, Contact Form 7, Yoast SEO, Jetpack.
  3. Upload a premium plugin ZIP (use a free trial or a plugin you've purchased) via the Upload Plugin feature.
  4. Deactivate and reactivate each plugin. Observe that settings are preserved.
  5. Delete the Hello Dolly plugin that comes with WordPress.
  6. Create an MU-plugin that adds a custom footer message to every page.
  7. Write a brief report: which plugins does this site actually need? Which could be replaced with custom code?

What's Next

Now that you understand plugin basics, learn which plugins every site needs and how to build a no-fluff plugin stack:

Continue to Lesson 27: Essential Plugins — A curated list of must-have plugins for SEO, security, caching, forms, backups, and analytics.

Related lessons:

  • SEO Plugins — Set up Yoast SEO or Rank Math for search optimization
  • Contact Forms — Build forms with Contact Form 7, WPForms, or Gravity Forms
  • Security Plugins — Harden your site with Wordfence or Sucuri

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro