Using Google's Natural Language API for SEO

Google's NLP API can help us identify entities and understand content from a mechanical perspective.

Through Mike King's excellent technical SEO renaissance article, I found Google's Natural Language API tool, played around with it and discovered some very interesting things.

Entity search 101

We know Google preaches entities (people, places, things, ideas), but why? Because of Hummingbird and RankBrain. Hummingbird changed

Because of Hummingbird and RankBrain. Hummingbird changed

Hummingbird changed search from being focused on keywords to search intent (semantics), including "context of search, location, intent, variation of words, synonyms, generalized and specialized queries, concept matching and natural language queries to provide relevant search results".


RankBrain is a refinement within that change, as its goal is to predict what a user means, not only understand (Hummingbird) it. Therefore it maps entities on a graph and learns about their relationship, e.g. "Einstein" was a "physicist", "physics" is a "science", "science" is a way to organize "knowledge".

Contextual search heavily influences that process as well. This means that according to the sequence of your searches within a certain time frame, results might differ.

By the way, this way of "learning" is also the reason why click rates have become so much more important in SEO. They're an easy way to understand if (and how much) one of the results fits to the user intent.

But let's not get lost here.

Finding relevant entities with Google's natural language API

Using the API helps you to find all the entities Google knows (at this time!). Now you have a couple of options as to what to do with that.

First, and make sure the entities in your content got structured data markup, to get more rich snippets and therefore better click through rates and maybe in some cases answer box integrations.

google answer box

As Google wrote, "the best answer to your question is not always a single entity, but a list or group of connected things". So make sure that your text contains as many relevant entities as possible, in order for it to rank higher! You need to figure out which entities are important for a topic and cover these in your text, so RankBrain and Hummingbird can serve your pages as relevant results!

This is easier said than done if you don't have access to tools like Content Optimizer from Searchmetrics. But it's still possible to be done by hand: on the simplest level,

  1. throw your text into the API / tool
  2. see what entities Google finds
  3. click the Wikipedia links to these entities and
  4. throw those into the tool again.

Then see what entities are found in THIS text and make sure you cover them in yours!

Extracted entities
Extracted entities with Google's Natural Language API

This will automatically lead to you covering important and linked entities. Yes, it's a very simplified process that probably looks different in practice because you should also look at what high ranking articles (for the topic you write about) cover and you have to find the entities in the first place. But once you

But once you figured that out (basic keyword research helps), it's a very efficient way to improve your article and fill important gaps that might make the difference between ranking #1 and #10 or ranking for one keyword or 100.

I wasn't able to test this process on a larger scale but feel free to try it out and tell me how your rankings change ;-). I've had good success with this method working with Searchmetrics' Content Optimizer (not trying to plug it too much, it's just simply the only tool capable of this that I know on the market).

Sentiment analysis with Google's Natural Language API

The other very helpful SEO feature the tool offers is sentiment analysis, which is part of NLP (natural language processing) and basically tells you whether a sentence has a negative, neutral or positive message.

This is expressed via the polarity range, which goes from -1 (very negative) to +1 (very positive). It's helpful in two ways: first, you can check the reviews on your pages and extract whether they're positive or negative on average.

Google understands the polarity of reviews
Google understands the polarity of reviews

Secondly, and even more importantly, this reveals how easy it is for Google to determine customer satisfaction with your products!

Language processing
Google shows how good of a job it does in extracting sentence elements.

An analysis by Yotpo (it's just one of many) revealed that reviews seem to influence rankings. They looked at 30,000 online business over 9 months and saw strong correlations between good reviews and better rankings:

Bill Slawski has been writing for years about how Google may leverage reviews to surface better content based on patterns. He came up with an article titled "the growing power of online reviews", so the idea is by no means new.

SEO by the Sea

I just think we're at a point now at which we can see very strong correlations between positive reviews and better rankings and we understand how simple it is for Google to be very data-driven about this matter, which implies SEOs should pay attention to review polarity when auditing sites.

Practical applications of the Natural Language API

That's a very strong hypothesis for including reviews in future ranking factor discussions. Maybe this even means clearing up negative reviews or at least masking them. That might be a grey hat area but on the other hand more efficient than altering your product (in the short-term).

As my personal opinion, I want to add that I see it very possible for Google to soon also implement "beyond sentiment analysis", which shows whether a statement is sad, angry or happy. Facebook has an easy way to determine this with the new like button features, but I'm sure Google will improve its analytical capabilities to extract that.

Whether you use the API on a larger scale or the live tool on a smaller scale, I'm curious about your opinions about entity search and what other tactics you see made possible with it!?