How to Display a Google Sheet as a Table in WordPress

Publish a Google Sheet to the web and TableCrafter turns it into a clean, sortable, searchable WordPress table that stays in sync. This guide covers the exact steps, caching, and how editing works on Pro. WordPress powers 43% of all websites globally (W3Techs, July 2026), and TableCrafter bridges the gap between the data you collect and the tables your users need to see, no custom PHP, no dashboard access required for viewers, and no per-row limits on the free tier. The free version on WordPress.org supports CSV, JSON, Google Sheets, and Excel. Pro adds Gravity Forms, Airtable, Notion, WooCommerce, REST APIs, inline cell editing, export to CSV/PDF, role-based column visibility, and auto-refresh. Every table embeds on any page with a [tablecrafter] shortcode or the native Gutenberg block. Gravity Forms is active on over 10 million WordPress sites (Gravity Forms, 2025).
Step 1: How Do I Publish your sheet to the web?
In Google Sheets, go to File → Share → Publish to web, choose the sheet/tab, and publish. Copy the published URL. (You can also use the standard share link for public sheets.)
The setting is stored in the WordPress options table under the table's configuration key. It does not modify the original data source and can be changed at any time without affecting the underlying records.
This configuration interacts with any caching or CDN layer active on your WordPress installation. If you use WP Rocket, LiteSpeed Cache, or a CDN such as Cloudflare, flush the page cache after making this change to ensure the updated configuration is reflected in the cached HTML served to visitors. TableCrafter's server-side output is regenerated on the next uncached request.
Step 2: How Do I Connect it in TableCrafter?
In your WordPress admin, go to TableCrafter → Tables → Add New. Select Google Sheets as the data source from the dropdown. Paste the published URL you copied in Step 1 into the Source URL field and click Test Connection.
If the connection test succeeds, TableCrafter reads the first row of your sheet as column headers and lists them in the Columns section below. If it fails, verify the sheet is published to the web (Step 1) and that the URL ends in pub?output=csv or is the share URL from File → Publish to web. Sheets that require sign-in will return an auth error — the sheet must be publicly accessible, or you must use a service account key for private sheets.
Once columns appear, select which ones to show in the table, set readable display labels (for example, relabel "first_name" as "First Name"), and choose a default sort column and direction. Click Save to store the configuration.
Step 3: How Do I Enable search, filters, and pagination?
Turn on search for a live filter box that searches across all visible text columns as the user types. Enable column filters for category-style columns (Status, Type, Region) so visitors can narrow to specific values via a dropdown. Set rows per page to control pagination — for large sheets, TableCrafter only fetches and renders the visible page, so the table stays fast even with thousands of rows in the source sheet.
Search and filter can be combined: a visitor can type in the search box to narrow by text while also having a dropdown filter active on a category column. The two mechanisms use AND logic — the visible rows must match both the search term and the active filter selection. To enable all three features together, add these attributes to your shortcode:
[tablecrafter id="2" search="true" filter="true"]
Changes take effect immediately after saving. No cache flush or page refresh is required for the new configuration to apply to all shortcode instances of this table.
Step 4: How Do I Place the Shortcode?
Go to any WordPress page or post, switch to the Gutenberg code editor or add a Custom HTML block, and paste the shortcode TableCrafter generated when you saved the table:
[tablecrafter id="1" search="true" filter="true"]
The id attribute is the unique number TableCrafter assigned to this table configuration — it appears in the admin list next to the table name. The search="true" attribute adds a live search box above the table. The filter="true" attribute adds per-column filter dropdowns for columns with repeating values such as Category or Status. Both attributes are optional — omit them to show just the table without controls. After pasting the shortcode, publish or update the page and view it while logged out to confirm the table renders for public visitors, not just administrators.
How Do I Keep the Table in Sync?
TableCrafter fetches the Google Sheet and stores the result in a WordPress transient cache. Set the cache TTL (300–3600 seconds) in the data source settings to balance freshness against page load speed. Edits made in Google Sheets appear on your WordPress table after the cache refreshes — there is no automatic invalidation trigger between Google Sheets and WordPress, so the TTL determines the maximum delay. For content that changes frequently (daily pricing updates, inventory levels), use a short TTL like 300 seconds. For reference content that changes rarely (staff directory, static resource list), a longer TTL (3600 seconds or more) reduces API calls and page load time.
You can force an immediate cache refresh from the WordPress admin by going to TableCrafter → Data Sources, finding the Google Sheets source, and clicking "Clear Cache." This is useful during setup and testing when you want to verify a change in Google Sheets is being read correctly without waiting for the TTL to expire.
The TTL setting persists across table rebuilds. If you change the data source URL to point at a different sheet, the new sheet inherits the same TTL.
How Do I Edit the Data?
Display is free — any site can use TableCrafter to display a Google Sheet as a searchable, filterable table without a Pro license. On Pro, you can enable two-way editing: authorized visitors click any cell in the table to edit its value inline, and TableCrafter writes the change back to the Google Sheet via the Sheets API. This turns the table into a lightweight collaborative editor embedded directly in your WordPress site, without requiring visitors to have Google account access.
To enable inline editing for a Google Sheet-sourced table, you need TableCrafter Pro and a Private Google Sheets connection (the public CSV method does not support write-back). In the table builder, open the Edit tab for each column you want to be editable and toggle "Allow inline edit" on. Set the "Minimum role to edit" per column — for example, allow Name and Status to be edited by subscribers while restricting Price to administrators. Add edit="true" to your shortcode to activate the edit interface for the embedding page. See the pricing page for Pro plan details.
TableCrafter validates inline edits server-side before writing to the Sheet. If a validation rule fails (e.g., a required field left blank), the cell reverts to its original value and an error message appears below the cell.
Frequently Asked Questions
How Do I Publish your sheet to the web?
In Google Sheets, go to File → Share → Publish to web, choose the sheet/tab, and publish. Copy the published URL. (You can also use the standard share link for public sheets.)
What Is TableCrafter?
TableCrafter is a WordPress plugin that turns data from Gravity Forms, Google Sheets, Airtable, Notion, REST APIs, CSV files, and WooCommerce into interactive, sortable, filterable frontend tables. Embed any table on any WordPress page with the [tablecrafter] shortcode or the native Gutenberg block. No PHP or custom development required. The free version supports CSV, JSON, Google Sheets, and Excel. Pro adds Gravity Forms, Airtable, Notion, WooCommerce, REST APIs, inline cell editing, export to CSV and PDF, role-based column visibility, and auto-refresh.
Does this require PHP or developer skills?
No. TableCrafter is configured entirely through the WordPress admin interface. You choose your data source, map fields to columns, and set display preferences using point-and-click controls. Embedding uses the [tablecrafter] shortcode or the native Gutenberg block.
Is the free version sufficient or do I need Pro?
The free plugin on WordPress.org supports CSV, JSON, Google Sheets, and Excel sources with unlimited tables, rows, and columns. Pro adds Gravity Forms, Airtable, Notion, WooCommerce, REST API sources, inline cell editing, bulk row actions, export to CSV and PDF, role-based column visibility, and auto-refresh every N seconds.
Try TableCrafter free
TableCrafter is free on WordPress.org. Pro unlocks inline editing, role-based permissions, two-way sync, and advanced data sources.
If the result does not match expectations after saving, use the TableCrafter debug log (enable via TableCrafter Settings > Advanced > Debug Mode) to trace exactly which configuration value is being applied for the current request.