Social media is no longer an optional marketing channel — it’s a necessary one.

But that doesn’t mean results are a given. When it comes to social media, you’ll either have a lot of success interacting with your customers, or you’ll see little results — and that depends on the level of effort you put into it.

For every business that has found success in social media marketing, there are at least two more spinning their social wheels with no tangible results. It’s time to change that trend.

For many, social media is simply a place to post links to content they’ve created in hopes that thousands will see it, click through, and share with their followers. So they have profiles on every network, and every network looks exactly the same; line after line of self-promotion.

This is not going to bring results. In fact, Facebook’s algorithm now penalizes link-based content, and Instagram has made it all-but-impossible to share a link.

Half-heartedly sharing your content on social media is not social media marketing. It’s spamming.

Social marketing is a lot of work, and it takes time listening and responding. After all, it’s social, and anything social takes an investment of effort and skill.

How to Learn Social Media Marketing: 31 Free Resources

Social Media Marketing Blogs

Social marketing is a science involving special communication skills. And the landscape changes constantly.

One of the best ways to develop your social media prowess and to stay up-to-date is to follow experts in the field. These blogs are always fresh with actionable information you can use to improve your marketing:

1. Social Media Explorer

SME is both a strategic services agency and a blog with a bevy of social media and marketing experts. The SME blog is consistently considered one of the most insightful in the industry, and several of its authors have written popular books on several aspects of digital and social marketing.

2. Scott Monty

Monty is a marketing guru who covers a ton of subjects. However, his social media articles are always eye-opening. If you haven’t heard of him yet, check out his “this week in digital” posts — these will keep you up-to-date with all the news on social, and every other aspect of digital marketing as well.

3. Social Media Examiner

Not to be confused with Social Media Explorer, the Examiner is one of the top blogs in the world for social media. Its social media reports are filled with all the important data social marketers want, and the blog posts are filled with valuable tips, as well. If I had to pick just one social media blog to follow, this is the one I would choose.

4. HubSpot Marketing Blog

Right here on the HubSpot Marketing Blog, you can find breaking news and actionable how-to guides on every social network there is.

Ebooks About Social Media

These ebooks will provide deeper information on specific networks and topics.

6. How to Use Instagram for Business

This step-by-step guide explains the reasons to create a business Instagram account and how to execute on Instagram to drive results.

7. A Visual Guide to Creating the Perfect LinkedIn Company Page

If you’re building a company page for the first time, or trying to upgrade your page, this guide will show you exactly how to do everything from crafting an engaging company description to creating an eye-catching banner image.

8. How to Attract Customers with Facebook

This multi-page ebook will show you how to use Facebook to drive real business results for your organization.

9. How to Get More Twitter Followers

HubSpot partnered with the experts at Twitter to provide actionable tips for social media managers starting new accounts to build a following, and fast.

10. The Beginner’s Guide to Social Media

Last, but definitely not least, is this amazing guide from Moz. The 12 chapters in this book are filled with valuable information that every marketer absolutely needs to know. Bookmark this guide, you’ll refer to it more than once.

Videos About Social Media

Videos are my second favorite medium to learn, behind books. Being able to glean from the brightest minds on any subject as if you’re face-to-face is powerful. These videos will give you valuable insights, just how to do social media, but you’ll get insights into the why and what as well.

11. The #AskGaryVee Show

You can’t talk about social media without talking about the speaker, author, and social expert Gary Vaynerchuk. On the Gary Vee Show, he takes questions from his audience and answers them as only he can. If you have a burning question on social media marketing, send it to him.

12. TED Talks: Social Media Marketing

If you aren’t in love with TED, you might want to check your pulse. This is a playlist of videos from TED Talks on social media. There may not be that much actionable advice in these videos, but if you want to become an expert on social media, these videos will give you insight into the deeper subject like “the hidden influence of social networks.”

13. Learn Social Media Marketing

If you’re really new to social media, and you want to learn through a structured lesson experience, consider Lynda’s massive library on social marketing courses.

14. Free Social Media Certification

HubSpot Academy has a breadth of video courses across inbound and digital marketing. Their free social media course is an eight-step video curriculum that teaches you the fundamentals of managing a social media campaign for your business. It also earns you a fresh Social Media Certification.

Podcasts on Social Media

If you like to learn while you chill, work out, or commute to and from work, podcasts are one of the best ways to do it. And these podcasts will help you develop your social media expertise.

15. Social Media Marketing Podcast

Michael Stelzner, from Social Media Examiner, brings you success stories and expert interviews from leading social media marketing pros.

16. The Social Media Examiner Show

Rather than deep dives, the SME Show gives you small, bite-sized content for social media every day. This is a great podcast to get actionable quick-tips on a daily basis. It’ll keep you motivated while you develop your skills.

17. The Social Toolkit

If you like to stay up-to-date on digital tools, apps, and software for social media marketing, this is the podcast for you.

18. The Social Pros Podcast

Every episode of the Social Pros Podcast shines the light on real pros doing real work for real companies. You’ll get insights from Jay Baer of Convince and Convert when you tune in.

Slideshows and Infographics About Social Media

If you’re a visual learner, these slide decks and infographics provide great ways to learn social media.

19. The B2B Social Media Palette

This SlideShare walks you through the channels and tools you’ll need to be most effective at B2B social media marketing. Sometimes, success can be found by using the right tools and channels for the right audience.

20. The Complete Guide to the Best Times to Post on Social Media

Timing is very important when it comes to social media. Post it the wrong time, and your update can go completely unnoticed because of the flood of updates in your audience’s feeds. Being able to master the timing of social media is critical to effective marketing.

21. 58 Social Media Tips for Content Marketers

This slideshow is from the folks at Content Marketing Institute. This deck shows the proper methods for promoting your content over social media. This is a must-read for any social marketer who wants to use those channels to promote content.

22. The Best and Worst Times to Post on Social Media

Again, timing is everything. This infographic lays out the best and worst times to post on each major network. You should save this infographic for referencing when you schedule your social media posts.

Best Social Media Books

Books are my favorite way to learn. Many experts agree that if you read a book a week, on your area of expertise, for 5 years, you will have the equivalent of a Ph.D. on the subject. That may or may not be true, but reading books from the experts definitely doesn’t make you a worse marketer. Here are some books to get you started.

23. The B2B Social Media Book

This book covers the specific application of social marketing to B2B companies, to leverage social media to drive leads and revenue.

24. The Art of Social Media: Power Tips for Power Users

You’ve got to read this book by the legendary former Chief Evangelist of Apple, Guy Kawasaki. He’s one of the pioneers of social and content marketing, and this book is filled with expert advice from one of the best.

25. The Tao of Twitter

This book is supposed to be for busy marketers who need to get the basics of Twitter down quickly. It shows you how to connect and start creating meaningful connections in less than two hours.

26. The Ultimate Guide to Facebook Advertising

Facebook is one of the most effective advertising and PPC platforms available. You can target a plethora of metrics, allowing you to drill down and advertise to a very specific audience. This book will show you how to optimize your Facebook ads.

27. Jab, Jab, Right Hook: How to Tell Your Story in a Noisy Social World

Gary Vaynerchuk gives insight into how he uses a conversational, reactionary approach to engaging his audience. He gives concrete, visual examples of great social marketing, as well as not-so-great ones.

28. The New Rules of Marketing and PR

David Meerman Scott’s book on digital marketing is an international bestseller, and worth every penny. Some argue that it should be required reading for any marketer — and in this marketer’s opinion, “Just read it.”

29. Likeable Social Media

Dave Kerpen claims the secret to viral social marketing is to be likable. When someone likes you, they’ll recommend you. But being likable on social networks is easier said than done. This book will help you crack that code.

30. Social Media Marketing for Dummies

One of my mentors taught me to read children’s books on a subject if I just couldn’t grasp a concept. That principle gave way to movements like “Explain It Like I’m 5.” And, sometimes you just need it broken down like you’re, well, less than an expert on the topic, to put it gently. If that’s you, this book is valuable. Go ahead and buy it — we won’t call you dummy.

31. Contagious: Why Things Catch On

This book by Jonah Berger provides a strong foundation to understand how content goes viral — and how to create ideas on social media that are so catchy, your audience won’t be able to help but click them.

The Secret to Social Media Success

No matter how many social networks you set out to master, or how long you work in the social marketing field, there is one secret that will ensure you’re successful: Never stop learning.

This list is massive, I know, and there’s no way to consume all these resources in the next week. But if you set yourself to learning every day, every week, every month, every year, you’ll eventually be the one writing the books that help others learn social marketing.

It all begins with learning.

10 Things I’ve Learned About Social Media:

  1. Social marketing requires listening.
  2. Conversations should be the goal of social marketing.
  3. Team #Followback is a waste of time.
  4. Social marketing isn’t broadcasting, it’s communicating.
  5. Never auto-post your content to your social profiles.
  6. Never copy/paste the same message into every social profile.
  7. Social marketing requires time. It’s relationship-building on a massive scale.
  8. Be helpful. Period.
  9. Social support is faster than live chat, email, or phone calls. Embrace it.
  10. You don’t have to be on every network. Go where your customers are.

Social Media Marketing is the activity of driving website traffic through social media sites. This is a brief tutorial that explains how you can use popular social media platforms such as Facebook, Twitter, LinkedIn, and Google+ to promote your business and create greater awareness about the products and services you offer.


This tutorial is primarily going to help all those readers who are into advertising and specifically those who aspire to make a career in Digital Marketing.


Before proceeding with this tutorial, you should have a good understanding of the fundamental concepts of marketing, advertising, and analyzing products and audience.

Color Schemes

Color Schemes are one of the most important aspects of a good graphic design. They will make people fall in love with your website or absolutely hate it. Most people tend to think of colors as art and putting colors into schemes takes an artist. However, there is actually a science to help the less artistic people like myself, called Color Theory. I won’t get into much detail about the values, hues, or saturation of colors, but I will explain a few of the most dominant color schemes. After reading this tutorial, experimenting with the color schemes is an excellent idea.

Color Combinations

It should go without being said, but just because we have color doesn’t mean that everything needs to have it. However, black and white websites that aren’t intended for some old fashion business lack creativity and often push people away from the website. When I say going overboard with color, I mean either using too many colors or coloring too much, both of which can break a design. Color Theory has given us quite a few schemes or ideas to blend our colors into our web pages, but I don’t want to overload you with all of them. So, we will discuss three primary color combinations.

Monochromatic Color

The monochromatic color scheme involves one color with different tints. This is a great color scheme for showing depth and drawing focus to certain elements.

Analogous Color

The analogous color scheme involves various colors that are in very close proximity to one another. This is somewhat close to the monochromatic color scheme except for instead of the tint and saturation changing, it is the color that is changing. The analogous colors often can portray feelings like hot or cold because of the color combination.

Complementary Color

The complementary color scheme is a composition of opposing colors on the color wheel. Complementary colors provide the highest contrast out of all of the schemes listed here. They have excellent contrast and compliment each other very well. Each color is much more intense than when the color displayed on a white background. For instance, red with green makes red seem even redder.

Well, that concludes the three primary color schemes that I am prepared to talk about. Feel free to get behind the canvas and start painting up some awesome color combinations on your website.

The content management systems (CMS) enable users to build websites and web applications without being proficient in commonly used web technologies. Likewise, the low-code development platforms help developers to build web applications rapidly with minimal hand-coding. But the developer must be proficient in commonly used web technologies to build custom web applications according to varying business needs.

Likewise, he needs to focus on the user experience delivered by the website across varying devices to attract and engage visitors. That is why; it becomes essential for novice web developers learn several web technologies and server-side programming languages. The beginners can always refer to the online web development tutorials to learn various aspects of website designing and development within a short amount of time.

Overview of 7 Popular Web Development Tutorials for Beginners


The free tutorial helps beginners to learn how to code interactively. A beginner can sign up for the tutorial to an array of widely used client-side and server-side web technologies including HTML, CSS, JavaScript, Java, PHP, Python, and Ruby. Also, he can learn several application programming interfaces (APIs), JavaScript libraries, and web framework. The tutorial also helps beginners to create responsive websites that look good on both computers and mobile devices. It even prepares beginners to build interactive websites and web applications within a short amount of time.


The web development tutorial is developed with HTML5. It includes nine tutorials covering widely used web technologies like HTML, CSS and JavaScript. Based on his proficiency, a web developer can choose from beginners, intermediate, and advanced tutorials. The beginner tutorials are designed as step-by-step web development guides, whereas the intermediate and advanced tutorials cover web development tips, tricks, and best practices.


The website aims to make beginners learn web development more effectively. It allows beginners to choose from web designing and web development courses. A beginner can join web designing course to learn HTML5, CSS3, JavaScript, and Python. Also, he can learn how to make the website more appealing by using fonts, colours, and layouts. On the other hand, the web development courses help beginners to learn how to make real-world web application with HTML5, CSS3, JavaScript, and databases.


The tutorial aims to make beginners learn web development in an easy, quick, and inexpensive way. It allows beginners to learn how to write code or how to build websites. When a beginner decides to learn how to build a website, the course will help him to learn HTML, CSS and JavaScript. The beginner will learn how to write server-side code in popular programming languages like PHP and Ruby, if he opts to learn how to code. The web development tutorial allows beginners to access videos supplemented with practices and quizzes.


The tutorial allows a beginner to choose from beginner and advances courses according to his programming experience. The beginner course helps the learn web technologies through videos. Each video also contains practices and quizzes. On the other hand, the advanced course helps beginners to learn how to develop a website’s front-end/user interface and backend. A beginner can join the advanced course to learn widely used front-end technologies like HTML, CSS and JavaScript, along with server-side programming languages, security best practices, and website deployment tips.


The tutorial allows beginners to choose from an array of interactive programming courses. A beginner can join Code School to learn widely used web technologies like HTML, CSS, JavaScript PHP, C#, ASP.NET Core, and Ruby. Also, the tutorial helps developers to learn how to use various JavaScript libraries and web components. Hence, it becomes easier for beginners to learn various web technologies and understand various aspects of web development within a short amount of time.


The website helps beginners to learn web development by accessing free tutorials, online courses, and learning guides. The beginners also get a chance to learn various aspects of web development from expert instructors. At the same time, the tutorial also helps beginners to identify and avoid common web development mistakes.

On the whole, a beginner can access several web development tutorials to become proficient in various client-side and server-side web technologies. He also needs to learn various web frameworks and content management systems to build custom web applications according to precise business requirements. That is why; the beginners must refer to multiple web development tutorials, in addition to learning the web application development tricks and best practices.

As with many things in life, the best way to learn to code is to practice coding. Here are the 10 best web development tutorials for beginners in 2019.

1. Coursera

Coursera is currently the largest MOOC (massive open online course) on the market, with more than 25 million learners, 149 university partners, and 2000+ courses (at the time of this writing).

Founded by two Stanford computer science professors, a large portion of those courses are in computer science, covering languages from front-end fundamentals like HTML, CSS, and JavaScript to back-end classics like PHP, Node.js, and Python.

Most courses are free, unless you want to upgrade your online university experience with perks like certificates and extra help from instructors. Coursera offers its own certificate programs called “specializations” for around $40 to $150, and fully online Masters degrees, like this Master of Computer Science in Data Science program from University of Illinois Urbana Champaign.

2. edX

Founded by Harvard University and MIT in 2012, edX is a non-profit open-source MOOC where you can find a wide variety of courses from top universities and industry leaders like the University of Pennsylvania or Microsoft.

Courses are free, and upon completion you have the option to pay for an official certificate. You can learn front-end fundamentals from the W3C (World Wide Web Consortium) itself, the international organization responsible for managing global web standards like HTML5. Or get a professional certificate in Agile development using Rails from Berkeley.

3. Udacity

There must have been something in the water at Stanford University, because the fourth largest MOOC on the web holds humble origins as an experiment by Sebastian Thrun, best known as the brain behind Google’s Self Driving Car, and his Stanford CS221 co-professor. They launched a free “Introduction to Artificial Intelligence” course online, received more than 100,000 enrollments, and helped kickstart the MOOC sensation.

Udacity offers an opportunity to learn computer science from industry professionals from tech companies like Google, GitHub, and Amazon. Udacity’s paid certificates are called “nanodegrees,” which allow you to gain credentials for industry-specific skillsets such as machine learning engineer, full-stack web developer, or mobile web specialist. You can always skip the project and take the courses individually for free — it just depends on how much you want to gain from the experience.

4. Codecademy

The tried-and-true Codecademy remains one of the most popular web development course websites around. Free courses walk you through the basics of languages like HTML, CSS, and JavaScript.

What makes Codecademy unique is that you complete these lessons and tutorials entirely in their browser-based Integrated Development Environment (IDE), which allows you to practice what they teach in real time. Their catalog also includes projects and quizzes for Pro members so you can put your knowledge to work.

5. Khan Academy

Khan Academy’s pitch is tough to beat: “You can learn anything. For free. For everyone. Forever.” You’ll find high-quality educational videos that cover everything from organic chemistry to music theory. Of course, it’s included on this list for its excellent introductory courses on HTML, CSS, and JavaScript.

Khan Academy takes a university-style deep dive into the fundamentals and also covers broader computer science concepts such as information theory. Videos are hosted on YouTube, so if you’d rather just search for a particular language or tutorial you can head on over to their channel and avoid the course navigation altogether.


Whenever I’m looking for the latest and greatest tutorials for a new JavaScript framework like Vue.js, I often find myself on They have full in-depth courses on Node.js, AngularJS, Angular, React, and Vue. They also have a full course for Laravel, a Model-View-Controller (MVC) framework for PHP.

Beyond these courses, there are many blog posts and tutorials for a wide range of languages, including GoLang, Sass, and ASP.NET—just to give you an idea of the variety of technologies you might find on this site. Need a tutorial that will walk you through both theory and practice? is the site for you.

7. Odin Project

Coding boot camps are all the rage these days, especially for those with little or no programming experience who want to make a career change. Unfortunately, factors like price and location can prove to be obstacles to a lot of people.

The Odin Project is a free coding bootcamp that can be attended entirely online. They teach you everything you need to know to become a functioning full stack web developer, with a focus on JavaScript, HTML, CSS, and Ruby on Rails. Better still, you can complete real projects that can be uploaded to GitHub to help fill out your resume—just like a conventional boot camp.

Everything from the website to the curriculum that it hosts is open source, meaning you may one day help contribute to the Odin Project as an accomplished alumnus.

8. freeCodeCamp

Looking for a way to learn to code while helping the world become a better place? freeCodeCamp gives you all the usual perks of a coding camp—tutorials, challenges, projects, connections, and certificates—but at no cost to you.

Even better, later projects give you an opportunity to gain real experience building web apps for nonprofits. Learn the ins and outs of front-end web development, including JavaScript, HTML5, CSS, Bootstrap, and jQuery. Or get a certificate in back-end web development learning Node.js, Express, and MongoDB. Like any active open-source community, freeCodeCamp is constantly evolving with new projects, challenges, and certificates on the horizon.

9. HackerRank

If you already have some coding experience under your belt, HackerRank gives you an opportunity to pit your web development skills against programmers across the globe. Some people learn best in competitive environments and the thrill of climbing the leaderboard might be just the thing you need to motivate your continued growth as a developer. Earn points by completing coding challenges. Win prizes at hackathons and other competitions.

A wide variety of languages are supported on the site, including Java, C++, Ruby, Python, and SQL. As an added bonus, HackerRank challenges are currently trending as a filter for hiring managers in the tech sector.

10. Codewars

Looking for a coding “dojo” to sharpen your skills? Codewars is a martial arts themed coding practice site where you complete challenges called “kata” to gain “honor” to rank up and ascend the leaderboards.

Codewars places an emphasis on test-driven development (TDD) allowing you to use test cases to check the performance of your code in the browser to complete katas. The site supports the usual suspects like JavaScript, Ruby, Python, and PHP, but also covers newer languages like Go and Swift.

Bonus: Coding communities and events

Beyond tutorial sites and online courses, there are online communities that are integral to one’s growth as a web developer.

  • Struggling with a piece of code? Stack Overflow is the most trusted place to ask questions and receive detailed answers from other developers over the web.
  • Looking for someplace outside of the official channels of a given language or framework to have an open forum for discussion? There’s usually a Reddit thread for every language or framework you can think of, and more general resources like r/WebdevTutorials.
  • Eager to give back to the world and encourage underrepresented groups to go into coding? Consider joining a community like Rails Girls, which encourages girls to learn to programme through Ruby on Rails—Upwork product architect, Aurel Canciu volunteers for them during his free time. There are many groups and communities out there to not only continue your own growth but to help others excel as well.

Regardless of our current skill level, we all were beginners at one point in time. Making classic beginner mistakes comes with the territory.

Learn from our mistakes; don’t do these things!

JavaScript Tips

1 – Unnecessary DOM Manipulation

The DOM is slow. Limiting your interaction with it will greatly increase your code’s performance. Consider the following (bad) code:

// anti-pattern
for (var i = 0; i < 100; i++){
	var li = $("<li>").html("This is list item #" + (i+1));

This code actually modifies the DOM 100 times, and unnecessarily creates 100 jQuery objects. 100! A more correct approach would be to either use a document fragment, or build up a string that contains the 100 <li/> elements, and then appends that HTML to the containing element. That way, you jump into the DOM a total of once. Here’s an example:

var liststring = "";

for (var i = 100; i > 0; i--){
	liststring += "<li>This is list item #" + (99- i);


As noted above, with this technique, we touch the DOM only once, which is an improvement, but it also relies on string concatenation to build a large string. There’s a different way that we could approach this, using arrays.

var liststring = "<li>"
var lis = [];

for (var i = 100; i > 0; i--){
	lis.push("This is list item #" + (99- i));

liststring += lis.join("</li><li>") + "</li>";

When building large strings, storing each piece of the string as an item within an array element and calling join() is arguably more elegant than string concatenation. This is one of the fastest and easiest ways to build repetitive HTML in JavaScript without using a template library or framework.

2 – Inconsistent Variable & Function Names in JavaScript

This next item isn’t a performance issue, but is extremely important – especially if you are working on code that other people work on, as well. Keep your identifiers (variable and function names) consistent. Consider the following variables as an example:

var foo = "bar";
var plant = "green";
var car = "red";

It wouldn’t make sense to add another variable, called Something. This introduces inconsistency in your variable naming pattern, causing your brain to cognitively flag this variable as being different or special. This is why constants in most languages are traditionally defined with all caps.

You can take this a step further by maintaining similar length, grammatical structure, and explanatory nature when naming functions. For example, consider the following contrived function:

function subtractFive(number){
	return number - 5;

Naming a function that adds five to a given number should follow the same pattern, shown here:

function addFive(number){
	return number + 5;

Sometimes, you might name a function to indicate its return value. For instance, you might name a function that returns an HTML string getTweetHTML(). You might also prepend a function’s name with do, if the function simply performs an operation and doesn’t return a value, eg: doFetchTweets().

Constructor functions typically follow the tradition of classes in other languages, capitalizing the first letter:

function Dog(color){
	this.color = color;

As a general rule of thumb, you should be descriptive when naming your identifiers. Classify them together with other similar identifiers by maintaining a naming pattern that is readable and offers hints to the nature of a variable or function’s purpose.

3 – Use hasOwnProperty() in Loops

JavaScript’s arrays are not associative; trying to use them as such is frowned upon by the community. Objects, on the other hand, can be treated as hash tables, and you can iterate over an object’s properties by using the loop, like so:

for (var prop in someObject) { 
    alert(someObject[prop]); // alert's value of property

The problem, however, is that the loop iterates over every enumerable property on the object’s prototype chain. This can be problematic if you only want to use the properties that exist on the actual object.

You can solve this issue by using the hasOwnProperty() method. Here’s an example:

for (var prop in someObject) {
    if (someObject.hasOwnProperty(prop)) {
        alert(someObject[prop]); // alert's value of property

This version only alerts the values of the properties that directly reside on someObject.

4 – Comparing Boolean Values

Comparing boolean values in a condition is a waste of computation time. Take a look at the following for an example:

if (foo == true) {
    // do something for true
} else {
    // do something for false

Notice the condition: foo == true. The comparison of foo and true is unnecessary because foo is already a boolean value (or it’s a truthy or falsey one). Instead of comparing foo, simply use it as the condition, like this:

if (foo) {
    // do something for true
} else {
    // do something for false

To test for false, use the logical NOT operator, as shown below:

if (!foo) {
    // do something if foo is false
} else {
    // do something if foo is true

5 – Event Binding

Events are a complicated subject in JavaScript. Gone are the days of inline onclick event handlers (except in some very rare “splash page” cases). Instead, use event bubbling and delegation.

Let’s imagine that you have a grid of pictures that need to launch a modal lightbox window. Here’s what you shouldn’t do. Note: we’re using jQuery here, assuming you are using a similar library. If not, the same bubbling principles also apply to vanilla JavaScript.

The relevant HTML:

123456<div id="grid-container"><a href="someimage.jpg"><img src="someimage-thumb.jpg"></a><a href="someimage.jpg"><img src="someimage-thumb.jpg"></a><a href="someimage.jpg"><img src="someimage-thumb.jpg"></a>...</div>

The (bad) JavaScript:

$('a').on('click', function() {

This code assumes that calling the lightbox involves passing an anchor element that references the full size image. Instead of binding to each anchor element, bind to the #grid-container element instead.

$("#grid-container").on("click", "a", function(event) {

In this code, both this and refer to the anchor element. You can use this same technique with any parent element. Just make sure to define the element that should be the event’s target.

6 – Avoid Ternary Redundancy

The overuse of ternary statements is quite common both in JavaScript and PHP.

// javascript
return foo.toString() !== "" ? true : false;
12// phpreturn (something()) ? true : false;

A condition expression always returns a true or false value, meaning you don’t need to explicitly add true/false as ternary values. Instead, you could simply return the condition:

// javascript
return foo.toString() !== "";
12// phpreturn something();

PHP Tips

7 – Use Ternary When Appropriate

if...else statements are a central part of most languages. But doing something simple, such as assigning a value to a variable based upon a condition – well, they can junk up your code. Consider the following code:

12345678if ($greeting) {$post->message = 'Hello';} else{$post->message = 'Goodbye';}

This code can be reduced to one line, while still maintaining readability by using the ternary operator, like this:

1$post->message = $greeting ? 'Hello' : 'Goodbye';

It’s clear, concise, and gives you the functionality you need.

As useful as the ternary operator is, the most important guideline is not to over-use it! The goal of coding is not to cramp your logic into as few lines as possible.

8 – Throw Exceptions Instead of Inception-Style Nesting

Let’s face it: many levels of nesting is ugly and difficult to maintain/read. The following code is a relatively simplified example, but they get much worse over time:

010203040506070809101112131415161718192021222324252627282930313233343536373839// anti-pattern$error_message = null; if ($this->form_validation->run()){if ($this->upload->do_upload()){$image = $this->upload->get_info(); if ( ! $this->image->create_thumbnail($image['file_name'], 300, 150)){$error_message = 'There was an error creating the thumbnail.';}}else{$error_message = 'There was an error uploading the image.';}}else{$error_message = $this->form_validation->error_string();} // Show error messagesif ($error_message !== null){$this->load->view('form', array('error' => $error_message,));} // Save the pageelse{$some_data['image'] = $image['file_name']; $this->some_model->save($some_data);}

That’s some nasty code, but you can make it drastically cleaner by using exceptions, like so:

0102030405060708091011121314151617181920212223242526272829303132333435try{if ( ! $this->form_validation->run()){throw new Exception($this->form_validation->error_string());} if ( ! $this->upload->do_upload()){throw new Exception('There was an error uploading the image.');} $image = $this->upload->get_info(); if ( ! $this->image->create_thumbnail($image['file_name'], 300, 150)){throw new Exception('There was an error creating the thumbnail.');}} // Show error messagescatch (Exception $e){$this->load->view('form', array('error' => $e->getMessage(),)); // Stop method execution with return, or use exitreturn;} // Got this far, must not have any trouble$some_data['image'] = $image['file_name']; $this->some_model->save($some_data);

It might be the same number of lines, but it allows for considerably more readable and maintainable code. It also avoids those difficult debugging sessions, where you’ve missed a possible path through the if statement. Keep it simple!

Second Opinion: be very, very careful, when using exceptions for flow control. Refer herefor additional information.

9 – False-Happy Methods

Being exception-happy is far more advantageous than being false-happy.

Ruby or Python developers are used to watching for trivial exceptions. While that sound tedious, it’s actually quite a good thing. If anything goes wrong, an exception is thrown, and you instantly know where the problem is.

In PHP – and especially when using older frameworks, such as CodeIgniter – you get what I refer to as “false-happy code” (as opposed to exception-happy). Instead of having an exception get all up in your face, it just returns a false value and assigns the error string to some other property. This forces you to fish it out of the class using a get_error(); method.

Being exception-happy is far more advantageous than being false-happy. If an error occurs within your code (eg: could not connect to S3 to upload an image, or a value is empty, etc.), then throw an exception. You can also throw specific types of exceptions by extending the Exception class, like so:

1class CustomException extends Exception {}

Throwing a custom exception makes debugging considerably easier.

Tip 10 – Use Guard Clauses

It’s common to use if statements to control a function or method’s execution path. It’s tempting to test a condition and execute a lot of code when the condition results in true, only to simply return in the else statement. For example:

12345678function someFunction($param) {if ($param == 'OK') {$this->doSomething();return true;} else {return false;}}

This kind of solution, however, represents a potential for spaghetti code. You can make this code easier to read by reversing the condition. Here’s the better version:

123456function someFunction($param) {if ($param != 'OK') return false; $this->doSomething();return true;}

Isn’t that easier to read? It’s a simple change that makes a drastic difference in the readability of your code.

Tip 11 – Use while for Simple Iterations

The for loop is commonly used when you need, for example, a counter. Here’s a simple for loop:

123for (var i = 0; i < x; i++) { ... }

There are some very good reasons to use a for loop, but a while loop may be better if you just need something simple, like this:

12345var i = x; while (i--) { ... }

It doesn’t work in every situation, but it is an alternative.

Tip 12 – Keep Methods Maintainable

This is easily one of the most frequent mistakes made by newcomers.

A method is an object’s unit of work, and limiting your methods to a maintainable size makes your code easier to read and maintain. Take a look at the following monster method:

010203040506070809101112131415161718192021222324class SomeClass { function monsterMethod() {if($weArePilots) {$this->goAndDressUp();$this->washYourTeeth();$this->cleanYourWeapon();$this->takeYourHelmet();if($this->helmetDoesNotFit())$this->takeAHat();else$this->installHelmet();$this->chekcYourKnife();if($this->myAirplain() == "F22")$this->goToArmyAirport();else$this->goToCivilianAirport();$this->aim();$this->prepare();$this->fire();}} }

Consider breaking this monster method into smaller, descriptive chunks, each being responsible for performing one well-abstracted action. This is easily one of the most frequent mistakes made by newcomers.

01020304050607080910111213141516171819202122232425262728293031323334353637383940class SomeClass { function monsterMethod() {if($weArePilots) {$this->prepareYourself();$this->tryHelmet();$this->findYourAirport();$this->fightEnemy();}} private function prepareYourself() {$this->goAndDressUp();$this->washYourTeeth();$this->cleanYourWeapon();$this->chekcYourKnife();} private function tryHelmet() {$this->takeYourHelmet();if($this->helmetDoesNotFit())$this->takeAHat();else$this->installHelmet();} private function findYourAirport() {if($this->myAirplain() == "F22")$this->goToArmyAirport();else$this->goToCivilianAirport();} private function fightEnemy() {$this->aim();$this->prepare();$this->fire();} }

There we go: cleaner, and easier to debug!

Step 13 – Avoid Deep Nesting

Too many levels of nesting makes code difficult to read and maintain. Consider the following:

0102030405060708091011function doSomething() {if ($someCondition) {if ($someOtherCondition) {if ($yetSomeOtherCondition) {doSomethingSpecial();} doSomethingElse();}}}

You can refer to Tip #10 to make this code easier to read by reversing some of the conditions.

010203040506070809101112131415function doSomething() {if (!$someCondition) {return false;} if (!$someOtherCondition) {return false; } if ($yetSomeOtherCondition) {doSomethingSpecial();} doSomethingElse();}

This code is considerably cleaner and produces the same results as before.

When you find yourself with nested if statements, closely examine your code; your method may be performing more than one task. Here’s an example:

1234567function someFunc() {if($oneThing) {$this->doSomething();if($anotherThing)$this->doSomethingElse();}}

In these cases, extract the nested methods into their own method:

0102030405060708091011function someFunc() {if($oneThing) {$this->doSomething();$this->doAnotherThing($anotherThing);}} private doAnotherThing($anotherThing) {if($anotherThing)$this->doSomethingElse();}

Tip 14 – Avoid Magic Numbers and Strings

Magic numbers and strings are evil. Define variables or constants with the values you want to use in your code.

Instead of this:

12345function someFunct() {$this->order->set(23);$this->order->addProduct('superComputer');$this->shoppingList->add('superComputer');}

Specify what those numbers and strings mean, and assign them to a variable with a meaningful name, like this:

12345678function someFunct() {$orderId = 23;$selectedProductName = 'superComputer'; $this->order->set($orderId);$this->order->addProduct($selectedProductName);$this->shoppingList->add($selectedProductName);}

While some might argue that we’re needlessly creating variables, the performance hit is negligible. Readability always takes priority. Remember: don’t optimize for performance until you can describe why it’s necessary.

Step 15 – Use Built-In Array Functions

Use the built-in array functions instead of foreach().

Not Ideal:

123foreach (&$myArray as $key =>$element) {if ($element > 5) unset ($myArray[$key]);}


1$myArray = array_filter($myArray, function ($element) { return $element <= 5;});

PHP offers a variety of array methods. They’re confusing at first, but take a day and try to learn as many as possible.

Tip 16 – Don’t Overuse Variables

It’s easy to overuse variables, but remember that variables are stored in memory. For every variable you create, the system needs to allocate memory for that variable. Look at this code:

12345public function get_posts() {$query = $this->db->get('posts');$result = $query->result();return $result;}

The $result variable isn’t necessary. The following code omits that variable:

1234public function get_posts() {$query = $this->db->get('posts');return $query->result();}

The difference is subtle, but we were able to improve this simple example. We kept the $query variable because it relates to the database, while $result related more to our logic.

General Programming Recommendations

Tip 17 – Rely on the Database Engine

Anything less is a code smell.

A database is designed for working with data; use its tools and abilities to make your application more efficient.

For example, you can avoid redundant database queries in many circumstances. Most plug-and-play user management scripts use two queries for user registration: one to check whether the e-mail/username already exists and another to actually add it to the database. A much better approach is to set the username field to UNIQUE. You can then use native MySQL functions to check whether or not the record was added to the database.

Tip 18: Properly Name Your Variables

The days of naming your variables xyz are over (unless, of course, you’re dealing with a coordinate system). A variable represents an important part of your logic. Don’t want to type a long name? Get a better IDE. Modern IDEs auto-complete variable names in a blink of an eye.

Always be coding for six months from now. Are you certain that you’ll remember what that $sut variables refers to a year from now? Likely not: be descriptive. Anything less is a code smell.

Tip 19 – Methods Represent Actions

Mistakes happen; the key is to learn from them.

Name your methods with verbs representing the action they perform. The main concept is the exact opposite of the variable naming scheme. Use a short, but descriptive, name in a large scope (ie: public methods), and use a longer and more detailed name in a short scope (ie: private / protected methods). This helps make your code read like well written prose.

Also avoid any language other than English, when naming your methods. It’s annoying to read function names like 做些什麼() or делатьчтото() in your project. It may be impossible for other programmers to understand your intent. While it might seem arrogant, for better or worse, English is the adopted language of code. Try to use it, if we’re working on a large team.

Tip 20: Structure Recommendations

Finally, code structure is just as important to readability and maintainability as anything else we’ve talked about today. Here are two recommendations:

  • Indent with four or two space-width tabs. Anything more, such as eight spaces, is too much and will make your code difficult to read.
  • Set a reasonable line-width and respect it. Forty characters in a line? We’re not in the ’70s any more; set your limit to 120 characters, put a mark on the screen, and force yourself or your IDE to respect that limit. 120 characters gives you a nice width without making you scroll.

The first and most important search engine optimization step is keyword research. What is keyword research? Simply put, it’s figuring out what people might search for in order to find what your website offers — what keyword topics best identify your website content.

In this step of our SEO tutorial, you learn the basics of how to do keyword research, try out some free keyword research tools, and start your SEO plan of attack!

Getting Started with SEO Keyword Research

The first task is simply brainstorming. Ask yourself some basic questions to select keywords that might make good targets for search engine optimization, like:

  • What is your website content about?
  • What would you ask a search engine to find what your website offers?
  • What do you think other searchers would ask for?
  • What are your most popular pages/items about?

Most people can make a short (or long) list of keywords that might be used to find their own site. But ask other people these questions and write down their keyword suggestions, too. Doing so will help you go beyond the jargon words that only you and insiders know. When doing keyword research for SEO, you want to discover what real people in your target audience would call what your site offers.

Don’t limit your ideas; brainstorm whatever subjects and phrases could lead the kinds of visitors you want to your site. Type them into a spreadsheet. Your brainstorming will “prime the keyword pump.”

This initial list will be expanded upon and refined in the next few steps, but start with the logical keywords.

Find Keywords People Already Use for Your Business

If your site is already live, you may have hidden keyword gold just waiting to be dug up.

  • A good place to look for keywords is your internal site search. Offering visitors a search box within your site is good for users but also good for you, because it collects search query data. Looking at these queries primarily helps you improve usability (since it reveals what people want to see, what website content may be missing, and where your site navigation is weak). But you may also find nuggets of keyword gold, useful phrases that people search for. Add those to your list.
  • You can find valuable data using Google Search Console (formerly called Webmaster Tools). ​This free service from Google gives website owners a wealth of information about their own sites (especially with Google Analytics set up, too). Particularly useful is the Search Analytics report; when you look at it by Queries, you can see what key search terms are bringing up your web pages in Google searches. Google also uses Search Console to notify you of errors or penalties, and you’ll need the diagnostic SEO tools offered there to keep your site in good health. So don’t miss out.
  • Dig through your customer communications to find additional, actively used keywords. Talk to your customer service people to find out what customers are asking about (in their words). Also check social media sites like Facebook and Twitter to read what your community has said, and search for your primary keywords to discover how people are currently talking about your products, services or subjects.

Get Keyword Suggestions

Take advantage of free keyword research tools to find additional keywords. Our Keyword Suggestion Tool below shows you keyword ideas that are related to any seed word you enter. Type in one word or phrase at a time. The resulting suggestions come from actual search query data, so select the keywords that match your website content and add them to your growing keyword research list.

SEO Tools – Use our free Keyword Suggestion Tool:

Enter Search Word    

What the Keyword Data Tells You

With our tool you can see keyword suggestions with data on the average click-through rate (CTR) and cost per click (CPC) for advertisers bidding on that keyword. It also reveals how many web pages contain those words in their Title tag (not necessarily as an exact phrase) under AllInTitle. These metrics indicate how competitive a keyword phrase may be.

You can also see an Activity column, which shows the approximate number of monthly searches for that keyword (also known as “search volume”). CAUTION: Don’t get greedy looking at keyword activity counts. Record this statistic with the keyword in your spreadsheet. But keep in mind that a keyword’s search volume should not overly influence your choices, especially at this point. You want to select keywords only if they reflect what your website is truly about. Going after high-volume keywords that don’t relate to the rest of your content would be deceptive and even punishable as spam.

Rolling or wheeled backpack

What should you call this?
Keyword research can tell you.

How Should You Use Search Activity Data?

Search volumes do cast light on your keyword research. They reveal what people actually call things, and they help you prioritize similar keyword phrases.

For instance, a retail site might choose to use “rolling backpacks for kids” (1,600 monthly searches) rather than “wheeled backpacks for kids” (320 monthly searches) because the first keyword phrase gets searched 5 times more often. However, that retailer should not pin its hopes on ranking for the broad term “backpacks,” no matter how attractive that word’s sky-high search volume looks.

The moral: Don’t be tempted by the huge numbers for broad keywords. With enough time and effort you might be able to rank for them, but you’d be battling large, established brands for unfocused visitors that might not even be ready to buy. (We’ll talk more about broad keywords later in the tutorial.)

Save that keyword spreadsheet! You’ll find out more about how to select your best SEO keywords in the coming steps.

As a beginner to SEO it can be a little overwhelming. There’s an overload of information to filter through. It can appear to be very technical, complicated or spammy depending on how you look at it.

Thing is, the basics are simple: do keyword research + optimize the website + build links. When it boils down to it, that’s all you have to do.

You do not need to spend thousands of dollars on courses and conferences to learn the “SEO Secrets”. There are plenty of free SEO tutorials online.

Whether you’re looking to do SEO for your personal blog, or trying to increase your value to employers (SEO/SEM was the #8 most desired skill of 2018), or you’re looking to train employees in SEO, this free post is all you need to get started. Read these tutorials, set up a website, and start ranking!

Introduction to SEO

Google’s SEO Starter Guide by @Google

Google’s search engine optimization starter guide is a good place to start. It begins by walking you through all of the on-page basics including setting proper title tags, meta descriptions and all that SEO 101 stuff.

The guide continues on to explain how to promote your website, what a no-follow link is and touches on the importance of being mobile-friendly. Seeing as SEO revolves around Google, it’s a good idea to hear what they have to say about it and what Google views as important factors.

Moz’s Beginners Guide to SEO by @Moz

Moz’s Beginner’s Guide to SEO is another good resource if you’re looking for an introduction. It covers more topics than Google’s version and talks about keyword research and some link building methods. Moz’s guide gives a solid overview of SEO as a whole but doesn’t dig deep in to any one subject.

It’s basically the beginner’s bible to SEO! Moz is also a great place to hang out if you’re just starting out too. Get involved with the community and you’ll learn a lot.

Keyword Research

Keyword research is arguably the most important part of SEO. Even if you have the most powerful backlinks in the world – if nobody’s searching for the keywords you’re optimizing for – there’s no hope for traffic. Good keyword research is a balance of picking profitable keywords with enough search volume and that you can actually compete for.

Keyword Research: The Definitive Guide by @Backlinko

Brian Dean’s blog is a goldmine of SEO tutorials. His guide to keyword research is a good place to start for keyword research. He gives a fantastic tutorial on using the keyword planner which is useful for beginners. The guide then walks through clever ways to find long tail keywords and how to evaluate commercial intent. If you’re new to keyword research there’s no better guide to read.

How to Do Keyword Research in 2018 by @nick_eubanks

In my opinion, Nick Eubanks is at the top of the SEO world when it comes to keyword research. Meant for an intermediate to advanced SEO, the course is broken down in to 13 clear sections. Nick’s guide on keyword research is updated for SEO in 2018. He details his exact process and tools he uses, so you can follow his keyword research process step by step. He dives into determining search intent, a factor you can’t forget during your research.

On-Page & Techincal SEO (Auditing)

On-page is a big part of the equation of to be successful in SEO. While the basics are relatively simple – title tags, meta description, internal links – it can get complicated. If you’re looking for tutorials for your personal WordPress website, Moz’s Beginners Guide will suffice.

If you’re looking to optimize enterprise websites with thousands (or millions) of pages you have some reading to do. Knowing how to deal with a website with four languages, duplicate content, tricky URL parameters and a dev site that hasn’t been blocked from the search engines separates the SEO experts from the startups.

Step by Step Checklist Guide to Performing a Technical SEO Audit by @Ryanwashere

This is a great blog post by Ryan Stewart on his process for auditing large scale websites. He gives you the complete list of tools he uses and walks you through the different steps he takes to complete the audits. It includes advanced technical SEO tactics like using video XML files and pagination. Ryan doesn’t add any fluff – it’s short and to the point – which is a good thing.

DIY Self-Guided Site Audit Template by @AnnieCushing

Okay, okay so I’m cheating a bit… This guide/template isn’t free (it costs $295) BUT it may be worth it if you plan on doing SEO audits in the near future. It’s broken up in to 19 sections with a whopping 197 checkpoints. Each check even has step-by-step instructions on addressing and fixing the issues. If you need advanced guidance on an SEO audit for a client, this is the template to get.

Link Building

For some reason the importance of building links is still a common debate among SEOs. The truth of the matter is… Anybody who disagrees that links are a key part of the equation has clearly never ranked a website for competitive terms before. Links help set yourself apart in the popularity contest happening on Google. There are hundreds of ways to build links and if you’re a beginner it’s best to get your hands dirty and see what works.

Link Building Tactics – The Complete List by @PointBlankSEO

You can’t really talk about link building without including Jon Cooper in the conversation, he’s been a go-to on the topic for a few years now. This list of link building tactics that he built is a great resource for anybody looking to build links. It includes a sortable list with the time to execute, link value, and dependency on other sources.

Whether you’re stumped where to start with a new site, or you’re looking for ideas for a 15 year old projects, there’s something here for you. Jon’s also created a link building course for $67 which could be well worth the money if you’re going to be building a lot of links.

The Noob Friendly Guide to Link Building by @top5seo

Want to learn everything you need to know about link building in one tutorial? David McSweeney outlined link building perfectly in a 6 chapter guide. Its written for a beginner, but is packed with tips that even an experienced SEO will have a few take-aways. He walks through his link building process using Ahrefs as his tool of choice for link research. He covers all of the top strategies: link bait, ego bait, broken link building, guest blogging, and more.

Link Building Using Majestic by @Majestic

If you’re going to do any serious link building you’re going to have to use one, or both, of Majestic or Ahrefs. These are tools which allow you to discover backlinks to any website which can help tremendously for link building efforts.

This guide by Ken McGaffin gives a great intro to building links and using Majestic as a helper. He walks you through building a simple link building process, analyzing & replicating competitors and understanding key link metrics. It’s far from the end-all-be-all of link building guides but is a useful resource for people unacquainted with these backlink discovery tools.

Local SEO

Local SEO is the practice of optimizing a website for searches based on a user’s current location. If a company is geo-specific at all (ex. coffee shop in Toronto), they can most likely benefit from Local SEO. It can help businesses rank for local search terms and move them up the list on Google Maps.

Local SEO: How to Rank Your Local Business by @matthewbarby

I think this guide does a great job at explaining the foundations of Local SEO. It’s succinct and gets to the point by explaining the importance of a proper Google My Business listing, citations, reviews and links. Matthew also gives some good link building techniques and explains how to implement on a website. Local SEO isn’t overly complicated, you just need to do a few things properly, and Matthew explains them well.

How to Attract Local Customers: A Complete Guide to Local SEOby @neilpatel

If you’re looking for a thorough walk through of Local SEO, Neil Patel put together a pretty darn good guide. The best part about this guide are the visuals which accompany it – they make every point clear and actionable. Neil goes in to depth on each point and even includes a section on local content marketing which may give you some good ideas.

Bonus Tool: Local SEO Checklist by @synupinc

Although this isn’t a tutorial, it’s a useful resource for anybody looking to do Local SEO. It’s basically a checklist you can go through when running a Local SEO campaign which includes: setting clean URLs, picking the right category on Google My Business and adding a CTA to the website. It’s a great place to double check that you’ve ticked all the Local SEO boxes.

Page Speed

Page speed is now a search ranking factor (at least with Google) but it affects much more than that. Having a slow website can increase your bounce rate and page load speed heavily impacts a website’s overall conversion rate.

A Beginner’s Guide to Website Speed Optimization by @KinstaHosting

Kinsta has put together an in-depth 6 chapter guide on website speed optimization. They cover everything a beginner needs to know when optimizing page speed: the importance of having a fast website and its impact on conversions & SEO, how to test website speed, and how to improve it for your own or client websites. It is very WordPress focused, but all the points they teach are relevant to any website. I’m only listing one guide in page speed because this is the only one you need.

Mobile Search

Beginning in 2015, Google began using mobile friendliness as a ranking factor. Now Google has announced that they will switch to a mobile-first index at some point during 2018. Seeing as mobile web usage has now eclipsed desktop you need to be optimized for mobile anyway.

Mobile Search & SEO, The Digital Marketer’s Guide by @Builtvisible

Builtvisible’s guide to mobile SEO does a great job of explaining the importance of being mobile-optimized and gives a thorough explanation of how to make it happen. This guide walks you through configuring a website to be mobile friendly, indexing & promoting apps, and developing mobile content. It’s easy to follow along as they give visual and code examples for every point made. If you’re looking to go mobile this is a great place to start.

Google Penalties & Cleanup

Google penalties are something that all SEOs should be aware of and be able to identify. Whether you’re hit for unnatural link building, thin content, or any of the other penalties, they can be a frightening event to wake up to. Good thing is, most can be remedied if dealt with properly.

The Expert’s Guide to Google Penalty Removal by @webpagefx

This guide got surprisingly few social shares… Possibly because they didn’t promote it enough, but wow is it thorough. They walk you through an intro to Google penalties, identifying if a website has one, steps to fixing the issue and reconsideration requests. WebpageFX even throws in a few case studies of some of the penalties they’ve fixed for good measure. Getting a Google penalty can be a nightmare, but this guide can help you remedy the situation.

SEO Tools

SEO Tools: The Complete List by @Backlinko

If you’re going to take SEO seriously you can’t avoid using the tools available to you. They can save you or your employees tons of time and some are simply necessary to do the job. There are free tools available but some paid tools are well worth the money. Brian Dean has put together a thorough list of SEO toolsbroken down in to six sections: link building, technical SEO, keyword research, rank tracking, content optimization and backlink analysis. Browse them and find the right ones for you!

127 Experts Reveal Best Tools For Keyword Research in 2018 by @RobbieRichMktg

Don’t want to trust one man’s opinion alone on the best SEO tools? Robbie Richards asked 127 professionals in the industry if you could only use 3 tools for keyword research, which 3 would you choose? He tallied up the answers for a leaderboard, but you can see each response too. Some of the experts serve up great tips on how they make the most of their favorite tools. It’s a nice mix of both free and paid tools you need to succeed at SEO.

Though some try to categorize SEO as a science, the reality is that SEO is as much art as it is science, perhaps more so. Regardless of your experience or where you decide to start with your SEO studies, it is important to note that SEO is an ever-evolving discipline, and it takes time to get a good grasp on how the intricacies of the process of optimization work. 

Fixing SEO Problems

Optimized websites must not be plagued with basic issues that can negatively impact the search engine friendliness of the site. To accomplish this, there are some basic guidelines to follow in order to address the most important of these issues.

Fixing Duplicate Content

Many sites suffer from lackluster rankings because of duplicate content and the mistaken belief that any content is good content. Good content may be king, but duplicate content is poison to the health of a website. Eliminate all and any duplicate content you may have on your site, whether the content was generated intentionally or it is just a function of bad information architecture design.

Short, yet descriptive URLs which are free of session IDs

URLs are a good way of telling visitors what the page is all about (if nothing else). A URL such as tells the user nothing about the page. Why not use something like There is no good reason for not using the short and descriptive URL. Aside from making the site more user-friendly, the short descriptive URLs will also be search engine friendly. The keyword in the URL will contribute to improved rankings.

Customizable titles tags

As the most important element of the on-site optimization process, the title tag should be utilized to the fullest extent, and this cannot be done unless each and every page on your site has an independently customizable title tag.

Independently customizable description and keyword meta tags

Even though the meta tags are the (much) weaker of the title tag, it is still advisable to customize the keyword and description meta tags. If for nothing else, the description meta tag can be used to provide the search engines relevant and optimized marketing text for the snippet displayed on the search engine result pages (SERPs).

Complex and non search engine friendly navigation

The search engines must be able to index your pages before they can rank them. So if the architecture of your website is a roadblock to the indexing of your pages, no amount of content optimization will help the ranking potential for your website.

Develop a simple to use and logical site structure, and make sure the navigation is not a hindrance to the search engine spiders (e.g. don’t hide your navigation in Flash or JavaScript), but a map for finding each and every page. Note: Even with a perfect navigational structure, you will still benefit from having an actual sitemap.

Keyword Research

Before doing any search engine optimization for your website, it is necessary to set goals towards which you can strive. The most basic of these goals is ranking for a particular set of keywords. Though you may think the most popular keywords in your industry are the ones for which you should rank, it is important to keep in mind that quality (like in many other things), as opposed to quantity, is what is important.

To illustrate, let’s say you have a website that sells blue (and only blue) widgets. Your first thought, when it comes to rankings and keyword selection, may (and most likely) will be that your site has to rank for the word ‘widgets’ in order to be successful. So let us see if that is in fact true.

Let us say that the keywords ‘widgets’ has a monthly search volume of 5,000. And let’s also say that through incredible efforts (since ‘widgets’ is going to be a pretty difficult keyword to rank for) you (or the company you hire) manage to get your site to rank in the #1 position in all search engines. Let us also assume that every search engine user who searches for the keyword ‘widgets’ ends up clicking on the #1 listing (which is not the case). Now, the 5,000 searches conducted by search engine users for the term ‘widget’ can be broken down into two very broad categories: those who are looking to buy a widget (of some color), and those who are simply looking for information on widgets. What is also true, is that those looking to make a purchase are likely going to be interesting in a variety of colors, no only blue widgets. It should be clear by now that a big portion of the 5,000 visitors that will be coming to your site by the virtue of your unlikely high rankings are not going to be interested in what you have to offer since your website offers only blue widgets. This is the most fundamental reason, why keyword research and selection are vital for a successful and sustainable search engine optimization campaign.

Since your website specializes in blue widgets, wouldn’t it make more sense to ignore the deceptively large search volume of the term ‘widgets’ and instead concentrate your efforts behind ranking for the term ‘blue widgets’ (and variations thereof)? If you are unsure of the answer, it is “Yes, it does make more sense to ignore the deceptively large search volume.” Aside from lack of specificity, the term ‘widgets’ will be very difficult to rank for, since it is a more generic term compared to ‘blue widgets’.

The level of competition of a keyword will dictate the amount of effort it will require to attain high rankings for said keyword. So given the fact that a generic term like ‘widgets’ is extremely difficult to rank for, and is much less likely to help create a conversion for your website compared to a term such as ‘blue widgets’, wouldn’t it make sense to pursue rankings for a keyword which has less competition, and a higher potential to send well-converting traffic? The Answer, again, is “Yes, it does make sense.”

There are a variety of SEO tools you can use to research keywords, but one of the keyword research tools which has to the most up-to-date and reliable data is the Google AdWords Keyword Tool. You might say, “But, Mr. SEO article writer guy, that is a keyword tool specifically designed for AdWords, which is a pay per click advertising platform.” And Mr. SEO article writer guy would say, “What is the difference? The tool still provides the same exact data you would need to evaluate whether or not to pursue rankings for a particular keyword.”

Now that we have that settled, make sure you pay attention when it comes to keyword selection, making sure the keywords for which you will expend effort in order to rank are not going to be a waste of your time and money.

Understanding your niche, the competition, and what your site is capable of

If you’ve recently started an auction site, ebay is not your competition. Keep that example in mind when you are trying to figure out what keywords to pick. If your site (a single page is not a website) is new (less than a year old), you will need to make some compromises about the type of keywords you can start your optimization process with. Going back to the auction site example, you would be well advised to stay away from the keyword ‘auction’. This is not to say that you should ignore the prominent keywords for your industry, but you also should not expect to see results for a long while.

Developing a list of 80 to 100 words (the list will be narrowed down)

Start with a large list of keywords and narrow down to pick the ones best suited for your site, product (service) type, service area, and so on. What follows is a list of quick tips for narrowing down the list of keywords.

Start with the most popular keywords in your industry

Use the myriad of research tools available online (e.g. Google Adwords Keyword Tool) to expand your list based on what you think are the most popular keywords.

Narrow down the list to areas you specialize in (if any)

If you sell shoes and specialize in walking shoes, don’t use the term “women’s shoes” just because it has more searches. This by no way means that you should not include “women’s shoes”, but perhaps your optimization will be better served if you used “women’s walking shoes”. The search numbers may be much lower, but you’ll get the type of visitor that is much more likely to buy, once on your site.

Don’t choose keywords solely based on the search volume

As stated above, don’t be swayed by big numbers. A keyword with a search volume of 20,000 per month will have a high level of competition and it may take your site a year or two to get to the first page of the listings (not even #1) , and even then you will only get a fraction of the 20,000 visiting your site. What if you pick a keyword that has only 1000 searches but you are able to rank #1 for it within a few months? Getting all or a big chunk of 1000 within a few short months is much better than getting little to none of the 20,000.

No matter how many products you have, don’t start the initial stage of your optimization with more than 30-50 keywords

Selecting a reasonable number of keywords will help you better utilize your resources, and to build long term and sustainable success on short term achievements.

Choose a balance of low, mid and high competition keywords (based on your site’s ranking potential*)

Though you should not ignore the high end keywords even if your site is brand new, the proportion of the hyper-competitive keywords should be smaller compared to the mid-range and low-end keywords. Remember, do not get distracted by large search numbers.

Optimizing Your Website

These instructions are meant to be an introduction into the world of SEO. They can also be used to make sure that the SEO company that you have hired is doing a thorough job.

Customized Titles

In ‘Eliminating Problems’ portion of this tutorial we spoke about the ability to independently customize each and every page title. Take advantage of this capability and customize the titles of your pages to accurately describe the content of your pages.

Customized description and keyword meta tags

Similar to the title tag, but less important (as far as SEO is concerned), the description and keyword meta tags should be customized to reflect the content of the page they represent.

Customized headings and sub headings for your pages

Headings (H1-H6) can and should be thought of as titles and subtitles (or headings and subheadings), and should be used exactly as they were intended. The most important topic of your page would have an H1 heading, followed by a subsection of that topic which should have an H2 heading (and so on). This structure assumes that you have subsections to your topic on a particular page; if you do not then of course you would simply use an H1 as the main heading and leave it at that. Just like the title, and meta tags, the headings should be descriptive.

Well written, user-centric content

When writing content, the most important thing is to make sure it is of high quality, unique, and useful in some way–it can be full of facts, ideas, entertaining prose or something that sets it apart from the other pages on the Internet that cover the same topic. If your content brings nothing new to the table, it won’t be allowed at the table at all–the table being ‘good rankings’.

Do not spend your time worrying about keyword density, and concentrate the quality. If you are writing about widgets, you cannot help but mention widgets in your text, just be mindful of the variety of keyword you are targeting and when appropriate use keyword variations to avoid overuse of a particular keyword.

Logical and helpful internal link structure (in-line links)

As with most (if not all) things in search engine optimization, logic is king. So when it comes to internal linking, logic should be your main guide. You should be able to justify In-line links in your content by the benefit they provide to the reader. Does a particular keyword mentioned in your content on page ‘A’ have a dedicated page (page ‘B’) on your site? Why not link that keyword to page ‘B’? In some cases you may want (or need) to develop new content to facilitate this process.

Things To DOThings To Not DO
Make your titles and headings descriptive but simple.Stuff your titles with keywords, or repeat the same keyword multiple times.
Make sure your textual content is well researched, well written, and useful in some fashion.Write content that is stuffed with keywords, but offers little value to site visitors.
Create content that addresses a specific topic while using relevant keywords.Select a list of keywords and create “optimized” pages for each individual keyword, which consists of nothing more than rehashed paragraphs with mainly the targeted keyword as the only variation. You shouldn’t have pages like “Blue Widgets Los Angeles”, “Blue Widgets San Francisco”, “Blue Widgets New York”.
Include keywords in your file names.Stuff your file names with keywords, creating monstrosities such as “cheap-blue-widgets-in-los-angeles-blue-widgets.html”
Always work on improving your content and keeping it up-to-date.Constantly add new pages to the site which offer no useful information, nor are interesting nor entertaining, but are there only to serve the search engines and to show them how much optimized content you have.

Link Building

Before you embark on a link building campaign, ask yourself whether you have anything worth linking to, otherwise you’ll be stuck doing the same thing millions of other website owners do, which is low quality linking campaigns (e.g., free directory submissions, blog and forum comments, etc). Every successful link building campaign starts with a website that has content worth linking to. If you don’t have that, your time and money will be better spent on developing such content.

Assuming you have some wonderful, and unique content on your site, there are some basic linking strategies you can utilize to get you started on the right track.

Niche directory submissions

Manually researched niche directories which can usually be found on industry related sites. These types of directories can either be free or offer a paid option. In either case, you’ll get a link from a relevant website. These types of links are not of the highest quality, but will do well in establishing a nice foundation for your website’s link profile.

Link requests

Sending link requests to manually researched websites which offer complementary content, whose users could benefit from information available on your site.

Paid directory submissions

High quality paid directory submissions which offer a category suitable for your product or service. Examples of such directories include Yahoo! Directory,, and Best of the Web.

Creating linkable content

If you are an expert in your field, you can utilize your expertise to write helpful articles for other websites which might benefit from your work. In return for providing such websites with original content, you would request backlinks from bylines included from within those articles or blog posts. Keep in mind that you would not want to publish an article at more than one location, as the effect created by the duplicate content will be counterproductive, as search engines only assign value to the content they perceive to be the original version.

Links from organizations

Join industry organizations (such as local chambers of commerce) which include a link to their members’ websites. This list represents an introduction of what is possible when it comes to link building.