What is keyword stuffing on Google Maps?

Keyword stuffing is an attempt to boost rankings by adding popular search terms to the name of a business.  An injury lawyer adding the term Personal Injury to their name, when that isn't part of their legal business name, is keyword stuffing.

What does Google have to say about names on Maps?

Your name should reflect your business’ real-world name, as used consistently on your storefront, website, stationery, and as known to customers. Accurately representing your business name helps customers find your business online.

Unfortunately, there's a pretty strong incentive to stuff keywords into Google My Business names.  The reality is that keyword stuffing works.  In fact, according to a Moz survey, keywords in the GMB name recently surpassed proximity as a search factor.

Are there any risks associated with keyword stuffing?  In a word, yes.  It is against the guidelines, and Google considers it reason enough to suspend a listing.  Spam fighters like @keyserholiday also patrol GMB and report listings.

Reporting keyword stuffing can help legitimate businesses rise in the ranks without resorting to the same tactics.  

How to report keyword stuffing to Google

Keyword stuffing and other issues can be reported directly from the Local Finder. Each listing will display a "Suggest an edit" link.

Suggesting an edit this way will first be subject to an automated approval filter.  In some cases, an edit is approved immediately, but it can also be rejected outright.  Still others go into a pending state that can take weeks to resolve.  Only Google knows all the factors that are considered here, but prior reporting accuracy of the account plays a role.

Suggesting an edit should be the first step in the process.  When edits aren't processed, you can use the Google My Business redressal form.  Redressal form submissions are examined by actual humans, and give you the opportunity to provide more context with your report.

Why don't more local SEO practitioners report spam?

According to a BrightLocal survey, only 23% of respondents spent any time reporting GMB spam.  Those surveyed often mentioned that "tracking or achieving success" was difficult.

The problem, especially when reporting keyword stuffing, is twofold:  listing owners will frequently revert changes almost immediately, and this can happen weeks after the initial report was made.  Constantly checking up on listings is daunting, especially when the issue is dragged out over such a long time frame.

Reporting spam can start to feel like a Sisyphean task.

An automated way to track spam reporting

How can we keep track of what edits are applied, and whether they are reverted? Manually trawling through Maps is time consuming, and using the Google API is an expensive proposition.

The Persuaded.io API can make tracking listings easier.   If you don't want to work with an API, you can try out the Google Sheets version of the keyword stuffing tracker. The sheet accepts a list of CID values, and fetches the latest listing names with the press of a button.

To use the sheet, you'll first need to make a copy for yourself.  After inserting your API key, pressing the Scan Places button will fetch the latest name seen for each of the GMB listings.

To use your app.persuaded.io API key, head to the Account tab, and copy the number listed beneath the API key header.  Once the key is copied into the sheet, you should be ready to start scanning CIDs.

Any name that has gotten longer since the last scan will be highlighted in red, indicating that keywords might have been stuffed into the name.

To get started, you can make a copy the Google Sheet.  Once that's done, and you've filled in a list of your own CID(s), click the Scan Places button.  Doing so will bring up an authorization window to ask if you're OK with running the script.

The script itself is very simple.

function scanPlaces() {
    var ui = SpreadsheetApp.getUi();
    var apiSheet = SpreadsheetApp.getActive().getSheetByName("API Key");
    var placeSheet = SpreadsheetApp.getActive().getSheetByName("Places");

    var data = apiSheet.getDataRange().getValues();
    var apiKey = data[0][1];
    var places = placeSheet.getDataRange().getValues();    
    var options = {method: "post", contentType: "application/json"};
    options.payload = JSON.stringify(places.slice(1).map(row => row[0]));

    var response = UrlFetchApp.fetch("https://app.persuaded.io/api/locations/names/?api_key=" + apiKey, options);
    var responseData = JSON.parse(response.getContentText());
    places[0].push(Intl.DateTimeFormat("en-US").format(new Date()));
    for (var i = 0; i < responseData.length; i++) {
      var row = places[i + 1];
      if (row.length > 2) {
        if (row[row.length - 2].length < row[row.length - 1].length) {
           placeSheet.getRange(i + 2, row.length).setBackground("red");
    placeSheet.getRange(1, 1, places.length, places[0].length).setValues(places);

How to get the CID number for a Maps listing

There are a number of ways to get CID numbers for a GMB listing.  One of the easier ways to grab them in bulk is through the Persuaded.io app, using the export function.

First perform a keyword scan around the area you're interested in.  Once the results have loaded, wait 2 to 3 minutes for the "details" scan to populate.  You'll know the results are ready when the primary category has loaded for each listing.

Click the download icon in the top right corner, and you'll receive a spreadsheet containing all of the locations, with details such as their CID number included.

There are also Chrome extensions that will display CID, such as the Company Information extension by Tom Waddington.