How to Embed Google Sheets Data in WordPress

Quick answer
Embed Google Sheets in WordPress by publishing the sheet to the web, copying the iframe, and pasting it into a Custom HTML block. Set the container to full width for responsive sizing. For factsheets and dashboards that need a real chart rather than a raw grid, generate a finance-aware embed with Quadesto instead.
Google Sheets is where a lot of numbers live — budgets, KPIs, pricing tables, campaign results. WordPress is where you publish. The gap between the two is the question this guide answers: how do you get live sheet data onto a WordPress page without screenshotting it every week? There are two routes. The quick one embeds the sheet as-is. The better one turns it into a real, finance-aware chart.
The quick way: embed a published Google Sheet
Google Sheets can publish a range straight to the web as an iframe, and WordPress can drop that iframe into any page. It takes a couple of minutes and needs no plugin. The catch is that you get the raw grid — Google's default table styling, not something that matches your site — and it inherits every quirk of the source sheet. For a quick internal dashboard or a simple data table, that's fine. For anything customer-facing, keep reading.
Embed Google Sheets in WordPress: 5-step setup
- In Google Sheets, open File > Share > Publish to web. Choose the specific sheet or range rather than the whole document, and pick the format that fits — the interactive table or a chart you've already built.
- Copy the embed code. Google gives you an iframe snippet; grab the whole thing, including the src URL and dimensions.
- In WordPress, edit the page and add a Custom HTML block (Gutenberg) or an HTML element if you're in a page builder like Elementor. Paste the iframe there — not into a paragraph block, which will strip the markup.
- Wrap the iframe in a container and set the width to 100% so it scales with the column. Google's default fixed width will overflow on mobile otherwise.
- Preview on desktop and mobile, publish, and confirm the data loads for a logged-out visitor. If it doesn't, the sheet isn't actually published to the web — recheck step one.
The better way: a live, finance-aware chart
A published grid is data, not a visual. If you're putting a factsheet, a yield table, or a KPI dashboard in front of readers, they need a chart that's correct and publication-ready — not a spreadsheet in an iframe. This is the same trade-off we covered for embedding Google Sheets in Webflow: the quick method ships fast, but the better method ships something you'd actually put your name on. Quadesto connects to your sheet, computes the chart with finance-aware methodology, and gives you a single embed line to paste into the same Custom HTML block.
The output is a real, responsive chart — not a screenshot and not a raw table. It refreshes when your data changes, it matches your brand, and it renders the way finance charts should. If you've seen our Webflow chart embed, the WordPress flow is identical: connect the source, configure the chart once, and drop the embed on the page.
Keeping your data fresh
A published Google Sheet updates on Google's schedule, which can lag by a few minutes — usually fine, occasionally not. A raw iframe also carries none of your styling, so every refresh looks like Google, not you. A Quadesto embed pulls from the same source but re-renders the chart on load, so the number your reader sees tracks the sheet without a manual re-export. Either way, the rule is the same: connect once, and stop copy-pasting data by hand.
Common issues (and fixes)
- The embed shows nothing to logged-out visitors — the sheet is shared but not Published to web. Those are two different settings; you need the second.
- It overflows on mobile — the iframe has a fixed pixel width. Wrap it in a full-width container and let the column control the size.
- Edits don't appear — Publish to web caches. Force a republish, and remember Google's refresh interval isn't instant.
- The styling clashes with your theme — you're embedding Google's chrome. A generated chart inherits your palette instead of fighting it.
Which method should you use?
Use the published-iframe method for quick internal tables and throwaway dashboards where speed beats polish. Use a generated chart when the data is customer-facing, needs to match your brand, or has to be methodologically correct — factsheets, yield curves, performance tables. The same choice applies whether you're embedding a chart or a full interactive dashboard in WordPress: raw iframe for speed, generated embed for anything you'd publish.
Frequently asked questions
Can you embed Google Sheets in WordPress without a plugin?
Yes. Publish the sheet to the web, copy the iframe, and paste it into a Custom HTML block. No plugin is required for the basic embed. Plugins mainly add styling and auto-refresh on top of what Publish to web already does.
Why does my embedded sheet look different from my site?
Because you're embedding Google's own table or chart styling, not your theme's. The iframe renders inside Google, so it ignores your fonts and colours. To make it match, generate the chart with a tool like Quadesto that inherits your brand instead of Google's defaults.
Will the embed update automatically when the sheet changes?
A published sheet refreshes on Google's schedule, so updates appear after a short delay rather than instantly. A generated embed re-renders from the same source on each load, which keeps the on-page chart in step with your data without a manual re-export.