Plugin documentation

SearchReport

SearchReport imports Google Search Console and Bing Webmaster Tools into native Matomo reports: daily, automatically, with unlimited history beyond Google's 16-month limit.

Plugin page · from €49/month Try the live demo ↗

Overview

SearchReport brings your organic search performance home into Matomo: it imports Google Search Console and Bing Webmaster Tools through their official APIs and shows them as native Matomo reports in a dedicated Search Engines menu section, right next to your visit analytics. You can connect both sources or just one.

Reports

  • Overview: KPI tiles for Google and Bing with the share of top 10 rankings, an evolution graph, top keyword movers and the import and index status
  • Keywords: queries with clicks, impressions, CTR and average position
  • Keyword conversions: estimated conversions, conversion rate and revenue per search term for Google and Bing. Matomo's conversions from search engine visits are shared among each entry page's search terms by their share of clicks. Shown for websites with goals or ecommerce
  • Pages: landing pages, including a Keywords ⇄ Pages drill-down in both directions
  • Countries, devices, search types (web, images, videos, news, Discover, Google News) and search appearance
  • Keywords by device and country and ranking distribution
  • Bing: keywords, pages, Keywords ⇄ Pages, crawling and backlinks
  • Indexing & Sitemaps: URL index status from Google and sitemaps from Google and Bing
  • In Matomo's own reports: Acquisition → Search Engines & Keywords also shows the Google web search and Bing keywords of connected websites
  • Dashboard widgets: Search KPIs, Top keyword movers and Import & index health
  • Every report supports row evolution, flat view, export and the dashboard. Menu pages only appear for connected sources and search types with data.

Import & retention

  • Automatic import every hour, each data area is refreshed once a day; failed imports are retried
  • The last 16 months of Google data load automatically in the background, newest days first
  • Unlimited retention in your own Matomo database: your history keeps growing beyond Google's 16-month window
  • Optional URL index status for your most important pages within a daily budget, plus sitemap status
  • Bing backlinks are stored as a monthly snapshot to build a trend
  • The overview shows the state of every import; if an import keeps failing, super users get a notice in Matomo with a hint on how to fix it

Setup

Everything happens on one page, Administration → Websites → Search engine access, which guides a super user step by step: add a Google service account (JSON key, added as a user to your Search Console properties; the Restricted permission is enough) and/or a Bing Webmaster API key, then assign all websites in one table. If exactly one property matches a website's domain, it is preselected. You can add as many service accounts and API keys as you need, for example for several clients: the plugin finds the access that can read each property, and all access data is stored encrypted. The documentation walks you through every step.

Good to know

  • Google publishes data with about two days delay, so choose report periods accordingly.
  • Bing provides keyword and page figures only as weekly totals (Friday to Thursday).
  • These are search engine metrics, not visitor data: Matomo segments do not apply in these reports.
  • Keyword conversions are an estimate. Anonymised queries and pages without clicks in the period appear as Not attributable.
  • Bing backlinks and crawl issues stay empty for many websites because the Bing API currently does not deliver them. There is no interface yet for the AI reports of either provider (AI Overviews, Copilot).

Use cases

  • Keywords are back: Google stopped sending keywords to web analytics years ago. SearchReport puts queries, clicks, impressions and positions right next to your visit data, with a Keywords ⇄ Pages drill-down and an estimate of which search terms lead to conversions.
  • History without an expiry date: Search Console forgets after 16 months. Your Matomo doesn't: imports land in your own database with unlimited retention, for year-over-year SEO comparisons that stay in your hands.
  • Set up once, updated daily: Add your Google service accounts and Bing API keys on one setup page and assign all websites in a single table. An hourly import refreshes every data area once a day and loads the last 16 months of Google history in the background. Row evolution, flat view and exports work like in any Matomo report.
  • Right in your Matomo dashboard: The Search KPIs, Top keyword movers and Import & index health widgets go on your dashboard like any other Matomo widget: clicks, rankings, winners and losers right next to visits and conversions.

Step-by-step setup

Installation is covered in Installing plugins. A super user does the setup under Administration → Websites → Search engine access. You can connect Google, Bing or both.

1. Google Search Console

  1. In the Google Cloud Console, choose a project and enable the Google Search Console API.
  2. Under IAM & Admin → Service accounts, create a service account and a JSON key for it.
  3. In Search Console, add the service account's email address as a user to every property. The Restricted permission is enough.
  4. Paste the JSON file's content on the page and click Add access. Check shows the reachable properties or how to fix an error, Remove deletes the access.

2. Bing Webmaster Tools

In Bing Webmaster Tools, create an API key under Settings → API access and paste it on the page. One key works for all sites of your Bing account.

Add as many service accounts and API keys as you need, for example per client; the plugin finds the access that can read each property. Everything is stored encrypted, and access from earlier versions is taken over within the hour.

3. Assign websites

Choose the matching property and Bing site for each website in the table and save. If exactly one property matches a website's domain, it is preselected as a suggestion. The import fetches the data within the next hour.

Under Administration → Websites → Manage you can also assign single websites and switch on the optional URL index status: Enable URL inspection import checks your pages with the most impressions daily, up to the URL inspection daily budget (default 100, at most 2000). The system setting Website admins may link properties lets website admins assign entries matching their URLs. As admins can edit those URLs, keep it off if different clients share one Matomo.

4. Check the connection and get first data

The System Check under Administration → Diagnostic shows one line per access with its status. On the command line, ./console feinwerksearchreport:test-connection checks every access, and with --idsite=1 also one website's mapping.

The import runs hourly and refreshes each data area once a day; the last 16 months of Google history load step by step, newest days first. To load it all at once: ./console feinwerksearchreport:import --idsite=1 --backfill.

The reports are under Search Engines: Overview, the Google and Bing pages, Keyword conversions and Indexing & Sitemaps. Matomo's own Acquisition → Search Engines & Keywords report also shows Google web search and Bing keywords. Dashboard widgets: Search KPIs, Top keyword movers and Import & index health.

Practical examples

Find keywords with click potential

Sort Google · Keywords by Impressions. Keywords with many impressions, a low CTR and an Avg. position between 4 and 10 are close to the top spots. Google · Keywords ⇄ Pages shows which page appears for them.

Find the search terms that convert

Open Search Engines → Keyword conversions. Google keywords with conversions (estimated) shows clicks, Conversions (estimated), Conversion rate (estimated) and, if there is any, Revenue (estimated) per search term. If an entry page has 10 conversions from Google visits and 60% of its Google clicks came from one keyword, that keyword gets 6. The Not attributable row holds anonymised queries and pages without clicks. The page only appears for websites with goals or ecommerce.

Track down ranking losses after a relaunch

Top keyword movers in the Overview lists gainers and losers. For a loser, open the row evolution to see when the drop started, and check in Google · Keywords ⇄ Pages whether a different URL now appears.

Spot indexing and crawling problems

Indexing & Sitemaps shows Verdict, Coverage and Last crawl per page in URL Index Status (Google), plus all sitemaps with Errors and Warnings. Bing · Crawling shows HTTP errors and pages blocked by robots.txt.

Good to know

  • Data freshness: Google data is about two days behind. Bing provides keyword and page figures only as weekly totals (Friday to Thursday).
  • History: Google provides up to 16 months back, Bing about six. Imported data stays in your Matomo database with no time limit. It holds no visitor data, so Matomo segments do not apply.
  • Keyword conversions are estimated from conversions in visits from the search engine. They are built during Matomo's archiving. After the update to 0.9.0, past periods (by default the last six months) are recalculated once in the background.
  • Uninstalling deletes all imported data. To pause, just deactivate the plugin.
  • Permissions: anyone who may view the website in Matomo sees the reports, without their own Search Console access. Only super users see access data and error details.
  • Limits: tables show at most 5,000 rows, the rest goes into an Others row. Google withholds rare queries. Bing backlinks and crawl issues often stay empty because Bing currently does not deliver them. AI reports (AI Overviews, Copilot) have no interface yet.
  • Troubleshooting: for import errors such as a revoked key or missing Search Console access, Import & index health, the System Check and the setup page name the cause and the fix. After three failures in a row, super users get a notice. If Matomo's salt in config.ini.php changes, enter your access data again. If no data arrives, check that Matomo's scheduled tasks run (usually the core:archive cron job). More help: support@feinwerk.io.

Technical reference

PropertyValue
Technical nameFeinwerkSearchReport
Current version0.9.3
Matomo≥ 5.0.0, < 6.0.0
PHP≥ 8.1
Licensepaid
Database changesnone in the current version

FAQ

Which data does SearchReport import?

Google Search Console performance for all search types (web, images, videos, news, Discover, Google News) with all dimensions, plus sitemap status and budget-controlled URL inspection. From Bing Webmaster Tools: query and page stats, crawl statistics and issues, monthly backlink snapshots, and sitemaps. On top, SearchReport estimates conversions and revenue per search term from Matomo's own conversions.

Do I really keep data longer than Google's 16 months?

Yes. Everything is stored in your Matomo database with unlimited retention. After the first import, the search engines' API windows stop mattering: your history just keeps growing. Only uninstalling the plugin deletes the imported data; to pause, deactivate it.

What do I need for the setup?

A Google Cloud service account with a JSON key (enable the Google Search Console API in its project and add its email address as a user to your Search Console properties; the Restricted permission is enough), and/or a Bing Webmaster API key. A super user adds them under Administration → Websites → Search engine access and assigns all websites in one table. Matomo's system check shows whether each access works.

Can I connect several Google and Bing accounts?

Yes. Add as many service accounts and Bing API keys as you need, for example one per client. The plugin finds out by itself which access can read a property, and all access data is stored encrypted.

Do Matomo segments apply to these reports?

No. This is search engine data, not visitor data, so Matomo segments don't apply here. Row evolution, flat view, export and dashboard widgets work as usual.

How current is the data?

Google publishes Search Console data with roughly two days delay. SearchReport checks every hour and refreshes each data area once a day. Bing provides keyword and page figures as weekly totals.

How are the keyword conversions calculated?

Search engines don't pass search terms on to Matomo, so SearchReport estimates them: Matomo's conversions in visits from Google or Bing are shared among each entry page's search terms in proportion to their clicks. If a page has 10 conversions and 60% of its Google clicks came from one search term, that term gets 6. Anonymised queries and pages without clicks appear as “Not attributable”. The reports appear for websites with goals or ecommerce.