Treat every plugin and theme as a small contractor with keys to your site. It can rewrite title tags, add links to your footer, load scripts from other servers and, if it is neglected, become the way an attacker gets in. A low-risk choice is one that receives updates, ships readable code, does not lock core features behind payment, keeps any credit link optional and hidden by default, and does not contact outside servers without consent. The WordPress.org plugin guidelines (Opens in a new tab) and the WordPress hardening documentation (Opens in a new tab) back each of those points. If you run a blog, a small-business site or a shop, you can audit your plugin list against this checklist in a single sitting.
What a plugin touches on your site
The admin screen shows a toggle. The front end shows what that toggle changes. A plugin can alter:
- the page source: title tags, meta tags, structured data, canonicals, social sharing tags
- the URL structure: redirects, permalink settings, pagination
- outbound links: footer credits, share buttons, comment and widget areas
- loading behaviour: added scripts and stylesheets, fonts pulled from other servers
- the security surface: the admin area, form handling, file upload
So the choice is closer to risk management than to design taste. One end of the risk is damaged search visibility. The other end is a compromised site. Even a plugin that changes nothing visible adds maintenance work and attack surface.
Which kinds of plugin leave the biggest mark
Practical suggestion: decide in advance which output you will inspect after installing each type.
| Plugin type | What it touches | What to inspect after installing |
|---|---|---|
| Search settings | Titles, meta descriptions, canonicals, sitemaps | That no tag is written twice |
| Caching and speed | Front-end output, script order | That pages render fully and content stays visible |
| Forms | Scripts, calls to outside services | Which outside domains are contacted |
| Security | Login, redirects, blocking | That search bots are not blocked by accident |
| Sharing and comments | Outbound links, external scripts | The number and attributes of added links |
| Page builders | Templates, heading structure | Heading order and footer output |
Themes belong in the same audit
A theme controls the site template. Footer links, heading hierarchy, menus and page templates come from theme files. Before you pick a theme for its looks, ask whether it adds links you did not write, whether it still receives updates, and whether it ties site features to itself. The last question matters because features bound to a theme can disappear when you switch.
Update cadence and abandoned plugins
The WordPress.org plugin guidelines require a plugin to raise its version number with each release, because users are alerted to updates only when the version goes up. The same document states that security is ultimately the plugin developer's responsibility and that plugins with security issues can be closed until the problem is resolved. For you, that means a plugin that stops updating may be a plugin nobody is looking after.
The guidelines give no definition of an "abandoned plugin" and no number of days. You have to set your own threshold. Practical suggestion: keep a record like this one.
| Signal | What to read | What to do |
|---|---|---|
| Last update | The last-updated information on the plugin page | Look for an alternative if releases stopped long ago |
| Compatibility note | Whether it was tested with your WordPress version | Test it on a staging copy if not |
| Support forum | Answered and unanswered threads | Treat it as unattended if nothing is answered |
| Closure notice | A closed banner on the plugin page | Remove it at once |
| Changelog | Whether security fixes are named | A steady changelog builds confidence |
If you use a translated admin interface, field and menu names may look different from the English labels.
Delete what you do not use
The hardening documentation says it plainly: if you are not using a plugin, delete it from the system. Deactivating does not remove the files from the server. The same page says to keep plugins updated and to run the latest WordPress version. It gives no separate advice about removing unused themes; applying the same logic is reasonable. Practical suggestion: delete inactive themes except one default theme you keep as a fallback.
Untrusted sources
The hardening documentation tells you not to take plugins or themes from untrusted sources. A "premium" theme pack distributed without a licence from a download site is the obvious example. The official directory and the developer's own licensed shop are sources you can check.
Outbound links and credit links
A plugin or theme can add a "Powered by" line or a designer credit to your footer. Guideline 10 of the WordPress.org plugin guidelines covers this: all "Powered By" or credit displays and links in plugin code must be optional. Credits have to be hidden by default on the front end, and a plugin cannot require them to work. The rule binds plugins in the WordPress.org directory; products distributed elsewhere may follow other terms. The documentation says nothing about themes on this point.
For where footer links sit in general SEO settings, see the WordPress SEO settings checklist. What matters for plugin selection is that the credit becomes an acceptance test:
- Install the plugin on staging, open the front end in a logged-out browser and search the page source for domains you do not recognise.
- Check whether the settings offer a credit or "powered by" option, and keep it off.
- If you find a link that contradicts the guidelines, report it in the plugin's support forum or replace the plugin.
Features locked in the free version
Guideline 5 prohibits locked or restricted functionality: a plugin may not contain features that are only unlocked by payment or upgrade. The SEO effect is indirect. If a key feature of a free plugin sits behind a paywall, your site's future depends on one vendor's pricing. Write down what the free version does and what the paid version adds before you decide.
Outside code and unannounced connections
Under guideline 8 a plugin that is not acting as a service may not execute outside code, and updates from servers other than WordPress.org are barred. Guideline 7 forbids contacting external servers without explicit consent and bars undisclosed tracking. Guideline 11 discourages nags and dashboard advertising, and says site-wide notices and widgets must be dismissible. As acceptance questions: which outside domains does the plugin contact, is that connection explained in the settings, and does it measure anything before asking?
Assets pulled from other servers, and page speed
Guideline 7 lists loading unrelated images or scripts from external servers among the prohibited practices, and guideline 8 rejects third-party CDN calls for anything other than fonts. Those two sentences hand you an audit question with a speed angle: which domains does the plugin pull files from on the front end, and is each one explained in the settings or the plugin description? A plugin that loads a font or icon set for convenience does not have to be dropped, but every file fetched without your knowledge touches both your privacy disclosure and the order in which the page loads. The guidelines do not settle each case on their own; the plugin readme is where the answer should sit.
The readme is a signal too. Guideline 12 says readmes are written for people, not bots, and counts unnecessary affiliate links, unrelated tags and keyword stuffing as spam. If a plugin's own listing reads like a keyword pile, you have less reason to assume its code was written with more care. That is not a reason to reject it alone. It is a prompt for a second look.
Security and permissions
A security check is not separate from SEO. A breach that takes over the site takes organic visibility with it. Hidden links and spam pages on an already compromised site are a separate job, covered in cleaning up SEO spam links on a hacked site. To prevent that situation, turn the hardening documentation's advice on plugins and themes into a checklist:
- keep WordPress core and plugins updated
- delete plugins you do not use, not only deactivate them
- take plugins and themes only from trusted sources
- lock file permissions down as far as you can
- back up regularly, MySQL databases included
Readable code and GPL compatibility
Guideline 4 says code must be largely human-readable, and obfuscation tools and unclear naming such as meaningless variable strings are not allowed. Developers must give public access to source code and build tools. Guideline 1 requires all code, data and images to be GPL compatible. Practical suggestion: treat these two as red flags during review. Closed, obfuscated code cannot be audited, and code you cannot audit needs a stronger reason to be trusted.
File permissions and backups
The hardening page tells you to lock file permissions down as much as possible and to make plugin files writable only by your own user account. That is a setting in your hosting panel or FTP client. On backups it calls for regular copies of your data, MySQL databases included. A backup taken before each install or removal defines your way back.
Permission numbers, the file editor and the admin account
The hardening page gives permissions as concrete values: 755 for directories and 644 for files, with 400 or 440 for wp-config.php. Core directories and plugin files should be writable only by your own account, and the themes folder needs web server write access only if you use the built-in theme editor. Compare these values with what your hosting panel shows, and if yours differ, ask your host why.
The same page describes turning off the dashboard theme and plugin file editor by adding the DISALLOW_FILE_EDIT definition to wp-config.php. It also states that this does not stop an attacker from uploading malicious files; it may only block some attacks, so it is one layer, not a guarantee. For the admin account, it advises against guessable usernames such as "admin" or "webmaster" and recommends a strong password and two-step authentication. The link to plugin choice is direct: anyone who can install a plugin in the dashboard can change your site's code. Limiting plugin installation rights to a few accounts matters as much as the quality of the plugin you pick.
A testing routine on staging
Test a candidate in this order before deciding:
- Back up the live site and build staging from that backup.
- Make sure staging is closed to search engines.
- Install and activate the plugin, leave its settings at default and save the front-end source.
- Compare with the source from before the install: new tags, new outside domains, new scripts.
- On key pages, check the title tag, the canonical and the structured data.
- Change the settings to your preference and compare again.
- If all is well, take a fresh backup of the live site and repeat the install there.
How to keep staging out of the index is covered in preventing a staging site from being indexed.
Example scenario: choosing between three contact-form plugins
Example scenario: a regional recipe blog wants a newsletter sign-up form and has three candidates. The editor records the checks in a table and lets the staging results decide.
| Candidate | Updates | Outbound behaviour | Free version | Outcome |
|---|---|---|---|---|
| Plugin A | Regular changelog | Credit option is off | Core features open | Goes to staging |
| Plugin B | No release for a long time | Adds a footer link automatically | Key feature locked | Rejected |
| Plugin C | Updated regularly | Calls an outside server without asking | Core features open | Rejected unless the call can be switched off |
The winner is not the plugin with the most features. It is the one that passes every line of the checklist. Plugin C deserves a note: an unannounced call conflicts with guideline 7, so if the setting can be turned off the risk drops, and if not the candidate is out.
Reading the front-end diff after an install
The comparison step on staging amounts to saving the page source twice and looking at the difference. The diff only helps if you know what each changed line means. Practical suggestion: file every finding under one of three classes and apply the matching action.
| What the diff shows | Likely meaning | Action |
|---|---|---|
| A new title or meta description tag | The plugin writes the page title itself | Check whether it clashes with your existing search settings plugin |
| A second canonical tag | Two plugins write the same field | Switch one off so a single source remains |
| An anchor pointing to a domain you do not know | A credit or affiliate link | Turn it off in settings; if it will not switch off, reject the plugin |
| A script or stylesheet from a domain you do not know | Dependence on an outside server | Compare with the readme and the settings description |
| A new hidden field or version comment | The plugin marking its own output | May be harmless; note it if it carries no link |
| A change in heading order | Template or page builder interference | Inspect the heading tree on key pages by eye |
If you use a translated admin interface, settings labels may differ from the descriptions here.
Why a logged-out browser matters
Some plugins show credit links to visitors only, so an open admin session can hide them. Take the source comparison in a logged-out browser or a private window. If you run a caching plugin, clear the cache before comparing, otherwise both records may show the same stale output.
Finding versus action: when to reject, when to adjust
Not every problem is a reason to reject. Sort the findings into three classes:
- Settled by a setting: the credit option arrives switched on and turns off in the settings. The plugin can stay. Write the change into the inventory.
- Not settled safely: an unannounced outside call will not switch off, the code is obfuscated or the source is closed. Reject the plugin.
- Unclear: the update information is old, the compatibility note is missing or the support forum is unanswered. Test on staging and look for a second candidate.
Practical suggestion: write the rejection reason in the inventory in one sentence. Six months later, "why are we not using this plugin" has an answer, and a new editor or agency does not walk the team back to the same shortlist.
What to do when you remove a plugin
Deleting is the easy decision. Watching what the deletion changes is a separate job. If the plugin touched page output, removing it changes that output. Practical suggestion: save the source of your key pages, delete the plugin on staging first and then check these points.
- Are the page title and meta description still written? If the plugin wrote them, the theme default may take over.
- Were redirect rules stored inside the plugin? They may leave with it, so export the redirect list first.
- Do shortcodes show up as plain text on pages? The shortcode typed into the content stays behind when its plugin goes.
- Does the plugin leave tables or settings in the database? The documentation gives no general rule here; read the plugin's own removal notes.
After the removal, open the sitemap address and a few key pages and compare them with your record. If the change goes the way you expected, repeat the same steps on the live site.
Keeping the plugin list sustainable
The work does not end at selection. Keep the list as an inventory and each review stays short. Record for every plugin:
- Name and version
- Why it was installed and which pages it touches
- The person responsible
- A note on outbound links and outside connections
- Date of the last review
Review rhythm
Practical suggestion: review the inventory at least twice a year and, after every update round, compare the front-end source with the previous record. After a major plugin or theme update, visit the key templates and check title tags, the canonical, structured data and the footer.
A decision rule
Three short questions decide whether to keep, replace or delete a plugin. Does it meet a real need today? Does it receive updates, and are its outbound connections documented? Could WordPress core or a plugin you already run do the same job? If the answer to the third is yes, deleting the plugin lowers both the maintenance load and the attack surface.
Agencies and multi-site owners
If you manage several sites, keep one shared inventory. The same plugin running at different versions on different sites is the easiest risk to miss. Hand the client the plugin list, the credit and outbound-link notes and the date of the last review in writing, so responsibility is clear on both sides.
Pre-install and post-install checklist
Before installing a new plugin or theme:
- Am I downloading it from the official directory or the developer's licensed shop
- Are the last update and the support forum activity acceptable
- Is any feature locked in the free version
- Can credit and outbound-link options be switched off
- Does the staging front-end source contain a domain I do not recognise
- Is the code readable and the source open
- Do I have a backup and a way back
After installing:
- Was a row added to the inventory
- Is a review date set
- Were old unused plugins deleted
The guideline numbers and the hardening wording can change; check the current pages before relying on them.
Frequently Asked Questions
Does the number of plugins affect SEO directly?
The WordPress documentation draws no link between plugin count and rankings. What it says is to delete plugins you do not use and keep the rest updated. What each plugin does and how well it is maintained matters more than the count.
Is a deactivated plugin harmless?
The hardening documentation says to delete a plugin from the system if you are not using it. Deactivating does not remove its files from the server.
How old must the last update be before a plugin counts as abandoned?
The WordPress.org guidelines set no day threshold. Practical suggestion: set your own and look for an alternative once a plugin passes it.
Why is downloading premium themes for free risky?
The hardening documentation says not to take plugins or themes from untrusted sources. Nobody audits the contents of a pack that is distributed without a licence on your behalf.
Is a link a plugin adds to the footer normal?
The plugin guidelines require credit and powered-by displays to be optional and hidden by default. A credit link that shows by default conflicts with that rule.
Can I try a plugin without a staging site?
Technically yes, but it is risky. If you test on the live site, take a backup first. With a staging copy, going back is much easier.
Conclusion
Choosing plugins and themes is a risk decision that affects both visibility and security. The WordPress.org guidelines ask for optional, hidden-by-default credits, no locked features, readable code and no unannounced outside connections, while the hardening documentation sets out updating, deleting unused plugins, trusted sources, file permissions and backups. Tie those rules to an inventory and a review calendar and the choice stops being a one-off decision.
With the plugin list cleaned up, the next asset to look after is the content itself.
For a steady stream of carefully made articles, take a look at our content writing service.
Post a comment
Please log in to leave a comment. Login