Post to Google My Business (Google Business Profile)


The posts feature in Google Business Profile (formerly: Google My Business) is a great way to improve the presence of your, or your clients’ business on Google. It can be a hassle however to have to log in to Google My Business every time you want to create a new post, likewise it can be an easy thing to forget.

Don’t miss out on the SEO benefit, and save time by creating posts on Google My Business directly from the WordPress Dashboard!

Use the Auto-post feature to instantly publish your latest WordPress post to your Google Business Profile, based on a preset template and the posts’ featured image.

The Post to Google My Business plugin utilizes the official Google My Business API with secure oAuth authentication to ensure your Google account is safe.


  • Create, edit or delete posts without having to visit your Google My Business dashboard
  • Automatically publish your latest WordPress posts to GMB using the Auto-post feature
  • Generates beautiful auto-posts from any content. HTML, shortcodes and clutter from visual editors such as Divi or Visual Composer are automatically stripped
  • Network- and site-level Multisite support
  • Supports publishing to GMB from external apps (such as Zapier, Integromat, IFTTT, ManageWP, InfiniteWP, MainWP and more)
  • Uses official Google My Business API
  • Developer friendly. Uses the latest built-in WordPress functions and has various actions/filters to hook into.
  • Translatable. Uses built-in WordPress functions for easy translation.
  • Compatible with Gutenberg/Block Editor

Time-saving features available in the Premium versions:

  • Product support, create “real” Products in GBP based on your WooCommerce Products or other content
  • Schedule Google My Business posts for automatic publishing in the future
  • Publish posts to multiple locations, across multiple Google accounts at once
  • Automatic re-posting (post recycling) – Automatically recycle your GMB posts at preset intervals and x amount of times
  • Auto publish posts with specific tags or categories
  • Make posts unique using Spintax
  • Post Campaigns – Create posts on GMB that aren’t tied to any specific WordPress post or page.
  • Evergreen content – randomly publish items from a selection of your content
  • Multiple Auto-post templates
  • Manage GMB post campaigns for your agency clients
  • Much more!

Learn more about Post to Google My Business Premium

Great support!

We’re here to help in case you’re having trouble using Post to Google My Business. Just ask in the support forum and we’ll get back to you ASAP. Feedback and ideas to improve the plugin are always welcome.


  • Customizing and posting GMB post
  • Using the Auto-post feature
  • Creating a “What’s new” post
  • Creating an event
  • Creating an offer post
  • Auto-post template settings


Installing and configuring Post to Google My Business is easy!

  1. Upload the plugin files to the /wp-content/plugins/post-to-google-my-business directory, or install it through the plugins page within the WordPress Dashboard.
  2. Activate the plugin through the Plugins page in WordPress
  3. Go to the Post to GMB > Settings page to configure the plugin
  4. To allow your website to post to Google My Business on your behalf, click Connect to Google My Business. Confirm the authorization using the Google account that holds your business location.
  5. You will be redirected back to the settings page. Select your business location and press Save Changes.
  6. All set! When creating a new WordPress Post there will a new metabox that allows you to create posts on Google My Business.


Can I use this plugin on a localhost installation?

Yes, but you may run into errors if you add a link or image to your post. Google will try to fetch your image/video, or resolve the link to your website, but if your localhost installation can’t be reached from the outside world, it won’t be able to do so.
The quick post feature will not work at all in that case, because it uses the URL and Featured Image of your post.

Why is/are my location(s) grayed out?

Not every Google My Business listing is allowed to create posts on Google My Business (localPostAPI is disabled). This means the plugin can’t create posts on those locations. First, make sure your location is fully verified & live. Business chains (10+ locations) are normally exempt from creating posts, but are temporarily allowed to create them to share updates about the corona virus.

Why are my scheduled posts being published too late/not at all?

Post to Google My Business relies on the WP Cron system to send out scheduled posts. By default, it is only triggered when someone visits your website. If your site doesn’t get a lot of visitors, your posts may be sent out too late. To make the WP Cron system more dependable, you can hook it into the system task scheduler

Why can’t I create posts with a video?

While GBP itself supports creating posts with video, it’s (currently) not possible to create them through the GBP API. So the plugin can not do it either.

Why can’t I create posts with multiple images?

While GBP itself lets you create posts with up to 10 images, the GBP API (currently) only allows a single image to be uploaded. That’s why you can only upload a single image in the plugin.

Why does the plugin require such extensive permissions on my GBP locations?

While ideally we’d ask for as little permissions as possible to make the plugin work, the Google Business Profile API
oddly enough only has a single permission level. It’s either all or nothing. The idea of giving the plugin permission to edit or delete
your GBP location(s) might sound scary, but rest assured, your access tokens are only stored (securely) within your own website. Nor
are the endpoints to make any bad stuff happen implemented in the plugin backend, or the plugin itself. So even if your site were
to be compromised, the access tokens would be useless.


4, Xunetu de 2024 1 reply
<font style=”vertical-align: inherit;”><font style=”vertical-align: inherit;”>O Google Meu Negócio se destaca como o melhor plugin de postagens automáticas, gratuito e muito eficiente. Comecei a utilizar no #blogdoconvidar e continuei nos demais sites onde é preciso postar no Google Meu Negócio. É excelente, muito prático e de fácil configuração</font></font>
30, Abril de 2024 1 reply
The plugin works good, we also purchased the premium version and the developer is always ready to help us with any kind of problem and customization. Thank you Koen! Simone
11, Marzu de 2024 1 reply
This plugin works very well. The premium version has some nice features. The code is well written and the author is very helpful!
Read all 131 reviews

Contributors & Developers

“Post to Google My Business (Google Business Profile)” is open source software. The following people have contributed to this plugin.


“Post to Google My Business (Google Business Profile)” has been translated into 8 locales. Thank you to the translators for their contributions.

Translate “Post to Google My Business (Google Business Profile)” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.



  • Update: Freemius SDK 2.7.1


  • Fix: Creating products not working (due to Google changes)



  • Fix: Delete event date of previous post not updated when editing auto-repost schedule
  • Added: Indication when previous auto-repost item will be deleted


  • Tested on WordPress 6.5
  • Fix: return original image if failing to create intermediate
  • Fix: Incorrect loading of admin styles
  • Improved: Authentication logic
  • Improved: (Developers) LocalPost object now has getters
  • Update: Freemius SDK 2.6.2


  • Fix: Potential issue with images smaller than 1200×900
  • Update: Freemius SDK 2.6.1


  • Add option to bypass WP-Cron for debugging purposes


  • Tested on WordPress 6.4
  • Update: Add additional 20 second lockout to prevent double posts when auto-posting
  • Update: Freemius SDK 2.5.12


  • Update: WP Background processing 1.1.1
  • Update: Freemius SDK 2.5.11


  • Fix: Change to GBP causing products to stop working


  • Fix: Add nonce to ajax endpoint to dismiss notifications


  • Update: Cleaned up Javascript dependencies


  • Fix: Google accounts being duplicated in the business selector when creating/editing multiple posts
  • Fix: Publish button saying “Publish Now” instead of “Update” when editing posts


  • Fix: Posts longer than 1500 characters containing emoji causing Google API error



  • Fix: Not selecting any location in the auto-post template location selector caused JS/PHP error


  • Fix: Freemius SDK updated to v2.5.5 to fix “Call to undefined method Freemius_Api_WordPress::RemoteRequest()” error
  • Update: Pt_BR translations by @valdermirmaran
  • Update: “Product” tab now aligned to the right to better separate it from regular posts


  • Update: Removed call-to-action for Products (in accordance with GMB itself)


  • Added extra check for mbstring when creating posts
  • Updated Freemius SDK


  • Products are now allowed to have no description


  • Added “Refresh Post Status” bulk option to post list


  • Added CSV export to post list


  • fix issue blocking site health screen


  • Make product price field no longer required
  • Add check for mbstring PHP module


  • Tested on 6.2
  • Added notification about new Product Sync for GBP plugin
  • Included new translations


  • Add extra content-type header check for WebP images


  • Fix “Refresh locations” button not actually refreshing locations from GMB API


  • Fix business selector not loading all locations


  • Fix issues with account/business selector


  • Convert Campaign tags/categories from built-in to custom taxonomy



  • Fix missing account controls


  • Prevent duplicate posts when using auto-post
  • Improve auto-posting logic
  • Add option to enable/disable specific request types (Editor, Internal, XML-RPC, REST)
  • Lowered event & offer title length from 80 to 58 characters
  • Prevent items in the trash from creating (scheduled) GPB posts
  • Improve the business selector to load large amounts of locations in chunks
  • Refactoring


  • Fix posting products (effective_id error)
  • Fix products showing incorrect summary in post list


  • Add fix for duplicate posts in same session


  • Add check for sites that have relative image URLs for some reason



  • Add better detection of product creation errors
  • Fix cookie check when submitting cookie details
  • Various small improvements to product API code



  • Improve product JSON decoding logic


  • Updated pt translation


  • Fix product custom category field not saving



  • Fix image upload error for products


  • Add clearer errors to dialog when clicking post in calendar
  • Change layout of store/shop code in created posts dialog


  • Fix option to disable date & time selector for auto-post templates


  • Add store code to business selector and created posts dialog
  • Add debounce to date & time selector to reduce Ajax calls
  • Add option to disable date & time selector on event/offer dates
  • Add delay to posts to avoid excessive API calls
  • Fix delete API call being triggered multiple times
  • Fix auto-post on scheduled WordPress posts


  • Added “loop” function to evergreen content
  • Evergreen content now only posts unique content
  • Auto-repost will delete the previous post


  • Fix image not updating when updating post
  • Fix image not being deleted from GMB when deleted from post
  • Fix CTA not being deleted from GMB when deleted from post
  • Allow placeholder variables in date fields


  • Fix product price range field not loading in auto-post template
  • Fix duplicate call when deleting multiple posts at once
  • Refresh location list after updating product cookies


  • Remove hasVoiceOfMerchant check


  • Fix cookies not saving


  • Move access token from URL to Auth header
  • Add check for IP address in call-to-action URL
  • Fix label for locations in business selector
  • Adjust max post length to 1499 characters to avoid length error


  • Change button selection checkboxes to dropdown
  • Route API requests through custom backend
  • Fix Undefined property: stdClass::$languageCode notice/error
  • Fix Undefined index: order/orderby notices/errors
  • Fix Undefined index: hook_suffix notice/error
  • Update locales (Brazilian Portuguese thanks to Valdemir Maran)


  • Disable call-to-action button types that aren’t available for products
  • Clarify how to publish products
  • Fix Undefined index: mbp_form_fields notice/error when creating new auto-post template
  • Allow wildcard variables in product max pricerange field
  • Add new WooCommerce variables for variation products
  • Add setting check to cookie dialog
  • Fix saving cookie settings being triggered twice


  • Fix incorrect location selection within groups
  • Fix support for Google accounts with more than 20 location groups
  • Remove shortcodes from WooCommerce product description


  • Fix undefined index errors on product form when WP_DEBUG was enabled
  • Fix intermittent issue with location(s) not being selected in the “Advanced post settings”
  • Restore disappeared “Toggle Selection” function on Google Accounts


  • Fix auto-post toggle not being turned on by default in block editor
  • Improve API code to be compatible with new version of GMB API


  • Improve product publishing api



  • Improve code for product publishing


  • Fix incorrect token revocation request
  • Fix pre-php 7.3 error composer message
  • Clarify “Refresh token” error message
  • Fix a few locale mistakes
  • Bump minimum PHP version to 7.0
  • Fix for Notice: Trying to access array offset on line 163
  • Add account key to mbp_business_selector_locations filter
  • Fix display of service area businesses in business selector
  • Add placeholder parsing to event/offer title and trim it to 80 characters


  • Show error when evergreen content schedule does not exist in cron
  • Fix edit and duplicate functions in Starter version
  • Add debug data download for products


  • Add graceful error for when the Google authorization is cancelled
  • Fix advanced post settings spacing
  • Update Freemius SDK
  • Clear access token cache when account is deleted
  • Fix a few permission issues



  • Improvements to product publishing code


  • Fix text domain on update notification
  • Prevent api error when trying to create product


  • Fix location list not showing all locations in groups with more than 100 locations
  • Add upgrade & new feature notifications
  • Improve upgrade process


  • Fix controls on dynamically loaded accounts in business selector


  • Fix woocommerce product category sync


  • Update locales (Portuguese thanks to Valdemir Maran)
  • Post editor: Various layout and logic fixes
  • WP 5.9: Fix calendar icon


  • Add product support
  • Fix evergreen not selecting the correct posts
  • Fix evergreen page empty in Starter version
  • Fix evergreen date timezone issue


  • Updated Brazilian Portuguese translations (Thanks to @valdemirmaran)
  • Fix error when no post types are selected in the settings
  • Added evergreen content promotional page
  • Fix not showing welcome message on new site within multisite


  • Fix private backend post types being indexed by Yoast causing 404s


  • Remove deprecated “Get Offer” call to action
  • Fix link parsing mode not working
  • Updated pot file (now automatically included in build process)
  • Updated Dutch translations
  • Fixed localization for calendar
  • Fixed datetime check in auto-post template editor


  • Added check for invalid evergreen post schedule
  • Fixed localization for cron selector


  • Refactor & improve a lot of code, mainly improved the way the plugin connects to Google
  • Paginated post & created post list, added bulk actions
  • Fix Featured Image checkbox state not saving
  • Remove pointless debug page
  • Moved post scheduling calendar to its own dashboard page, added popup with options
  • Added WebP support (GMB does not support it, so plugin will convert image to PNG)
  • Added WooCommerce support by default


  • (Starter) Moved ability to select a location per post to Starter
  • (Pro) Added ability to create multiple post templates
  • (Pro) Added “evergreen content” feature to automatically publish posts old posts
  • (Pro) Moved ability to publish posts to multiple locations at once to Pro
  • (Agency) Added ability to connect multiple Google accounts


  • Add option to advanced post options to change link parsing mode


  • Temporary fix for the cURL error 60: SSL certificate problem: certificate has expired error


  • Fix issue with image size detection (filesize(): stat failed warning)
  • Fix image size detection on post created outside WP admin dash (Fatal error: Call to undefined function PGMB\download_url())
  • Fix warnings when location has no address or locality



  • Now it was posting every hour, doh! Fixed


  • Tested on WordPress 5.8
  • Fixed issue with metabox not working in block editor


  • Fixed issue with automatic re-post that made a post go out every minute(!) instead of every day of the month
  • Added “Daily” option to re-post feature


  • Add Brazilian Portuguese translations (thanks to @valdemirmaran)


  • Add selection function for location groups
  • Add note for Block Editor CPTs without “custom-fields” support enabled
  • Update Freemius SDK


  • Fixes “Cannot declare class PGMB\Vendor\Cron\AbstractField, because the name is already in use” error when saving post


  • Fix for image size detection logic


  • Add extra error message for when Product post type is chosen
  • Fix block editor issue for custom post types that don’t have custom-fields enabled


  • Use wp_get_http_headers instead of get_headers for better compatibility


  • Testing on WP 5.6, small fixes for PHP8 compatibility


  • Fixed some issues with checking of post image size
  • Fixed image not showing up in editor when it was too small to have a “medium” thumbnail
  • Updated Freemius SDK


  • Fix compatibility issue with older version of plugin


  • Fix date and time checker
  • Fix checkbox state not being loaded since 5.5.1


  • Added (a lot) of location-specific variables


  • Make all GMB post types and WP post types available in free version
  • Fix Gutenberg assets being loaded in post type that was disabled


  • Fix campaigns feature being partially available in Pro version
  • Fix default location selector showing checkboxes instead of radiobuttons when refreshing


  • Fixed handling of URLs containing non-ascii characters
  • Added more info about product posts


  • Temporarily remove check for isLocalPostApiDisabled due to COVID-19


  • Added COVID-19 post
  • Added full autopost template editor in settings to edit the default autopost template
  • Added welcome message
  • Added location-specific variables (%location_primaryPhone%, %location_websiteUrl% …)
  • Added new mbp_placeholder_decorators ($decorators, $parent_post_id) filter, and VariableInterface
  • Add checks for image size, disable video (no longer allowed by Google)
  • Simplified & improved auto-post logic
  • Improved image uploader (ready for 10 images, but Google API doesn’t support it yet)
  • Improved error notices in metabox
  • Improvements to multisite handling and activation/deactivation/delete routines
  • Fixed error notice when fetching empty location groups
  • Fixed Free version not deactivating when activating premium
  • Fixes empty location group causing PHP notice
  • Fixed Gutenberg double post bug and improve compatibility
  • Fix Draft post showing incorrect publish date
  • Fix notice when Google error doesn’t include details
  • Update Freemius SDK to fix multisite issue


  • Add “Event all day” checkbox for events without a start and end time
  • Added feature to enable autopost per category or tag
  • Fixed Auto-post template editor button being shown on campaigns page
  • Fixed errors when when all post types are unchecked in the settings page


  • Fix issue with paragraphs getting removed in auto-post


  • Fix auto-post incorrectly throwing 1500 character error
  • Hide “Save draft” button on already published post


  • Fix caption on “Save Template” button switching to “Publish” when adding schedule


  • Fix gutenberg issue caused by 2.2.7


  • Fix compatibility issue with Yoast SEO & Classic Editor


  • Updated .pot file and Grunt scripts
  • Updated Dutch, Russian and Ukrainian translations
  • Display post publish date in metabox


  • Fix duplicate post issue


  • Remove Auto-post checkbox being shown on campaigns page


  • Fix issues with CTA URL on button
  • Improve updater (again)
  • Fix default value for CTA URL field
  • Fix CTA url field disappearing when loading post


  • Fix repost schedule being improperly parsed


  • Improve updater


  • Fix Form field parser allowing dates in the past


  • Fix for Gutenberg autopost
  • Restore filter functions
  • Update Freemius SDK


  • Moved API communication to an asynchronous process
  • Added Auto-post template editor
  • Added Debug info tab to settings page
  • Added dialog with created posts
  • Made UI more intuitive
  • Added some fixes to improve compatibility with Gutenberg
  • Added functionality to fetch image from content or use the featured image
  • Tons of improvements and bug fixes “under the hood”
  • Lots more to come in future updates!


  • Made re-posting much more flexible
  • Re-posted posts will now appear as a separate post in the metabox



  • Actually parse the relative datetimes on scheduled posts 🙂
  • Disable Product post support (removed from GMB api)
  • Improve display of datetimes, better timezone handling



  • Allow relative time notation in datetimepickers


  • Improved parsing of post content


  • Improve development & deployment methods


  • Update Freemius SDK
  • Remove shortcodes from auto-post by default


  • Security fix


  • Fixes issue with image URL spinner with no image set (PHOTO media error)


  • Properly delete child posts and schedules when deleting parent post



  • Spin image URL


  • Fix issue when trying to load more than 100 locations
  • Apply filter mbp_get_locations filter to cached locations


  • Fix settings page conflict caused by plugins using old version of WeDevs Settings API
  • Fix Learn more link about grayed out locations


  • Fix auto-post sending campaign posts
  • Improve Gutenberg compatibility


  • Fix auto-post being triggered too early
  • Simplify business selector


  • Fix repost sheduled events not getting deleted
  • Fix reposts not being published when recurrence was set to 0
  • Fix reposts being posted twice when not scheduled


  • Increase API timeout
  • Fix multiline posts
  • Improve error messages
  • Fix API token refresh requests when network activated


  • Improves location loading (+100 Locations in account)
  • Check whether locations have access to the Posts API
  • Call Now button support
  • Improves auto-post logic
  • Restructuring code


  • Improves posting to multiple locations at once
  • Product post support


  • Update Freemius SDK
  • Add filters to Auto post feature


  • Add option to edit Auto post URL


  • Fix 500 error on PHP 5.4


  • Fix issue some settings getting deleted when updating from 2.0.6 to 2.0.7
  • Improve compatibility with external publishing apps and services
  • Made plugin settings page more intuitive


  • Strip HTML from posts
  • Cut posts to 1500 characters
  • Added word and character counters
  • Simplified business selector
  • Removed user selector, now integrated with business selector
  • Better support for grouped locations
  • Allow filtering/searching of locations
  • Remove references to datetimepicker


  • Added buttons to Select/Deselect all locations at once
  • Fixed some issues with Pro features in trial


  • Add ability to save posts as draft
  • Add option to invert the “Quick Publish” checkbox. Allows you to automatically publish to GMB when the WordPress post is created externally
  • Fix display issue when location has no thumbnail
  • Add placeholder index.php files to plugin folders
  • Show “No GMB posts found.” again when last post is deleted.
  • Close form when the post currently being edited is being deleted


  • Fix Premium features not being enabled when in trial
  • Fix scheduled posts not being posted in Pro
  • Fix issue with post type settings causing error when no post type is selected and settings are saved
  • Check default location when creating new post
  • Fix Metabox not visible on post campaigns
  • Fix invisible month switching icons on the datetimepicker


  • Fix location info when importing old posts
  • Fix Google link not appearing when using quickpost


  • Version function magically disappeared, fixed


  • Fixes updating issue on multisite


  • Fix issue causing fatal error on PHP 5.6 <


  • Fixes issue with certain Google post fields not updating when updating post


  • Improved metabox, easily create multiple GMB posts per WordPress post
  • Supports new Google post types
  • Added Quick post feature to create GMB posts based on a preset template. All you have to do is tick the checkbox to post!
  • Fixed plugin conflict causing endless loop
  • Improved and simplified settings page
  • Improved business selector
  • And much, much more!

New premium features

  • Automatic reposting – Choose time interval and amount of times to repost
  • Post spinning and variables – Make your posts unique using Spintax and variables such as %site_name%, %post_title%
  • Video posts

Learn more about Post to Google My Business Premium


  • Added logic for cleaning up options when uninstalling plugin
  • Improved admin/error notices


  • Fixed PHP compatibility issue


  • Improved business location selector
  • Fixed timepicker issues
  • Javascript for metabox now in separate file
  • Fixed incorrect language code causing issues when posting
  • Various other small improvements and fixes


  • Initial release