Friday, October 31, 2014

Spooky Google Doodles for Halloween 2014

Just as Halloween has seen some evolution over the years, so have the holiday-themed Google Doodles presented each year on the Web.

Fast SEO Competitive Analysis Part 2: Competing Content Comparison

In part two of this series on fast SEO competitive analysis, we will look at understanding search behavior and choosing target keyword categories as well as competing content comparison.

What SEOs Need to Know About Topic Modeling & Semantic Connectivity - Whiteboard Friday

Posted by randfish

Search engines, especially Google, have gotten remarkably good at understanding searchers' intent—what we mean to search for, even if that's not exactly what we search for. How in the world do they do this? It's incredibly complex, but in today's Whiteboard Friday, Rand covers the basics—what we all need to know about how entities are connected in search.

For reference, here's a still of this week's whiteboard!

Video Transcription

Howdy, Moz fans, and welcome to another edition of Whiteboard Friday. This week we're talking topic modeling and semantic connectivity. Those words might sound big and confusing, but, in fact, they are important to understanding the operations of search engines, and they have some direct influence on things that we might do as SEOs, hence our need to understand them.

Now, I'm going to make a caveat here. I am not an expert in this topic. I have not taken the required math classes, stats classes, programming classes to truly understand this topic in a way that I would feel extremely comfortable explaining. However, even at the surface level of understanding, I feel like I can give some compelling information that hopefully you all and myself included can go research some more about. We're certainly investigating a lot of topic modeling opportunities and possibilities here at Moz. We've done so in the past, and we're revisiting that again for some future tools, so the topic is fresh on my mind.

So here's the basic concept. The idea is that search engines are smarter than just knowing that a word, a phrase that someone searches for, like "Super Mario Brothers," is only supposed to bring back results that have exactly the words "Super Mario Brothers," that perfect phrase in the title and in the headline and in the document itself. That's still an SEO best practice because you're trying to serve visitors who have that search query. But search engines are actually a lot smarter than this.

One of my favorite examples is how intelligent Google has gotten around movie topics. So try, for example, searching for "That movie where the guy is called The Dude," and you will see that Google properly returns "The Big Lebowski" in the first ranking position. How do they know that? Well, they've essentially connected up "movie," "The Dude," and said, "Aha, those things are most closely related to 'The Big Lebowski. That's what the intent of the searcher is. That's the document that we're going to return, not a document that happens to have 'That movie about the guy named 'The Dude' in the title, exactly those words.'"

Here's another example. So this is Super Mario Brothers, and Super Mario Brothers might be connected to a lot of other terms and phrases. So a search engine might understand that Super Mario Brothers is a little bit more semantically connected to Mario than it is to Luigi, then to Nintendo and then Bowser, the jumping dragon guy, turtle with spikes on his back -- I'm not sure exactly what he is -- and Princess Peach.

As you go down here, the search engine might actually have a topic modeling algorithm, something like latent semantic indexing, which was an early model, or a later model like latent Dirichlet allocation, which is a somewhat later model, or even predictive latent Dirichlet allocation, which is an even later model. Model's not particularly important, especially for our purposes.

What is important is to know that there's probably some scoring going on. A search engine -- Google, Bing -- can understand that some of these words are more connected to Super Mario Brothers than others, and it can do the reverse. They can say Super Mario Brothers is somewhat connected to video games and very not connected to cat food. So if we find a page that happens to have the title element of Super Mario Brothers, but most of the on-page content seems to be about cat food, well, maybe we shouldn't rank that even if it has lots of incoming links with anchor text saying "Super Mario Brothers" or a very high page rank or domain authority or those kinds of things.

So search engines, Google, in particular, has gotten very, very smart about this connectivity stuff and this topic modeling post-Hummingbird. Hummingbird, of course, being the algorithm update from last fall that changed a lot of how they can interpret words and phrases.

So knowing that Google and Bing can calculate this relative connectivity, connectivity between the words and phrases and topics, we want to know how are they doing this. That answer is actually extremely broad. So that could come from co-occurrence in web documents. Sorry for turning my back on the camera. I know I'm supposed to move like this, but I just had to do a little twirl for you.

Distance between the keywords. I mean distance on the actual page itself. Does Google find "Super Mario Brothers" near the word "Mario" on a lot of the documents where the two occur, or are they relatively far away? Maybe Super Mario Brothers does appear with cat food a lot, but they're quite far away. They might look at citations and links between documents in terms of, boy, there's a lot pages on the web, when they talk about Super Mario Brothers, they also link to pages about Mario, Luigi, Nintendo, etc.

They can look at the anchor text connections of those links. They could look at co-occurrence of those words biased by a given corpi, a set of corpuses, or from certain domains. So they might say, "Hey, we only want to pay attention to what's on the fresh web right now or in the blogosphere or on news sites or on trusted domains, these kinds of things as opposed to looking at all of the documents on the web." They might choose to do this in multiple different sets of corpi.

They can look at queries from searchers, which is a really powerful thing that we unfortunately don't have access to. So they might see searcher behavior saying that a lot of people who search for Mario, Luigi, Nintendo are also searching for Super Mario Brothers.

They might look at searcher clicks, visits, history, all of that browser data that they've got from Chrome and from Android and, of course, from Google itself, and they might say those are corpi that they use to connect up words and phrases.

Probably there's a whole list of other places that they're getting this from. So they can build a very robust data set to connect words and phrases. For us, as SEOs, this means a few things.

If you're targeting a keyword for rankings, say "Super Mario Brothers," those semantically connected and related terms and phrases can help with a number of things. So if you could know that these were the right words and phrases that search engines connected to Super Mario Brothers, you can do all sorts of stuff. Things like inclusion on the page itself, helping to tell the search engine my page is more relevant for Super Mario Brothers because I include words like Mario, Luigi, Princess Peach, Bowser, Nintendo, etc. as opposed to things like cat food, dog food, T-shirts, glasses, what have you.

You can think about it in the links that you earn, the documents that are linking to you and whether they contain those words and phrases and are on those topics, the anchor text that points to you potentially. You can certainly be thinking about this from a naming convention and branding standpoint. So if you're going to call a product something or call a page something or your unique version of it, you might think about including more of these words or biasing to have those words in the description of the product itself, the formal product description.

For an About page, you might think about the formal bio for a person or a company, including those kinds of words, so that as you're getting cited around the web or on your book cover jacket or in the presentation that you give at a conference, those words are included. They don't necessarily have to be links. This is a potentially powerful thing to say a lot of people who mention Super Mario Brothers tend to point to this page Nintendo8.com, which I think actually you can play the original "Super Mario Brothers" live on the web. It's kind of fun. Sorry to waste your afternoon with that.

Of course, these can also be additional keywords that you might consider targeting. This can be part of your keyword research in addition to your on-page and link building optimization.

What's unfortunate is right now there are not a lot of tools out there to help you with this process. There is a tool from Virante. Russ Jones, I think did some funding internally to put this together, and it's quite cool. It's  nTopic.org. Hopefully, this Whiteboard Friday won't bring that tool to its knees by sending tons of traffic over there. But if it does, maybe give it a few days and come back. It gives you a broad score with a little more data if you register and log in. It's got a plugin for Chrome and for WordPress. It's fairly simplistic right now, but it might help you say, "Is this page on the topic of the term or phrase that I'm targeting?"

There are many, many downloadable tools and libraries. In fact, Code.google.com has an LDA topic modeling tool specifically, and that might have been something that Google used back in the day. We don't know.

If you do a search for topic modeling tools, you can find these. Unfortunately, almost all of them are going to require some web development background at the very least. Many of them rely on a Python library or an API. Almost all of them also require a training corpus in order to model things on. So you can think about, "Well, maybe I can download Wikipedia's content and use that as a training model or use the top 10 search results from Google as some sort of training model."

This is tough stuff. This is one of the reasons why at Moz I'm particularly passionate about trying to make this something that we can help with in our on-page optimization and keyword difficulty tools, because I think this can be very powerful stuff.

What is true is that you can spot check this yourself right now. It is very possible to go look at things like related searches, look at the keyword terms and phrases that also appear on the pages that are ranking in the top 10 and extract these things out and use your own mental intelligence to say, "Are these terms and phrases relevant? Should they be included? Are these things that people would be looking for? Are they topically relevant?" Consider including them and using them for all of these things. Hopefully, over time, we'll get more sophisticated in the SEO world with tools that can help with this.

All right, everyone, hope you've enjoyed this addition of Whiteboard Friday. Look forward to some great comments, and we'll see you again next week. Take care.

Video transcription by Speechpad.com


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 Step-by-Step Guide to Creating Robust Content for the Holiday Season

While search marketers make it a point to continuously monitor the performance of their keywords and modify their PPC marketing bids, the process of modifying content marketing to suit seasonal changes is only just catching on.

Thursday, October 30, 2014

Can Groupon Break Into the Search Market?

Groupon's new search feature is a Yelp-like directory of business pages with contact info, user reviews, deals, and a goal of engaging you to spend more time on Groupon's website.

"Which Update?" Is the Wrong Question

What's the right question to ask? That will depend on your skill level and experience in the SEO industry.

How to Include Influencers in Your Content Strategy

Posted by Amanda_Gallucci

The first thing most people think when they hear "influencers" is promotion. Important people with an engaged following can amplify the reach of whatever idea, content or brand they choose to share. If you only weave influencers into your content strategy when your finished product is ready to be promoted, however, you're missing out on the full potential of having respected experts on your team.

Knowing when and how they can best be engaged at different stages is critical to moving these leaders from outside influencers to brand partners.

Measure an influencer's true value

In order to find the right influencers to give your content strategy a boost, you first should understand what makes a person an influencer and how influence will play a role within the larger content landscape.

Whether you're looking to build brand awareness or drive traffic, what matters is not sheer numbers of followers, but the amount of engaged followers.

Twitalyzer's analytics provide a good start to assessing who is influential on Twitter. The tool measures not only the potential impact users have based on their number of followers, but also the likelihood that other Twitter users will retweet or mention a particular user. 

542b33e1a8a7e4.47038960.png

Beyond finding an influencer who's engaged enough to spread your message, also consider how this person became influential in the first place. Whether he or she has years of experience, brilliant ideas, cohesive arguments or all of the above, consider how you can harness these strengths to maximize your potential for creating a successful relationship. Asking influencers to tweet out a link might give you a bump in traffic, but asking for their opinions, advice and time in different ways will be infinitely more valuable.

Lead with strategy

How influencers fit into your campaign should be determined according to audience research and campaign goals. Know what platforms your target audience interacts with, what interests are strong enough to drive them to take action and who they trust. The more naturally these insights are woven into your content, the easier it will be to find influencers in this segment who will appreciate what you have to share.

Campaign goals are equally crucial because depending on what you want to achieve, you might change the angle of your messaging or favor different platforms. Not every influencer has the same level of activity and reach on every social channel, so identify influencers who are stars on the right platforms. Similarly, tailor your message for each influencer so that anything they share on your behalf looks organic alongside their other content.

Once you have a solid foundation for your strategy, start looking for influencers and begin your outreach process. With enough lead time to send along a beta version or rough draft, you can tweak content based on their feedback. You'll also need allow time for them to collaborate with you on original content, create any sponsored or guest content or write a review or give a quote that you can use on your content's release.

Don't ask for too much of an influencer's time, however, especially if you are asking for offhand feedback and not entering into a paid engagement. Build a relationship before you ask for favors, and even still, make the ask as easy as possible by providing the right amount of background and simplifying what you want the person to do. Rand's Whiteboard Friday on earning the amplification of influencer walks through the importance of the relationship-building aspect and enticing influencers with what's in it for them.

Find influencers

With a clear understanding of the role influencers play within your overall strategy, you're ready to identify the right candidates.

Countless tools are available to help you find influencers in different verticals, so choose based on the action you want the influencer to take. If you are searching for a thought leader who can write engaging content, a tool like ClearVoice will help you find credible authors who focus on a particular topic. For each writer, you can view a list of articles he or she has written on that subject.

image host

When you need social influencers who can help you amplify content, Buzzsumo is a great tool. Through their Influencer search, you can find people who frequently share content on a given topic and can click through to see what these links are.

542b33e610b8f6.92633300.png

Another approach to finding social influencers is to search Twitter bios using Followerwonk and sorting by Social Authority

542b33e821e0c1.60336850.png

Engage influencers at different stages

Outreach

Outreach ideally starts with organically following influencers and engaging with them over time. Then reaching out to them via email or social media is less about introductions and more about the specific project you want to pitch to the influencer.

There will also be times when you find an influencer who aligns with your strategy but you don't have the relationship-building lead time. For this cold outreach, write a succinct introduction that includes goals your goals for the content and the benefits the influencer will receive by working with you. Then make your ask. Personalization and quality are key. If you find outreach challenging, this guide from Portent is a great place to start.

Make outreach easier for yourself by using a tool like BuzzStream that automates and tracks the process. It will help you find contacts at certain publishers—giving you the twofold opportunity to pitch your own content as well as get in touch with influential authors. It also generates templated, customizable outreach emails.

542b33ebcc0947.89852064.png

Just remember, even if you already have a solid relationship with an influencer, show that you value his or her time. Do as much of the groundwork as you can in advance. For instance, if you want people to share something on social, draft one to three example social posts specifically crafted for each influencer and platform.

Start of relationship

Once an influencer agrees to work with you, provide just the right amount of background information and instruction. This will vary by project and influencer.

For an influencer creating content, define the basics (e.g., article, ebook, video, etc.), in addition to length and editorial theme. Find a good balance between leaving room for the influencer to share his or her expertise, while setting up key points and takeaways you want the content to achieve. You should also create and send an abbreviated style guide. There's no need to disclose every internal note you have, but if you can provide the basic stylistic do's and don'ts, product or company background, audience information, and voice and tone guidelines, you will spend less time on edits and back-and-forths with the influencer. Set clear expectations and schedule benchmark dates where you can check in on progress and make revisions where necessary.

In the case of engaging influencers to amplify content, you won't need to give quite as much guidance on how to craft the social message, but you can still offer suggestions on angles that would work well or any topics or phrases your brand wouldn't want to be associated with. It's also important to provide summaries of any piece of content you are asking influencers to share so that a) if they don't have time to read every word, they still feel comfortable with the concept and b) there won't have to be any guesswork in deciding what part of the content is most important to share.

Relationship maintenance

If your experience with an influencer is mutually beneficial and you know you'll want to partner again, make sure to check in periodically. Don't ask for something new every time you reach out. Keep in touch by sending along interesting content or company updates the influencer might find useful. Better yet, always extend a congratulations on a promotion or a new position.

To ensure you remember to engage with the right people, use tools like Commun.it, which identify the influential people you interact with on Twitter, and prompt you to re-engage with people you haven't @ mentioned recently. 

542b33ed7b2c95.46302955.png

LinkedIn Contacts is also a handy way to keep track of conversations and check on any updates on the influencer's end to look out for opportunities to get in touch.

As you continue to grow existing influencer relationships, adjust your overarching strategy to incorporate more key industry leaders. Create new roles for influencers to play in shaping your content and its promotion.

Always be strategizing

The best way to include influencers in your content strategy is to involve them at every stage of the process, including:

  1. Creation: Plan out what types of influencers will be helpful and the role they should play based on the target audience and campaign goals.
  2. Implementation: Share a strategic brief with onboarded influencers and leave flexibility for changes based on the influencer's feedback.
  3. Measurement: Factor in the reach of influencers as part of the success of your campaign.

Over time, integrating and managing influencer relationships will become second nature, and they will seem more like team members and partners.


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!

Secret Sauce LoMo Tips for More PPC Sales

Paid search marketers have understood that mobile is important for some time, but few are leveraging the power of mobile advertising tailored for local traffic.

Wednesday, October 29, 2014

Google Mobile Usability Report IDs Website Issues That Drive Away Business

Google has added Mobile Usability reports to its Webmaster Tools, which will provide a detailed report for each error found on a company's website.

Google Mobile Usability Report IDs Website Issues That Drive Away Business

Google has added Mobile Usability reports to its Webmaster Tools, which will provide a detailed report for each error found on a company's website.

How to Get Tons of Great Data From Google AdWords Instantly

The Home screen is an under-utilized element of your AdWords account. Here's how to reorganize in order to get to your data efficiently.

Tuesday, October 28, 2014

seoClarity: In Mobile World, Search Result Placement Is Critical to Clicks

Search engine optimization - and where a website appears in search results - can have a significant impact on click-through rate (CTR), especially for mobile search.

seoClarity: In Mobile World, Search Result Placement Is Critical to Clicks

Search engine optimization - and where a website appears in search results - can have a significant impact on click-through rate (CTR), especially for mobile search.

Bing Allows Consumers to Use Emojis as Search Term

To allow users to search the same way they communicate, Bing upgraded its search engine to recognize emojis.

Semantic Analytics: How to Track Performance and ROI of Structured Data

Posted by Mike_Arnesen

If you're interested in tracking the ROI of adding semantic markup to your website, while simultaneously improving your web analytics, this post is for you! Join me, friend.

Semantic markup and structured data: Can I get a heck yes?!

If you haven't heard of semantic markup and the SEO implications of applying said markup, you may have been living in a dark cave with no WiFi for the past few years. Or perhaps you're new to this whole search marketing thing. In the later case, I won't fault you, but you should really check this stuff out, because it's the future.

That said, I'd wager most people reading this post are well acquainted with semantic markup and the idea of structured data. More than likely, you have some of this markup on your site already and you probably have some really awesome rich snippets showing up in search.

Organic snippets like these are why most SEOs are implementing semantic markup. I don't think we need to debate that. Everyone wants to get those beautiful, attractive, CTR-boosting rich snippets and, in some cases, you're at a competitive disadvantage simply by not having them.

If you're like me, you love seeing your sites earn rich snippets in Google's search results. I loved it so much that I let myself believe that this was the end goal of semantic markup: landing the rich snippet. When I implemented markup for various entities on the sites I worked on, I'd get the markup added to the site's code, verify that it was successfully crawled, watch the rich snippet show up, and then call it a victory! Hooray!

Tracking the ROI of semantic markup

Well, I've come to the realization that this simply can't be the measure of success for your semantic SEO strategy! What difference does that rich snippet really make? C'mon, be honest. Do you know what the real impact was? Can you speak to your boss or your client about how pages with a specific type of markup are performing compared to their non-marked up counterparts? Another question to ask: Are you leveraging that semantic data for as much value as you can?

Is there a way to more effectively track the ROI of semantic markup implementation while simultaneously giving us a deeper level of insight regarding how our site is performing?

The answer is yes! How? It's (relatively) easy, because we've already done the hard work. Through applying semantic markup to our site, we've embedded an incredibly rich layer of meaningful data in our code. Too often, SEOs like us forget that the idea of the semantic web extends far beyond search engines. It's easy to add schema.org entity markup to our pages and and think that it ends when search engines pick up on it. But that can't be the end of the story! Don't let the search engines have all the fun; we can use that data, too.

By looking at the semantic markup on any given page, we can see what type of "entity" we're looking at (be it an "Event," "Person," "Product," "Article," or anything else) and we can also see what attributes or properties that entity has. If we could gather that information and pump it into an analytics platform, we'd really have something great. So let's do that!

Using Google Tag Manager to record structured data

Google Tag Manager was the game changer I didn't know I needed. There are a few great posts that provide nice overviews of GTM, so I won't get too deep into that here, but the key capability of Google Tag Manager that is going to allow us to do amazing things is its inherent ability to be awesome.

Okay, let me explain.

The value of any tag management platform lies in its ability to fire off tags dynamically based off of Rules and Macros. This is incredible for anyone doing advanced analytics tracking because you can attach granular tracking elements to various sections of your site without (theoretically) ever having to touch your code. Need to track a click on an image banner in your sidebar? Just set up a Tag in Google Tag Manager that fires based on a Rule that uses a Macro to identify that image banner in the code of your site!

So what I'm ultimately trying to share with you through this post is a methodology for using GTM to bring your semantic markup in to your analytics platform so you can not just track the ROI of adding semantic markup to your site, but leverage that markup for a deeper level of insight into your data. I've taken to calling this "semantic analytics."

Tags, rules, and macros

Before we get into the nuts and bolts of how this all works, let's go over Tags, Rules, and Macros in Google Tag Manager.

  • Tags: In the context of analytics, a Tag is any piece of tracking code that is going to send information back to Google Analytics (or your analytics platform of choice). Nearly every site on the web is going to have a basic pageview tracking Tag on every page; every time you load a page, that Tag is fired and sends information about that pageview to an analytics platform (e.g. Google Analytics). But we can get even better intelligence by having additional tags send other information into Google, like "event" tags which can send information for things that happen on the site (clicks, scrolling, non-click interactions, video plays, etc.). Google Tag Manager lets you configure any Tag you want, which will fire based on a Rule.
  • Rules: A Rule in Google Tag Manager tells a Tag when to fire. Without a Rule attached to a Tag, it will never fire (i.e. send info to Google Analytics) so the most basic Rule is one that is triggered on every page. However, you could set up a thank-you page conversion event tag for AdWords, for example, that only fires on a page with a URL matching /contact-form/thank-you/.
  • Macros: Macros are by far the most powerful features in Google Tag Manager. Their power seems almost limitless, but the key thing we'll be looking at here is the ability to create a JavaScript Macro that will look in the DOM (Document Object Model) for specific elements. This allows you to look for specific elements in the HTML and fire events based on what you find.

What we'll want to do in Google Tag Manger is create a Macro that looks for semantic markup in the code of a page. We can then use a Rule to fire a Tag every time someone views a page that has semantic markup on it and include event labels that record what type of entity that person looked at. Ultimately, this will let us drill down into analytics and view reports to see how marked up pages perform against their non-marked up counterparts. We can even pull out granular properties of entities and analyze based on those (for example, pull the "performer" item property out of all "Event" entities and see which "performers" got more traffic and/or led to more conversion events).

Setting up semantic analytics

So let's walk though the whole semantic analytics process using a website that lists industry events as an example. Since I'm familiar with it, let's use SwellPath.com as our example since we list all the events we present at in our Resources section.

For each industry event on our site, we have semantic markup that specifies the Event schema.org itemtype and defines various associated itemprops, including the speaker (itemprop="performer"), venue (itemprop="eventVenue"), event name (itemprop="name"), and time (itemprop="startTime"). At the most basic level, I want to be able to track all the pages that have Event markup. If I wanted to get ambitious (which I do!), I want to pull the speaker name, event name, and venue name, too.

To do this, we'll want to set up a Macro, which is the condition for a Rule, which then fires a Tag. However, we're going to dive into that progression in reverse order. Yeah, we're going full Tarantino.

Setting up the Tag

The Tag we want to set up in Google Tag Manager will look like this:

The category for all of our semantic events will be "Semantic Markup," so we can use it to group together any page with markup on it. The event action will be "Semantic - Event Markup On-Page" (even though it's not much of an "action," per se). Finally, we'll want to make the label pretty specific the individual item we're talking about, so we'll pull in the speaker's name and combine it with the even name so we have plenty of context. We'll use a Macro for that, but more on that below.

Configuring the Rule

Without a Rule though, our Tag won't ever fire. We can't just set it up to fire on every page, though; we need to have a Rule that says "only fire this tag if semantic markup is on the page." Our Rule will include two conditions.

  1. The first condition looks for an event that is equal to "gtm.dom". This is an event that Google Tag Manager can pick up out-of-the-box and it means the that Document Object Model (DOM) finished loading (in simple terms, the page finished downloading). The reason we need this is because we need to tell Google Tag Manager to look in our code to find semantic markup; it doesn't make sense to do that before the page has finished loading.
  2. The second condition for our Rule is a Macro that's going to look for specific markup on the page.

Building the Macro

The Macro is the really cool part! To get it set up, we'll create a Macro that uses "Custom JavaScript." Inside of the Macro, we essentially want to create a function that looks for our itemtype tag from schema.org on the page and returns either "true" or "false". The screenshot that follows shows what it looks like when you set it up in Google Tag Manager, but I've provided the text of the Macro as well so you can cut and paste.

function () {
   var SemElem = document.querySelectorAll('[itemtype*="Event"]');
   SemElem = SemElem.length > 0 ? true : false;
   return SemElem;
}

Keep in mind that I'm using jQuery here to make sure it works across most browsers. Make sure that whatever site you implement this on also has jQuery installed, or this Macro won't work.

While we're here, we'll also create a Macro to pull out specific itemprops that we want to use later. Specifically, the event name and the performer name. We can then combine those two variables in our Macro function to form a sentence that we'll use as an event label later on. I also added an If statement so that it returns "No semantic data" if any important events are missing.

function () {
   var venue = $('[itemtype*="Event"] [itemprop*="name"]') [0];
   var performer = $('[itemtype*="Event"] [itemprop*="performer"]') .text();

   venue = $(venue).text();

   label = performer + " at " + venue + " (Semantic Event)";

   check = venue.length > 0 ? true : false;
   if (check === false) {
      label = "No semantic data";
      return label;
   }
   else {
      return label;
   }
}

Putting it all together

To actually set this up in Google Tag Manager, you'll set up all the elements we just discussed in reverse order (do you get my previous Tarantino joke now?). First, create your Macros in GTM. Then create your Rule using the Macro you just created as one of the criterium. Finally, create your Tag that fires based on the Rule.

From there, you can push the new version of your GTM Container Tag live. If you're smart, though, you'll run it in Debug Mode first and make sure that you have it set up correctly.

Naming Conventions

What good is a standardized vocabulary for your web data if you don't have a standardized naming convention for your Google Tag Manager and Google Analtyics set up? Here's what I use, but feel free to use what works for you:

  • Macros: Semantic - {Item Type} Markup Detection
  • Macros: Semantic - {Item Type} Markup Properties
  • Rule: Semantic - Has {Item Type} Markup Rule
  • Tag: Semantic - {Item Type} Markup Analytics Event

Making it even easier

Thanks to Google Tag Manager's amazing new API and Import/Export feature, you can speed up this whole process by importing a GTM Container Tag to your existing account. That way, you don't have to set up any of the above; you can just import it.

All you have to do is download this JSON file called " Semantic Analytics Headstart" (DropBox link) and then use the Import option in your Google Tag Manager account.

Within GTM, just select the Semantic Analytics Headstart JSON file you saved as your file to import, select Merge, and choose Overwrite. The only thing that this Container Tag has in it is the Semantic Macros, Rules, and Tags, so Merge and Overwrite will simply add these special features to your existing configuration. Just note that the Semantic Tags reference a Macro that contains your Universal Analytics tracking ID (i.e., make sure to edit the Macro called "Universal Anatlyics UA-ID" and put in your own tracking).

Semantic data in Google Analytics

Congratulations! You now have all the pieces in place to start receiving semantic data in Google Analytics. Go ahead, go check your Real Time Events report. I'll hang here.

Okay, seriously, how cool was that?

There's something incredibly special about giving your data meaning. Whether you get that by having an intimate relationship with your data platform, having super-advanced tagging in place, or making your analytics truly semantic by applying the principles of the semantic web to your data collection, you're doing something amazing. Now that you have semantic data in your analytics, you can drill down into specific categories and get some really cool information.

Another path

I feel like passing in semantic data as Events in Google Analytics is fairly straightforward, and the step-by-step process makes it fairly easy to grasp, but there's another (perhaps even better) way to add semantic data to your analytics. In analytics speak, a "dimension" is a descriptive attribute of a data object. Sounds pretty similar to itemprops on the semantic web, eh? So, why not set up Custom Dimensions in Google Analytics and use those to enhance our semantic analytics? Let's do it!

Fortunately, we've already put a lot of the pieces in place to access our semantic data, so we just have to create the Custom Dimension in Google Analytics and shoot data to it by adding a field in GTM. First, go to the Admin panel in you Google Analytics account and go to "Custom Definitions" > "Custom Dimensions". From there you'll want to create a new Custom Dimension called "Semantic Markup" with the "Scope" of "Hit" and set it to be active.

Make a mental note of what the index is; you'll need to specify it in Google Tag Manager. With the Semantic Event tag that we set up in GTM, we created an entirely new tag that would fire something on pages with semantic markup. For Custom Dimensions, we'll want to add something to our general analytics.js tag (the basic pageview tracking for Google Analytics). Once you find your main analytics tracking code in the list of tags, open it up and scross down to Custom Dimensions (under More Settings). Click the button to "Add Custom Dimension" and use the same index that you made a note of and, for the Dimension field, we'll use the same Macro we used for our Event label: Semantic - Event Markup Propertites.

Once you have this set up, you'll be able to bring in a "Semantic Markup" dimension to almost any Google Analytics report. Here's an example All Pages report that now displays Semantic Markup in addition to the Page URL.

I introduced this Custom Dimension approach as "another path," but really, I like to use it as a supplement and work both angles. Having both semantic events and semantic dimensions set up in Google Tag Manager won't cause any issues; it will just give you more meaningful data. Who doesn't love that?

Looking forward with semantic analytics

What can you accomplish by a applying semantic values to your data? That's what I'm most excited to find out.

I'm working on getting this up and running on sites that publish tons of content (Article markup), process thousands of eCommerce transactions (Product markup), and have lists of experts (Person markup). I'd love to see what semantic analytics could do for local business directories (Yelp), movie sites (IMDB), car dealerships, and recipe sites (my buddy Sam Edwards is already looking to implement this idea for Duncan Hines).

One of the biggest "mind blown moments" of my career was when I discovered that there was a whole semantic web community out there that wasn't just concerned with marking up content to get better looking snippets in the SERPs; they wanted to use semantic markup to make data more accessible and meaningful and to make the web a better place to be. I'm hoping that amazing folks like Aaron Bradley and Jarno van Driel will be able to help evolve this concept and inspire widespread adoption of semantic analytics.

If you have any questions, ideas for how this could be applied, or ways to extend this concept, let me know in the comments! Happy optimizing.


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!

Yahoo Bing Network Audience Stats That Might Surprise You

The latest numbers from comScore on the Bing audience are available – and the stats just might surprise you.

Yahoo Bing Network Audience Stats That Might Surprise You

The latest numbers from comScore on the Bing audience are available – and the stats just might surprise you.

Semantic Analytics: How to Track Performance and ROI of Structured Data

Posted by Mike_Arnesen

If you're interested in tracking the ROI of adding semantic markup to your website, while simultaneously improving your web analytics, this post is for you! Join me, friend.

Semantic markup and structured data: Can I get a heck yes?!

If you haven't heard of semantic markup and the SEO implications of applying said markup, you may have been living in a dark cave with no WiFi for the past few years. Or perhaps you're new to this whole search marketing thing. In the later case, I won't fault you, but you should really check this stuff out, because it's the future.

That said, I'd wager most people reading this post are well acquainted with semantic markup and the idea of structured data. More than likely, you have some of this markup on your site already and you probably have some really awesome rich snippets showing up in search.

Organic snippets like these are why most SEOs are implementing semantic markup. I don't think we need to debate that. Everyone wants to get those beautiful, attractive, CTR-boosting rich snippets and, in some cases, you're at a competitive disadvantage simply by not having them.

If you're like me, you love seeing your sites earn rich snippets in Google's search results. I loved it so much that I let myself believe that this was the end goal of semantic markup: landing the rich snippet. When I implemented markup for various entities on the sites I worked on, I'd get the markup added to the site's code, verify that it was successfully crawled, watch the rich snippet show up, and then call it a victory! Hooray!

Tracking the ROI of semantic markup

Well, I've come to the realization that this simply can't be the measure of success for your semantic SEO strategy! What difference does that rich snippet really make? C'mon, be honest. Do you know what the real impact was? Can you speak to your boss or your client about how pages with a specific type of markup are performing compared to their non-marked up counterparts? Another question to ask: Are you leveraging that semantic data for as much value as you can?

Is there a way to more effectively track the ROI of semantic markup implementation while simultaneously giving us a deeper level of insight regarding how our site is performing?

The answer is yes! How? It's (relatively) easy, because we've already done the hard work. Through applying semantic markup to our site, we've embedded an incredibly rich layer of meaningful data in our code. Too often, SEOs like us forget that the idea of the semantic web extends far beyond search engines. It's easy to add schema.org entity markup to our pages and and think that it ends when search engines pick up on it. But that can't be the end of the story! Don't let the search engines have all the fun; we can use that data, too.

By looking at the semantic markup on any given page, we can see what type of "entity" we're looking at (be it an "Event," "Person," "Product," "Article," or anything else) and we can also see what attributes or properties that entity has. If we could gather that information and pump it into an analytics platform, we'd really have something great. So let's do that!

Using Google Tag Manager to record structured data

Google Tag Manager was the game changer I didn't know I needed. There are a few great posts that provide nice overviews of GTM, so I won't get too deep into that here, but the key capability of Google Tag Manager that is going to allow us to do amazing things is its inherent ability to be awesome.

Okay, let me explain.

The value of any tag management platform lies in its ability to fire off tags dynamically based off of Rules and Macros. This is incredible for anyone doing advanced analytics tracking because you can attach granular tracking elements to various sections of your site without (theoretically) ever having to touch your code. Need to track a click on an image banner in your sidebar? Just set up a Tag in Google Tag Manager that fires based on a Rule that uses a Macro to identify that image banner in the code of your site!

So what I'm ultimately trying to share with you through this post is a methodology for using GTM to bring your semantic markup in to your analytics platform so you can not just track the ROI of adding semantic markup to your site, but leverage that markup for a deeper level of insight into your data. I've taken to calling this "semantic analytics."

Tags, rules, and macros

Before we get into the nuts and bolts of how this all works, let's go over Tags, Rules, and Macros in Google Tag Manager.

  • Tags: In the context of analytics, a Tag is any piece of tracking code that is going to send information back to Google Analytics (or your analytics platform of choice). Nearly every site on the web is going to have a basic pageview tracking Tag on every page; every time you load a page, that Tag is fired and sends information about that pageview to an analytics platform (e.g. Google Analytics). But we can get even better intelligence by having additional tags send other information into Google, like "event" tags which can send information for things that happen on the site (clicks, scrolling, non-click interactions, video plays, etc.). Google Tag Manager lets you configure any Tag you want, which will fire based on a Rule.
  • Rules: A Rule in Google Tag Manager tells a Tag when to fire. Without a Rule attached to a Tag, it will never fire (i.e. send info to Google Analytics) so the most basic Rule is one that is triggered on every page. However, you could set up a thank-you page conversion event tag for AdWords, for example, that only fires on a page with a URL matching /contact-form/thank-you/.
  • Macros: Macros are by far the most powerful features in Google Tag Manager. Their power seems almost limitless, but the key thing we'll be looking at here is the ability to create a JavaScript Macro that will look in the DOM (Document Object Model) for specific elements. This allows you to look for specific elements in the HTML and fire events based on what you find.

What we'll want to do in Google Tag Manger is create a Macro that looks for semantic markup in the code of a page. We can then use a Rule to fire a Tag every time someone views a page that has semantic markup on it and include event labels that record what type of entity that person looked at. Ultimately, this will let us drill down into analytics and view reports to see how marked up pages perform against their non-marked up counterparts. We can even pull out granular properties of entities and analyze based on those (for example, pull the "performer" item property out of all "Event" entities and see which "performers" got more traffic and/or led to more conversion events).

Setting up semantic analytics

So let's walk though the whole semantic analytics process using a website that lists industry events as an example. Since I'm familiar with it, let's use SwellPath.com as our example since we list all the events we present at in our Resources section.

For each industry event on our site, we have semantic markup that specifies the Event schema.org itemtype and defines various associated itemprops, including the speaker (itemprop="performer"), venue (itemprop="eventVenue"), event name (itemprop="name"), and time (itemprop="startTime"). At the most basic level, I want to be able to track all the pages that have Event markup. If I wanted to get ambitious (which I do!), I want to pull the speaker name, event name, and venue name, too.

To do this, we'll want to set up a Macro, which is the condition for a Rule, which then fires a Tag. However, we're going to dive into that progression in reverse order. Yeah, we're going full Tarantino.

Setting up the Tag

The Tag we want to set up in Google Tag Manager will look like this:

The category for all of our semantic events will be "Semantic Markup," so we can use it to group together any page with markup on it. The event action will be "Semantic - Event Markup On-Page" (even though it's not much of an "action," per se). Finally, we'll want to make the label pretty specific the individual item we're talking about, so we'll pull in the speaker's name and combine it with the even name so we have plenty of context. We'll use a Macro for that, but more on that below.

Configuring the Rule

Without a Rule though, our Tag won't ever fire. We can't just set it up to fire on every page, though; we need to have a Rule that says "only fire this tag if semantic markup is on the page." Our Rule will include two conditions.

  1. The first condition looks for an event that is equal to "gtm.dom". This is an event that Google Tag Manager can pick up out-of-the-box and it means the that Document Object Model (DOM) finished loading (in simple terms, the page finished downloading). The reason we need this is because we need to tell Google Tag Manager to look in our code to find semantic markup; it doesn't make sense to do that before the page has finished loading.
  2. The second condition for our Rule is a Macro that's going to look for specific markup on the page.

Building the Macro

The Macro is the really cool part! To get it set up, we'll create a Macro that uses "Custom JavaScript." Inside of the Macro, we essentially want to create a function that looks for our itemtype tag from schema.org on the page and returns either "true" or "false". The screenshot that follows shows what it looks like when you set it up in Google Tag Manager, but I've provided the text of the Macro as well so you can cut and paste.

function () {
   var SemElem = document.querySelectorAll('[itemtype*="Event"]');
   SemElem = SemElem.length > 0 ? true : false;
   return SemElem;
}

Keep in mind that I'm using jQuery here to make sure it works across most browsers. Make sure that whatever site you implement this on also has jQuery installed, or this Macro won't work.

While we're here, we'll also create a Macro to pull out specific itemprops that we want to use later. Specifically, the event name and the performer name. We can then combine those two variables in our Macro function to form a sentence that we'll use as an event label later on. I also added an If statement so that it returns "No semantic data" if any important events are missing.

function () {
   var venue = $('[itemtype*="Event"] [itemprop*="name"]') [0];
   var performer = $('[itemtype*="Event"] [itemprop*="performer"]') .text();

   venue = $(venue).text();

   label = performer + " at " + venue + " (Semantic Event)";

   check = venue.length > 0 ? true : false;
   if (check === false) {
      label = "No semantic data";
      return label;
   }
   else {
      return label;
   }
}

Putting it all together

To actually set this up in Google Tag Manager, you'll set up all the elements we just discussed in reverse order (do you get my previous Tarantino joke now?). First, create your Macros in GTM. Then create your Rule using the Macro you just created as one of the criterium. Finally, create your Tag that fires based on the Rule.

From there, you can push the new version of your GTM Container Tag live. If you're smart, though, you'll run it in Debug Mode first and make sure that you have it set up correctly.

Naming Conventions

What good is a standardized vocabulary for your web data if you don't have a standardized naming convention for your Google Tag Manager and Google Analtyics set up? Here's what I use, but feel free to use what works for you:

  • Macros: Semantic - {Item Type} Markup Detection
  • Macros: Semantic - {Item Type} Markup Properties
  • Rule: Semantic - Has {Item Type} Markup Rule
  • Tag: Semantic - {Item Type} Markup Analytics Event

Making it even easier

Thanks to Google Tag Manager's amazing new API and Import/Export feature, you can speed up this whole process by importing a GTM Container Tag to your existing account. That way, you don't have to set up any of the above; you can just import it.

All you have to do is download this JSON file called " Semantic Analytics Headstart" (DropBox link) and then use the Import option in your Google Tag Manager account.

Within GTM, just select the Semantic Analytics Headstart JSON file you saved as your file to import, select Merge, and choose Overwrite. The only thing that this Container Tag has in it is the Semantic Macros, Rules, and Tags, so Merge and Overwrite will simply add these special features to your existing configuration. Just note that the Semantic Tags reference a Macro that contains your Universal Analytics tracking ID (i.e., make sure to edit the Macro called "Universal Anatlyics UA-ID" and put in your own tracking).

Semantic data in Google Analytics

Congratulations! You now have all the pieces in place to start receiving semantic data in Google Analytics. Go ahead, go check your Real Time Events report. I'll hang here.

Okay, seriously, how cool was that?

There's something incredibly special about giving your data meaning. Whether you get that by having an intimate relationship with your data platform, having super-advanced tagging in place, or making your analytics truly semantic by applying the principles of the semantic web to your data collection, you're doing something amazing. Now that you have semantic data in your analytics, you can drill down into specific categories and get some really cool information.

Another path

I feel like passing in semantic data as Events in Google Analytics is fairly straightforward, and the step-by-step process makes it fairly easy to grasp, but there's another (perhaps even better) way to add semantic data to your analytics. In analytics speak, a "dimension" is a descriptive attribute of a data object. Sounds pretty similar to itemprops on the semantic web, eh? So, why not set up Custom Dimensions in Google Analytics and use those to enhance our semantic analytics? Let's do it!

Fortunately, we've already put a lot of the pieces in place to access our semantic data, so we just have to create the Custom Dimension in Google Analytics and shoot data to it by adding a field in GTM. First, go to the Admin panel in you Google Analytics account and go to "Custom Definitions" > "Custom Dimensions". From there you'll want to create a new Custom Dimension called "Semantic Markup" with the "Scope" of "Hit" and set it to be active.

Make a mental note of what the index is; you'll need to specify it in Google Tag Manager. With the Semantic Event tag that we set up in GTM, we created an entirely new tag that would fire something on pages with semantic markup. For Custom Dimensions, we'll want to add something to our general analytics.js tag (the basic pageview tracking for Google Analytics). Once you find your main analytics tracking code in the list of tags, open it up and scross down to Custom Dimensions (under More Settings). Click the button to "Add Custom Dimension" and use the same index that you made a note of and, for the Dimension field, we'll use the same Macro we used for our Event label: Semantic - Event Markup Propertites.

Once you have this set up, you'll be able to bring in a "Semantic Markup" dimension to almost any Google Analytics report. Here's an example All Pages report that now displays Semantic Markup in addition to the Page URL.

I introduced this Custom Dimension approach as "another path," but really, I like to use it as a supplement and work both angles. Having both semantic events and semantic dimensions set up in Google Tag Manager won't cause any issues; it will just give you more meaningful data. Who doesn't love that?

Looking forward with semantic analytics

What can you accomplish by a applying semantic values to your data? That's what I'm most excited to find out.

I'm working on getting this up and running on sites that publish tons of content (Article markup), process thousands of eCommerce transactions (Product markup), and have lists of experts (Person markup). I'd love to see what semantic analytics could do for local business directories (Yelp), movie sites (IMDB), car dealerships, and recipe sites (my buddy Sam Edwards is already looking to implement this idea for Duncan Hines).

One of the biggest "mind blown moments" of my career was when I discovered that there was a whole semantic web community out there that wasn't just concerned with marking up content to get better looking snippets in the SERPs; they wanted to use semantic markup to make data more accessible and meaningful and to make the web a better place to be. I'm hoping that amazing folks like Aaron Bradley and Jarno van Driel will be able to help evolve this concept and inspire widespread adoption of semantic analytics.

If you have any questions, ideas for how this could be applied, or ways to extend this concept, let me know in the comments! Happy optimizing.


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!

Monday, October 27, 2014

Introducing Followerwonk Profile Pages

Posted by petebray

Followerwonk has always been primarily about social graph analysis and exploration: from tracking follower growth, comparing relationships, and so on.

Followerwonk now adds content analysis and user profiling, too

In the Analyze tab, you’ll find a new option to examine any Twitter user’s tweets. (Note that this is a Pro-only feature, so you'll need to be a subscriber to use it.)

You can also access these profile pages by simply clicking on a Twitter username anywhere else in Followerwonk.

For us, this feature is really exciting, because we let you analyze not just yourself, but other people too. In fact, Pro users can analyze as many other Twitter accounts as they want!

Now, you’ll doubtlessly learn lots by analyzing your own tweets. But you already probably have a pretty good sense of what content works well for you (and who you engage with frequently).

We feel that Profile Pages really move the needle by letting you surface the relationships and content strategies of competitors, customers, and prospects.

Let’s take a closer look.

Find the people any Twitter user engages with most frequently

Yep, just plug in a Twitter name and we’ll analyze their most recent 2000 tweets. We’ll extract out all of the mentions and determine which folks they talk to the most.

Here, we see that  @dr_pete talks most frequently with (or about) Moz, Rand, Elisa, and Melissa. In fact, close to 10% of his tweets are talking to these four! (Note the percentage above each listed name.)

This analysis is helpful as it lets you quickly get a sense for the relationships that are important for this person. That provides possible inroads to that person in terms of engagement strategies.

Chart when and what conversations happen with an analyzed user's most important relationships

We don’t just stop there. By clicking on the little “see engagement” link below each listed user, you can see the history of the relationship.

Here, we can see when the engagements happened in the little chart. And we actually show you the underlying tweets, too.

This is a great way to quickly understand the context of that relationship: is it a friendly back and forth, a heated exchange, or the last gasp of a bad customer experience? Perhaps the tweets from a competitor to one his top customers occurred weeks back? Maybe there’s a chance for you to make inroads to that customer?

There’s all sorts of productive tea-reading that can happen with this feature. And, by the way, don’t forget that you already have the ability to track all the relationships a competitor forms (or breaks), too.

Rank any Twitter user's tweets by importance to surface their best content

This is my favorite feature—by far—in Followerwonk.

Sure, there are other tools that tell you your most popular tweets, but there are few that let you turn that feature around and examine other Twitter users. This is important because (let’s face it) few of us have the volume of RTs and favorites to make self-analysis that useful. But when we examine top Twitter accounts, we come away with hints about what content strategies they’re using that work well.

Here we see that Obama's top tweets include a tribute, an irreverent bit of humor, and an image that creatively criticizes a recent Supreme Court ruling. What lessons might you draw from the content that works best for Obama? What content works best for other people? Their image tweets? Tweets with humor? Shorter tweets? Tweets with links? Go do some analyzing!

Uncover top source domains of any Twitter users

Yep, we dissect all the URLs for any analyzed user to assemble a list of their top domains.

This feature offers a great way to quickly snapshot the types of content and sources that users draw material from. Moreover, we can click on "see mentions" to see a timeline of when those mentions occurred for each domain, as well as what particular tweets accounted for them.

In sum…

These features offer exciting ways to quickly profile users. Such analysis should be at the heart of any engagement strategy: understand who your target most frequently engages with, what content makes them successful, and what domains they pull from.

At the same time, this approach reveals content strategies—what, precisely, works well for you, but also for other thought leaders in your category. Not only can you draw inspiration from this approach, but you can find content that might deserve a retweet (or reformulation in your own words).

I don’t want to go too Freudian on you, but consider this: What’s the value of self-analysis? I mean that to say that unless you have a lot of data, any analytics product isn’t going to be totally useful. That’s why this addition in Followerwonk is so powerful. Now you can analyze others, including thought leaders in your particular industry, to find the secrets of their social success.

Start analyzing!

Finally, this is a bittersweet blog post for me. It’s my last one as a Mozzer. I’m off to try my hand at another bootstrapping startup: this time, software that lets you build feature tours and elicit visitor insights. I’m leaving Followerwonk in great hands, and I look forward to seeing awesome new features down the line. Of course, you can always stay in touch with me on Twitter. Keep on wonkin’!


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!

Introducing Followerwonk Profile Pages

Posted by petebray

Followerwonk has always been primarily about social graph analysis and exploration: from tracking follower growth, comparing relationships, and so on.

Followerwonk now adds content analysis and user profiling, too

In the Analyze tab, you’ll find a new option to examine any Twitter user’s tweets. (Note that this is a Pro-only feature, so you'll need to be a subscriber to use it.)

You can also access these profile pages by simply clicking on a Twitter username anywhere else in Followerwonk.

For us, this feature is really exciting, because we let you analyze not just yourself, but other people too. In fact, Pro users can analyze as many other Twitter accounts as they want!

Now, you’ll doubtlessly learn lots by analyzing your own tweets. But you already probably have a pretty good sense of what content works well for you (and who you engage with frequently).

We feel that Profile Pages really move the needle by letting you surface the relationships and content strategies of competitors, customers, and prospects.

Let’s take a closer look.

Find the people any Twitter user engages with most frequently

Yep, just plug in a Twitter name and we’ll analyze their most recent 2000 tweets. We’ll extract out all of the mentions and determine which folks they talk to the most.

Here, we see that  @dr_pete talks most frequently with (or about) Moz, Rand, Elisa, and Melissa. In fact, close to 10% of his tweets are talking to these four! (Note the percentage above each listed name.)

This analysis is helpful as it lets you quickly get a sense for the relationships that are important for this person. That provides possible inroads to that person in terms of engagement strategies.

Chart when and what conversations happen with an analyzed user's most important relationships

We don’t just stop there. By clicking on the little “see engagement” link below each listed user, you can see the history of the relationship.

Here, we can see when the engagements happened in the little chart. And we actually show you the underlying tweets, too.

This is a great way to quickly understand the context of that relationship: is it a friendly back and forth, a heated exchange, or the last gasp of a bad customer experience? Perhaps the tweets from a competitor to one his top customers occurred weeks back? Maybe there’s a chance for you to make inroads to that customer?

There’s all sorts of productive tea-reading that can happen with this feature. And, by the way, don’t forget that you already have the ability to track all the relationships a competitor forms (or breaks), too.

Rank any Twitter user's tweets by importance to surface their best content

This is my favorite feature—by far—in Followerwonk.

Sure, there are other tools that tell you your most popular tweets, but there are few that let you turn that feature around and examine other Twitter users. This is important because (let’s face it) few of us have the volume of RTs and favorites to make self-analysis that useful. But when we examine top Twitter accounts, we come away with hints about what content strategies they’re using that work well.

Here we see that Obama's top tweets include a tribute, an irreverent bit of humor, and an image that creatively criticizes a recent Supreme Court ruling. What lessons might you draw from the content that works best for Obama? What content works best for other people? Their image tweets? Tweets with humor? Shorter tweets? Tweets with links? Go do some analyzing!

Uncover top source domains of any Twitter users

Yep, we dissect all the URLs for any analyzed user to assemble a list of their top domains.

This feature offers a great way to quickly snapshot the types of content and sources that users draw material from. Moreover, we can click on "see mentions" to see a timeline of when those mentions occurred for each domain, as well as what particular tweets accounted for them.

In sum…

These features offer exciting ways to quickly profile users. Such analysis should be at the heart of any engagement strategy: understand who your target most frequently engages with, what content makes them successful, and what domains they pull from.

At the same time, this approach reveals content strategies—what, precisely, works well for you, but also for other thought leaders in your category. Not only can you draw inspiration from this approach, but you can find content that might deserve a retweet (or reformulation in your own words).

I don’t want to go too Freudian on you, but consider this: What’s the value of self-analysis? I mean that to say that unless you have a lot of data, any analytics product isn’t going to be totally useful. That’s why this addition in Followerwonk is so powerful. Now you can analyze others, including thought leaders in your particular industry, to find the secrets of their social success.

Start analyzing!

Finally, this is a bittersweet blog post for me. It’s my last one as a Mozzer. I’m off to try my hand at another bootstrapping startup: this time, software that lets you build feature tours and elicit visitor insights. I’m leaving Followerwonk in great hands, and I look forward to seeing awesome new features down the line. Of course, you can always stay in touch with me on Twitter. Keep on wonkin’!


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!

Google Webmaster Update: Blocking JavaScript & CSS Can Affect Indexing

Google has updated its Webmaster Guidelines, which will likely affect sites that are blocking JavaScript or CSS files.

Your Guide to 301 Redirects for SEO

In general nothing bad will happen whether visitors type in www or leave it off. But there are things you should handle with care, lest your SEO campaign suffer.

Your Guide to 301 Redirects for SEO

In general nothing bad will happen whether visitors type in www or leave it off. But there are things you should handle with care, lest your SEO campaign suffer.

How to Recover Lost Pageviews in pushState Experiences

Posted by GeoffKenyon

PushState and AJAX can be used in tandem to deliver content without requiring the entire page to refresh, providing a better user experience. The other week, Richard Baxter dove into the implications of pushState for SEO on Builtvisible. If you’re not familiar with pushState, you should spend some time to read through his post.

If you're not familiar with delivering content this way, you can check out these sites using pushState and AJAX to deliver content:

Time: When you scroll to the bottom of the article, a new article loads and the URL changes
Halcyon: When you click on a navigation link, the left hand panel doesn't refresh

While pushState is really cool and great for UX, there are analytics issues presented by this technology.

When the content on a page and URL are updated using AJAX and pushState, in most cases, the  _trackPageView beacon is not fired and the pageview is not tracked. This artificially increases your bounce rate while reducing your pages per visit, time on site, and total pageviews along with other metrics associated with pageviews. 

How to tell if you're having tracking problems

If you have a very high bounce rate or are generally curious to check if this is a problem for you, start by installing the GA Debugger extension for Chrome. Then go to the URL you want to investigate and open up the console (windows: control + shift + j, mac: command + option + j). Now, clear the console using the button at the left, and refresh the URL.

Once you refresh the page, you should see GA debugging show up in the console. To check that the initial page view is being tracked, you should see a “sent beacon” for a pageview.

Once you’ve established the initial pageview is tracked, click a link to load another page. If GA is properly tracking pageviews, you should see another pageview beacon being sent. If you don’t see this, then you have a problem.

Capturing these pageviews with GTM

The good news is that even though this is a huge problem, it can easily be fixed with Google Analytics and Google Tag Manager.

Start by creating a new “History Listener” tag. Now set your fire rules to all pages and hit save. This will simply look for changes to the URL.

Now we’ll need to create a separate event to fire a pageview when the URL History Listener fires. To do this, create a new GA tag. 

If you already run Google Analytics from GTM, you’ll simply need to modify your existing tag. This tag should, by default, be set to track pageviews. 

At this point we’ll need to set the firing rules. First, we should make sure the tag is firing on all of our pages for our basic GA installation.

The firing rule for all pages should be a default option.

If you are already running GA via GTM, you’ll already have this set up. You’ll need to create a subsequent firing rule to fire a pageview for this URL History Listener.

To do this, click to add a new firing rule and then select “create new rule.” Name the rule, and then move on to conditions. The default rule should be [url] [contains]; we need to change this to [event] [equals]. Then we’ll set the condition to gtm.historyChange. Now click save.

Now you should be all set to hit publish on your updated tag container. Overnight, you should see a change in your pageviews and related metrics.


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!