Thursday, March 21, 2019

Nike’s Secret to Success on Instagram: Building an Engaged Community
Resources     •     Tue, 05 Feb 2019 08:46:06 +0000
This post is part of our Instagram Marketing Strategy series. The series provides you with actionable insights and lessons on how businesses are using Instagram. Next up, Wes Warfield from Nike…
Resources     •     Mon, 11 Feb 2019 08:54:27 +0000
Marketers are faced with an ever-growing list of responsibilities. From social media marketing to customer experience and advertising, it can be a challenge to stay on top of everything. Luckily for…
Resources     •     Mon, 04 Mar 2019 11:46:32 +0000
Retargeting, also known as remarketing, is a powerful form of digital advertising in which audiences (potential customers) are targeted with specific ads based on their behavior online. In other…
Resources     •     Tue, 05 Feb 2019 08:45:25 +0000
This post is part of our Instagram Marketing Strategy series. The series provides you with actionable insights and lessons on how businesses are using Instagram. Next up, Remi Silva shares how his…

Wednesday, March 20, 2019

Does Vertical Video Make a Difference? We Spent $6,000 on Tests to Find Out
Resources     •     Tue, 19 Feb 2019 11:36:36 +0000
There has been much discussion recently on industry-leading publications about the effectiveness of video on social media. For example, did you know that video posts on Facebook receive at least 59…
Search Engine Roundtable     •    
Last month we reported Google launched a new form to report Google My Business/Google Maps spam. After a few weeks in, local SEOs are reporting how fast you can see action after a spam report is…
Social Media Marketing | Social Media Examiner     •     Sat, 09 Mar 2019 11:00:12 +0000
Welcome to this week’s edition of the Social Media Marketing Talk Show, a news show for marketers who want to stay on the leading edge of social media. On this week’s Social Media Marketing …
Social Media     •     Tue, 19 Mar 2019 15:43:27 +0000
Myspace may have lost over 14 million artists' music. The struggling social media platform issued a statement regarding lost media due to a server migration. Myspace said, via statement according to…

Tuesday, March 19, 2019

Monday, March 18, 2019

Our Own Sarah Bird Joins the 2019 Class of Henry Crown Fellows!

Posted by TheMozTeam

Mozzers believe in doing good, whether we’re helping new SEOs learn the ropes, encouraging young girls to consider a career in STEM, or just maintaining a dog-friendly (and thus smile-friendly) office. It’s why so much of our content and tools are available for free. It’s why Moz has a generous employee donation-match program that matched over $500,000 between 2013 and 2017, supporting organizations making the world a more just and charitable place. It’s why we partner with programs like Year Up, Ignite, and Techbridge to inspire the next generation of technology leaders.

And of course, TAGFEE is the beating heart of everything we do. It’s part of our DNA. That’s why we’re incredibly proud (and humbled!) to announce that our very own CEO and Disney-karaoke-extraordinaire, Sarah Bird, has been accepted into The Aspen Institute’s 23rd class of Henry Crown Fellows, a program whose values resonate deeply with our own.

The Henry Crown Fellowship is an influential program that enables leaders to embrace their inner do-gooder. Every year, around twenty leaders from around the world are accepted into the fellowship. Having proven their success in the private sector, each new Fellow uses this opportunity to play a similar role in their communities, their country, or the world.

Pretty exciting, right? The best part of all, though: it’s not just about reflection. It’s about action. Fellows in the program have launched over 2,500 leadership ventures, using the opportunity to tackle everything from improving healthcare access, to battling domestic violence, to enhancing sustainable living, and beyond. It’s important, highly impactful stuff.

“Executives are often criticized for building successful businesses without giving back to the communities that helped them along the way,” says Sarah, “but we must lead as much in our communities as we do in our businesses.”

Tech companies and executives often face deserved scrutiny for the second- and third-order impacts of their successes. It’s a hard truth that the benefits and costs of technology advances aren’t shared equally between all people, and the cost to our environment is often not fully accounted for. The consequence is an understandable backlash against technologists.

“In order to change this,” adds Sarah, “we need to earnestly and with rigor dive into the sociological and ecological consequences of our work. Those of us with great power and privilege need to recognize and embrace our role in creating a more just and healthy future. I feel called to make a difference, and I’m glad there is a program out there to provide a framework and accountability for action.”

Here at Moz, we’ve been lucky enough to benefit from Sarah’s influence for years — we know she’s good people, inside and out. And now, we can’t wait to see her make waves in the world at large with the support of the Henry Crown Fellowship.

We’d love for you to join us in congratulating her in the comments below, and bonus points if you share the cause that’s closest to your heart!


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!

Sunday, March 17, 2019

How to Set Up GTM Cookie Tracking (and Better Understand Content Engagement)

Posted by Joel.Mesherghi


The more you understand the behaviour of your users, the better you can market your product or service — which is why Google Tag Manager (GTM) is a marketer's best friend. With built-in tag templates, such as scroll depth and click tracking, GTM is a powerful tool to measure the engagement and success of your content. 

If you’re only relying on tag templates in GTM, or the occasionally limiting out-of-box Google Analytics, then you could be missing out on insights that go beyond normal engagement metrics. Which means you may be getting an incomplete story from your data.

This post will teach you how to get even more insight by setting up cookies in GTM. You'll learn how to tag and track multiple page views in a single session, track a specific set number of pages, based on specific on-page content elements, and understand how users are engaging with your content so you can make data-based decisions to better drive conversions.

Example use case

I recently worked with a client that wanted to better understand the behavior of users that landed on their blog content. The main barrier they faced was their URL structure. Their content didn’t live on logical URL structures — they placed their target keyword straight after the root. So, instead of example.com/blog/some-content, their URL structure looked like example.com/some-content.

You can use advanced segments in Google Analytics (GA) to track any number of metrics, but if you don’t have a logically defined URL, then tracking and measuring those metrics becomes a manual and time-consuming practice — especially when there’s a large number of pages to track.

Fortunately, leveraging a custom cookie code, which I provide below, helps you to cut through that time, requires little implementation effort, and can surface powerful insights:

  1. It can indicate that users are engaged with your content and your brand.
  2. The stored data could be used for content scoring — if a page is included in the three pages of an event it may be more valuable than others. You may want to target these pages with more upsell or cross-sell opportunities, if so.
  3. The same scoring logic could apply to authors. If blogs written by certain authors have more page views in a session, then their writing style/topics could be more engaging and you may want to further leverage their content writing skills.
  4. You can build remarketing audience lists to target these seemingly engaged users to align with your business goals — people who are more engaged with your content could be more likely to convert.

So, let’s briefly discuss the anatomy of the custom code that you will need to add to set cookies before we walk through a step by step implementation guide.

Custom cookie code

Cookies, as we all know, are a small text file that is stored in your browser — it helps servers remember who you are and its code is comprised of three elements:

  • a name-value pair containing data
  • an expiry date after which it is no longer valid
  • the domain and path of the server it should be sent to.

You can create a custom code to add to cookies to help you track and store numerous page views in a session across a set of pages.

The code below forms the foundation in setting up your cookies. It defines specific rules, such as the events required to trigger the cookie and the expiration of the cookie. I'll provide the code, then break it up into two parts to explain each segment.

The code

<script>
function createCookie(name,value,hours) {
    if (hours) {
        var date = new Date();
        date.setTime(date.getTime()+(hours*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}
if (document.querySelectorAll("CSS SELECTOR GOES HERE"").length > 0) {
var y = {{NumberOfBlogPagesVisited}}
if (y == null) {
    createCookie('BlogPagesVisited',1,1);
}
  else if (y == 1) {
    createCookie('BlogPagesVisited',2,1);
  } 
  else if (y == 2) {
    var newCount = Number(y) + 1;
    createCookie('BlogPagesVisited',newCount,12);
  }
  
 if (newCount == 3) {
 dataLayer.push({
 'event': '3 Blog Pages'
 });
 }
}
</script>


Part 1

<script>
function createCookie(name,value,hours) {
    if (hours) {
        var date = new Date();
        date.setTime(date.getTime()+(hours*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}

Explanation:

This function, as the name implies, will create a cookie if you specify a name, a value, and the time a cookie should be valid for. I’ve specified "hours," but if you want to specify "days," you’ll need to iterate variables of the code. Take a peek at this great resource on setting up cookies.

    Part 2

    if (document.querySelectorAll("CSS SELECTOR GOES HERE").length > 0) {
    var y = {{NumberOfBlogPagesVisited}}
    if (y == null) {
    createCookie('BlogPagesVisited',1,1);
    }
    else if (y == 1) {
    createCookie('BlogPagesVisited',2,1);
    }
    else if (y == 2) {
    var newCount = Number(y) + 1;
    createCookie('BlogPagesVisited',newCount,12);
    }
      
    if (newCount == 3) {
    dataLayer.push({
    'event': '3 Blog Pages'
    });
    }
      
    </script>


    Explanation:

    The second part of this script will count the number of page views:

    • The “CSS SELECTOR GOES HERE”, which I’ve left blank for now, will be where you add your CSS selector. This will instruct the cookie to fire if the CSS selector matches an element on a page. You can use DevTools to hover over an on-page element, like an author name, and copy the CSS selector.
    • “y” represents the cookie and "NumberOfBlogPagesVisited" is the name I’ve given to the variable. You’ll want to iterate the variable name as you see fit, but the variable name you set up in GTM should be consistent with the variable name in the code (we’ll go through this during the step-by-step guide).
    • “createCookie” is the actual name of your cookie. I’ve called my cookie "BlogPagesVisited." You can call your cookie whatever you want, but again, it’s imperative that the name you give your cookie in the code is consistent with the cookie name field when you go on to create your variable in GTM. Without consistency, the tag won’t fire correctly.
    • You can also change the hours at which the cookie expires. If a user accumulates three page views in a single session, the code specifies a 12 hour expiration. The reasoning behind this is that if someone comes back after a day or two and views another blog, we won’t consider that to be part of the same "session," giving us a clearer insight of the user behaviour of people that trigger three page views in a session.
    • This is rather arbitrary, so you can iterate the cookie expiration length to suit your business goals and customers.

    Note: if you want the event to fire after more than three page views (for example, four-page views) then the code would look like the following:

    var y = {{NumberOfBlogPagesVisited}}
    if (y == null) {
    createCookie('BlogPagesVisited',1,1);
    }
    else if (y == 1) {
    createCookie('BlogPagesVisited',2,1);
    }
    }
    else if (y == 2) {
    createCookie('BlogPagesVisited',3,1);
    }
    else if (y == 3) {
    var newCount = Number(y) + 1;
    createCookie('BlogPagesVisited',newCount,12);
    }
      
    if (newCount == 4) {
    dataLayer.push({
    'event': '4 Blog Pages'
    });


    Now that we have a basic understanding of the script, we can use GTM to implement everything.

    First, you’ll need the set up the following "Tags," "Triggers", and "Variables":

    Tags

    Custom HTML tag: contains the cookie script

    Event tag: fires the event and sends the data to GA after a third pageview is a session.

    Triggers

    Page View trigger: defines the conditions that will fire your Custom HTML Tag.

    Custom Event trigger: defines the conditions that will fire your event.

    Variable

    First Party Cookie variable: This will define a value that a trigger needs to evaluate whether or not your Custom HTML tag should fire.

    Now, let's walk through the steps of setting this up in GTM.

    Step 1: Create a custom HTML tag

    First, we'll need to create a Custom HTML Tag that will contain the cookie script. This time, I’ve added the CSS selector, below:

     #content > div.post.type-post.status-publish.format-standard.hentry > div.entry-meta > span > span.author.vcard > a

    This matches authors on Distilled’s blog pages, so you’ll want to add your own unique selector.

    Navigate to Tags > New > Custom HTML Tag > and paste the script into the custom HTML tag box.

    You’ll want to ensure your tag name is descriptive and intuitive. Google recommends the following tag naming convention: Tag Type - Detail - Location. This will allow you to easily identify and sort related tags from the overview tag interface. You can also create separate folders for different projects to keep things more organized.

    Following Google's example, I’ve called my tag Custom HTML - 3 Page Views Cookie - Blog.

    Once you’ve created your tag, remember to click save.

    Step 2: Create a trigger

    Creating a trigger will define the conditions that will fire your custom HTML tag. If you want to learn more about triggers, you can read up on Simo Ahava’s trigger guide.

    Navigate to Triggers > New > PageView.

    Once you’ve clicked the trigger configuration box, you’ll want to select “Page View” as a trigger type. I’ve also named my trigger Page View - Cookie Trigger - Blog, as I’m going to set up the tag to fire when users land on blog content.

    Next, you’ll want to define the properties of your trigger.

    Since we’re relying on the CSS selector to trigger the cookie across the site, select “All Page Views”.

    Once you’ve defined your trigger, click save.

    Step 3: Create your variable

    Just like how a Custom HTML tag relies on a trigger to fire, a trigger relies on a variable. A variable defines a value that a trigger needs to evaluate whether or not a tag should fire. If you want to learn more about variables, I recommend reading up on Simo Ahava’s variable guide.

    Head over to Variables > User-Defined Variables > Select 1st Party Cookie. You’ll also notice that I’ve named this variable “NumberOfBlogPagesVisited” — you’ll want this variable name to match what is in your cookie code.

    Having selected “1st Party Cookie," you’ll now need to input your cookie name. Remember: the cookie name needs to replicate the name you’ve given your cookie in the code. I named my cookie BlogPagesVisited, so I’ve replicated that in the Cookie Name field, as seen below.

    Step 4: Create your event tag

    When a user triggers a third-page view, we'll want to have it recorded and sent to GA. To do this, we need to set up an "Event" tag.

    First, navigate to Tags > New > Select Google Analytics - Universal Analytics:

    Once you’ve made your tag type “Google Analytics - Universal Analytics”, make sure track type is an “Event” and you name your "Category" and "Action" accordingly. You can also fill in a label and value if you wish. I’ve also selected “True” in the “Non-interaction Hit” field, as I still want to track bounce rate metrics.

    Finally, you’ll want to select a GA Setting variable that will pass on stored cookie information to a GA property.

    Step 5: Create your trigger

    This trigger will reference your event.

    Navigate to Trigger > New > Custom Event

    Once you’ve selected Custom Event, you’ll want to ensure the “Event name” field matches the name you have given your event in the code. In my case, I called the event “3 Blog Pages”.

    Step 6: Audit your cookie in preview mode

    After you’ve selected the preview mode, you should conduct an audit of your cookie to ensure everything is firing properly. To do this, navigate to the site you where you’ve set up cookies.

    Within the debugging interface, head on over to Page View > Variables.

    Next, look to a URL that contains the CSS selector. In the case of the client, we used the CSS selector that referenced an on-page author. All their content pages used the same CSS selector for authors. Using the GTM preview tool you’ll see that “NumberOfBlogPagesVisited” variable has been executed.

    And the actual “BlogPagesVisited” cookie has fired at a value of “1” in Chrome DevTools. To see this, click Inspect > Application > Cookies.

    If we skip the second-page view and execute our third-page view on another blog page, you’ll see that both our GA event and our Custom HTML tag fired, as it’s our third-page view.

    You’ll also see the third-page view triggered our cookie value of “3” in Chrome DevTools.

    Step 7: Set up your advanced segment

    Now that you’ve set up your cookie, you’ll want to pull the stored cookie data into GA, which will allow you to manipulate the data as you see fit.

    In GA, go to Behaviour > Events > Overview > Add Segment > New Segment > Sequences > Event Action > and then add the event name you specified in your event tag. I specified “3 Blog Page Views."

    And there you have it! 

    Conclusion

    Now that you know how to set up a cookie in GTM, you can get heaps of additional insight into the engagement of your content.

    You also know how also to play around with the code snippet and iterate the number of page views required to fire the cookie event as well as the expiration of the cookies at each stage to suit your needs.

    I’d be interested to hear what other use cases you can think of for this cookie, or what other types of cookies you set up in GTM and what data you get from them.


    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!

    Saturday, March 16, 2019

    Out-of-context Twitter accounts keep your favorite shows alive online
    TwitterFacebook

    The joy of Parks and Recreation will never leave me, not even in the dark corners of Twitter. It’s a strange yet reaffirming thought for me and the other 166,000 people who follow the "out of context parks" account.

    As its name suggests, the account takes scenes from the beloved NBC comedy and posts them without any context, leaving it up to the reader to interpret the meaning. 

    pic.twitter.com/J9LiNdUEFj

    — out of context parks (@nocontextpawnee) January 30, 2019

    While not affiliated with the network or the show officially, it is still part of a burgeoning trend on the social media platform. Pop culture-based out-of-context accounts have been popping up all over the place in the last few years.  Read more...

    More about Entertainment, Twitter, Social Media, Culture, and Web Culture

    Friday, March 15, 2019

    Rewriting the Beginner's Guide to SEO, Chapter 7: Measuring, Prioritizing, & Executing SEO

    Posted by BritneyMuller

    It's finally here, for your review and feedback: Chapter 7 of the new Beginner's Guide to SEO, the last chapter. We cap off the guide with advice on how to measure, prioritize, and execute on your SEO. And if you missed them, check out the drafts of our outline, Chapter One, Chapter Two, Chapter Three, Chapter FourChapter Five, and Chapter Six for your reading pleasure. As always, let us know what you think of Chapter 7 in the comments!


    Set yourself up for success.

    They say if you can measure something, you can improve it.

    In SEO, it’s no different. Professional SEOs track everything from rankings and conversions to lost links and more to help prove the value of SEO. Measuring the impact of your work and ongoing refinement is critical to your SEO success, client retention, and perceived value.

    It also helps you pivot your priorities when something isn’t working.

    Start with the end in mind

    While it’s common to have multiple goals (both macro and micro), establishing one specific primary end goal is essential.

    The only way to know what a website’s primary end goal should be is to have a strong understanding of the website’s goals and/or client needs. Good client questions are not only helpful in strategically directing your efforts, but they also show that you care.

    Client question examples:

    1. Can you give us a brief history of your company?
    2. What is the monetary value of a newly qualified lead?
    3. What are your most profitable services/products (in order)?

    Keep the following tips in mind while establishing a website’s primary goal, additional goals, and benchmarks:

    Goal setting tips

    • Measurable: If you can’t measure it, you can’t improve it.
    • Be specific: Don’t let vague industry marketing jargon water down your goals.
    • Share your goals: Studies have shown that writing down and sharing your goals with others boosts your chances of achieving them.

    Measuring

    Now that you’ve set your primary goal, evaluate which additional metrics could help support your site in reaching its end goal. Measuring additional (applicable) benchmarks can help you keep a better pulse on current site health and progress.

    Engagement metrics

    How are people behaving once they reach your site? That’s the question that engagement metrics seek to answer. Some of the most popular metrics for measuring how people engage with your content include:

    Conversion rate - The number of conversions (for a single desired action/goal) divided by the number of unique visits. A conversion rate can be applied to anything, from an email signup to a purchase to account creation. Knowing your conversion rate can help you gauge the return on investment (ROI) your website traffic might deliver.

    In Google Analytics, you can set up goals to measure how well your site accomplishes its objectives. If your objective for a page is a form fill, you can set that up as a goal. When site visitors accomplish the task, you’ll be able to see it in your reports.

    Time on page - How long did people spend on your page? If you have a 2,000-word blog post that visitors are only spending an average of 10 seconds on, the chances are slim that this content is being consumed (unless they’re a mega-speed reader). However, if a URL has a low time on page, that’s not necessarily bad either. Consider the intent of the page. For example, it’s normal for “Contact Us” pages to have a low average time on page.

    Pages per visit - Was the goal of your page to keep readers engaged and take them to a next step? If so, then pages per visit can be a valuable engagement metric. If the goal of your page is independent of other pages on your site (ex: visitor came, got what they needed, then left), then low pages per visit are okay.

    Bounce rate - “Bounced” sessions indicate that a searcher visited the page and left without browsing your site any further. Many people try to lower this metric because they believe it’s tied to website quality, but it actually tells us very little about a user’s experience. We’ve seen cases of bounce rate spiking for redesigned restaurant websites that are doing better than ever. Further investigation discovered that people were simply coming to find business hours, menus, or an address, then bouncing with the intention of visiting the restaurant in person. A better metric to gauge page/site quality is scroll depth.

    Scroll depth - This measures how far visitors scroll down individual webpages. Are visitors reaching your important content? If not, test different ways of providing the most important content higher up on your page, such as multimedia, contact forms, and so on. Also consider the quality of your content. Are you omitting needless words? Is it enticing for the visitor to continue down the page? Scroll depth tracking can be set up in your Google Analytics.

    Search traffic

    Ranking is a valuable SEO metric, but measuring your site’s organic performance can’t stop there. The goal of showing up in search is to be chosen by searchers as the answer to their query. If you’re ranking but not getting any traffic, you have a problem.

    But how do you even determine how much traffic your site is getting from search? One of the most precise ways to do this is with Google Analytics.

    Using Google Analytics to uncover traffic insights

    Google Analytics (GA) is bursting at the seams with data — so much so that it can be overwhelming if you don’t know where to look. This is not an exhaustive list, but rather a general guide to some of the traffic data you can glean from this free tool.

    Isolate organic traffic - GA allows you to view traffic to your site by channel. This will mitigate any scares caused by changes to another channel (ex: total traffic dropped because a paid campaign was halted, but organic traffic remained steady).

    Traffic to your site over time - GA allows you to view total sessions/users/pageviews to your site over a specified date range, as well as compare two separate ranges.

    How many visits a particular page has received - Site Content reports in GA are great for evaluating the performance of a particular page — for example, how many unique visitors it received within a given date range.

    Traffic from a specified campaign - You can use UTM (urchin tracking module) codes for better attribution. Designate the source, medium, and campaign, then append the codes to the end of your URLs. When people start clicking on your UTM-code links, that data will start to populate in GA’s “campaigns” report.

    Click-through rate (CTR) - Your CTR from search results to a particular page (meaning the percent of people that clicked your page from search results) can provide insights on how well you’ve optimized your page title and meta description. You can find this data in Google Search Console, a free Google tool.

    In addition, Google Tag Manager is a free tool that allows you to manage and deploy tracking pixels to your website without having to modify the code. This makes it much easier to track specific triggers or activity on a website.

    Additional common SEO metrics

    • Domain Authority & Page Authority (DA/PA) - Moz’s proprietary authority metrics provide powerful insights at a glance and are best used as benchmarks relative to your competitors’ Domain Authority and Page Authority.
    • Keyword rankings - A website’s ranking position for desired keywords. This should also include SERP feature data, like featured snippets and People Also Ask boxes that you’re ranking for. Try to avoid vanity metrics, such as rankings for competitive keywords that are desirable but often too vague and don’t convert as well as longer-tail keywords.
    • Number of backlinks - Total number of links pointing to your website or the number of unique linking root domains (meaning one per unique website, as websites often link out to other websites multiple times). While these are both common link metrics, we encourage you to look more closely at the quality of backlinks and linking root domains your site has.

    How to track these metrics

    There are lots of different tools available for keeping track of your site’s position in SERPs, site crawl health, SERP features, and link metrics, such as Moz Pro and STAT.

    The Moz and STAT APIs (among other tools) can also be pulled into Google Sheets or other customizable dashboard platforms for clients and quick at-a-glance SEO check-ins. This also allows you to provide more refined views of only the metrics you care about.

    Dashboard tools like Data Studio, Tableau, and PowerBI can also help to create interactive data visualizations.

    Evaluating a site’s health with an SEO website audit

    By having an understanding of certain aspects of your website — its current position in search, how searchers are interacting with it, how it’s performing, the quality of its content, its overall structure, and so on — you’ll be able to better uncover SEO opportunities. Leveraging the search engines’ own tools can help surface those opportunities, as well as potential issues:

    • Google Search Console - If you haven’t already, sign up for a free Google Search Console (GSC) account and verify your website(s). GSC is full of actionable reports you can use to detect website errors, opportunities, and user engagement.
    • Bing Webmaster Tools - Bing Webmaster Tools has similar functionality to GSC. Among other things, it shows you how your site is performing in Bing and opportunities for improvement.
    • Lighthouse Audit - Google’s automated tool for measuring a website’s performance, accessibility, progressive web apps, and more. This data improves your understanding of how a website is performing. Gain specific speed and accessibility insights for a website here.
    • PageSpeed Insights - Provides website performance insights using Lighthouse and Chrome User Experience Report data from real user measurement (RUM) when available.
    • Structured Data Testing Tool - Validates that a website is using schema markup (structured data) properly.
    • Mobile-Friendly Test - Evaluates how easily a user can navigate your website on a mobile device.
    • Web.dev - Surfaces website improvement insights using Lighthouse and provides the ability to track progress over time.
    • Tools for web devs and SEOs - Google often provides new tools for web developers and SEOs alike, so keep an eye on any new releases here.

    While we don’t have room to cover every SEO audit check you should perform in this guide, we do offer an in-depth Technical SEO Site Audit course for more info. When auditing your site, keep the following in mind:

    Crawlability: Are your primary web pages crawlable by search engines, or are you accidentally blocking Googlebot or Bingbot via your robots.txt file? Does the website have an accurate sitemap.xml file in place to help direct crawlers to your primary pages?

    Indexed pages: Can your primary pages be found using Google? Doing a site:yoursite.com OR site:yoursite.com/specific-page check in Google can help answer this question. If you notice some are missing, check to make sure a meta robots=noindex tag isn’t excluding pages that should be indexed and found in search results.

    Check page titles & meta descriptions: Do your titles and meta descriptions do a good job of summarizing the content of each page? How are their CTRs in search results, according to Google Search Console? Are they written in a way that entices searchers to click your result over the other ranking URLs? Which pages could be improved? Site-wide crawls are essential for discovering on-page and technical SEO opportunities.

    Page speed: How does your website perform on mobile devices and in Lighthouse? Which images could be compressed to improve load time?

    Content quality: How well does the current content of the website meet the target market’s needs? Is the content 10X better than other ranking websites’ content? If not, what could you do better? Think about things like richer content, multimedia, PDFs, guides, audio content, and more.

    Pro tip: Website pruning!

    Removing thin, old, low-quality, or rarely visited pages from your site can help improve your website’s perceived quality. Performing a content audit will help you discover these pruning opportunities. Three primary ways to prune pages include:

    1. Delete the page (4XX): Use when a page adds no value (ex: traffic, links) and/or is outdated.
    2. Redirect (3XX): Redirect the URLs of pages you’re pruning when you want to preserve the value they add to your site, such as inbound links to that old URL.
    3. NoIndex: Use this when you want the page to remain on your site but be removed from the index.

    Keyword research and competitive website analysis (performing audits on your competitors’ websites) can also provide rich insights on opportunities for your own website.

    For example:

    • Which keywords are competitors ranking on page 1 for, but your website isn’t?
    • Which keywords is your website ranking on page 1 for that also have a featured snippet? You might be able to provide better content and take over that snippet.
    • Which websites link to more than one of your competitors, but not to your website?

    Discovering website content and performance opportunities will help devise a more data-driven SEO plan of attack! Keep an ongoing list in order to prioritize your tasks effectively.

    Prioritizing your SEO fixes

    In order to prioritize SEO fixes effectively, it’s essential to first have specific, agreed-upon goals established between you and your client.

    While there are a million different ways you could prioritize SEO, we suggest you rank them in terms of importance and urgency. Which fixes could provide the most ROI for a website and help support your agreed-upon goals?

    Stephen Covey, author of The 7 Habits of Highly Effective People, developed a handy time management grid that can ease the burden of prioritization:

    Source: Stephen Covey, The 7 Habits of Highly Effective People


    Putting out small, urgent SEO fires might feel most effective in the short term, but this often leads to neglecting non-urgent important fixes. The not urgent & important items are ultimately what often move the needle for a website’s SEO. Don’t put these off.

    SEO planning & execution

    “Without strategy, execution is aimless. Without execution, strategy is useless.”
    - Morris Chang

    Much of your success depends on effectively mapping out and scheduling your SEO tasks. You can use free tools like Google Sheets to plan out your SEO execution (we have a free template here), but you can use whatever method works best for you. Some people prefer to schedule out their SEO tasks in their Google Calendar, in a kanban or scrum board, or in a daily planner.

    Use what works for you and stick to it.

    Measuring your progress along the way via the metrics mentioned above will help you monitor your effectiveness and allow you to pivot your SEO efforts when something isn’t working. Say, for example, you changed a primary page’s title and meta description, only to notice that the CTR for that page decreased. Perhaps you changed it to something too vague or strayed too far from the on-page topic — it might be good to try a different approach. Keeping an eye on drops in rankings, CTRs, organic traffic, and conversions can help you manage hiccups like this early, before they become a bigger problem.

    Communication is essential for SEO client longevity

    Many SEO fixes are implemented without being noticeable to a client (or user). This is why it’s essential to employ good communication skills around your SEO plan, the time frame in which you’re working, and your benchmark metrics, as well as frequent check-ins and reports.



    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!