How to Keep Dozens of Websites in Sync from a Single Google Sheet

Last updated: September 2026

This walks through the video above step by step, with a screenshot for each stage. The result: one Google Sheet feeds a grid that can be embedded on any number of external, non-WordPress sites — edit the sheet once, and every site using it updates automatically, without even touching WordPress.

ℹ️ The Google Sheets connector requires a paid plan — Store or Bundle. External embed sites are unlimited on every plan, including Free. See Plans for details.

Step 1 — Prepare your Google Sheet

Build your data in a Google Sheet. Name the columns using Swiffle Grid’s prefixes (TIT_, IMG_, CONTENT, MAP_, and so on) so the plugin knows what each one is for — see the Column Reference for the full list.

Preparing the Wonders of the world data in Google Sheets

The source Google Sheet, with one row per card.

Step 2 — Publish it to the web

In Google Sheets, go to File → Share → Publish to the web, choose the sheet tab, select Comma-separated values (.csv), and publish. This gives you a public CSV link that always reflects the sheet’s current content.

Publishing the Google Sheet to the web as a CSV link

The published CSV link, generated by Google Sheets.

Step 3 — Connect it to a Swiffle Grid block

Add a Swiffle Grid block to a page, set its Data source to Google Sheet, and paste the published CSV link. The grid renders immediately from the sheet’s content.

Swiffle Grid block with Google Sheet selected as the data source

The block’s Data panel, with the Google Sheet URL in place.

Step 4 — Copy the embed code and paste it into any other site

Open the block’s Embed code tab, copy the generated HTML snippet, and paste it into a page on a completely different, non-WordPress site. The grid will pull its data live from the published Google Sheet.

Pasting the embed code into an external HTML page in VS Code

The embed snippet, pasted into an external page.

Step 5 — Allow the remote URL

Back in the WordPress admin, open the Swiffle Grid settings, add the external site’s URL under URLs allowed to embed, and check Google Sheets under Allowed sources. Only checked sources are exposed to that URL.

Swiffle Grid settings with the external URL allowed and Google Sheets checked

Adding the external site’s URL to the allow list.

Step 6 — Edit the sheet — no re-upload needed

Unlike a CSV or XLSX file, a published Google Sheet is already live: open it, change a value — here, a card’s title — and every site using that sheet picks up the change automatically, with no file to re-upload anywhere.

Editing a cell directly in Google Sheets

A quick edit, directly in the sheet.

Step 7 — Replace an image the same way

Images still work through the Media Library, the same way as CSV/XLSX sources. Here, the Grand Canyon photo is edited in GIMP — this could be a crop, a color adjustment, or adding a label — and exported under its original file name.

Editing the Grand Canyon photo in GIMP

Editing the image before re-uploading it.

Step 8 — Re-upload the image under the same name

Upload the edited image to the Media Library using the same file name as the original. WordPress stores it as a new file (adding -1 to avoid overwriting the original), and Swiffle Grid automatically picks up the most recently uploaded version everywhere the image is used. See the Column Reference for the full mechanics.

Uploading the edited image to the Media Library under the same file name

Uploading the edited image under the same file name.

Result

Without touching the external HTML page at all, both the title and the image update everywhere the grid is embedded — including on the completely separate, non-WordPress site. The spreadsheet data syncs instantly since it’s live, and the image syncs through the same-file-name trick, just like with CSV or XLSX sources.

The external site automatically showing the updated title and image, synced from Google Sheets

The external site, already showing the new title and image.