WordPress SEO Without a Plug-in

It is possible to implement onsite SEO in WordPress without ever using a plug-in. This not only simplifies your SEO onsite implementation, but it’s much safer for your blog. A lot of plug-ins in WordPress have security exploits associated with them. Even though the WordPress core files are constantly being improved by the WordPress team, the plug-ins are individually maintained by developers outside of WordPress.

Thus, if the developer has failed to update the plug-in over time, it can fall victim to security vulnerabilities that could in turn result in your WordPress website being compromised by hackers. Like all code editing, it is extremely important that you back up your original WordPress theme files before making any changes as suggested in this tutorial. This way, if some tweaks don’t work for your template, you can easily changes back to the original code.

The WordPress Title Tag

The default title tag in WordPress may need some adjustment. You might want to remove the redundant words in the title in the hope of giving more emphasis to your true keywords. For example, in the default WordPress title:

Five Serious PHP Development Mistakes Commonly Done by Websites | Test wordpress 3.0

You might want to remove the repetitive “Test WordPress 3.0” in all of your WordPress posts and pages. On the other hand, you want to assign a specific title tag to your WordPress front page that is unique to all of your pages.

To solve this issue without a plug-in, implement the code below to the <head> section of your WordPress template. Follow the steps below:

1. Log in to your WordPress admin panel.

2. Go to Appearance and click “Editor.”

3. Replace the following default PHP code below:

  * Print the <title> tag based on what is being viewed.
 global $page, $paged;
 wp_title( ‘|’, true, ‘right’ );
 // Add the blog name.
 bloginfo( ‘name’ );
 // Add the blog description for the home/front page.
 $site_description = get_bloginfo( ‘description’, ‘display’ );
 if ( $site_description && ( is_home() || is_front_page() ) )
  echo " | $site_description";
 // Add a page number if necessary:
 if ( $paged >= 2 || $page >= 2 )
  echo ‘ | ‘ . sprintf( __( ‘Page %s’, ‘twentyten’ ), max( $paged, $page ) );

With this:

if (is_front_page()) {

// Homepage title tag

echo "<title>This is your homepage title tag</title>";
} elseif (is_single()) {

//This is your post title

echo "<title>";
echo "</title>";

} elseif (is_page()) {

// WordPress pages title

echo "<title>";
echo "</title>";
} elseif (is_archive()) {

// WordPress archive title tag

echo "<title>";
echo "</title>";
} elseif (is_404()) {

// WordPress 404 page title tag

echo ‘<title>Page not found:  Yourwebsite.com</title>’;
} else {

// for other pages not mentioned above

echo "<title>";
echo "</title>";

Before saving the changes, make sure you specify your ideal WordPress homepage/front page title tag. You can specify it by replacing the text “This is your homepage title tag” in this line above:

if (is_front_page()) {

// Homepage title tag

echo "<title>This is your homepage title tag</title>";

What is the result of this process?

1. You can assign any front page title tag you want.

2. The post title as well as the page title are now entirely unique and do not contain the repetitive “Test WordPress 3.0.”

3. You can customize the title tag for your 404 page.

SEO Friendly URL Permalink Structure

By default, WordPress does not implement any SEO friendly URLs. For example, the URL should look like this:

Handling Duplicate Content

This URL structure does not contribute to your onsite SEO score. To do this, you can simply take advantage of WordPress’s built-in permalink functionality. This is best done before Google has indexed your website, and before you launch your website on the Internet.

It is not advisable to implement a change in the permalink structure if you have already launched your website and a lot of your blog posts are already ranking in Google.

Follow the steps below:

1. Log in to your WordPress admin panel.

2. Go to Settings and click “Permalink.”

3. Under “Common settings,” you’ll see that the settings are at “Default.” For example: http://www.yourwebsite.com/?p=123

4. The most recommended permalink structure to give your WordPress pages is to post a static HTML extension; this might not work in all templates, but you can it a try. To do this, select “Custom Structure” under “Common Settings,” and then, in the box beside “Custom Structure,” put this:


For example, it looks like the image below:

5. Click “Save Changes”.

What is the result? The URL will be rewritten from:

Starting Off Your SEO Campaign



{mospagebreak title=Header Tag Implementation}

Some templates do not properly implement header tags for organizing content. The most recommended content structure in WordPress is as follows:

The H1 tag is recommended, as well as the H2. But only the H1 tag is dynamically coded to your WordPress template. You can only add the H2 tag when you are writing the post and need to organize your content into sub-topics.

Some templates have already hard-coded H1 tags. To check:

1. Log in to your WordPress admin panel.

2. Go to Appearance – Editor.

3. Click “Single.php” or “loop-single.php.”

Make sure you find this line of PHP code:

<h1 class="entry-title"><?php the_title(); ?></h1>

4. Click “page.php” or “loop-page.php”:

Make sure you also find this code:

<h1 class="entry-title"><?php the_title(); ?></h1>

If not, feel free to add the above line of code just above:

<div class="entry-content">

And then check the results. Tweak the style if necessary.

Duplicate Content between Archives and Categories

Most WordPress blogs by default use both archives and categories. Archives will group blog posts by date (e.g. months) and Categories will group blog posts by topics. With respect to search engine optimization, the categories carry much more importance than archives, because they categorize blog posts by topics, which have something to do with relevance.

Archives are also important to your users, to make it easier for them to locate a post by date. But Categories are given more emphasis in indexing and crawling. In this case, to prevent duplicate content between categories and archives, the following is recommended:

1. All archive URLs should be placed with:

<meta name="robots" content="noindex, nofollow" />

2. Categories URLs should be indexable or crawlable.

3. Other non-important URLs for Googlebots, such as 404, WordPress search results, and author pages should also be assigned <meta name="robots" content="noindex, nofollow" />

To implement this in your WordPress template, follow the steps below:

1. Log in to the WordPress admin panel.

2. Go to Appearance – Themes – Editor.

3. Click header (header.php) to edit this PHP file.

4. Copy and paste the following code next to your PHP title tag code, as discussed in the previous section:


if (is_category()) {

//Allow indexation of category URLs

echo ‘<META name="ROBOTS" content="INDEX,FOLLOW">’. "n";
elseif (is_404() || is_search() || is_author() ||  is_archive()) {

//Do not allow indexation and crawling of 404, search, author and archived pages

echo ‘<meta name="robots" content="noindex, nofollow" />’. "n";
else {

//For other URLs, not mentioned above such as post URLs, Page URLs – allow indexation and crawling.

echo ‘<META name="ROBOTS" content="INDEX,FOLLOW">’. "n";
Implementing the Link Rel Canonical Tag in WordPress

By default, the link rel canonical tag (http://googlewebmastercentral.blogspot.com/2009/02/specify-your-canonical.html) is implemented in WordPress. This is very important, because it resolves duplicate content issues. One great example of the importance of enabling the link rel canonical tag is when you are using Feedburner as your feed solution.

A link to your site originating from one of these feeds will resolve to a 301 redirection target to your website URL, such as this:


Now the canonical URL for the above URL is this:


Without the link rel canonical tag, Feedburner links cannot be credited to your site, since they contain dynamic parameters and query strings leading to canonical URL issues. This is one reason you should enable link rel canonical tag.

If you cannot find the default link canonical tag on your WordPress post, you need to upgrade to the latest version of WordPress and double check.

Implementation of Internal Links

Once you’ve written your great post, do not forget to link to other, related posts to get the benefits of internal links, which can have a strong impact on your rankings. Internal links also speed up the indexing of your website, since your content is well-linked, which makes it easier for a spider from the search engines to crawl it. Internal links also provide an easier way for search engines to spot popular posts on your blog, by relying on which post gets the most internal links. Mostly, this is the home page, or your other popular posts.

Linking is very easy; just use the standard hyperlink code:

<a href="http://www.thisisyourdomain.com/yourwonderpost.html">Your anchor text describing that post accurately</a>

[gp-comments width="770" linklove="off" ]