On-Page SEO – A Foundation for Success


In most cases, the first thing I do when checking into a new site, client or even competitor, I check to see what their on-page optimization looks like. This can be where you can establish some immediate quick-wins and begin to create value.

However, when it comes to on-page SEO, everyone has had enough hearing about how content is all you need, or the proper meta tags or even keyword density for that matter.

So, if you’re looking for some practical strategies that you can use on your site today, then keep reading.

URL Structure and Navigation

Let’s start at a high level with URL structure. URL structure is one of the most important on-page factors you can take advantage of, and, unfortunately, too many sites – particularly established ones – really forget this.

Let’s take Enterprise Rent-A-Car for example and look at the URL structure alone. As you can see in the screenshot below, their vehicles page follows the structure of /car_rental/showVehicles.do, so let’s break this down piece by piece.

With /car_retnal/ the underscore separating the two words can be a missed signal. Google treats underscores much differently than dashes. An underscore exhibits a no-space, while a dash represents a space, essentially the difference of “carretnal” vs. “car rental”.

Note: there are a bevy of other signals that do help provide the correct indexation, such as title tags, inbound links, on-page content, etc. but best practice would dictate a dash over the underscore.

enterprise holdings SEO

Next up is a smaller issue, but is the capitalization of “V” in vehicles without a rule expressing that the lower case redirects into the upper case. This results in a poor user experience in the instance that a user directly types in the URL.

Lastly is the extension .do, which is generated by their Java servlet specifications. This again results in a poor user experience and not the most search-friendly URL.

Moving on to navigation, we can continue to look at Enterprise. If you input enterprise.com you are immediately redirected to enterprise.com/car_rental/home.do. Essentially the major navigational issue is that all their URLs are on the same level of /car_rental/, lacking any sort of hierarchy.

A better approach would be to have the content sit in enterprise.com, with pages beyond that following. So, for the previous example, we could have enterprise.com/car-rentals/ and enterprise.com/car-rentals/vehicle-types/, providing a sufficient hierarchy to display the importance of each section and depth of levels.

Note: keep URLs generally short. 3-5 words max, anything more looks spammy and is difficult for a user to manually type in.

Lastly, while looking at URLs and navigation, implementing the correct canonical tags is another must. Canonical tags tell which version of your page should be indexed, and something Enterprise ends up doing correctly. The canonical version of Enterprise’s homepage is seen below and is also the same when the site is using https, meaning they aren’t duplicating content by specifying that their secure page is separate from their regular http page. This could have been a disaster if they had set the canonical tag to just enterprise.com, forfeiting the actual page their content is on. Now I say COULD very strongly, because Google is actually pretty good at canonicalizing (Bing isn’t) and Enterprise has a ton of signals pointing to their homepage.


As a side note, for Enterprise – or on your own site – to correct this, it’s much easier said than done. There needs to be proper mappings of old URLs to new, with the correct 301 redirects implemented, while minimizing the amount of redirect chains.

Internally Link Your Pages

This one could have gone in the last section, but easily deserves its own. Internally linking your site provides navigation and a hierarchy – as mentioned in the last section – but also internal links spread out link equity and keep users interacting with your site longer.

Since keeping a user interacted with your site is fairly basic, let’s dig into spreading equity (also so I can express how much I can’t stand mega menus). When you build a link to your homepage, that link sends equity to that page that, in turn, sends equity to the sites internally linked to from your homepage. Simple, eh? But can go majorly wrong.

dicks sports linksLet’s take a quick look at Dick’s Sporting Goods. Dick’s has 652 links on the homepage, with more or less on internal pages, because they use SEVEN mega menus with around 50-80 links in each spread across every page on the entire site.

So, if you were Dick’s and competing against hundreds of major brands, what do you do? You get a click tracking or heat mapping software and figure out what links actually get clicked and start gutting that menu. So instead of having the equity on every page being split by .0015 (1/650), you keep your most important navigational tabs and top level categories and customize your nav based on the section the user is in and get your links down to mid-100’s where you’re passing .0067.

Note: that is a very basic example that would say every link passes the same amount equity.

Page Speed

Google is on record stating that page speed is a ranking factor; however, Matt Cutts also says that it’s a smaller one with hundreds of other signals diluting its strength. Even if that’s the case, I’m really hoping you see a theme here. Many signals may have only a minimal effect, but when combined correctly you can make an enormous impact.

Although, with page speed you’re not just gambling with rankings, but taking your chances with conversions as well. Think about a non-internet example: you order a pizza for delivery, but the delivery time is 2 hours. What do you do? Find a different pizza place or change your order to carryout.

Now for the internet example, and my personal go-to, in 2006 while Marissa was still the VP at Google, she tested whether users would prefer 30 results to the traditional blue 10. The 30 result group had an unexpected 20 percent drop, attributed to a single uncontrolled variable – speed. Now, the kicker is the difference in page load times, going from .4 seconds to load the 10 to .9 seconds to load 30. That’s half a second for those keeping score.

So what slows down your site? It varies by site, but the most common offenders are:

  • Inefficient or poor coding
  • Images
  • Widget overload (some WordPress sites make me want to yack)
  • Unnecessary tracking codes
  • JavaScript executing when it doesn’t need to
  • SQL bottlenecks
  • Embedded media – especially if it’s called from an external source

Instead of jumping into how you can fix each one of those and more, I’ll just give you a couple links. Check out Google’s PageSpeed Insights and WebPageTest.org. PageSpeed insights will give you an idea of where you’re lacking, while WebPageTest.org can drill down on what is taking the longest.

Title Tag and Meta Description

Moving on to something much more easily fixed, let’s look at the title tag and meta description. Starting with the title tag, this regularly ranks as the most important on-page element. Title tags should be less than 70 characters in length, read similarly to a headline or sentence and have the most important keywords towards the front.

Last March Google rolled out a redesign that made search pages display title tags with a larger pixel size, significantly reducing what information is displayed before receiving an ellipses. The reason I bring this up now is because too many people are saying title tags shouldn’t be longer than 55 characters. While it may take around 55 characters or 512 pixels before you get cut off, it’s important to remember that the backend of Google is still reading up to that 70 character area. So keep in mind the balance between what you want a user to see and what a bot should be reading as well.

With the meta description, these have little to no SEO value; however, play a very large role in whether a user clicks on your result. These need to be no more than 156 characters in length and should provide a concise representation of what the content is about with a call to action. And when I say call to action, I mean a “lean more” or “see this” not a “CLICK HERE!”

Additionally, for both title tags and meta descriptions, keep them unique. Matt Cutts even offered the advice of leaving meta descriptions blank and letting Google decide – similar to what they do with title tags – for you if you can’t make them all unique. Having these duplicate can lead to duplicate content issues, as well as a poor user-experience for your visitors.

Facebook Open Graph and Twitter Cards

Open Graph and Twitter Cards affect how your content is displayed in social media. If these are set incorrectly, or don’t speak to that specific audience, you could be hampering the ability for your content to be shared or easily catch the eye of someone who may link to it.

After implementing your markup, you can test this with Facebook’s Debugger and the Twitter Validation tool. An example article can follow the protocol below, or if you’re using WordPress, an SEO pack can do it for you (just be sure it is customizable).

<!– Twitter Card data –>
<meta name=”twitter:card” content=”summary_large_image”>
<meta name=”twitter:site” content=”@publisher_handle”>
<meta name=”twitter:title” content=”Page Title”>
<meta name=”twitter:description” content=”Page description less than 200 characters”>
<meta name=”twitter:creator” content=”@author_handle”>
<!– Twitter summary card with large image must be at least 280x150px –>
<meta name=”twitter:image:src” content=”http://www.example.com/image.html“>

<!– Open Graph data –>
<meta property=”og:title” content=”Title Here” />
<meta property=”og:type” content=”article” />
<meta property=”og:url” content=”http://www.example.com/” />
<meta property=”og:image” content=”http://example.com/image.jpg” />
<meta property=”og:description” content=”Description Here” />
<meta property=”og:site_name” content=”Site Name, i.e. Moz” />
<meta property=”article:published_time” content=”2013-09-17T05:59:00+01:00″ />
<meta property=”article:modified_time” content=”2013-09-16T19:08:47+01:00″ />
<meta property=”article:section” content=”Article Section” />
<meta property=”article:tag” content=”Article Tag” />
<meta property=”fb:admins” content=”Facebook numberic ID” />

Heading Tags

Let’s actually move on to the <body> now. Fun fact, heading tags aren’t design elements; they are meant to outline content, what is important and where new sections begin. You may be thinking “duh” but I see way too many sites messing this up.

As I mentioned in the previous paragraph, heading tags are meant to act as an outline. And, just as with an outline where you can’t have two “I.” sections on the same level, you don’t want two H1’s on the same page. Now, this is a general statement since with HTML5 you can use multiple H1 tags within <section> classes. However, call me old school, but I usually still stick to a single H1 per page, unless there is a definite change in the content, abruptly enough to where the <section> could actually live on its own (or does, in the instance of news/blog content).

Note: I’ve tested both ways and the difference is marginal but favors a single h1

As with the rest of your heading tags, these carry less weight but are still important. However, I rarely use more than an H4, and there’s really no reason to unless your site is VERY granular and it makes sense. But keep in mind, as with any on-page tactic, too much of a good thing is usually a bad thing (e.g. keyword stuffing).

Additionally, your heading tags should be unique to your title tag. Most WordPress sites set your H1 as the title of the post/page, so install an SEO pack and make sure your title tag is unique to the work. I go with WordPress SEO by Yoast when on WordPress projects.

Body Content

Within the meat of your content, you can boost relevance and normally rankings just by adding a few simple nuances.

Keywords Towards the Top

First off is using your keyword in the first 100 or so words. Why this works is simple, when the keyword or key-phrase you are going for is in the first 100ish words you are emphasizing your content is about that keyword. It’s adding more emphasis to the page as a whole when the URL, title tag, H1 and first 100 words have that correlation.

Latent Semantic Indexing

Similarly, you can also boost relevance by sprinkling LSI keywords into your body content. LSI (latent semantic indexing) is a look at not just your document, but all other documents as a whole where Google will attempt to match documents which contain similar words or phrases to determine what is semantically close or distant.

Aaron Wall puts it best when he states:

This simple method correlates surprisingly well with how a human being, looking at content, might classify a document collection. Although the LSI algorithm doesn’t understand anything about what the words mean, the patterns it notices can make it seem astonishingly intelligent.

You can find LSI keywords at the bottom of results in the “Searches related to” section, in Google’s AdWords Keyword Planner or in Google Instant results.

Content Length

legnthAnother strong on-page factor within content is the length of said content. Check out the graph below that shows a study from SERP IQ on content length per position. Now, this study is from 2012, but does display the importance of content length – even though I’d bet this has changed quite a bit with Panda refreshes (maybe time for me to do a study, stay tuned).

Now, while I have seen many cases of content length helping, I’ve also seen the opposite. Just keep in mind that quantity and quality should be combined, because there are a host of other factors that scream quality. And, luckily, Amit Singhal decided to provide quite a few of these in the form of questions you need to be asking yourself. Really look at these below – or on the post itself from 2011 – because I’d argue a lot of this goes into the Panda algorithm.


Use Alt Text

The primary purpose of alt text is to provide a search bot with an adequate description of images on a page, as well as provide a unified user experience if your images fail to load. Alt text is a strong ranking factor for image search, but also provides additional on-page value by rounding out the content of your page – especially when that alt text pertains to what your page is about.

You can learn more about alt text best practices here.

Linking Out

Two more hacks before I wrap this up. First is very simple, and that is to be generous and link out to other relevant resources. This goes way back to the Hilltop algorithm which basically gives a boost to sites who link to experts, cite their sources and prove their content is an authority on the topic.

Rich Media

Lastly, I’d like to throw out another tactic that has yielded results time after time in very difficult niches. Simply put, use video content. Video and rich media keeps users on the site and engaged, reducing bounce rate and increasing user-usage metrics that can favor your site.

Do you have a favorite on-page tactic? Leave a comment and let me know!