Learn | Online Marketing

*Note: This post contains an affiliate link to Elegant Themes which means I get a small commission if you end up purchasing a product from Elegant Themes. I'm not trying to make a quick buck, but wholeheartedly believe in (and love) Elegant Themes. I have personally...

If you've needed to extract information from a website, and ended up copy and pasting data from the webpage to your spreadsheet, you probably should have been scraping anything that took more than 2 minutes. Scraping a website is particularly useful if you need...

XML sitemaps are pretty well known within the SEO community but their purpose and value are often misunderstood, so let's start with the basics. In this post, we'll look at how to create XML sitemaps strategically. Shortly I'll be posting a follow up post of XML...

Update : After initially launching the SEO Dashboard, I have gotten requests to create a more general Google Data Studio template that will reflect a site's overall performance and all online marketing rather than just SEO. I have created an additional...

If you work on a large site that gets updated frequently, accidents are a big concern and can be hard to catch. Accidents like noindex tags or robots.txt "disallow: /" directives being copied from staging to production. There are a lot of indexation killers that are...

Google's Complicated History With JavaScript JavaScript has long been one of the SEO's greatest enemies - you can do a lot of cool things with JavaScript, especially with the introduction of new frameworks like AngularJS; SEO though has historically been a challenge...

What are Hreflang Tags? Hreflang tags are an explicit signal for Google to indicate the location and language of a URL’s intended audience. They can be implemented as a link in the HTML <head>, XML sitemaps, or HTTP header. Google introduced hreflang tags in...

Typically the canonical tag is deployed to the <head> section of a website, ex: <link rel="canonical" href="https://geoffkenyon.com/how-to-add-canonical-tag-to-http-headers"> This works fine for most use cases and there are many plugins for popular CMS...

Typically when you want to remove a webpage from Google, you can just add the meta robots noindex tag to the <head> section of the webpage. Once this is done you want to get Google to recrawl the webpage in order to pick up the noindex tag and then remove the...

The robots.txt file is used to control what content search engines are allowed to access on your site. This is great for controlling duplicate content and for directing your crawl budget to your most important pages. It is important to understand that if you you have...

Google Analytics has predefined "default channel" definitions. You can adjust these definitions to better match your individual situation. For example if you are active on a niche industry site, such as Moz for the SEO industry, you might want this traffic classified...

The other week I wrote about SERP Click Through Rates. This isn't really useful on it's own though. To give any meaningful insight, it needs to be combined with keyword volume (usually from the Google KWR Tool) and your current rank for the keyword. I know that...

Simply put, duplicate content is any content that is identical to another page on your site OR a different site on the web. While this might not sound like a big deal, it can actually be quite problematic for search engines (and inherently you). When search engines come across duplicate content, it’s difficult for them to decide which page to display in search results. Typically search engines will try to choose the original or canonical version of the content though they often do not get this right, leading to the wrong page ranking in search results.

My friend Andy is working on an eBook about how to make a living as a freelance WordPress developer. He is writing from his experience of developing a successful career working for himself after quitting the corporate world. We were talking about how to market the...

Using Optimizely and Google Tag Manager While you can do a lot with Google Tag Manager, you can’t load Optimizely via Google Tag Manager unfortunately. This is because Optimizely needs to be loaded synchronously in the head section and Google Tag Manager does not...