Getting WooCommerce data into Looker Studio

Looker Studio is free, shareable and already in your Google account, which makes it the obvious home for store dashboards. The awkward part is what it connects to: your shop's database has no shape a report can use.

Why WooCommerce and Looker Studio don't just click together

Looker Studio has no WooCommerce connector of its own. It has a MySQL connector, which will happily connect to your shop — and then show you wp_posts and wp_postmeta. There is no orders table to chart, because an order is a post row with its fields spread across postmeta as key-value pairs. The first useful chart requires a query, not a click.

Community connectors fill the gap by reading the WooCommerce REST API instead. They give you real orders, which is a genuine improvement, but they're rate-limited by the API, generally paid, and constrained to whatever the connector's author decided to expose. Custom fields and anything unusual in your setup tend not to make it through.

The quieter problem is load. Looker Studio's charts issue queries when someone opens the report and when the cache expires — and if the source is your production database, that's traffic on the server rendering your product pages, generated by anyone you shared a link with.

Three ways to connect it

All three put a WooCommerce dashboard in Looker Studio. They differ in what your report is allowed to do to your shop.

A community connector

A third-party connector from the Looker Studio gallery that reads the WooCommerce REST API.

  • Real orders and products without writing SQL
  • Set up in minutes from inside Looker Studio
  • API rate limits make large date ranges slow or incomplete
  • Usually a subscription, per site
  • A third party holds API credentials to your store

The built-in MySQL connector, pointed at your shop

Looker Studio connects straight to your production database with a custom query you write yourself.

  • Free, built in, and you control the SQL completely
  • Live data with no copy to keep fresh
  • Your production database must accept connections from Google's IP ranges
  • Every report open and every refresh queries the live shop
  • You're writing the postmeta joins yourself, against a database you can't afford to slow down

The same connector, pointed at a copy

BeQuery

BeQuery clones WooCommerce into an isolated PostgreSQL copy. Looker Studio's built-in PostgreSQL connector reads it directly — no export, no community connector.

  • Nothing your report does can reach production, however many people open it
  • Native connector, so no subscription and no API rate limits
  • Read-only credentials scoped to your schema: SELECT only, no writes possible
  • Built-in WooCommerce insights already resolve the postmeta joins into revenue, AOV, LTV and repeat rate
  • External credentials are a Cloud or Enterprise feature
  • Data is as fresh as your sync, not to the second

Connecting it, step by step

  1. 1

    Connect your store to BeQuery

    Read-only MySQL credentials, host and port. BeQuery clones the database into an isolated PostgreSQL copy, verified against the source on every sync.

  2. 2

    Create a read-only external credential

    In Settings → External connections, generate a PostgreSQL user scoped to your team's schema. It is SELECT-only: it cannot write, alter or drop anything, and it can't see another workspace. External connections are available on the Cloud and Enterprise plans.

  3. 3

    Add a PostgreSQL data source in Looker Studio

    Add data → PostgreSQL → paste the host, database, user and password. No community connector, no OAuth dance, nothing to install: PostgreSQL is one of Looker Studio's built-in connectors.

  4. 4

    Build on a custom query, not a whole table

    Choose the custom query option and paste SQL that already aggregates. Your report then reads a few hundred rows instead of scanning your largest table on every interaction — which keeps dashboards fast and stays inside the 30-second statement timeout on external credentials.

Point it straight at your shop, or at a copy?

Connecting Looker Studio directly to production is a real option and sometimes the right one. It's worth being deliberate about which side of this you're on.

Direct is defensible when

  • Nobody but you will ever open the report, and the store is small
  • You need the data to be live to the second and accept the cost of that
  • The shop already sits behind a replica you can safely point at

Put a copy in between when

  • You're sharing the dashboard with clients, colleagues or a whole team
  • The report has more than a couple of charts, each firing its own query
  • You'd rather not open your production database to Google's IP ranges

Common questions

Will my dashboard be slow?

That depends almost entirely on whether your data source is a table or a query. Point a chart at a raw table and Looker Studio scans it on every interaction. Point it at a custom query that already groups by month or by product and it reads a few hundred rows — fast, and comfortably inside the 30-second statement timeout that applies to external credentials.

Can't Looker Studio just connect to my MySQL database directly?

It can — MySQL is a built-in connector, and for a small shop that's a legitimate choice. What you're accepting is that your production database has to be reachable from Google's IP ranges, and that every viewer opening the report, and every scheduled refresh, runs queries against the server your customers are checking out on. It works fine until the report gets popular or someone builds a dashboard with twelve charts on it.

Do I need to export anything?

No, and this is the real difference from the BigQuery route. Looker Studio speaks PostgreSQL natively, and BeQuery's clone is a real PostgreSQL database — so the report reads the copy directly. There's no load step to schedule and nothing to keep in sync beyond the sync you already have.

Which plan do I need?

External PostgreSQL credentials — the thing Looker Studio connects with — are available on the Cloud (pay-as-you-go) and Enterprise plans. The clone itself, the SQL editor and the in-app dashboards work on every plan, including the free tier.

How fresh will the dashboard be?

As fresh as your last sync, plus whatever caching you leave on in Looker Studio. Sync runs nightly on lower plans and down to roughly every minute on higher ones. For a report someone opens each morning, nightly is usually what people settle on anyway.

See it on your own store first

Free tier, no credit card, read-only access. Production is never written to — and you can explore the demo store before connecting anything.