How to Import Google Sheets to WordPress
To import Google Sheets to WordPress, paste your Google Sheet’s sharing URL in All Import › New Import › Download a file › From URL, then map columns to fields using WP All Import’s drag & drop interface. You can schedule automatic updates, control which fields update, and even remove items that disappear from your Google Sheets spreadsheet.
Before You Start
You have two reliable ways to make a Google Sheet accessible to WordPress:
- Share Link (“Anyone with the link”): Fastest and recommended for most imports. Copy the link and paste it in Download a file › From URL. WP All Import uses the first sheet automatically.
- Publish to the web (CSV): Produces a direct CSV URL per sheet/tab. Helpful when you want to import a specific sheet/tab, different than the first one.
Either method works with WP All Import. If you’re not sure which to use, start with the standard share link which will use the first sheet by default. You would switch to a published CSV URL if you need to import from a different sheet in your spreadsheet.
Step 1: Create Your Import File in Google Sheets
Open Google Sheets, click on Start a new spreadsheet and set up columns for each data element you plan to import (e.g., title, content/description, price, images, categories, SKU, etc). One row per record works best. As previously explained, this data goes on the first sheet of your spreadsheet.

When your data looks good, make the sheet accessible by obtaining a sharing link. To do so, click Share › under General access choose Anyone with the link › Copy link.

This method fetches the first sheet by default. If you have multiple sheets to import, move the data to the first sheet or publish the data as a CSV: Go to File › Share › Publish to the web › choose a specific Sheet and CSV format › Publish › copy the URL. (Note: CSV publishing is per tab.)
Google’s Publish to the web creates a stable CSV endpoint for a single tab. Use this if you want to import a different sheet than the default one. Otherwise, using the first method is enough and will return the first sheet to WP All Import.
Step 2: Create a New Import and Use the Google Sheets URL as the Source
Now, let's create a new import process in WordPress. Go to All Import › New Import, select Download a file › From URL and paste your Google Sheets link as the source URL.
Then, choose your target post type (Posts, Pages, Products, Users, a custom post type, etc.).

Continue to Set Up Import.
WP All Import will fetch the sheet and detect columns automatically. If you used a published CSV URL (per tab), it will parse exactly that CSV. If you used the share link, it will retrieve the data from your first sheet and prepare it for mapping.
Step 3: Map Import Elements and Configure Google Sheets to WordPress Import
Next, you see the Drag & Drop screen. In here, your Google Sheets columns and data appears on the right.
Drag each element into its matching WordPress field on the left. You can map titles, content, excerpts, taxonomies, custom fields (ACF/Meta Box/JetEngine), images, prices, inventory, and more. You can map pretty much any WordPress field that you need to import into.

WP All Import imposes no rigid structure on your sheet or how the data should be formatted to import it. If your columns differ from typical examples, that’s fine, just map them accordingly. You can also filter records, transform values with PHP functions, and map to plugin/theme fields via custom fields.
When mapping images, provide full image URLs in your sheet (one or multiple). WP All Import can download those images to the Media Library or match images already existing in your media library.
For large-scale imports, hosting images on a conventional web server or CDN is generally more reliable than Google Drive, which enforces request quotas and can cause issues when importing many images.
Once you've mapped all fields, click on Continue to Import Settings at the bottom.
Step 4: Configure Import Behavior and Scheduling
On the Import Settings screen, set a Unique Identifier (you can simply use auto-detect, that's fine) so WP All Import can match rows to existing records on re-runs. Decide what should happen on future runs: create new records, update existing ones, and/or remove items missing from the Google Sheet (disabled by default).
- Update control: Use the Choose which data to update option to update only specific fields (e.g., stock or price) while leaving edited descriptions or other fields intact.
- Remove or modify missing items: If rows are removed in Google Sheets and you want them removed or modified in WordPress, enable the appropriate Remove or modify records not present in this import file option.
- Scheduling: Enable the Automatic Scheduling Service or define manual cron jobs so the import runs on a schedule (hourly, daily, weekly, etc.). This is ideal for keeping WordPress synchronized with ongoing changes in your Google Sheets.

When finished with your import settings, click Continue. You'll see a screen where you can confirm the import details and what will happen before the import actually runs. Once you've checked everything, click on Confirm & Run Import.

The import will run and process everything, importing your data from Google Sheets to WordPress.
Step 5: Review Import from Google Sheets to WordPress
After the import completes, navigate to your target post type (e.g., Posts, Products, Pages, etc) and spot-check several of the imported records.
Confirm titles, content, taxonomies, images, and custom fields alike. If anything needs adjusting, tweak your field mappings, or update rules, or update the import data, and then re-run the import. WP All Import will respect your import settings and update the matching items based on that.

That's it! That's how you import data from Google Sheets to WordPress in a few easy steps.
Import Google Sheets to WordPress – Advanced Topics
Automate Updates from Google Sheets
To keep WordPress synchronized with Google Sheets, schedule your import so it happens automatically. This can be done with two methods:
- With Automatic Scheduling, you configure the schedule from inside WP All Import.
- With manual cron jobs, you set up your server to call WP All Import’s endpoints at intervals.
Both methods check the source URL and apply your update/remove rules automatically and on your defined schedule.
Keep in mind that schedules are asynchronous, meaning they won't happen automatically when you update your Google Sheet. You would need to update your Google Sheet, and then the schedule would need to be triggered before the data gets updated in your WordPress website.
Importing WooCommerce Data from Google Sheets
You can import WooCommerce products, variations, prices, stock, images, and attributes by choosing the WooCommerce post type during setup and using our WooCommerce Import Add-On Pro.
Simply map your Google Sheets columns to the corresponding WooCommerce fields (regular price, sale price, SKU, stock, attributes, galleries, etc.). Schedule the import to keep inventory, prices, or new products in sync.
To update only inventory or prices from your sheet, use Choose which data to update and select those fields only. This lets you run frequent stock/price updates without touching product descriptions, SEO-related fields, or any other product fields.
Advanced Custom Fields (ACF), Meta Box, and JetEngine
WP All Import supports custom fields out of the box. That said, if you use ACF, Meta Box, or JetEngine, those are also supported by using their respective import and export Add-Ons.
The ACF Import Add-On exposes fields on the mapping screen so you can drag values from Google Sheets directly into your ACF field groups. No hassle.
Similar workflows apply to Meta Box and JetEngine, since we provide import and export add-ons to both plugins as well. If there's no support for a specific plugin, you can always use custom fields to import its data.
Transforming and Filtering Sheet Data
Clean or restructure values on the fly using inline functions or the Function Editor (e.g., trim whitespace, concatenate, normalize case, etc).
Use filters to include/exclude records based on column values (e.g., status = “active”). XPath is available using version 1.0. You can also apply simple conditional filters using inline PHP code. We explain more about using PHP code during import in our documentation: Calling PHP Functions In Your Import Configuration.
How to Delete Products Removed from Google Sheets Automatically
To automatically delete products that are removed from your Google Sheet, you need to ensure that the Remove or Modify Data Missing From the Import File option is enabled in the import settings. Make sure to configure this setting with care in order to make the exact changes that you desire. Since it can damage your products, you should test everything on a sandbox environment. We explain more about this in our documentation, see Remove Option to learn more.
Images: Best Practices with Google Sheets Sources
In your sheet, place full image URLs in a dedicated column (or columns). WP All Import will download those images into WordPress based on your settings, set featured images, build the galleries, etc.
Avoid using Google Drive share links for large batches, since Google enforces usage quotas that can temporarily block downloads after high traffic (100 records or so seem to start causing issues). Prefer images on your own server, or a CDN for consistent throughput.
If you must keep images on Drive, consider tools or workflows that mirror images into the Media Library ahead of time, then have WP All Import “use existing images”. This limits repeated remote downloads during imports.
Otherwise, you may need to import images in batches in order to circumvent Google's limitations.
Update the Source URL When Your Google Sheet Changes
If the Google Sheets URL or link changes (e.g., due to having a new document, a different tab, or you switch to a published CSV URL), you can update the import’s source URL like so:
- Step 1: Go to All Import › Manage Imports, locate your import and click on Settings for your import.
- Step 2: In the Import File section, change the source found under Download a file › From URL.
- Step 3: Paste the new Google Sheets URL in this field (share link or published CSV URL).
- Step 4: Save the settings. Your next manual run or scheduled run will use the new source URL.
You can confirm that the new URL is saved and synced since it's going to be reflected for this import in All Import › Manage Imports.
Troubleshooting Tips when Importing Google Sheets to WordPress
- Can’t fetch the sheet? Make sure that the sheet is shared with Anyone with the link or published to the web. You can confirm this by opening the sheet URL in an incognito new browser window. If it doesn't load, something is off with permissions.
- Wrong tab importing? The first sheet is used by default when using the share URL. To solve it, move the data into the first sheet, or publish the specific tab as CSV and use that URL (CSV is per-tab).
- Images not downloading? Verify that image URLs are publicly accessible and not gated by auth/quota (we've found that Google Drive often rate-limits downloads). Consider hosting images elsewhere to avoid issues, or importing them using a different method.
- Unexpected updates/deletions? Recheck your Unique Identifier and the Choose which data to update / remove-missing settings. Ensure that you chose the correct settings.
- General issues? See our troubleshooting guide which covers server requirements, file parsing, and general site health checks. You can learn more in our docs: Troubleshooting Guide.
Appendix: Example Use Cases.
- Editorial calendars to posts/pages: Keep a sheet of article titles, authors, and publish statuses; import to create drafts and then update as plans change. This way, you can handle all blog schedules centrally.
- WooCommerce price/stock updates: Maintain SKUs, prices, and stock in Google Sheets, update only those fields daily. Easier to maintain stock and prices for your WooCommerce Products.
- Directory listings: Import businesses (name, address, phone, categories, images, etc) into a custom post type, with scheduled sync. If you have a new directory, you only need to add it to the Google Sheet and it will be imported the next scheduled time.
- User management: Onboard users from a staff roster in Google Sheets, mapping to user roles and meta data.
Security & Reliability Notes
- Access scope: Publishing or sharing your sheet makes it public to anyone with the sheet's URL or link. Use a dedicated sheet to import data and avoid sharing sensitive information. Consider unpublished internal sheets that write to a public “mirror” tab for import instead of sharing sensitive documents directly.
- Image hosting: Prefer stable hosting for image URLs. Google Drive can throttle downloads if many requests occur in a short window, so a different image host may be preferred.
- Rollbacks: Test imports on a staging site. Perform a complete site backup before large imports. If you need to remove imported content, Manage Imports › Delete can clean up records created by an import.
Import Google Sheets to WordPress — Frequently Asked Questions
How do I add Google Sheets to WordPress?
You can embed a published sheet in a page/post, or you can import the sheet’s rows into WordPress as content. For embedding, use File › Share › Publish to the web, then embed the link to the Google Sheet.
For importing (creating posts/products/users, etc.), paste the sheet URL into All Import › New Import › Download a file › From URL and map your columns, then follow the steps outlined in this guide. That way, you'll import your Google Sheets data into WordPress as content.
Can I automatically sync Google Sheets with WordPress?
Yes. Schedule the import to run hourly/daily/etc. using WP All Import’s Automatic Scheduling service or manual cron jobs. Configure what to update on each run, if creating new records, and whether to remove items missing from the sheet. Keep in mind these schedules always run at the same time. If the Google Sheet data changes, that won't cause any change in the import's schedule.
Do I need to export to CSV first?
No, that's not required. Pasting the standard Google Sheets share link works perfectly. If you prefer a direct CSV to import a specific sheet, use Publish to the web and copy the CSV URL.
The "publish to web" option is useful when you need to import data from a different sheet in your spreadsheet since WP All Import will only import data from the first sheet found. You can't import data from multiple sheets at the same time, and you won't see data from other sheets.
Which link should I use, Share link or Publish-to-web CSV?
Both work. Use the Share link for a simple, first-sheet import feed. That's recommended for most Google Sheets to WordPress imports.
If your data is not in the first sheet, then use Publish to the web (CSV). That will produce a stable, CSV-only URL for a specific tab (not the first sheet in the spreadsheet). CSV publishing in Google Sheets is per tab.
How do I import Google Sheets into WooCommerce?
Create a New Import process targeting WooCommerce Products. Map columns from the sheet to product fields (prices, SKU, stock, images, attributes, variations), or order fields, or customer fields. Then, schedule the import to keep the data (like prices and inventory) current automatically. That's how you import from Google Sheets into WooCommerce.
Can I import images with my Google Sheets data?
Yes. To do so, include the full image URLs in your Google Sheets. WP All Import can download those images to the Media Library or match images already existing in the media library. For reliability, avoid hosting large batches on Google Drive due to rate-limits imposed by Google. Instead, use a conventional server or a CDN to host your images.
Can I update or delete records when rows change in Google Sheets?
Yes. Set a Unique Identifier, then configure whether to update existing records and whether to remove or modify items missing from the file. This lets WordPress reflect the current state of the sheet on every run. The update or delete process won't happen automatically when you update the Google Sheet, but it will occur the next time the import runs (either manually or scheduled).
How do I limit updates to specific fields (e.g., only stock & price)?
Use Choose which data to update in the Import Settings and tick only the fields you want changed. Everything else is left untouched. That way, you can update only the specific data pieces you want, like stock or price.
What if my sheet has multiple tabs?
CSV publishing is per tab, so publish the specific tab you want to import and use that CSV URL as the source in WP All Import. Alternatively, consolidate data into the first sheet of your spreadsheet for the import, which is what WP All Import will fetch by default.
Import Google Sheets to WordPress — Related Information
Learn how to import your data into your WordPress site using WP All Import and its add-ons.
Learn more about the different file options to provide your file into WP All Import.
Use manual cron jobs to schedule and automate your WordPress import process.

