Skip to content
GPLWP Guides

How to track website expenses across WordPress sites

Utilities Time About 30 minutes for the first setup 6 steps Updated 1 Nov 2026

UTILITIES
The short answer

Track each plugin, theme, hosting, domain and service cost against the sites it affects, then add renewal dates and reminders. A spreadsheet is fine for a small portfolio; MainWP’s Cost Tracker is faster for agencies managing recurring expenses across many WordPress sites.

The route
  1. 01List every expense type
  2. 02Create one record per cost
  3. 03Use a spreadsheet manually
  4. 04Reconcile sites and invoices
  5. 05Centralise costs in MainWP
  6. 06Speed up entry and reminders

What you need

  • Admin access to the WordPress sites or management dashboard
  • A list of current plugins, themes, hosting, domains and services
  • Purchase receipts, renewal dates and billing details
  • A spreadsheet or MainWP Dashboard

List every expense type

Start with more than plugin licences. Record hosting, domains, premium plugins, themes, email services, backups, security tools, fonts, stock assets, developer services and one-off purchases.

Separate recurring costs from one-off costs. A plugin that is free today may still have a paid add-on or renewal, so check the vendor account and the receipt rather than relying on the WordPress Plugins screen.

Create one record per cost

For each expense, record the product or service name, vendor, purchase URL, cost, currency, purchase date, next renewal date, billing frequency, licence type and payment owner.

Also record which site, client or group of sites uses it. If one agency licence covers ten sites, keep one cost record and list all ten sites instead of entering ten separate charges.

Use a spreadsheet manually

A spreadsheet is enough when you manage only a few sites. Use columns such as Site, Client, Expense, Vendor, Type, Amount, Renewal date, Frequency, Licence owner and Notes.

Set calendar reminders before every renewal and review the sheet monthly. This route costs nothing extra, but it depends on someone remembering to enter purchases and update dates. The common Friday problem is a renewal being missed because a receipt stayed in an inbox and the spreadsheet was never updated.

Reconcile sites and invoices

Compare the list with each site’s installed plugins and active theme, then check vendor accounts and payment statements for anything missing. Do not assume an installed plugin is still covered by a current licence, or that an unused licence should keep renewing.

Mark cancelled subscriptions, replaced products and shared licences clearly. Keep receipts or invoice references in the notes so another team member can verify an expense without searching through email.

Centralise costs in MainWP

If you already manage the sites in MainWP, use its built-in Cost Tracker to add costs, associate them with sites, tags or clients, set recurring costs and produce cost reports. This avoids maintaining a separate row for every site when one licence covers a group.

Enter hosting, domains and services manually as well as plugin and theme licences. The Cost Tracker will not know about a purchase simply because the product is installed, so add the financial record and check the renewal details yourself.

Speed up entry and reminders

For the fastest workflow, use the MainWP Cost Tracker Assistant Extension with the Cost Tracker. After installing a plugin or theme from a ZIP file, use the install screen’s Add to Cost Tracker action, complete the cost and renewal fields, and assign the item to the relevant sites, tags or clients.

Enable email notifications and set an expiration notification threshold for active recurring subscriptions. Check the notification recipient and the scheduled task after setup. The extension runs from the MainWP Dashboard, but it cannot recover a renewal date or price that you never entered.

The fast route

Let MainWP Cost Tracker Assistant Extension do it

Centralizes plugin and theme costs, renewal reminders, and reports in MainWP for agencies managing multiple client sites.

Get MainWP Cost Tracker Assistant Extension

Sources

  1. wordpress.org /plugins/mainwp/?utm_source=openai
  2. mainwp.com /add-on/cost-tracker-assistant/?utm_source=openai

Questions

Can I track WordPress expenses without a plugin?
Yes. A spreadsheet with one row per expense can track costs, renewal dates, vendors and the sites using each licence. It is a sensible choice for one or two sites, but you must enter purchases manually and create your own calendar reminders. As the number of sites grows, duplicated rows and missed renewals become the main weaknesses.
What WordPress expenses should I record?
Record hosting, domains, premium plugins, themes, licences, email, backups, security services, fonts, stock assets, development work and other site-specific services. Include both recurring and one-off costs, the billing frequency, the next renewal date and which site or client benefits from the purchase. Free plugins usually do not need a cost entry unless they have paid extensions or support.
How do I handle one licence used on several sites?
Create one cost record for the shared licence and associate it with every site, tag or client that uses it. Do not multiply the purchase amount by the number of sites unless the vendor charges per site. Keep the licence owner and usage limits in the notes, because a shared licence can become a problem when a site leaves your care.
Does MainWP automatically discover every website expense?
No. MainWP’s Cost Tracker stores the costs you enter, but it cannot reliably infer purchase prices, billing terms or renewal dates from an installed plugin. You still need to enter hosting, domains and vendor subscriptions. The Cost Tracker Assistant Extension reduces manual work for ZIP-installed plugins and themes and can send reminders for recurring entries.
Is a spreadsheet better than MainWP for a small number of sites?
Often, yes. A spreadsheet is easier to start and is fine when you manage a small number of sites with few renewals. MainWP becomes more useful when you need costs grouped by client, site or tag, recurring entries, central reports and renewal reminders. Choose the tool that makes monthly reconciliation more likely, not the one with the longest feature list.