Tag Archive | "Build"

Many companies are working to build authentic and trusted brands with consumers. This is especially true with pharmaceuticals, biotech, and med-tech companies. The CEO of Sparrho, Dr. Vivian Chan, says that their approach combines artificial intelligence and 400,000 Ph.D.’s to deliver scientific data to companies. This data helps companies back up their marketing messages which enables them to more effectively build that vital trust with their customers.

Dr. Vivian Chan, Sparrho CEO, recently discussed on CNBC their unique hybrid AI approach to helping companies use science and information to back up their brands messaging:

AI Enables Humans to Make Better-Informed Decisions

Artificial intelligence is really about algorithms and how we can use data that we collect to enable humans to make better-informed decisions. I not at all about having computers make decisions on behalf of humans. In a way, I think it’s machines that will be helping evolve the tasks and not actually replacing the human roles. Human roles themselves will be evolving also as the technology improves. This allows humans to have more headspace to be thinking about things that machines can’t do right now.

Machines can’t necessarily summarize a lot of pieces of contextual analysis very well yet to a 100 percent accuracy and humans are still better at making nonlinear connection points. For example, being able to say that this mathematical equation is super relevant to an agricultural problem. If we don’t have the tagging and reference and citations humans are still better at making those nonlinear new connection points than machines.

Humans are still good at coming up with the questions. If you actually pose the right question and you train the data and the algorithms you might actually get the right answer. However, you still need to have the humans to be thinking about what the questions are in order to ultimately get the answers.

It’s About Using AI as a Means to an End

I think the angle is really thinking about using AI as a means to an end and not just the end. Ultimately, this is a hybrid approach and various different people are calling it differently. Even MIT professors are calling it a hybrid approach. We’re calling it augmented intelligence. We need to come up with a good relationship between humans and machines. Marketing is about building relationships. It’s about building relationships between brands and consumers and now how do we build that relationship digitally?

Using Science to Build an Authenticated Brand

In this digital age, consumers are a lot more tech savvy but are also information savvy. They want to know what the is science behind certain things. Even if you’re talking about CPG, consumer packaged goods, what is the science behind a shampoo product right now when it claims 98 percent prevention of hair loss? What is the real science behind that and how do we actually bring that simplified science-oriented message to the consumer? How can consumers educate themselves and make informed decisions based on the products and thereby build a stronger brand relationship?

Ultimately what we’re trying to do at Sparrow is simplify science to build trust in brands. Especially for marketing departments and brands, it’s really allowing them to have the evidence-based science and the facts because building a very authenticated brand is what is meaningful to consumers. Research says that about 71 percent of consumers immediately reject content that looks like a sales pitch. Building a relationship and having an authenticated brand and content is super important in building that relationship between brand and consumers.

Sparrho Provides Content as a Service On Demand

We’re going even wider with that by providing what we call content as a service or relevant content on demand. We then integrate that into the digital platforms or the brands. We have what we call augmented intelligence with over 16 million pieces of content that is augmented by a network of more than 400,000 monthly active PhDs in a150 countries. They curate and summarize what’s actually happening in the latest of science.

We know that in about 60 percent of pharmaceuticals, biotech, and even med-tech companies, are spending more than $ 50 million per year just in content. Content has been the major driver for a lot of their marketing. In pharmaceuticals, they’re trying to really bring that relationship that they have offline to online. It’s at the heart of this digital transformation age that we are going through. This is really helping bring that relationship online by using the right engaging content. Our goal with Sparrow is to drive more engagement and ultimately more sales.

Content link building: Are infographics still the highest ROI format?

Fun fact: the first article to appear online proclaiming that “infographics are dead” appeared in 2011. Yet, here we are.

For those of you looking for a quick answer to this strategy-defining question, infographics aren’t as popular as they were between 2014 and 2015. Although they were the best format for generating links, popular publications aren’t using them as often as they used to, as evidenced in this research. However, they are still being used daily and gaining amazing placements and links for their creators — and the data shows, they are already more popular in 2018 than they were in 2013.

However, if there’s one format you want to be working with, use surveys.

Note: I am at the mercy of the publication I’ve reviewed as to what constitutes their definition of an infographic in order to get this data at scale. However, throughout my research, this would typically include a relatively long text- and data-heavy visualization of a specific topic.

The truth is that infographics are still one of the most-used formats for building links and brand awareness, and from my outreach experiences, with good reason. Good static visuals or illustrations (as we now call them to avoid the industry-self-inflicted shame) are often rich in content with engaging visuals that are extremely easy for journalists to write about and embed, something to which anyone who’s tried sending an iframe to a journalist will attest.

That’s why infographics have been going strong for over a decade, and will continue to for years to come.

My methodology

Prophecies aside, I wanted to take a look into the data and discover whether or not infographics are a dying art and if journalists are still posting them as often as they used to. I believe the best way to determine this is by taking a look at what journalists are publishing and mapping that over time.

Not only did I look at how often infographics are being used, but I also measured them against other content formats typically used for building links and brand awareness. If infographics are no longer the best format for content-based link building, I wanted to find out what was. I’ve often used interactives, surveys, and photographic content, like most people producing story-driven creatives, so I focused on those as my formats for comparison.

Internally, you can learn a ton by cross-referencing this sort of data (or data from any key publication clients or stakeholders have tasked you with) with your own data highlighting where you’re seeing most of your successes and identifying which formats and topics are your strengths or weaknesses. You can quickly then measure up against those key target publications and know if your strongest format/topic is one they favor most, or if you might need to rethink a particular process to get featured.

I chose to take a look at Entrepreneur.com as a base for this study, so anyone working with B2B or B2C content, whether in-house or agency-side, will probably get the most use out of this (especially because I scraped the names of journalists publishing this content — shh! DM me for it. Feels a little wrong to publish that openly!).

Disclaimer: There were two methods of retrieving this data that I worked through, each with their own limitations. After speaking with fellow digital PR expert, Danny Lynch, I settled on using Screaming Frog and custom extraction using XPath. Therefore, I am limited to what the crawl could find, which still included over 70,000 article URLs, but any orphaned or removed pages wouldn’t be possible to crawl and aren’t included.

The research

Here’s how many infographics have been featured as part of an article on Entrepreneur.com over the years:

As we’ve not yet finished 2018 (3 months to go at the time this data was pulled), we can estimate the final usage will be in the 380 region, putting it not far from the totals of 2017 and 2016. Impressive stuff in comparison to years gone by.

However, there’s a key unknown here. Is the post-2014/15 drop-off due to lack of outreach? Is it a case of content creators simply deciding infographics were no longer the preferred format to cover topics and build links for clients, as they were a few years ago?

Both my past experiences agency-side and my gut feeling would be that content creators are moving away from it as a core format for link building. Not only would this directly impact the frequency they are published, but it would also impact the investment creators place in producing infographics, and in an environment where infographics need to improve to survive, that would only lead to less features.

Another important data point I wanted to look at was the amount of content being published overall. Without this info, there would be no way of knowing if, with content quality improving all the time, journalists were spending a significantly more time on posts than they had previously while publishing at diminishing rates. To this end, I looked at how much content Entrepreneur.com published each year over the same timeframe:

Although the data shows some differences, the graphs are pretty similar. However, it gets really interesting when we divide the number of infographics by the number of articles in total to find out how many infographics exist per article:

There we have it. The golden years of infographics were certainly 2013 and 2014, but they’ve been riding a wave of consistency since 2015, comprising a higher percentage of overall articles that link builders would have only dreamed of in 2012, when they were way more in fashion.

In fact, by breaking down the number of infographics vs overall content published, there’s a 105% increase in the number of articles that have featured an infographic in 2018 compared to 2012.

Infographics compared to other creative formats

With all this in mind, I still wanted to uncover the fascination with moving away from infographics as a medium of creative storytelling and link building. Is it an obsession with building and using new formats because we’re bored, or is it because other formats provide a better link building ROI?

The next question I wanted to answer was: “How are other content types performing and how do they compare?” Here’s the answer:

Again, using figures publisher-side, we can see that the number of posts that feature infographics is consistently higher than the number of features for interactives and photographic content. Surveys have more recently taken the mantle, but all content types have taken a dip since 2015. However, there’s no clear signal there that we should be moving away from infographics just yet.

In fact, when pitting infographics against all of the other content types (comparing the total number of features), apart from 2013 and 2014 when infographics wiped the floor with everything, there’s no signal to suggest that we need to ditch them:

Year

Infographics vs Interactives

Infographics vs Photography

Infographics vs Surveys

2011

-75%

-67%

-90%

2012

-14%

-14%

-65%

2013

251%

376%

51%

2014

367%

377%

47%

2015

256%

196%

1%

2016

186%

133%

-40%

2017

195%

226%

-31%

2018

180%

160%

-42%

This is pretty surprising stuff in an age where we’re obsessed with interactives and “hero” pieces for link building campaigns.

Surveys are perhaps the surprise package here, having seen the same rise that infographics had through 2012 and 2013, now out-performing all other content types consistently over the last two years.

When I cross-reference to find the number of surveys being used per article, we can see that in every year since 2013 their usage has been increasingly steadily. In 2018, they’re being used more often per article than infographics were, even in their prime:

Surveys are one of the “smaller” creative campaigns I’ve offered in my career. It’s a format I’m gravitating more towards because of their speed and potential for headlines. Critically, they’re also cheaper to produce, both in terms of research and production, allowing me to not only create more of them per campaign, but also target news-jacking topics and build links more quickly compared to other production-heavy pieces.

I think, conclusively, this data shows that for a solid ROI when links are the metric, infographics are still competitive and viable. Surveys will serve you best, but be careful if you’re using the majority of your budget on an interactive or photographic piece. Although the rewards can still be there, it’s a risk.

The link building potential of our link building

For one last dive into the numbers, I wanted to see how different content formats perform for publishers, which could provide powerful insight when deciding which type of content to produce. Although we have no way of knowing when we do our outreach which KPIs different journalists are working towards, if we know the formats that perform best for them (even if they don’t know it), we can help their content perform by proxy — which also serves the performance of our content by funneling increased equity.

Unfortunately, I wasn’t able to extract a comment count or number of social shares per post, which I thought would be an interesting insight to review engagement, so I focused on linking root domains to discover if there is any difference in a publisher’s ability to build links based on the formats they cover, and if that could lead to an increase in link equity coming our way.

Here’s the average number of links from different domains for each post featuring a different content type received:

Impressively, infographics and surveys continue to hold up really well. Not only are they the content types that the publisher features more often, they are also the content types that build them the most links.

Using these formats to pitch with not only increases the chances that a publisher’s post will rank more competitively in your content’s topic area (and put your brand at the center of the conversation), it’s also important for your link building activity because it highlights the potential link equity flowing to your features and, therefore, how much ends up on your domain.

This gives you the potential to rank (directly and indirectly) for a variety of phrases centered around your topic. It also gives your domain/target page and topically associated pages a better chance of ranking themselves — at least where links play their part in the algorithm.

Ultimately, and to echo what I mentioned in my intro-summary, surveys have become the best format for building links. I’d love to know how many are pitched, but the fact they generate the most links for our linkers is huge, and if you are doing content-based link building with SEO-centric KPIs, they give you the best shot at maximizing equity and therefore ranking potential.

Infographics certainly still seem to have a huge part in the conversation. Only move away from them if there’s proof in your data. Otherwise, you could be missing out for no reason.

That’s me, guys. I really hope this data and process is interesting for everyone, and I’d love to hear if you’ve found or had experiences that lead to different conclusions.

Sign up for The Moz Top 10, a semimonthly mailer updating you on the top ten hottest pieces of SEO news, tips, and rad links uncovered by the Moz team. Think of it as your exclusive digest of stuff you don’t have time to hunt down but want to read!

Have you ever made SEO recommendations that just don’t go anywhere? Maybe you run into a lack of budget, or you can’t get buy-in from your boss or colleagues. Maybe your work just keeps getting deprioritized in favor of other initiatives. Whatever the case, it’s important to set yourself up for success when it comes to the tangled web of red tape that’s part and parcel of most organizations.

In this week’s Whiteboard Friday, Heather Physioc shares her tried-and-true methods for building yourself a toolkit that’ll help you tear through roadblocks and bureaucracy to get your work implemented.

Click on the whiteboard image above to open a high-resolution version in a new tab!

Video Transcription

What up, Moz fans? This is Heather Physioc. I’m the Director of the Discoverability Group at VML, headquartered in Kansas City. So today we’re going to talk about how to build your red tape toolkit to overcome obstacles to getting your search work implemented. So do you ever feel like your recommendations are overlooked, ignored, forgotten, deprioritized, or otherwise just not getting implemented?

Common roadblocks to implementing SEO recommendations

If so, you’re not alone. So I asked 140-plus of our industry colleagues the blockers that they run into and how they overcome them.

Low knowledge. So if you’re anything like every other SEO ever, you might be running into low knowledge and understanding of search, either on the client side or within your own agency.

Low buy-in. You may be running into low buy-in. People don’t care about SEO as much as you do.

Poor prioritization. So other things frequently come to the top of the list while SEO keeps falling further behind.

High bureaucracy. So a lot of red tape or slow approvals or no advocacy within the organization.

Not enough budget. A lot of times it’s not enough budget, not enough resources to get the work done.

Unclear and overcomplicated process. So people don’t know where they fit or even how to get started implementing your SEO work.

Bottlenecks. And finally bottlenecks where you’re just hitting blockers at every step along the way.

So if you’re in-house, you probably said that not enough budget and resources was your biggest problem. But on the agency side or individual practitioners, they said low understanding or knowledge of search on the client side was their biggest blocker.

So a lot of the time when we run into these blockers and it seems like nothing is getting done, we start to play the blame game. We start to complain that it’s the client who hung up the project or if the client had only listened or it’s something wrong with the client’s business.

Build out your red tape toolkit

But I don’t buy it. So we’re going to not do that. We’re going to build out our red tape toolkit. So here are some of the suggestions that came out of that survey.

1. Assess client maturity

First is to assess your client’s maturity. This could include their knowledge and capabilities for doing SEO, but also their organizational search program, the people, process, ability to plan, knowledge, capacity.

These are the problems that tend to stand in the way of getting our best work done. So I’m not going to go in-depth here because we’ve actually put out a full-length article on the Moz blog and another Whiteboard Friday. So if you need to pause, watch that and come back, no problem.

2. Speak your client’s language

So the next thing to put in your toolkit is to speak your client’s language. I think a lot of times we’re guilty of talking to fellow SEOs instead of the CMOs and CEOs who buy into our work. So unless your client is a super technical mind or they have a strong search background, it’s in our best interests to lift up and stay at 30,000 feet. Let’s talk about things that they care about, and I promise you that is not canonicalization or SSL encryption and HTTPS.

They’re thinking about ROI and their customers and operational costs. Let’s translate and speak their language. Now this could also mean using analogies that they can relate to or visual examples and data visualizations that tell the story of search better than words ever could. Help them understand. Meet them in the middle.

3. Seek greater perspective

Now let’s seek greater perspective. So what this means is SEO does not or should not operate in a silo. We’re one small piece of your client’s much larger marketing mix. They have to think about the big picture. A lot of times our clients aren’t just dedicated to SEO. They’re not even dedicated to just digital sometimes. A lot of times they have to think about how all the pieces fit together. So we need to have the humility to understand where search fits into that and ladder our SEO goals up to the brand goals, campaign goals, business and revenue goals. We also need to understand that every SEO project we recommend comes with a time and a cost associated with it.

Everything we recommend to a CMO is an opportunity cost as well for something else that they could be working on. So we need to show them where search fits into that and how to make those hard choices. Sometimes SEO doesn’t need to be the leader. Sometimes we’re the follower, and that’s okay.

4. Get buy-in

The next tool in your toolkit is to get buy-in. So there are two kinds of buy-in you can get.

Horizontal buy-in

One is horizontal buy-in. So a lot of times search is dependent on other disciplines to get our work implemented. We need copywriters. We need developers. So the number-one complaint SEOs have is not being brought in early. That’s the same complaint all your teammates on development and copywriting and everywhere else have.

Respect the expertise and the value that they bring to this project and bring them to the table early. Let them weigh in on how this project can get done. Build mockups together. Put together a plan together. Estimate the level of effort together.

Vertical buy-in

Which leads us to vertical buy-in. Vertical is up and down. When you do this horizontal buy-in first, you’re able to go to the client with a much smarter, better vetted recommendation. So a lot of times your day-to-day client isn’t the final decision maker. They have to sell this opportunity internally. So give them the tools and the voice that they need to do that by the really strong recommendation you put together with your peers and make it easy for them to take it up to their boss and their CMO and their CEO. Then you really increase the likelihood that you’re going to get that work done.

5. Build a bulletproof plan

Next, build a bulletproof plan.

Case studies

So the number-one recommendation that came out of this survey was case studies. Case studies are great. They talk about the challenge that you tried to overcome, the solution, how you actually tackled it, and the results you got out of that.

Clients love case studies. They show that you have the chops to do the work. They better explain the outcomes and the benefits of doing this kind of work, and you took the risk on that kind of project with someone else’s money first. So that’s going to reduce the perceived risk in the client’s mind and increase the likelihood that they’re going to do the work.

Make your plan simple and clear, with timelines

Another thing that helps here is building a really simple, clear plan so it’s stupid-easy for everybody who needs to be a part of it to know where they fit in and what they’re responsible for. So do the due diligence to put together a step-by-step plan and assign ownership to each step and put timelines to it so they know what pace they should be following.

Forecast ROI

Finally, forecast ROI. This is not optional. So a lot of times I think SEOs are hesitant to forecast the potential outcomes or ROI of a project because of the sheer volume of unknowns.

We live in a world of theory, and it’s very hard to commit to something that we can’t be certain about. But we have to give the client some sense of return. We have to know why we are recommending this project over others. There’s a wealth of resources out there to do that for even heavily caveated and conservative estimate, including case studies that others have published online.

Show the cost of inaction

Now sometimes forecasting the opportunity of ROI isn’t enough to light a fire for clients. Sometimes we need to show them the cost of inaction. I find that with clients the risk is not so much that they’re going to make the wrong move. It’s that they’ll make no move at all. So a lot of times we will visualize what that might look like. So we’ll show them this is the kind of growth we think that you can get if you invest and you follow this plan we put together.

Here’s what it will look like if you invest just a little to monitor and maintain, but you’re not aggressively investing in search. Oh, and here, dropping down and to the right, is what happens when you don’t invest at all. You stagnate and you get surpassed by your competitors. That can be really helpful for clients to contrast those different levels of investment and convince them to do the work that you’re recommending.

6. Use headlines & soundbites

Next use headlines, taglines, and sound bites. What we recommend is really complicated to some clients. So let’s help translate that into simple, usable language that’s memorable so they can go repeat those lines to their colleagues and their bosses and get that work sold internally. We also need to help them prioritize.

So if you’re anything like me, you love it when the list of SEO action items is about a mile long. But when we dump that in their laps, it’s too much. They get overwhelmed and bombarded, and they tune out. So instead, you are the expert consultant. Use what you know about search and know about your client to help them prioritize the single most important thing that they should be focusing on.

7. Patience, persistence, and parallel paths

Last in your toolkit, patience, persistence, and parallel paths. So getting this work done is a combination of communication, follow-up, patience, and persistence. While you’ve got your client working on this one big thing that you recommended, you can be building parallel paths, things that have fewer obstacles that you can own and run with.

They may not be as high impact as the one big thing, but you can start to get small wins that get your client excited and build momentum for more of the big stuff. But the number one thing out of all of the responses in the survey that our colleagues recommended to you is to stay strong. Have empathy and understanding for the hard decisions that your client has to make. But come with a strong, confident point of view on where to go next.

All right, gang, these are a lot of great tips to start your red tape toolkit and overcome obstacles to get your best search work done. Try these out. Let us know what you think. If you have other great ideas on how you overcome obstacles to get your best work done with clients, let us know down in the comments. Thank you so much for watching, and we’ll see you next week for another edition of Whiteboard Friday.

Sign up for The Moz Top 10, a semimonthly mailer updating you on the top ten hottest pieces of SEO news, tips, and rad links uncovered by the Moz team. Think of it as your exclusive digest of stuff you don’t have time to hunt down but want to read!

A couple of weeks ago, I wrote a blog post about creating content that earns your audience’s attention. Mark Schaefer swung by and left a comment — and he made a point that is dear to our hearts at Copyblogger. “Outstanding content is not the finish line, it’s the starting line.”– Mark Schaefer I told Read More…

This could be an easy time to be intimidated by content marketing. Weak content is sinking to the bottom, buried by the sheer mass of content being churned out across the globe. Content strategy has all kinds of complex new tools that seem like you need an MBA to use them. The giant, VC-backed players Read More…

Psst … hey, Copyblogger is taking the week off between Christmas and New Year’s. At least, officially. I’m not supposed to be here at all. But, given that my schedule is always out of whack this time of year, I like to take advantage of the disruptions to think about what I want to make Read More…

Delivering content that best serves the needs of users is certainly top-of-mind for many SEOs since the Hummingbird algorithm update and subsequent buzz around RankBrain. It sounds easy enough in theory, but what does that actually mean in practice? Many SEOs believe that they’re already doing this by driving their content strategy by virtue of keyword research alone.

The problem with solely using keywords to drive your content strategy is that not all of your audience’s content needs are captured in search. Ask your nearest customer service representative what questions they answer every day; I can guarantee that you won’t find all of those questions with search volume in a keyword research tool.

Keyword research can also tempt you to develop content that your brand really shouldn’t be creating because you don’t have anything unique to say about it. Sure, you could end up increasing organic traffic, but are those going to be converting customers?

Moving away from a keyword-first-driven content strategy and into an audience-centric one will put you in a better place for creating SEO content that converts. Don’t get me wrong — there’s still an important place for keyword research. But it belongs later in the process, after you’ve performed a deep dive into your audience and your own brand expertise.

This is an approach that the best content marketers excel at. And it’s something that SEOs can utilize, too, as they strive to provide more relevant and higher-quality content for your target audiences.

How is an audience-focused content strategy different from a keyword-focused content strategy?

A content marketing strategy starts with the target audience and dives deeper into understanding your brand’s expertise and unique value proposition. Keyword research is great at uncovering how people talk about topics relevant to your brand, but it is limiting when it comes to audience understanding.

Think about one of your prospective customer’s journey to conversion. Is search the only channel they utilize to get information? If you are collecting lead information or serving up remarketing ads, hopefully not. So, why should your audience understanding be limited to keyword research?

A content strategy is a holistic plan that tackles questions like:

Who is my audience?

What are their pain points and needs?

What types of content do these people want to consume?

Where are they currently having conversations (online or offline)

What unique expertise does our brand offer?

How can we match our expertise to our audience’s needs?

Finding your unique content angle

The key to connecting with your audience is to develop your unique content angle that finds intersections between what your brand’s expertise is in and your audience’s pain points. The Content Marketing Institute refers to this as a “content tilt” because it involves taking a larger topic and tilting it in your own way. Defining your brand’s expertise can be more difficult than it appears on the surface.

It isn’t uncommon for brands to say their product is what makes them unique, but if there is a competitor out there with the same general product, it’s not unique. What makes your organization different from competitors?

Here’s an example

When I worked for Kaplan Financial Education, a professional licensing and exam prep provider brand under Kaplan Professional, finding our tilt was a real challenge. Kaplan Financial Education has a lot of product lines all within financial services, but the audience for each is different. We needed a tilt that worked for the entire Career Corner content hub we were creating. What we realized is that our core audience all has a big pain point in common: entering the financial services industry either through insurance or securities (selling stocks and bonds) has low barriers to entry and high turnover. Everyone entering that job market needs to know how to not only pass their licensing exam(s), but also be successful as professionals too, both in the early years and also in the years to come.

Kaplan Financial Education’s biggest content competitors create very factual content — they’re websites like Investopedia, Wikipedia, and governing bodies like FINRA and state government departments. But Kaplan Financial Education has something going for it that its competitors do not: a huge network of students. There are other licensing exam prep providers that compete with Kaplan Financial Education, but none that cover the same breadth of exams and continuing education. It’s the only brand in that industry that provides licensing education as individuals progress through their financial careers. “From hire to retire,” as the marketers say.

We made our content tone more conversational and solicited input from our huge student and instructor network to help new professionals be more successful. We also used their quotes and insights to drive content creation and make it more relatable and personalized. All of our content tied back to helping financial professionals be successful — either as they’re getting licensed or beyond — and rather than simply telling people what to do, we leveraged content to allow our current students and instructors to teach our prospective students.

You may be thinking… so I can only write content that fits in this tilt? Isn’t that limiting?

As SEOs, it can be really hard to let go of some keyword opportunities that exist if they don’t fit the content strategy. And it’s true that there are probably some keywords out there you could create content for and increase your organic traffic. But if they don’t fit with your target audience’s needs and your brand’s expertise, will it be the kind of traffic that’s going to convert? Likely not. Certainly not enough to spend resources on content creation and to distract yourself from your larger strategy objective.

How to build your content strategy

1. Set your goals.

Start at the end. What is you are ultimately trying to accomplish? Do you want to increase leads by a certain percentage? Do you want to drive a certain number increase in sales? Are you trying to drive subscribers to a newsletter? Document these goals first. This will help you figure out what type of content you want to create and what the calls-to-action should be.

If you’re a business like Kaplan and leads are your ultimate goal, a proven strategy is to create ungated content that provides good insights, but leaves room for a deeper dive. Have your calls-to-action point to a gated piece of content requiring some form of contact information that goes into more depth.

A business like a car dealership is going to have a primary goal of getting people into their dealership to buy a car. Their content doesn’t necessarily need to be gated, but it should have a local spin and speak to common questions people have about the car buying process, as well as show the human elements that make the dealership unique to establish trust and show how customers will be treated. Trust is especially important in that industry because they have to combat the used car salesman stereotype.

2. Identify your primary audience and their pain points.

The next step is to identify who you’re targeting with your content. There are a lot of people at your disposal to help you with this part of the process. Within your organization, consider talking to these teams:

Customer Service

Sales

Technical Support

Product Management

Product Marketing

Social Media Marketing

These are often the people who interact the most with customers. Find out what your audience is struggling with and what content could be created to help answer their questions. You can also do some of this research on your own by searching forums and social media. Subreddits within Reddit related to your topic can be a goldmine. Other times there are active, related groups on social media platforms like LinkedIn and Facebook. If you’ve ever been to the MozCon Facebook group, you know how much content could be created answering common questions people have related to SEO.

3. Determine your brand’s unique expertise.

Again, dig deeper and figure out what makes your brand truly unique. It likely isn’t the product itself. Think about who your subject matter experts are and how they contribute to the organization. Think about how your products are developed.

Even expertise that may seem boring on the surface can be extremely valuable. I’ve seen Marcus Sheridan speak a couple of times and he has one of the most compelling success stories I’ve ever heard about not being afraid to get too niche with expertise. He had a struggling swimming pool installation business until he started blogging. He knew his expertise was in pools — buying fiberglass pools, specifically. He answered every question he could think of related to that buying process and became the world thought leader on fiberglass pools. Is it a glamorous topic? No. But, it’s helpful to the exact audience he wanted to reach. There aren’t hundreds of thousands of people searching for fiberglass pool information online, but the ones that are searching are the ones he wanted to capture. And he did.

4. Figure out your content tilt.

Now put your answers for #2 and #3 together and figure out what your unique content angle will look like.

5. Develop a list of potential content topics based on your content tilt.

It’s time to brainstorm topics. Now that you know your content tilt, it’s a lot easier to come up with topics your brand should be creating content about. Plus, they’re topics you know your audience cares about! This is a good step to get other people involved from around your organization, from departments like sales, product management, and customer service. Just make sure your content tilt is clear to them prior to the brainstorm to ensure you don’t get off-course.

6. Conduct keyword research.

Now that you’ve got a list of good content topics, it’s time to really dive into long-tail keyword research and figure out the best keyword targets around the topics.

There are plenty of good tools out there to help you with this. Here are a few of my go-tos:

Moz Keyword Explorer (freemium): If you have it, it’s a great tool for uncovering keywords as questions, looking at the keyword competitive landscape, and finding other related keywords to your topic.

Keywordtool.io (free): One of the only keyword discovery tools out there that will give you keyword research by search engine. If you are looking for YouTube or App Store keywords, for instance, this is a great idea generation tool.

Ubersuggest.io (free): Type in one keyword and Ubersuggest will give you a plethora of other ideas organized in a list alphabetically or in a word cloud.

7. Create an editorial calendar.

Based on your keyword research findings, develop an editorial calendar for your content. Make sure to include what your keyword target(s) are so if you have someone else developing the content, they know what is important to include in it.

8. Determine how to measure success.

Once you know what content you’re going to create, you’ll need to figure out how you’ll measure success. Continuing on with the Kaplan example, lead generation was our focus. So, we focused our efforts on measuring leads to our gated content and conversions of those leads to sales over a certain time period. We also measured organic entrances to our ungated content. If our organic entrances were growing (or not growing) disproportionate to our leads, then we’d take deeper dives into what individual pieces of content were converting well and what pieces were not, then make tweaks accordingly.

9. Create content!

Now that all the pieces are there, it’s time to do the creation work. This is the fun part! With your content tilt in mind and your keyword research completed, gather the information or research you need and outline what you want the content to look like.

Take this straightforward article called How to Get Your Series 7 License as an example. To become a registered representative (stockbroker), you have to pass this exam. The primary keyword target here is: Series 7 license. It’s an incredibly competitive keyword with between 2.9K–4.3K monthly searches, according to the Keyword Explorer tool. Other important semantically related keywords include: how to get the Series 7 license, Series 7 license requirements, Series 7 Exam, General Securities Registered Representative license, and Series 7 license pass rate.

Based on our content tilt and competitive landscape for the primary keyword, it made the most sense to make this into a how-to article explaining the process in non-jargon terms to someone just starting in the industry. We perfectly exact-match each keyword target, but the topics are covered well enough for us to rank on the front page for all but one of them. Plus, we won the Google Answer Box for “how to get your Series 7 license.” We also positioned ourselves well for anticipated future searches around a new licensing component called the SIE exam and how it’ll change the licensing process.

Once you’ve created your content and launched it, like with any SEO work, you will have a lag before you see any results. Be sure to build a report or dashboard based on your content goals so you can keep track of the performance of your content on a regular basis. If you find that the growth isn’t there after several months, it is a good idea to go back through the content strategy and assess whether you’ve got your tilt right. Borrowing from Joe Pulizzi, ask yourself: “What if our content disappeared? Would it leave a gap in the marketplace?” If the answer is no, then it’s definitely time to revisit your tilt. It’s the toughest piece to get right, but once you do, the results will follow.

If you’re interested in more discussion on content marketing and SEO, check out the newest MozPod podcast. Episode 8, SEO & Content Strategy:

Sign up for The Moz Top 10, a semimonthly mailer updating you on the top ten hottest pieces of SEO news, tips, and rad links uncovered by the Moz team. Think of it as your exclusive digest of stuff you don’t have time to hunt down but want to read!

Authority Pro is a fresh new design by our Lead Designer Rafal Tomal and the team at StudioPress. The big idea behind this specific design is to help you put the full extent of your expertise on display. Consistently demonstrating your likable expertise over time is what allows you to build meaningful and lasting trust Read More…

You’re busy and (depending on effective keyword targeting) you’ve come here looking for something to shave months off the process of learning to produce your own chat bot. If you’re convinced you need this and just want the how-to, skip to “What my bot does.” If you want the background on why you should be building for platforms like Google Home, Alexa, and Facebook Messenger, read on.

Why should I read this?

Do you remember when it wasn’t necessary to have a website? When most boards would scoff at the value of running a Facebook page? Now Gartner is telling us that customers will manage 85% of their relationship with brands without interacting with a human by 2020 and publications like Forbes are saying that chat bots are the cause.

The situation now is the same as every time a new platform develops: if you don’t have something your customers can access, you’re giving that medium to your competition. At the moment, an automated presence on Google Home or Slack may not be central to your strategy, but those who claim ground now could dominate it in the future.

The problem is time. Sure, it’d be ideal to be everywhere all the time, to have your brand active on every platform. But it would also be ideal to catch at least four hours sleep a night or stop covering our keyboards with three-day-old chili con carne as we eat a hasty lunch in between building two of the Next Big Things. This is where you’re fortunate in two ways;

When we develop chat applications, we don’t have to worry about things like a beautiful user interface because it’s all speech or text. That’s not to say you don’t need to worry about user experience, as there are rules (and an art) to designing a good conversational back-and-forth. Amazon is actually offering some hefty prizes for outstanding examples.

I’ve spent the last six months working through the steps from complete ignorance to creating a distributable chat bot and I’m giving you all my workings. In this post I break down each of the levels of complexity, from no-code back-and-forth to managing user credentials and sessions the stretch over days or months. I’m also including full code that you can adapt and pull apart as needed. I’ve commented each portion of the code explaining what it does and linking to resources where necessary.

I’ve written more about the value of Interactive Personal Assistants on the Distilled blog, so this post won’t spend any longer focusing on why you should develop chat bots. Instead, I’ll share everything I’ve learned.

What my built-from-scratch bot does

Ever since I started investigating chat bots, I was particularly interested in finding out the answer to one question: What does it take for someone with little-to-no programming experience to create one of these chat applications from scratch? Fortunately, I have direct access to someone with little-to-no experience (before February, I had no idea what Python was). And so I set about designing my own bot with the following hard conditions:

It had to have some kind of real-world application. It didn’t have to be critical to a business, but it did have to bear basic user needs in mind.

It had to be easily distributable across the immediate intended users, and to have reasonable scope to distribute further (modifications at most, rather than a complete rewrite).

It had to be flexible enough that you, the reader, can take some free code and make your own chat bot.

It had to be possible to adapt the skeleton of the process for much more complex business cases.

It had to be free to run, but could have the option of paying to scale up or make life easier.

It had to send messages confirming when important steps had been completed.

The resulting program is “Vietnambot,” a program that communicates with Slack, the API.AI linguistic processing platform, and Google Sheets, using real-time and asynchronous processing and its own database for storing user credentials.

If that meant nothing to you, don’t worry — I’ll define those things in a bit, and the code I’m providing is obsessively commented with explanation. The thing to remember is it does all of this to write down food orders for our favorite Vietnamese restaurant in a shared Google Sheet, probably saving tens of seconds of Distilled company time every year.

It’s deliberately mundane, but it’s designed to be a template for far more complex interactions. The idea is that whether you want to write a no-code-needed back-and-forth just through API.AI; a simple Python program that receives information, does a thing, and sends a response; or something that breaks out of the limitations of linguistic processing platforms to perform complex interactions in user sessions that can last days, this post should give you some of the puzzle pieces and point you to others.

What is API.AI and what’s it used for?

API.AI is a linguistic processing interface. It can receive text, or speech converted to text, and perform much of the comprehension for you. You can see my Distilled post for more details, but essentially, it takes the phrase “My name is Robin and I want noodles today” and splits it up into components like:

Intent: food_request

Action: process_food

Name: Robin

Food: noodles

Time: today

This setup means you have some hope of responding to the hundreds of thousands of ways your users could find to say the same thing. It’s your choice whether API.AI receives a message and responds to the user right away, or whether it receives a message from a user, categorizes it and sends it to your application, then waits for your application to respond before sending your application’s response back to the user who made the original request. In its simplest form, the platform has a bunch of one-click integrations and requires absolutely no code.

I’ve listed the possible levels of complexity below, but it’s worth bearing some hard limitations in mind which apply to most of these services. They cannot remember anything outside of a user session, which will automatically end after about 30 minutes, they have to do everything through what are called POST and GET requests (something you can ignore unless you’re using code), and if you do choose to have it ask your application for information before it responds to the user, you have to do everything and respond within five seconds.

What are the other things?

Slack: A text-based messaging platform designed for work (or for distracting people from work).

Google Sheets: We all know this, but just in case, it’s Excel online.

Asynchronous processing: Most of the time, one program can do one thing at a time. Even if it asks another program to do something, it normally just stops and waits for the response. Asynchronous processing is how we ask a question and continue without waiting for the answer, possibly retrieving that answer at a later time.

Database: Again, it’s likely you know this, but if not: it’s Excel that our code will use (different from the Google Sheet).

Heroku: A platform for running code online. (Important to note: I don’t work for Heroku and haven’t been paid by them. I couldn’t say that it’s the best platform, but it can be free and, as of now, it’s the one I’m most familiar with).

How easy is it?

This graph isn’t terribly scientific and it’s from the perspective of someone who’s learning much of this for the first time, so here’s an approximate breakdown:

Label

Functionality

Time it took me

1

You set up the conversation purely through API.AI or similar, no external code needed. For instance, answering set questions about contact details or opening times

Half an hour to distributable prototype

2

A program that receives information from API.AI and uses that information to update the correct cells in a Google Sheet (but can’t remember user names and can’t use the slower Google Sheets integrations)

A few weeks to distributable prototype

3

A program that remembers user names once they’ve been set and writes them to Google Sheets. Is limited to five seconds processing time by API.AI, so can’t use the slower Google Sheets integrations and may not work reliably when the app has to boot up from sleep because that takes a few seconds of your allocation*

A few weeks on top of the last prototype

4

A program that remembers user details and manages the connection between API.AI and our chosen platform (in this case, Slack) so it can break out of the five-second processing window.

A few weeks more on top of the last prototype (not including the time needed to rewrite existing structures to work with this)

*On the Heroku free plan, when your app hasn’t been used for 30 minutes it goes to sleep. This means that the first time it’s activated it takes a little while to start your process, which can be a problem if you have a short window in which to act. You could get around this by (mis)using a free “uptime monitoring service” which sends a request every so often to keep your app awake. If you choose this method, in order to avoid using all of the Heroku free hours allocation by the end of the month, you’ll need to register your card (no charge, it just gets you extra hours) and only run this application on the account. Alternatively, there are any number of companies happy to take your money to keep your app alive.

For the rest of this post, I’m going to break down each of those key steps and either give an overview of how you could achieve it, or point you in the direction of where you can find that. The code I’m giving you is Python, but as long as you can receive and respond to GET and POST requests, you can do it in pretty much whatever format you wish.

1. Design your conversation

Conversational flow is an art form in itself. Jonathan Seal, strategy director at Mando and member of British Interactive Media Association’s AI thinktank, has given some great talks on the topic. Paul Pangaro has also spoken about conversation as more than interface in multiple mediums.

Your first step is to create a flow chart of the conversation. Write out your ideal conversation, then write out the most likely ways a person might go off track and how you’d deal with them. Then go online, find existing chat bots and do everything you can to break them. Write out the most difficult, obtuse, and nonsensical responses you can. Interact with them like you’re six glasses of wine in and trying to order a lemon engraving kit, interact with them as though you’ve found charges on your card for a lemon engraver you definitely didn’t buy and you are livid, interact with them like you’re a bored teenager. At every point, write down what you tried to do to break them and what the response was, then apply that to your flow. Then get someone else to try to break your flow. Give them no information whatsoever apart from the responses you’ve written down (not even what the bot is designed for), refuse to answer any input you don’t have written down, and see how it goes. David Low, principal evangelist for Amazon Alexa, often describes the value of printing out a script and testing the back-and-forth for a conversation. As well as helping to avoid gaps, it’ll also show you where you’re dumping a huge amount of information on the user.

While “best practices” are still developing for chat bots, a common theme is that it’s not a good idea to pretend your bot is a person. Be upfront that it’s a bot — users will find out anyway. Likewise, it’s incredibly frustrating to open a chat and have no idea what to say. On text platforms, start with a welcome message making it clear you’re a bot and giving examples of things you can do. On platforms like Google Home and Amazon Alexa users will expect a program, but the “things I can do” bit is still important enough that your bot won’t be approved without this opening phase.

I’ve included a sample conversational flow for Vietnambot at the end of this post as one way to approach it, although if you have ideas for alternative conversational structures I’d be interested in reading them in the comments.

A final piece of advice on conversations: The trick here is to find organic ways of controlling the possible inputs and preparing for unexpected inputs. That being said, the Alexa evangelist team provide an example of terrible user experience in which a bank’s app said: “If you want to continue, say nine.” Quite often questions, rather than instructions, are the key.

2. Create a conversation in API.AI

API.AI has quite a lot of documentation explaining how to create programs here, so I won’t go over individual steps.

Key things to understand:

You create agents; each is basically a different program. Agents recognize intents, which are simply ways of triggering a specific response. If someone says the right things at the right time, they meet criteria you have set, fall into an intent, and get a pre-set response.

The right things to say are included in the “User says” section (screenshot below). You set either exact phrases or lists of options as the necessary input. For instance, a user could write “Of course, I’m [any name]” or “Of course, I’m [any temperature].” You could set up one intent for name-is which matches “Of course, I’m [given-name]” and another intent for temperature which matches “Of course, I’m [temperature],” and depending on whether your user writes a name or temperature in that final block you could activate either the “name-is” or “temperature-is” intent.

The “right time” is defined by contexts. Contexts help define whether an intent will be activated, but are also created by certain intents. I’ve included a screenshot below of an example interaction. In this example, the user says that they would like to go to on holiday. This activates a holiday intent and sets the holiday context you can see in input contexts below. After that, our service will have automatically responded with the question “where would you like to go?” When our user says “The” and then any location, it activates our holiday location intent because it matches both the context, and what the user says. If, on the other hand, the user had initially said “I want to go to the theater,” that might have activated the theater intent which would set a theater context — so when we ask “what area of theaters are you interested in?” and the user says “The [location]” or even just “[location],” we will take them down a completely different path of suggesting theaters rather than hotels in Rome.

The way you can create conversations without ever using external code is by using these contexts. A user might say “What times are you open?”; you could set an open-time-inquiry context. In your response, you could give the times and ask if they want the phone number to contact you. You would then make a yes/no intent which matches the context you have set, so if your user says “Yes” you respond with the number. This could be set up within an hour but gets exponentially more complex when you need to respond to specific parts of the message. For instance, if you have different shop locations and want to give the right phone number without having to write out every possible location they could say in API.AI, you’ll need to integrate with external code (see section three).

Now, there will be times when your users don’t say what you’re expecting. Excluding contexts, there are three very important ways to deal with that:

Almost like keyword research — plan out as many possible variations of saying the same thing as possible, and put them all into the intent

Fallback contexts don’t have a user says section, but can be boxed in by contexts. They match anything that has the right context but doesn’t match any of your user says. It could be tempting to use fallback intents as a catch-all. Reasoning along the lines of “This is the only thing they’ll say, so we’ll just treat it the same” is understandable, but it opens up a massive hole in the process. Fallback intents are designed to be a conversational safety net. They operate exactly the same as in a normal conversation. If a person asked what you want in your tea and you responded “I don’t want tea” and that person made a cup of tea, wrote the words “I don’t want tea” on a piece of paper, and put it in, that is not a person you’d want to interact with again. If we are using fallback intents to do anything, we need to preface it with a check. If we had to resort to it in the example above, saying “I think you asked me to add I don’t want tea to your tea. Is that right?” is clunky and robotic, but it’s a big step forward, and you can travel the rest of the way by perfecting other parts of your conversation.

3. Integrating with external code

I used Heroku to build my app . Using this excellent weather webhook example you can actually deploy a bot to Heroku within minutes. I found this example particularly useful as something I could pick apart to make my own call and response program. The weather webhook takes the information and calls a yahoo app, but ignoring that specific functionality you essentially need the following if you’re working in Python:

#start
req = request.get_json
print("Request:")
print(json.dumps(req, indent=4))
#process to do your thing and decide what response should be
res = processRequest(req)
# Response we should receive from processRequest (you’ll need to write some code called processRequest and make it return the below, the weather webhook example above is a good one).
{
"speech": “speech we want to send back”,
"displayText": “display text we want to send back, usually matches speech”,
"source": "your app name"
}
# Making our response readable by API.AI and sending it back to the servic
response = make_response(res)
response.headers['Content-Type'] = 'application/json'
return response
# End

As long as you can receive and respond to requests like that (or in the equivalent for languages other than Python), your app and API.AI should both understand each other perfectly — what you do in the interim to change the world or make your response is entirely up to you. The main code I have included is a little different from this because it’s also designed to be the step in-between Slack and API.AI. However, I have heavily commented sections like like process_food and the database interaction processes, with both explanation and reading sources. Those comments should help you make it your own. If you want to repurpose my program to work within that five-second window, I would forget about the file called app.py and aim to copy whole processes from tasks.py, paste them into a program based on the weatherhook example above, and go from there.

Initially I’d recommend trying GSpread to make some changes to a test spreadsheet. That way you’ll get visible feedback on how well your application is running (you’ll need to go through the authorization steps as they are explained here).

4. Using a database

Databases are pretty easy to set up in Heroku. I chose the Postgres add-on (you just need to authenticate your account with a card; it won’t charge you anything and then you just click to install). In the import section of my code I’ve included links to useful resources which helped me figure out how to get the database up and running — for example, this blog post.

I used the Python library Psycopg2 to interact with the database. To steal some examples of using it in code, have a look at the section entitled “synchronous functions” in either the app.py or tasks.py files. Open_db_connection and close_db_connection do exactly what they say on the tin (open and close the connection with the database). You tell check_database to check a specific column for a specific user and it gives you the value, while update_columns adds a value to specified columns for a certain user record. Where things haven’t worked straightaway, I’ve included links to the pages where I found my solution. One thing to bear in mind is that I’ve used a way of including columns as a variable, which Psycopg2 recommends quite strongly against. I’ve gotten away with it so far because I’m always writing out the specific column names elsewhere — I’m just using that method as a short cut.

5. Processing outside of API.AI’s five-second window

It needs to be said that this step complicates things by no small amount. It also makes it harder to integrate with different applications. Rather than flicking a switch to roll out through API.AI, you have to write the code that interprets authentication and user-specific messages for each platform you’re integrating with. What’s more, spoken-only platforms like Google Home and Amazon Alexa don’t allow for this kind of circumvention of the rules — you have to sit within that 5–8 second window, so this method removes those options. The only reasons you should need to take the integration away from API.AI are:

You want to use it to work with a platform that it doesn’t have an integration with. It currently has 14 integrations including Facebook Messenger, Twitter, Slack, and Google Home. It also allows exporting your conversations in an Amazon Alexa-understandable format (Amazon has their own similar interface and a bunch of instructions on how to build a skill — here is an example.

You are processing masses of information. I’m talking really large amounts. Some flight comparison sites have had problems fitting within the timeout limit of these platforms, but if you aren’t trying to process every detail for every flight for the next 12 months and it’s taking more than five seconds, it’s probably going to be easier to make your code more efficient than work outside the window. Even if you are, those same flight comparison sites solved the problem by creating a process that regularly checks their full data set and creates a smaller pool of information that’s more quickly accessible.

You need to send multiple follow-up messages to your user. When using the API.AI integration it’s pretty much call-and-response; you don’t always get access to things like authorization tokens, which are what some messaging platforms require before you can automatically send messages to one of their users.

You’re working with another program that can be quite slow, or there are technical limitations to your setup. This one applies to Vietnambot, I used the GSpread library in my application, which is fantastic but can be slow to pull out bigger chunks of data. What’s more, Heroku can take a little while to start up if you’re not paying.

I could have paid or cut out some of the functionality to avoid needing to manage this part of the process, but that would have failed to meet number 4 in our original conditions: It had to be possible to adapt the skeleton of the process for much more complex business cases. If you decide you’d rather use my program within that five-second window, skip back to section 2 of this post. Otherwise, keep reading.

When we break out of the five-second API.AI window, we have to do a couple of things. First thing is to flip the process on its head.

What we were doing before:

User sends message -> API.AI -> our process -> API.AI -> user

What we need to do now:

User sends message -> our process -> API.AI -> our process -> user

Instead of API.AI waiting while we do our processing, we do some processing, wait for API.AI to categorize the message from us, do a bit more processing, then message the user.

The way this applies to Vietnambot is:

User says “I want [food]”

Slack sends a message to my app on Heroku

My app sends a “swift and confident” 200 response to Slack to prevent it from resending the message. To send the response, my process has to shut down, so before it does that, it activates a secondary process using “tasks.”

The secondary process takes the query text and sends it to API.AI, then gets back the response.

The secondary process checks our database for a user name. If we don’t have one saved, it sends another request to API.AI, putting it in the “we don’t have a name” context, and sends a message to our user asking for their name. That way, when our user responds with their name, API.AI is already primed to interpret it correctly because we’ve set the right context (see section 1 of this post). API.AI tells us that the latest message is a user name and we save it. When we have both the user name and food (whether we’ve just got it from the database or just saved it to the database), Vietnambot adds the order to our sheet, calculates whether we’ve reached the order minimum for that day, and sends a final success message.

6. Integrating with Slack

This won’t be the same as integrating with other messaging services, but it could give some insight into what might be required elsewhere. Slack has two authorization processes; we’ll call one “challenge” and the other “authentication.”

Slack includes instructions for an app lifecycle here, but API.AI actually has excellent instructions for how to set up your app; as a first step, create a simple back-and-forth conversation in API.AI (not your full product), go to integrations, switch on Slack, and run through the steps to set it up. Once that is up and working, you’ll need to change the OAuth URL and the Events URL to be the URL for your app.

Thanks to github user karishay, my app code includes a process for responding to the challenge process (which will tell Slack you’re set up to receive events) and for running through the authentication process, using our established database to save important user tokens. There’s also the option to save them to a Google Sheet if you haven’t got the database established yet. However, be wary of this as anything other than a first step — user tokens give an app a lot of power and have to be guarded carefully.

7. Asynchronous processing

We are running our app using Flask, which is basically a whole bunch of code we can call upon to deal with things like receiving requests for information over the internet. In order to create a secondary worker process I’ve used Redis and Celery. Redis is our “message broker”; it makes makes a list of everything we want our secondary process to do. Celery runs through that list and makes our worker process do those tasks in sequence. Redis is a note left on the fridge telling you to do your washing and take out the bins, while Celery is the housemate that bangs on your bedroom door, note in hand, and makes you do each thing. I’m sure our worker process doesn’t like Celery very much, but it’s really useful for us.

You can find instructions for adding Redis to your app in Heroku here and you can find advice on setting up Celery in Heroku here. Miguel Grinberg’s Using Celery with Flask blog post is also an excellent resource, but using the exact setup he gives results in a clash with our database, so it’s easier to stick with the Heroku version.

Up until this point, we’ve been calling functions in our main app — anything of the form function_name(argument_1, argument_2, argument_3). Now, by putting “tasks.” in front of our function, we’re saying “don’t do this now — hand it to the secondary process.” That’s because we’ve done a few things:

We’ve created tasks.py which is the secondary process. Basically it’s just one big, long function that our main code tells to run.

In tasks.py we’ve included Celery in our imports and set our app as celery.Celery(), meaning that when we use “app” later we’re essentially saying “this is part of our Celery jobs list” or rather “tasks.py will only do anything when its flatmate Celery comes banging on the door”

For every time our main process asks for an asynchronous function by writing tasks.any_function_name(), we have created that function in our secondary program just as we would if it were in the same file. However in our secondary program we’ve prefaced with “@app.task”, another way of saying “Do wash_the_dishes when Celery comes banging the door yelling wash_the_dishes(dishes, water, heat, resentment)”.

In our “procfile” (included as a file in my code) we have listed our worker process as –app=tasks.app

All this adds up to the following process:

Main program runs until it hits an asynchronous function

Main program fires off a message to Redis which has a list of work to be done. The main process doesn’t wait, it just runs through everything after it and in our case even shuts down

The Celery part of our worker program goes to Redis and checks for the latest update, it checks what function has been called (because our worker functions are named the same as when our main process called them), it gives our worker all the information to start doing that thing and tells it to get going

Our worker process starts the action it has been told to do, then shuts down.

As with the other topics mentioned here, I’ve included all of this in the code I’ve supplied, along with many of the sources used to gather the information — so feel free to use the processes I have. Also feel free to improve on them; as I said, the value of this investigation was that I am not a coder. Any suggestions for tweaks or improvements to the code are very much welcome.

Conclusion

As I mentioned in the introduction to this post, there’s huge opportunity for individuals and organizations to gain ground by creating conversational interactions for the general public. For the vast majority of cases you could be up and running in a few hours to a few days, depending on how complex you want your interactions to be and how comfortable you are with coding languages. There are some stumbling blocks out there, but hopefully this post and my obsessively annotated code can act as templates and signposts to help get you on your way.

Bonus #1: The conversational flow for my chat bot

This is by no means necessarily the best or only way to approach this interaction. This is designed to be as streamlined an interaction as possible, but we’re also working within the restrictions of the platform and the time investment necessary to produce this. Common wisdom is to create the flow of your conversation and then keep testing to perfect, so consider this example layout a step in that process. I’d also recommend putting one of these flow charts together before starting — otherwise you could find yourself having to redo a bunch of work to accommodate a better back-and-forth.

Bonus #2: General things I learned putting this together

As I mentioned above, this has been a project of going from complete ignorance of coding to slightly less ignorance. I am not a professional coder, but I found the following things I picked up to be hugely useful while I was starting out.

Comment everything. You’ll probably see my code is bordering on excessive commenting (anything after a # is a comment). While normally I’m sure someone wouldn’t want to include a bunch of Stack Overflow links in their code, I found notes about what things portions of code were trying to do, and where I got the reasoning from, hugely helpful as I tried to wrap my head around it all.

Print everything. In Python, everything within “print()” will be printed out in the app logs (see the commands tip for reading them in Heroku). While printing each action can mean you fill up a logging window terribly quickly (I started using the Heroku add-on LogDNA towards the end and it’s a huge step up in terms of ease of reading and length of history), often the times my app was falling over was because one specific function wasn’t getting what it needed, or because of another stupid typo. Having a semi-constant stream of actions and outputs logged meant I could find the fault much more quickly. My next step would probably be to introduce a way of easily switching on and off the less necessary print functions.

The following commands: Heroku’s how-to documentation for creating an app and adding code is pretty great, but I found myself using these all the time so thought I’d share (all of the below are written in the command line; type cmd in on Windows or by running Terminal on a Mac):

CD “””[file location]””” - select the file your code is in

“git init” – create a git file to add to

“git add .” – add all of the code in your file into the file that git will put online

“heroku git:remote -a [the name of your app]” – select your app as where to put the code

“git push heroku master” - send your code to the app you selected

“heroku ps” – find out whether your app is running or crashed

“heroku logs” – apologize to your other half for going totally unresponsive for the last ten minutes and start the process of working through your printouts to see what has gone wrong

POST requests will always wait for a response. Seems really basic — initially I thought that by just sending a POST request and not telling my application to wait for a response I’d be able to basically hot-potato work around and not worry about having to finish what I was doing. That’s not how it works in general, and it’s more of a symbol of my naivete in programming than anything else.

If something is really difficult, it’s very likely you’re doing it wrong.While I made sure to do pretty much all of the actual work myself (to
avoid simply farming it out to the very talented individuals at
Distilled), I was lucky enough to get some really valuable advice. The
piece of advice above was from Dominic Woodman, and I should have
listened to it more. The times when I made least progress were when I
was trying to use things the way they shouldn’t be used. Even when I
broke through those walls, I later found that someone didn’t want me to
use it that way because it would completely fail at a later point.
Tactical retreatis an option. (At this point, I should mention he wasn’t
the only one to give invaluable advice; Austin, Tom, and Duncan of the
Distilled R&D team were a huge help.)

Sign up for The Moz Top 10, a semimonthly mailer updating you on the top ten hottest pieces of SEO news, tips, and rad links uncovered by the Moz team. Think of it as your exclusive digest of stuff you don’t have time to hunt down but want to read!

Have you noticed it’s getting harder and harder to build referral traffic from Google?

And it’s not just that the competition has got tougher (which it certainly has!).

It’s also that Google has moved past its ten blue links and its organic search results are no longer generating as much traffic they used to.

How do you adapt? This article teaches you to optimize your content to one of Google’s more recent changes: featured snippets.

What are featured snippets?

Featured snippets are selected search results that are featured on top of Google’s organic results below the ads in a box.

Featured snippets aim at answering the user’s question right away (hence their other well-known name, “answer boxes”). Being featured means getting additional brand exposure in search results.

Here are two studies confirming the claim:

Ben Goodsell reports that the click-through rate (CTR) on a featured page increased from two percent to eight percent once it’s placed in an answer box, with revenue from organic traffic increasing by 677%.

Eric Enge highlights a 20–30% increase in traffic for ConfluentForms.com while they held the featured snippet for the query.

Types of featured snippets

There are three major types of featured snippets:

Paragraph (an answer is given in text). It can be a box with text inside or a box with both text and an image inside.

List (an answer is given in a form of a list)

Table (an answer is given in a table)

Here’s an example of paragraph snippet with an image:

According to Getstat, the most popular featured snippet is “paragraph” type:

Featured snippets or answer boxes?

Since we’re dealing with a pretty new phenomenon, the terminology is pretty loose. Many people (including myself) are inclined to refer to featured snippets as “answer boxes,” obviously because there’s an answer presented in a box.

While there’s nothing wrong with this terminology, it creates a certain confusion because Google often gives a “quick answer” (a definition, an estimate, etc.) on top without linking to the source:

To avoid confusion, let’s stick to the “featured snippet” term whenever there’s a URL featured in the box, because these present an extra exposure to the linked site (hence they’re important for content publishers):

Do I have a chance to get featured?

According to research by Ahrefs, 99.58% of featured pages already rank in top 10 of Google. So if you are already ranking high for related search queries, you have very good chances to get featured.

On the other hand, Getstat claims that 70% of snippets came from sites outside of the first organic position. So it’s required that the page is ranked in top 10, but it’s not required to be #1 to be featured.

Unsurprisingly, the most featured site is Wikipedia.org. If there’s Wikipedia featured for your search query, it may be extremely hard to beat that — but it doesn’t mean you shouldn’t try.

Finally, according to the analysis performed in a study, the following types of search queries get featured results most often:

DIY processes

Health

Financial

Mathematical

Requirements

Status

Transitional

Ahrefs’ study expands the list of popular topics with their most frequently words that appear in featured snippets:

The following types of search queries usually don’t have answer boxes:

Images and videos

Local

Shopping

To sum up the above studies:

You have chances to get featured for the terms your pages are already ranking in top 10. Thus, a big part of being featured is to improve your overall rankings (especially for long-tail informational queries, which are your lower-hanging fruit)

If your niche is DIY, health or finance, you have the highest probability of getting featured

Identify all kinds of opportunities to be featured

Start with good old keyword research

Multiple studies confirm that the majority of featured snippets are triggered by long-tail keywords. In fact, the more words that are typed into a search box, the higher the probability there will be a featured snippet.

It’s always a good idea to start with researching your keywords. This case study gives a good step by step keyword research strategy for a blogger, and this one lists major keyword research tools as suggested by experts.

When performing keyword research with featured snippets in mind, note that:

Start with question-type search queries (those containing question words, like “what,” “why,” “how,” etc.) because these are the easiest to identify, but don’t stop there…

Target informational intent, not just questions. While featured snippets aim at answering the user’s question immediately, question-type queries are not the only types that trigger those featured results. According to the aforementioned Ahrefs study, the vast majority of keywords that trigger featured snippets were long-tail queries with no question words in them.

It helps if you use a keyword research tool that shows immediately whether a query triggers featured results. I use Serpstat for my keyword research because it combines keyword research with featured snippet research and lets me see which of my keywords trigger answer boxes:

You can run your competitor in Serpstat and then filter their best-performing queries by the presence of answer boxes:

This is a great overview of your future competition, enabling you to see your competitors’ strengths and weaknesses.

Browse Google for more questions

To further explore the topic, be sure to browse Google’s own “People also ask” sections whenever you see one in the search results. It provides a huge insight into which questions Google deems related to each topic.

Once you start expanding the questions to see the answers, more and more questions will be added to the bottom of the box:

Identify search queries where you already rank high

Your lowest-hanging fruit is to identify which phrases you already rank highly for. These will be the easiest to get featured for after you optimize for answer boxes (more on this below).

Check the box to show the position your pages hold for each one and you’ll have the ability to see which queries are your top-performing ones:

You can then use the filters to find some question-type queries among those:

Go beyond traditional keyword research tools: Ask people

All the above methods (albeit great) tackle already discovered opportunities: those for which you or your competitors are already ranking high. But how about venturing beyond that? Ask your readers, customers, and followers how they search and which questions they ask.

Seed Keywords is a simple tool that allows you to discover related keywords with help from your friends and followers. Simply create a search scenario, share it on social media, and ask your followers to type in the keywords they would use to solve it.

Try not to be too leading with your search scenario. Avoid guiding people to the search phrase you think they should be using.

Monitor questions people ask on Twitter

Another way to discover untapped opportunities is to monitor questions on Twitter. Its search supports the ? search operator that will filter results to those containing a question. Just make sure to put a space between your search term and ?.

I use Cyfe to monitor and archive Twitter results because it provides a minimal dashboard which I can use to monitor an unlimited number of Twitter searches.

Once you lack article ideas, simply log in to Cyfe to view the archive and then proceed to the above keyword research tools to expand on any idea.

I use spreadsheets to organize questions and keyword phrases I discover (see more on this below). Some of these questions may become a whole piece of content, while others will be subsections of broader articles:

I don’t try to analyze search volume to decide whether any of those questions deserve to be covered in a separate article or a subsection. (Based on the Ahrefs research and my own observations, there is no direct correlation between the popularity of the term and whether it will trigger a featured snippet).

Instead, I use my best judgement (based on my niche knowledge and research) as to how much I will be able to tell to answer each particular question. If it’s a lot, I’ll probably turn into a separate article and use keyword research to identify subsections of the future piece.

Optimizing for featured snippets

Start with on-page SEO

There is no magic button or special markup which will make sure your site gets featured. Of course, it’s a good idea to start with non-specific SEO best practices, simply because being featured is only possible when you rank high for the query.

How about structured markup?

Many people would suggest using Schema.org (simply because it’s been a “thing” to recommend adding schema for anything and everything) but the aforementioned Ahrefs study shows that there’s no correlation between featured results and structured markup.

That being said, the best way to get featured is to provide a better answer. Here are a few actionable tips:

1. Aim at answering each question concisely

My own observation of answer boxes has led me to think that Google prefers to feature an answer which was given within one paragraph.

The study by AJ Ghergich cites that the average length of a paragraph snippet is 45 words (the maximum is 97 words), so let it be your guideline as to how long each answer should be in order to get featured:

This doesn’t mean your articles need to be one paragraph long. On the contrary, these days Google seems to give preference to long-form content (also known as “cornerstone content,” which is obviously a better way to describe it because it’s not just about length) that’s broken into logical subsections and features attention-grabbing images. Even if you don’t believe that cornerstone content receives any special treatment in SERPs, focusing on long articles will help you to cover more related questions within one piece (more on that below).

All you need to do is to adjust your blogging style just a bit:

Ask the question in your article (that may be a subheading)

Immediately follow the question with a one-paragraph answer

Elaborate further in the article

This tactic may also result in higher user retention because it makes any article better structured and thus a much easier read. To quote AJ Ghergich,

When you use data to fuel topic ideation, content creation becomes more about resources and less about brainstorming.

2. Be factual and organize well

Google loves numbers, steps and lists. We’ve seen this again and again: More often than not, answer boxes will list the actual ingredients, number of steps, time to cook, year and city of birth, etc.

In your paragraph introducing the answer to the question, make sure to list useful numbers and names. Get very factual.

In fact, the aforementioned study by AJ Ghergich concluded that comparison charts and lists are an easier way to get featured because Google loves structured content. In fact, even for branded queries (where a user is obviously researching a particular brand), Google would pick up a table from another site (not the answer from the brand itself) if that other site has a table:

This only shows how much Google loves well-structured, factual, and number-driven content.

There’s no specific markup to structure your content. Google seems to pick up <table>, <ol>, and <ul> well and doesn’t need any other pointers.

3. Make sure one article answers many similar questions

In their research of featured snippets, Ahrefs found that once a page gets featured, it’s likely to get featured in lots of similar queries. This means it should be structured and worded the way it addresses a lot of related questions.

Google is very good at determining synonymic and closely related questions, so should be you. There’s no point in creating a separate page answering each specific question.

Creating one solid article addressing many related questions is a much smarter strategy if you aim at getting featured in answer boxes. This leads us to the next tactic:

4. Organize your questions properly

To combine many closely related questions in one article, you need to organize your queries properly. This will also help you structure your content well.

I have a multi-level keyword organization strategy that can be applied here as well:

A generic keyword makes a section or a category of the blog

A more specific search query becomes the title of the article

Even more specific queries determine the subheadings of the article and thus define its structure

There will be multiple queries that are so closely related that they will all go under a single subheading

For example:

Serpstat helps me a lot when it comes to both discovering an article idea and then breaking it into subtopics. Check out its “Questions” section. It will provide hundreds of questions containing your core term and then generate a tag cloud of other popular terms that come up in those questions:

Clicking any word in the tag cloud will filter results down to those questions that only have that word in them. These are subsections for your article:

Here’s a good example of how related questions can help you structure the article:

5. Make sure to use eye-grabbing images

Paragraph featured snippets with images are ridiculously eye-catching, even more so than regular featured featured snippets. Honestly, I wasn’t able to identify how to add an image so that it’s featured. I tried naming it differently and I tried marking it as “featured” in the WordPress editor. Google seems to pick up a random image from the page without me being able to point it to a better version.

That being said, the only way to influence that is to make sure ALL your in-article images are eye-catching, branded, and annotated well, so that no matter which one Google ends up featuring, it will look nice. Here’s a great selection of WordPress plugins that will allow you to easily visualize your content (put together graphs, tables, charts, etc.) while working on a piece.

You can use Bannersnack to create eye-catching branded images; I love their image editing functionality. You can quickly create graphics there, then resize them to reuse as banners and social media images and organize all your creatives in folders:

6. Update and re-upload the images (WordPress)

WordPress adds dates to image URLs, so even if you update an article with newer information the images can be considered kind of old. I managed to snatch a couple of paragraph featured snippets with images once I started updating my images, too:

7. Monitor how you are doing

Ahrefs lets you monitor which queries your domain is featured for, so keep an eye on these as they grow and new ones appear:

Conclusion

It takes a lot of research and planning and you cannot be sure when you’ll see the results (especially if you don’t have too many top 10 rankings just yet) but think about this way: Being featured in Google search results is your incentive to work harder on your content. You’ll achieve other important goals on your way there:

You’ll discover hundreds of new content ideas (and thus will rank for a wider variety of various long-tail keywords)

You’ll learn to research each topic more thoroughly (and thus will build more incoming links because people tend to link to indepth articles)

You’ll learn to structure your articles better (and thus achieve a lower bounce rate because it will be easier to read your articles)

Have you been featured in Google search results yet? Please share your tips and tricks in the comments below!

Sign up for The Moz Top 10, a semimonthly mailer updating you on the top ten hottest pieces of SEO news, tips, and rad links uncovered by the Moz team. Think of it as your exclusive digest of stuff you don’t have time to hunt down but want to read!