How to set up the WordPress plugin across several sites
Setup
September 4, 2026
The short answer
On each WordPress site, install the DashCanopy plugin, paste the API key from DashCanopy → Settings → API & Extension, and click Save & Register Site under Settings → DashCanopy. The plugin then pushes aggregate page views, WooCommerce or Easy Digital Downloads revenue when those plugins are present, and a response time. Do one site until the tile moves. Then repeat the same four steps on the next site. Do not change the recipe in the middle of the list.
The plugin is a stats path. It does not replace the health check on the public URL. Add the site in the dashboard first so there is a tile waiting for the push. That order is in add a site and read the first health check.
What you are installing
The current plugin offered on the WordPress plugin page is version 1.2.1, as a zip you download from DashCanopy. The page’s changelog says 1.2.1 connects with your personal API key and that live stats pushes update dashboard tiles. The directory listing on WordPress.org is called out in the changelog notes as pending, so the install path documented here is the zip upload, not a search in the plugin directory that may not find it yet.
Version 1.2.0 added Easy Digital Downloads revenue, WooCommerce high-performance order storage, an uninstall hook that removes plugin data, a disconnect button, bot filtering on the page-view counter, and a lightweight ping for response time. Version 1.1.0 added blog fields — last post, posts this month, auto-blog status — Jetpack Stats detection, and REST authentication with the X-DashCanopy-Token header. You do not need to memorize the history. You do need to know the tile can show content cadence as well as visitors and revenue, and that personal visitor records are not what the plugin sends. The page says only aggregate counts and performance metrics are transmitted.
One site, in order
Download the zip from the plugin page while you are logged into DashCanopy.
In WordPress, go to Plugins → Add New → Upload Plugin, choose the zip, and activate. WordPress’s own documentation describes that uploader if you have not used it before (upload a plugin).
In DashCanopy, open Settings → API & Extension and copy the key. It starts with dck_. This is the site account’s key. You paste the same key on each WordPress site that should report into your dashboard. Treat it like any other credential: do not put it in a public gist or a theme file you commit.
In WordPress, open Settings → DashCanopy, paste the key, and click Save & Register Site. The plugin page describes that button as the moment the site registers. You should not have to build a webhook for this path. The plugin page lists one-click setup as the point of the zip.
Wait for a push. The page says stats are pushed about every 5 minutes via WP-Cron. WP-Cron runs when WordPress receives traffic, unless you have replaced it with a system cron. A site with no visits may push late. Load the homepage once, wait out five minutes, and look at the tile.
You want page views to become a number, not a dash. If the site sells through WooCommerce or Easy Digital Downloads, revenue should reflect those orders in cents on the DashCanopy side. If you use Jetpack Stats, the plugin can prefer that count. If you do not, it uses its own counter. Either is fine. Write down which one this site uses so you do not compare it to a different counter tomorrow.
Blog fields are a bonus on the same push: last post date, posts this month, total posts, and auto-blog status when that status exists. They help a publisher see cadence. They are not a health check. A site can be online with zero posts this month. That is a publishing choice, visible on the tile, not an outage.
The second site is a copy, not a new design
Open the next WordPress admin and repeat the upload, activate, paste, and save. Use the same DashCanopy API key if both sites belong to the same dashboard account. Give each site its own tile, with its own public URL, before you register the plugin. The plugin registers the WordPress site it is installed on. It does not invent tiles for sister sites.
Keep a checklist with four columns: site name, tile online, plugin saved, first number seen. The third column without the fourth is how a portfolio ends up “connected” in your notes and empty on the dashboard. The push is the proof.
If a site is not WordPress, stop and use a different path. The plugin will not install on Shopify or a static host. Those sites need a stats endpoint or a platform-specific snippet, described on Platforms and in how numbers get onto a tile. A mixed portfolio is normal. Pretending the plugin covers the non-WordPress half is how the mixed half stays blank.
When the test push fails
The install guide lists “Test push failed” and “Stats not updating” as real support cases. Work them in this order.
Confirm the key is the current key from Settings → API & Extension, including the dck_ prefix, with no space pasted from a line break.
Confirm the WordPress site can reach DashCanopy. A security plugin, a host firewall, or a “disable external HTTP” setting will block the push while the public homepage still loads for readers. That looks like a healthy tile with frozen stats.
Confirm WP-Cron is not disabled without a replacement. If you define DISABLE_WP_CRON and you do not have a server cron hitting wp-cron.php, the five-minute push never starts. Readers can still load pages. The counter may even increment locally. The dashboard never hears about it.
Confirm you are looking at the right tile. Two sites with similar names are easy to swap. The registered URL should match the public URL on that tile.
For revenue stuck at zero while WooCommerce shows orders, use the install guide’s note on that symptom before you change the store. Order storage (classic versus HPOS) and which revenue plugin is active are the first facts to gather. The plugin changelog says HPOS and Easy Digital Downloads are supported. A different commerce plugin is not automatically supported because it also sells things.
Uninstalling cleanly
The plugin page says uninstall removes its data, options, and cron jobs. Use that when you retire a site. Disconnect from the settings screen first if you are only moving the site to another dashboard. Deleting the plugin without meaning to will stop the pushes. The health check on the URL continues, because health does not depend on the plugin. You will still know if the site is down. You will stop seeing its reported visitors until you install a reporting path again.
What this setup does not claim
It does not put the plugin in the WordPress.org directory if that listing is still pending. It does not monitor a multisite network as one tile unless you have decided how each site in the network should report. It does not send you a list of readers. It does not replace a backup, an update routine, or a host. It fills the stats half of a tile you already added, about every five minutes, for as long as the key and the cron keep working.
Check the first number on every site you add this way. A checklist with one confirmed push is worth more than a weekend of installs you never looked at.
Questions about the plugin
Do I need a separate API key for each WordPress site?
Use the key from the DashCanopy account that owns the dashboard. Each WordPress site gets the plugin and that key. Each site still needs its own tile so the numbers have somewhere to land.
Will the plugin slow down the public site?
The page describes a background push on WP-Cron and a lightweight ping for response time, plus bot filtering on the counter. It is built to stay out of the request a reader waits on. If a security or caching plugin conflicts, you will see it as a failed push or a broken page, and that is a conflict to resolve on that site, not a reason to skip monitoring.
Can I install it on a staging site?
You can, and you should decide whether you want a staging tile. A staging host that search engines cannot see may still be worth a health check. Point the plugin at staging only if you want staging numbers in the dashboard. Do not register staging with the production URL’s tile or you will mix two environments’ counts.