Connect with us

SEO

Visualizing Hot Topics Using Python To Analyze News Sitemaps

Published

on

Visualizing Hot Topics Using Python To Analyze News Sitemaps

News sitemaps use different and unique sitemap protocols to provide more information for the news search engines.

A news sitemap contains the news published in the last 48 hours.

News sitemap tags include the news publication’s title, language, name, genre, publication date, keywords, and even stock tickers.

How can you use these sitemaps to your advantage for content research and competitive analysis?

In this Python tutorial, you’ll learn a 10-step process for analyzing news sitemaps and visualizing topical trends discovered therein.

Housekeeping Notes To Get Us Started

This tutorial was written during Russia’s invasion of Ukraine.

Using machine learning, we can even label news sources and articles according to which news source is “objective” and which news source is “sarcastic.”

But to keep things simple, we will focus on topics with frequency analysis.

We will use more than 10 global news sources across the U.S. and U.K.

Note: We would like to include Russian news sources, but they do not have a proper news sitemap. Even if they had, they block the external requests.

Comparing the word occurrence of “invasion” and “liberation” from Western and Eastern news sources shows the benefit of distributional frequency text analysis methods.

What You Need To Analyze News Content With Python

The related Python libraries for auditing a news sitemap to understand the news source’s content strategy are listed below:

  • Advertools.
  • Pandas.
  • Plotly Express, Subplots, and Graph Objects.
  • Re (Regex).
  • String.
  • NLTK (Corpus, Stopwords, Ngrams).
  • Unicodedata.
  • Matplotlib.
  • Basic Python Syntax Understanding.

10 Steps For News Sitemap Analysis With Python

All set up? Let’s get to it.

1. Take The News URLs From News Sitemap

We chose the “The Guardian,” “New York Times,” “Washington Post,” “Daily Mail,” “Sky News,” “BBC,” and “CNN” to examine the News URLs from the News Sitemaps.

df_guardian = adv.sitemap_to_df("http://www.theguardian.com/sitemaps/news.xml")
df_nyt = adv.sitemap_to_df("https://www.nytimes.com/sitemaps/new/news.xml.gz")
df_wp = adv.sitemap_to_df("https://www.washingtonpost.com/arcio/news-sitemap/")
df_bbc = adv.sitemap_to_df("https://www.bbc.com/sitemaps/https-index-com-news.xml")
df_dailymail = adv.sitemap_to_df("https://www.dailymail.co.uk/google-news-sitemap.xml")
df_skynews = adv.sitemap_to_df("https://news.sky.com/sitemap-index.xml")
df_cnn = adv.sitemap_to_df("https://edition.cnn.com/sitemaps/cnn/news.xml")

2. Examine An Example News Sitemap With Python

I have used BBC as an example to demonstrate what we just extracted from these news sitemaps.

df_bbc
News Sitemap Data Frame View

The BBC Sitemap has the columns below.

df_bbc.columns
News Sitemap TagsNews Sitemap Tags as data frame columns

The general data structures of these columns are below.

df_bbc.info()
News Sitemap as a DataframeNews Sitemap Columns and Data types

The BBC doesn’t use the “news_publication” column and others.

3. Find The Most Used Words In URLs From News Publications

To see the most used words in the news sites’ URLs, we need to use “str,” “explode”, and “split” methods.

df_dailymail["loc"].str.split("/").str[5].str.split("-").explode().value_counts().to_frame()
loc
article
176
Russian
50
Ukraine
50
says
38
reveals
38
...
...
readers
1
Red
1
Cross
1
provide
1
weekend.html
1
5445 rows × 1 column

We see that for the “Daily Mail,” “Russia and Ukraine” are the main topic.

4. Find The Most Used Language In News Publications

The URL structure or the “language” section of the news publication can be used to see the most used languages in news publications.

In this sample, we used “BBC” to see their language prioritization.

df_bbc["publication_language"].head(20).value_counts().to_frame()
publication_language
en
698
fa
52
sr
52
ar
47
mr
43
hi
43
gu
41
ur
35
pt
33
te
31
ta
31
cy
30
ha
29
tr
28
es
25
sw
22
cpe
22
ne
21
pa
21
yo
20
20 rows × 1 column

To reach out to the Russian population via Google News, every western news source should use the Russian language.

Some international news institutions started to perform this perspective.

If you are a news SEO, it’s helpful to watch Russian language publications from competitors to distribute the objective news to Russia and compete within the news industry.

5. Audit The News Titles For Frequency Of Words

We used BBC to see the “news titles” and which words are more frequent.

df_bbc["news_title"].str.split(" ").explode().value_counts().to_frame()
news_title
to
232
in
181
-
141
of
140
for
138
...
...
ፊልም
1
ብላክ
1
ባንኪ
1
ጕሒላ
1
niile
1
11916 rows × 1 columns

The problem here is that we have “every type of word in the news titles,” such as “contextless stop words.”

We need to clean these types of non-categorical terms to understand their focus better.

from nltk.corpus import stopwords
stop = stopwords.words('english')
df_bbc_news_title_most_used_words = df_bbc["news_title"].str.split(" ").explode().value_counts().to_frame()
pat = r'b(?:{})b'.format('|'.join(stop))
df_bbc_news_title_most_used_words.reset_index(drop=True, inplace=True)
df_bbc_news_title_most_used_words["without_stop_words"] = df_bbc_news_title_most_used_words["words"].str.replace(pat,"")
df_bbc_news_title_most_used_words.drop(df_bbc_news_title_most_used_words.loc[df_bbc_news_title_most_used_words["without_stop_words"]==""].index, inplace=True)
df_bbc_news_title_most_used_words
Removing Stop Words from Text AnalysisThe “without_stop_words” column involves the cleaned text values.

We have removed most of the stop words with the help of the “regex” and “replace” method of Pandas.

The second concern is removing the “punctuations.”

For that, we will use the “string” module of Python.

import string
df_bbc_news_title_most_used_words["without_stop_word_and_punctation"] = df_bbc_news_title_most_used_words['without_stop_words'].str.replace('[{}]'.format(string.punctuation), '')
df_bbc_news_title_most_used_words.drop(df_bbc_news_title_most_used_words.loc[df_bbc_news_title_most_used_words["without_stop_word_and_punctation"]==""].index, inplace=True)
df_bbc_news_title_most_used_words.drop(["without_stop_words", "words"], axis=1, inplace=True)
df_bbc_news_title_most_used_words
news_title
without_stop_word_and_punctation
Ukraine
110
Ukraine
v
83
v
de
61
de
Ukraine:
60
Ukraine
da
51
da
...
...
...
ፊልም
1
ፊልም
ብላክ
1
ብላክ
ባንኪ
1
ባንኪ
ጕሒላ
1
ጕሒላ
niile
1
niile
11767 rows × 2 columns

Or, use “df_bbc_news_title_most_used_words[“news_title”].to_frame()” to take a more clear picture of data.

news_title
Ukraine
110
v
83
de
61
Ukraine:
60
da
51
...
...
ፊልም
1
ብላክ
1
ባንኪ
1
ጕሒላ
1
niile
1
11767 rows × 1 columns

We see 11,767 unique words in the URLs of the BBC, and Ukraine is the most popular, with 110 occurrences.

There are different Ukraine-related phrases from the data frame, such as “Ukraine:.”

The “NLTK Tokenize” can be used to unite these types of different variations.

The next section will use a different method to unite them.

Note: If you want to make things easier, use Advertools as below.

adv.word_frequency(df_bbc["news_title"],phrase_len=2, rm_words=adv.stopwords.keys())

The result is below.

Text Analysis and WordText Analysis with Advertools

“adv.word_frequency” has the attributes “phrase_len” and “rm_words” to determine the length of the phrase occurrence and remove the stop words.

You may tell me, why didn’t I use it in the first place?

I wanted to show you an educational example with “regex, NLTK, and the string” so that you can understand what’s happening behind the scenes.

6. Visualize The Most Used Words In News Titles

To visualize the most used words in the news titles, you can use the code block below.

df_bbc_news_title_most_used_words["news_title"] = df_bbc_news_title_most_used_words["news_title"].astype(int)
df_bbc_news_title_most_used_words["without_stop_word_and_punctation"] = df_bbc_news_title_most_used_words["without_stop_word_and_punctation"].astype(str)
df_bbc_news_title_most_used_words.index = df_bbc_news_title_most_used_words["without_stop_word_and_punctation"]
df_bbc_news_title_most_used_words["news_title"].head(20).plot(title="The Most Used Words in BBC News Titles")
News Sitemap Python AnalysisNews NGrams Visualization

You realize that there is a “broken line.”

Do you remember the “Ukraine” and “Ukraine:” in the data frame?

When we remove the “punctuation,” the second and first values become the same.

That’s why the line graph says that Ukraine appeared 60 times and 110 times separately.

To prevent such a data discrepancy, use the code block below.

df_bbc_news_title_most_used_words_1 = df_bbc_news_title_most_used_words.drop_duplicates().groupby('without_stop_word_and_punctation', sort=False, as_index=True).sum()
df_bbc_news_title_most_used_words_1
news_title
without_stop_word_and_punctation
Ukraine
175
v
83
de
61
da
51
и
41
...
...
ፊልም
1
ብላክ
1
ባንኪ
1
ጕሒላ
1
niile
1
11109 rows × 1 columns

The duplicated rows are dropped, and their values are summed together.

Now, let’s visualize it again.

7. Extract Most Popular N-Grams From News Titles

Extracting n-grams from the news titles or normalizing the URL words and forming n-grams for understanding the overall topicality is useful to understand which news publication approaches which topic. Here’s how.

import nltk
import unicodedata
import re
def text_clean(content):
  lemmetizer = nltk.stem.WordNetLemmatizer()

  stopwords = nltk.corpus.stopwords.words('english')

  content = (unicodedata.normalize('NFKD', content)

    .encode('ascii', 'ignore')

    .decode('utf-8', 'ignore')

    .lower())

  words = re.sub(r'[^ws]', '', content).split()

  return [lemmetizer.lemmatize(word) for word in words if word not in stopwords]
raw_words = text_clean(''.join(str(df_bbc['news_title'].tolist())))
raw_words[:10]
OUTPUT>>>
['oneminute', 'world', 'news', 'best', 'generation', 'make', 'agyarkos', 'dream', 'fight', 'card']

The output shows we have “lemmatized” all the words in the news titles and put them in a list.

The list comprehension provides a quick shortcut for filtering every stop word easily.

Using “nltk.corpus.stopwords.words(“english”)” provides all the stop words in English.

But you can add extra stop words to the list to expand the exclusion of words.

The “unicodedata” is to canonicalize the characters.

The characters that we see are actually Unicode bytes like “U+2160 ROMAN NUMERAL ONE” and the Roman Character “U+0049 LATIN CAPITAL LETTER I” are actually the same.

The “unicodedata.normalize” distinguishes the character differences so that the lemmatizer can differentiate the different words with similar characters from each other.

pd.set_option("display.max_colwidth",90)

bbc_bigrams = (pd.Series(ngrams(words, n = 2)).value_counts())[:15].sort_values(ascending=False).to_frame()

bbc_trigrams = (pd.Series(ngrams(words, n = 3)).value_counts())[:15].sort_values(ascending=False).to_frame()

Below, you will see the most popular “n-grams” from BBC News.

Bigrams of BBCNGrams Dataframe from BBC

To simply visualize the most popular n-grams of a news source, use the code block below.

bbc_bigrams.plot.barh(color="red", width=.8,figsize=(10 , 7))

“Ukraine, war” is the trending news.

You can also filter the n-grams for “Ukraine” and create an “entity-attribute” pair.

News Sitemap NGramsNews Sitemap NGrams from BBC

Crawling these URLs and recognizing the “person type entities” can give you an idea about how BBC approaches newsworthy situations.

But it is beyond “news sitemaps.” Thus, it is for another day.

To visualize the popular n-grams from news source’s sitemaps, you can create a custom python function as below.

def ngram_visualize(dataframe:pd.DataFrame, color:str="blue") -> pd.DataFrame.plot:

     dataframe.plot.barh(color=color, width=.8,figsize=(10 ,7))
ngram_visualize(ngram_extractor(df_dailymail))

The result is below.

N-Gram VisualizationNews Sitemap Trigram Visualization

To make it interactive, add an extra parameter as below.

def ngram_visualize(dataframe:pd.DataFrame, backend:str, color:str="blue", ) -> pd.DataFrame.plot:

     if backend=="plotly":

          pd.options.plotting.backend=backend

          return dataframe.plot.bar()

     else:

          return dataframe.plot.barh(color=color, width=.8,figsize=(10 ,7))
ngram_visualize(ngram_extractor(df_dailymail), backend="plotly")

As a quick example, check below.

8. Create Your Own Custom Functions To Analyze The News Source Sitemaps

When you audit news sitemaps repeatedly, there will be a need for a small Python package.

Below, you can find four different quick Python function chain that uses every previous function as a callback.

To clean a textual content item, use the function below.

def text_clean(content):

  lemmetizer = nltk.stem.WordNetLemmatizer()

  stopwords = nltk.corpus.stopwords.words('english')

  content = (unicodedata.normalize('NFKD', content)

    .encode('ascii', 'ignore')

    .decode('utf-8', 'ignore')

    .lower())

  words = re.sub(r'[^ws]', '', content).split()

  return [lemmetizer.lemmatize(word) for word in words if word not in stopwords]

To extract the n-grams from a specific news website’s sitemap’s news titles, use the function below.

def ngram_extractor(dataframe:pd.DataFrame|pd.Series):

     if "news_title" in dataframe.columns:

          return dataframe_ngram_extractor(dataframe,  ngram=3, first=10)

Use the function below to turn the extracted n-grams into a data frame.

def dataframe_ngram_extractor(dataframe:pd.DataFrame|pd.Series, ngram:int, first:int):

     raw_words = text_clean(''.join(str(dataframe['news_title'].tolist())))

     return (pd.Series(ngrams(raw_words, n = ngram)).value_counts())[:first].sort_values(ascending=False).to_frame()

To extract multiple news websites’ sitemaps, use the function below.

def ngram_df_constructor(df_1:pd.DataFrame, df_2:pd.DataFrame):

  df_1_bigrams = dataframe_ngram_extractor(df_1, ngram=2, first=500)

  df_1_trigrams = dataframe_ngram_extractor(df_1, ngram=3, first=500)

  df_2_bigrams = dataframe_ngram_extractor(df_2, ngram=2, first=500)

  df_2_trigrams = dataframe_ngram_extractor(df_2, ngram=3, first=500)

  ngrams_df = {

  "df_1_bigrams":df_1_bigrams.index,

  "df_1_trigrams": df_1_trigrams.index,

  "df_2_bigrams":df_2_bigrams.index,

  "df_2_trigrams": df_2_trigrams.index,

  }

  dict_df = (pd.DataFrame({ key:pd.Series(value) for key, value in ngrams_df.items() }).reset_index(drop=True)

  .rename(columns={"df_1_bigrams":adv.url_to_df(df_1["loc"])["netloc"][1].split("www.")[1].split(".")[0] + "_bigrams",

                    "df_1_trigrams":adv.url_to_df(df_1["loc"])["netloc"][1].split("www.")[1].split(".")[0] + "_trigrams",

                    "df_2_bigrams": adv.url_to_df(df_2["loc"])["netloc"][1].split("www.")[1].split(".")[0] + "_bigrams",

                    "df_2_trigrams": adv.url_to_df(df_2["loc"])["netloc"][1].split("www.")[1].split(".")[0] + "_trigrams"}))

  return dict_df

Below, you can see an example use case.

ngram_df_constructor(df_bbc, df_guardian)
Ngram PopularityPopular Ngram Comparison to see the news websites’ focus.

Only with these nested four custom python functions can you do the things below.

  • Easily, you can visualize these n-grams and the news website counts to check.
  • You can see the focus of the news websites for the same topic or different topics.
  • You can compare their wording or the vocabulary for the same topics.
  • You can see how many different sub-topics from the same topics or entities are processed in a comparative way.

I didn’t put the numbers for the frequencies of the n-grams.

But, the first ranked ones are the most popular ones from that specific news source.

To examine the next 500 rows, click here.

9. Extract The Most Used News Keywords From News Sitemaps

When it comes to news keywords, they are surprisingly still active on Google.

For example, Microsoft Bing and Google do not think that “meta keywords” are a useful signal anymore, unlike Yandex.

But, news keywords from the news sitemaps are still used.

Among all these news sources, only The Guardian uses the news keywords.

And understanding how they use news keywords to provide relevance is useful.

df_guardian["news_keywords"].str.split().explode().value_counts().to_frame().rename(columns={"news_keywords":"news_keyword_occurence"})

You can see the most used words in the news keywords for The Guardian.

news_keyword_occurence
news,
250
World
142
and
142
Ukraine,
127
UK
116
...
...
Cumberbatch,
1
Dune
1
Saracens
1
Pearson,
1
Thailand
1
1409 rows × 1 column

The visualization is below.

(df_guardian["news_keywords"].str.split().explode().value_counts()

.to_frame().rename(columns={"news_keywords":"news_keyword_occurence"})

.head(25).plot.barh(figsize=(10,8),

title="The Guardian Most Used Words in News Keywords", xlabel="News Keywords",

legend=False, ylabel="Count of News Keyword"))

Most Popular Words in News KeywordsMost Popular Words in News Keywords

The “,” at the end of the news keywords represent whether it is a separate value or part of another.
I suggest you not remove the “punctuations” or “stop words” from news keywords so that you can see their news keyword usage style better.

For a different analysis, you can use “,” as a separator.

df_guardian["news_keywords"].str.split(",").explode().value_counts().to_frame().rename(columns={"news_keywords":"news_keyword_occurence"})

The result difference is below.

news_keyword_occurence
World news
134
Europe
116
UK news
111
Sport
109
Russia
90
...
...
Women's shoes
1
Men's shoes
1
Body image
1
Kae Tempest
1
Thailand
1
1080 rows × 1 column

Focus on the “split(“,”).”

(df_guardian["news_keywords"].str.split(",").explode().value_counts()

.to_frame().rename(columns={"news_keywords":"news_keyword_occurence"})

.head(25).plot.barh(figsize=(10,8),

title="The Guardian Most Used Words in News Keywords", xlabel="News Keywords",

legend=False, ylabel="Count of News Keyword"))

You can see the result difference for visualization below.

Most Popular Keywords from News SitemapsMost Popular Keywords from News Sitemaps

From “Chelsea” to “Vladamir Putin” or “Ukraine War” and “Roman Abramovich,” most of these phrases align with the early days of Russia’s Invasion of Ukraine.

Use the code block below to visualize two different news website sitemaps’ news keywords interactively.

df_1 = df_guardian["news_keywords"].str.split(",").explode().value_counts().to_frame().rename(columns={"news_keywords":"news_keyword_occurence"})

df_2 = df_nyt["news_keywords"].str.split(",").explode().value_counts().to_frame().rename(columns={"news_keywords":"news_keyword_occurence"})

fig = make_subplots(rows = 1, cols = 2)

fig.add_trace(

     go.Bar(y = df_1["news_keyword_occurence"][:6].index, x = df_1["news_keyword_occurence"], orientation="h", name="The Guardian News Keywords"), row=1, col=2

)

fig.add_trace(

     go.Bar(y = df_2["news_keyword_occurence"][:6].index, x = df_2["news_keyword_occurence"], orientation="h", name="New York Times News Keywords"), row=1, col=1

)

fig.update_layout(height = 800, width = 1200, title_text="Side by Side Popular News Keywords")

fig.show()

fig.write_html("news_keywords.html")

You can see the result below.

To interact with the live chart, click here.

In the next section, you will find two different subplot samples to compare the n-grams of the news websites.

10. Create Subplots For Comparing News Sources

Use the code block below to put the news sources’ most popular n-grams from the news titles to a sub-plot.

import matplotlib.pyplot as plt

import pandas as pd

df1 = ngram_extractor(df_bbc)

df2 = ngram_extractor(df_skynews)

df3 = ngram_extractor(df_dailymail)

df4 = ngram_extractor(df_guardian)

df5 = ngram_extractor(df_nyt)

df6 = ngram_extractor(df_cnn)

nrow=3

ncol=2

df_list = [df1 ,df2, df3, df4, df5, df6] #df6

titles = ["BBC News Trigrams", "Skynews Trigrams", "Dailymail Trigrams", "The Guardian Trigrams", "New York Times Trigrams", "CNN News Ngrams"]

fig, axes = plt.subplots(nrow, ncol, figsize=(25,32))

count=0

i = 0

for r in range(nrow):

    for c in range(ncol):

        (df_list[count].plot.barh(ax = axes[r,c],

        figsize = (40, 28),

        title = titles[i],

        fontsize = 10,

        legend = False,

        xlabel = "Trigrams",

        ylabel = "Count"))        

        count+=1

        i += 1

You can see the result below.

News Source NGramsMost Popular NGrams from News Sources

The example data visualization above is entirely static and doesn’t provide any interactivity.

Lately, Elias Dabbas, creator of Advertools, has shared a new script to take the article count, n-grams, and their counts from the news sources.

Check here for a better, more detailed, and interactive data dashboard.

The example above is from Elias Dabbas, and he demonstrates how to take the total article count, most frequent words, and n-grams from news websites in an interactive way.

Final Thoughts On News Sitemap Analysis With Python

This tutorial was designed to provide an educational Python coding session to take the keywords, n-grams, phrase patterns, languages, and other kinds of SEO-related information from news websites.

News SEO heavily relies on quick reflexes and always-on article creation.

Tracking your competitors’ angles and methods for covering a topic shows how the competitors have quick reflexes for the search trends.

Creating a Google Trends Dashboard and News Source Ngram Tracker for a comparative and complementary news SEO analysis would be better.

In this article, from time to time, I have put custom functions or advanced for loops, and sometimes, I have kept things simple.

Beginners to advanced Python practitioners can benefit from it to improve their tracking, reporting, and analyzing methodologies for news SEO and beyond.

More resources:


Featured Image: BestForBest/Shutterstock



Source link

SEO

7 Ways To Improve Local SEO & Attract New Business

Published

on

7 Ways To Improve Local SEO & Attract New Business

There is a big difference between the way standard organic SEO works and the way we should approach Local SEO.

Not only is searcher intent likely different, the algorithms Google uses to show the map pack differs from the main organic algorithms.

In this article, I’ll be taking you through the ways you can win new customers and improve your visibility through local SEO.

Top Ways To Improve Your Local SEO

1. Keep An Eye On Your Competitors’ Google Business Profile Q&As

Google Business Profile (GBP) has a great function that can do wonders for growing new business – the questions and answers feature.

If you use it well for your own organization, it can help convert customers who are otherwise on the fence.

But don’t stop there. Spend time researching your competitors’ Q&As, too. See what your potential customers are asking others in your industry.

How GBP Q&A Works

On your Google Business Profile, you may notice an “Ask a Question” button. Once clicked, users are taken through to a screen that allows them to submit a question.

Screenshot from Google Business Profile, September 2022

This next bit is key. The question does not get submitted to the owner of the profile. It gets submitted to the profile. That means it is visible to anyone who sees a Google Business Profile listing.

Once a question has been posted to your competitors’ Google Business Profile listing, you will be able to see it.

And once the question is answered, that information – and the engagement – is there for all in the future to see.

How Does This Help Build New Business?

These questions are a great way to encourage new business from local searchers. Questions are likely to be asked by people who have never visited that business before but are in your target market.

They are already engaging with the brand but need a bit more information before they commit to a visit.

For Your Own Listing

On your own GBP, you can use this opportunity to converse with a potential local consumer who is far down the conversion funnel.

If they are at the stage where they have found you and are considering you enough to ask some questions, a thoughtful response may be all it takes to see them walk through your doors.

On A Competitor’s Listing

Look at what questions your competitors’ customers and potential customers are asking. Use this to better fill out the information on your own profile and website.

If you are noticing a lot of questions being asked about the availability of gluten-free pizza from other pizza restaurants in your area, for example, you want to make sure you highlight your gluten-free products on your site and listing.

This type of research can keep you one step ahead of local competitors, especially if the questions they have been asked are slightly negative in tone.

Consider this question: “Do you still play loud music?”

If a potential restaurant-goer sees that question asked of another business, it immediately makes them consider the environment they will be eating their meal in.

It may make them wonder if they will really be able to enjoy the catch-up with their friends over a meal as they have planned.

Answer the questions being asked of your competitors on your own website and GBP before anyone asks. State in your description that customers will enjoy a meal accompanied by relaxing, ambient music.

This can put you at a significant advantage over your competitors for winning new business in your geography.

When you proactively answer a potential customer’s question before they even have to ask it, you demonstrate that you understand their needs and wants.

2. Tweak A Google Product Listing To Get More Exposure

Google allows businesses with GBP to upload details of the products they offer. This can be viewed by potential customers on both mobile and desktop search results.

The listings appear in the GBP in a carousel format on Maps and in both a carousel and under the Products tab in Search.

Both formats allow users to click on the product cards for more detail, to call, or visit the website.

How GBP Product Listings Work

Uploading your products to a Google Business Profile has gotten simpler. Google has released a new way of doing this called “Pointy.” Pointy is a device that is plugged in between the barcode scanner and the point-of-sale device. As products are scanned in, Pointy adds them to Google.

This is a quick way of uploading your product inventory to your Google Business Profile. There are restrictions around this, however, as Pointy is only available in some countries and also isn’t suitable for products without barcodes (bunches of flowers, for instance).

It is still possible to upload products manually. Simply sign in to your profile and click Edit Profile > Products > Add Product.

How Does This Help Build New Business?

You may be looking to showcase some products over others for a variety of reasons. You may have a surplus of stock in one of your locations, for example.

Bringing that stock to the forefront of that location’s GBP listing will help alert local customers to it. It will allow you to target specific products more to relevant audiences, dependent on their location.

For instance, seasonal products may be better served first. Perhaps the geographic location of your car repair shop is set for an unseasonal snow flurry. Edit your snow tire listings to bring them to the beginning of the carousel.

This could enhance the visibility of your product at just the right time for a new customer in your target location to see them.

3. Use Google’s Business Messages While You Can

Google Business Profile can include functionality that allows businesses to correspond with customers straight from the SERPs.

When activated, GBP will display a Message button that users can click on to start direct messaging with the business.

How GBP Business Messages Work

This functionality has existed since 2017 in Google Business Profile and since 2018 in Google Maps. It has only recently made it onto the desktop, however.

If you are an owner of a GBP, you should see the option in your desktop dashboard to Turn on messaging under the Messages tab.

Google My Business Turn on messaging option.

You can then set items like an initial auto-responder to be sent out when a visitor first messages you are using this service.

To make sure the service is a timely one, Google recommends you reply to all messages within 24 hours.

If you don’t, Google may deactivate the messaging service on your account. Your response times can also show in Google Search and Maps.

Google may display ‘Usually responds in a few minutes,’ ‘Usually responds in a few hours,’ ‘Usually responds in a day,’ or ‘Usually responds in a few days,’ depending on your average reply time.

How Does This Help Build New Business?

Not everyone has the time (or inclination) to call up a business they have yet to engage with. Allowing potential local customers to message you straight from your GBP is an excellent way of streamlining conversations with them.

If you respond quickly, your chances of that potential customer converting are greatly increased.

This is of particular use to local businesses that perhaps don’t use centralized call centers or messaging. It can be another touch point that shows the personalization of the business based on the location that the consumer is in.

Consider the offers, services, and tone of voice that might be most appropriate to your customers in that particular geography. This is your opportunity to highlight again how well you know your customers.

Make use of the local name for the area your business is in. Talk about the specific events and charities you support in the area.

Any additional indication that your business serves the local population specifically can help to reinforce your relevance to the potential customer who has contacted you.

Now that the functionality is available in such a wide range of places on the web, it would be a wasted opportunity not to engage with your potential customers in this way.

4. Update Your GBP With All Relevant Newly Available Attributes

Google keeps updating the features available through its Google Business Profile property. Make sure you keep your listing fully populated with the relevant attributes as they become available.

How Do New Attributes Work

Google frequently adds functionality to Google Business Profile that your business might be eligible to use. Not every new feature is available to all types of businesses, however.

Whether you can access new updates depends on what category is set as your primary in GBP.

To keep up to date with what new features are becoming available and who is eligible for them, visit Google’s GBP announcements page.

How Does This Help Build New Business?

With any new change to Google Business Profile, early adoption will put you ahead of the pack. Although these attributes will not necessarily affect your rankings in the map pack, they can make your business more attractive to prospective local customers.

For instance, attributes can include details of the business’s ownership. For example, it’s possible to include attributes like “women-owned” and “black-owned” to your Business profile.

Google also introduced the option to denote a business’s support for the LGBTQ+ community through “LGBTQ+ friendly” attributes.

A business showing that it is inclusive and supportive of minority groups can help members of those groups to feel welcomed. For some people, knowing they will be welcomed at a business can be the difference between them visiting there instead of a competitor whose support isn’t guaranteed.

LGBTQ+ Support AttributeScreenshot from Google Business Profile, September 2022

5. Join Local Marketplaces And Forums

The key to marketing your local business well is understanding what your audience is looking for. A great way of understanding your target market is by spending time where they are.

This includes online.

Make sure you register your business in local directories and forums. This is not so much for the traditional citation benefit. It’s so you can be amongst your prospective customers, hearing what they are talking about.

How Local Marketplaces & Forums Work

Online Marketplaces

Look on platforms like Facebook for marketplaces relevant to your location and products. You don’t necessarily need to be engaging with the audience to learn more about who they are and what they respond to.

For instance, if you sell locally created craft products in your store, you can get a feel for how much your audience is willing to pay for products by seeing what similar items are being sold for in your town’s Facebook Marketplace.

By watching what your local audience is saying about prices, quality, shipping, and sourcing of products, you can begin to understand more about your audience’s preferences.

Forums

If you are a local pizza restaurant, you would do well to join Reddit subreddits for your city and read the threads that talk about restaurants in your area.

What is your local audience saying about your competition? Are they sick of pizza restaurants and really want someone to bring something new to the area?

Perhaps they are enthusiastic about local independent shops and want to support them more.

How Does This Help Build New Business?

This kind of information can help you to tailor your search marketing strategy, tone of voice, and more.

Go to places where your target audience members are talking freely about your local area. Find out what they want from their local businesses.

If you are feeling brave, you can even interact with your audience on these platforms. This has to be done sensitively and authentically.

Most people don’t want to be mined for information without their consent. Be open and honest when reaching out for feedback on these sites.

The more you can watch and learn from your audience, the more likely you are to be able to offer products and services they will respond well to.

6. Don’t Neglect Bing, DuckDuckGo, And Others

Google is not the only search engine you need to be concerned with. There are others, too, that might be the first port of call for users looking for information on local businesses.

How Other Search Engines Work

You may see the vast majority of the organic traffic going to your site coming from Google. Don’t forget that you might not be tracking all of the ways customers discover you through search.

Your profile showing in the SERPs might not generate a click. As a result, it will not show up in your web analytics program.

So, unless you are measuring impressions across different search engines, you will not know that your business has been seen on the likes of Bing or DuckDuckGo.

DuckDuckGo’s maps are powered by Apple Maps. Therefore, if you want your business to appear in the DuckDuckGo local map pack, you will need to have your business set up with an Apple Maps Connect profile.

Similarly, Bing uses Bing Places to power their local map functionality. Setting up and optimizing a Google Business Profile listing will not help you with increasing organic visibility on Bing.

We are seeing an increase in the popularity of other search engines over time, and for some locations, Google is not the primary search engine used.

If you have physical stores or business locations outside of the U.S., you should look at which search engines are also popular in those regions.

Make sure you utilize the local map functionality of these other search engines.

How Does This Help Build New Business?

Yet again, being where your competitors are not will put you in good stead.

If your competitors are not appearing in the Apple Maps results in DuckDuckGo, you are going to be far more likely to win the business of local searchers using that platform.

7. Keep An Eye On Your Reputation

You may be keeping a close eye on the reviews left on sites like TripAdvisor. You even check your own Google Business Profile listing regularly.

But are you keeping on top of some of the other places in the SERPs which might be giving potential customers an outsider’s view of your business?

How Reputation Monitoring Works

Top and middle-of-the-funnel local search queries, such as [car mechanic telford], can bring back a variety of features in the SERPs.

Prominently Featured Review And Directory Sites

Take a look at this SERP result:

Prominently Featured Review And Directory SitesScreenshot from search for [car mechanic telford], Google, September 2022

The top carousel lists large directories, social media sites, and niche directories. This gives potential customers access to information about your company – and potentially even reviews – on sites you may not even be checking.

Aside from the inaccurate data about your company that these sites may contain, what have customers, former employees, or even competitors said about you?

Given that links to these sites appear as the first feature in the Google SERPs for this query, it would stand to reason they may get a lot of visibility from your potential customers.

People Also Ask

If customers are in the process of narrowing down their choice of business, they might start searching for specific information about those businesses. That can often trigger a “People Also Ask” feature to appear.

When searching for [is (name of a mechanic) in Telford any good], the following PAA box appeared, talking specifically about that brand.

PAA for car mechanic brand.Screenshot from Googe search, September 2022

That first “People Also Ask” question is, “why is [brand] so expensive?” That does not inspire much confidence in the value for money of this particular mechanic.

Although there is not much you can do to control what questions appear in the “People Also Ask” section, it is important to try to influence the perception of those who may click on this question.

Write a page addressing this question and try to get it ranking. That way, when someone interested in your local business clicks on this question, they at least will see your response around “the quality service,” “not compromising by using cheap parts,” and “highly-skilled technicians who you pay well for their expertise.”

How Does This Help Build New Business?

It is crucial to remember that what a potential customer sees about you may not just be the information you are writing on your website or Google Business Profile listings.

It might not even be the reviews left on sites you are closely monitoring and responding to.

A potential customer will be influenced heavily by others’ opinions and experiences of your business. Local businesses tend to attract a lot of reviews because they are promoted by sites that encourage them to be left.

A negative perception of your business will likely be the difference between you winning or losing a new customer.

Always monitor the SERPs around your core lead-generating search terms. Identify where negative perceptions of your business could be formed.

Conclusion

There are many aspects of SEO that you need to consider if you want your business to do well with your local audience.

How your website appears for searches with local intent in Google Maps and the standard SERPs can make or break your business.

If you want your brick-and-mortar business to succeed online, make sure you develop a robust local SEO strategy.

More Resources:


Featured Image: Rido/Shutterstock



Source link

Continue Reading

DON'T MISS ANY IMPORTANT NEWS!
Subscribe To our Newsletter
We promise not to spam you. Unsubscribe at any time.
Invalid email address

Trending

en_USEnglish