WordPress SEO is unique in the website world, due to the unique aspects of the WordPress content management system. While still essential for good search engine rankings, SEO for WordPress blogs is not the same as that required for regular websites or other content management systems.
Search engine optimization (SEO)refers to any actions taken to maximize the ranking position of web content in a search engines listing for any specific search term. SinceGoogletakes over 56% of total web advertising revenue and over 65% of all web searches, we shall use Google as an example of a search engine here.
In order to be listed, your web page, WordPress page or blog post must first be indexed by Google. Once a Google user searches for information, the search engine will scan the indexed pages for relevance to the words (character strings) used for the search. It will list the results in ascending order of relevance based upon over 200 factors. Only a very few in Google know what these factors are.
WordPress SEO is the art of anticipating what Google is seeking when you design your blog. A blog is a different animal to a regular static website, and while blogs are very attractive to search engines, they must also be designed to meet the needs of these search engines, particularly Google.
Here are the major factors involved in SEO for WordPress blogs. You should keep these in mind in everything you do on your blog and in the structure of the entire site. The importance of every one of these will outweigh by many times the effort you invest in them.
Getting exposure on Google for popular search terms in your niche can multiply your traffic by a factor of 10, or even 100 if you get ranked right up there. We shall start by explaining the basics of on-page SEO, and howWordPress SEO pluginscan be used to maximize your ranking potential.
On page SEO involves optimizing the components of your website or blog within the coding of the site as a whole that are scanned by the search engine crawlers or spiders. The visible portion of each page is contained within the Body tags of the pageHTML. The part visible only to the spiders is contained within the Head section.
We shall start with the head section and what is known as theMeta data.This is information used by search engines to establish the main theme of the page. There are several types of Meta data, and in WordPress, you have control over the following:
The title tag is used by Google as the heading for your listing in its search engine results pages (SERPS). WordPress handles the title tag differently to a normal website. Because it is a dynamic type of content management system, the blog title appears first in the title tag followed by the post title.
This is not good for your SEO because search engines give a higher weighting to the text at the beginning of the title, and less to the end. This is fine if you want your blog ranked only for the main page, but not if you want each post to be listed individually. You will find more about titles later when we go on to discuss the use of keywords. Our SEO Plugins section (below) explains how plugins can help you overcome this problem.
The Description Meta tag is used by Google for the description of your web page that appears in its listings underneath the title (your Title tag). This is what you enter into the Description section of your SEO plugin.
It should contain your main keyword early on, and any secondary keyword you have used in the title and the page content.
WordPress tags are fundamentally keywords that people can use to find your information. You can add a number of descriptive tags to your blog posts.
Go to your dashboard, and scroll down the left hand navigation until you come to Settings. Click on that, and will find the page for General Settings. The SEO factors here are your Site Title and Tagline. Permalinks should also be customized.
Site Title should be the title of your blog. It should contain the main keyword for your entire site. This keyword should appear at the beginning of the title rather than at the end, because as previously mentioned, Google gives more weighting to text at the beginning of a title tag than towards the end. The title should be no longer than 70 characters including spaces.
The Tagline will usually appear above your blog header. This should give a little more information about the site around 5-7 words is sufficient. For example, if your blog is about dog training, your site title could Dog Training and your tagline might be How to Train Dogs the Easy Way or Easy to Follow Dog Training Tips.
You should use the H heading tags to indicate to search engine robots the relative importance of the text on your blog page or post. This is where many people fail to maximize their on-page SEO. There are three very common major errors in the use of Heading tags.
Google usesXHTMLsemantics to determine the relative importance of the semantics (use of words) in your headings. You should never make heading text stand out using only HTML tags such as b, strong, u or font size declarations you must also use header tags. HTML provides six levels of heading from H1 H6. You will likely only ever use the first three.
The title of your blog should be contained within H1 tags but only on your main page. It is only on your main page that the blog title is the most important text. On other pages or posts, it is the title of the page or post that assumes most importance, not your blogs title.
Use H1 tags for the title of your post, then H2 tags for subtitles. Tertiary titles can be contained within H3 tags. If you have a header template that you use on every page, make sure that this does not include the XHTML header markup. Add that manually only to your main page, and mark up the main headers for your blog posts (containing the keyword for these posts) within H1 tags.
Never use this type of XHTML markup for sidebar headings unless they are keyword-rich. Then only use H4 H6 tags. It is highly unlikely for your sidebar to be the most important areas of your page if it is, then your SEO needs revision!
The term keyword density or KD, refers to the number of keywords in your text as a percentage of the entire word count of the page. Say you use the keyword dog training five times in a 500 words blog, your KD would be 1%. If you used it 15 times, your KD would be 3%.
There is a great deal of discussion and disagreement over the optimum keyword density for web content, whether in a regular web page or a blog post. These are just the same in Googles eyes. In fact, there is no such thing as optimum keyword density. If you worry about keyword density then you have a lot to learn about SEO.
As a rough guide, use your keyword in your title (H1 tag), in at least one H2 header tag and in the first and last paragraphs of your text. In fact, you could use in the first sentence of your page content, and then leave it at that. If you have a need to use the keyword again in a natural way, then do so. Google will not give you much benefit after the first 2 or 3 instances, and much more can actually harm you.
So dont get too excited about trying to get the ideal keyword density, since there is no such thing. Google uses an algorithm known asLatent Semantic Indexing (LSI), whereby it assesses the vocabulary you are using, and the context in which it is being used.
This type of contextual semantic analysis is more important to your ranking than the use of keywords. Through LSI, pages are being ranked for search terms that do not appear on the entire page as keywords. It is your total content that matters, and your use of vocabulary that matters. The three words dog, puppy and canine can be better for your SEO on a page about dogs than three instances of dog.
Forget Keyword Density and just write naturally. Use the keywords when they are relevant and dont use them just to meet some mythical optimum KD figure because there is none. This comes straight from Googles mouth!
Your content should be fresh and original. Google can detect rewritten and scraped content. Search engines give more credit to fresh content than the same old regurgitated stuff, and may even refuse to index content generated artificially using scraping software. Word count is also important: aim for a minimum of 500 words, excluding the title.
SEO pluginsallow you to publish the titles and descriptions that enable your pages and blog posts to be listed as you want them to be. You will find several SEO plugins suitable for WordPress, including Yoast SEO and All-in-One SEO. Yoast SEO is the example of a WordPress SEO plugin we shall use here.
Although WordPress as it comes is fairly well set up for SEO, Yoast is a significant improvement. It was designed byJoost de Valk, a WordPress SEO consultant and developer. We shall be discussing Yoast and referring to it throughout the remainder of this guide.
Keyword density has become less important as Google increasingly uses LSI and semantic relevance, but even that must be optimized by good writers for best results. The big difference between pages and posts is that posts allow comments.
What does that matter? Well, it matters a great deal where Keyword Density and semantic relevance are concerned. The content of comments is taken as part of the page, and the vocabulary and semantics used in comments are very rarely optimized.
What that means is that if you have important content that you want to be ranked well in Googles search engine results pages, then it is easier to achieve that with a page than a post. You can control the vocabulary and semantics on a page, while it is very much left to chance with a post. If you have content you would like to be ranked then publish it as a page so you avoid the SEO dilution effect of comments. Also by default Pages having higher priority than Post in WordPress core itself.
Rich snippets are a form of semantic markup that describe certain elements on a web page (a review, event, person, etc.). Take the example of a restaurant. You could useschema.orgto mark up your entity as a restaurant, it would then include properties such its name, city, zip code, street, street number and so on. Each of these elements is separately marked up and can be easily accessed.
Going deeper, your menu items could also be individually marked up. People seeking a restaurant in New York serving a specific dish would then be able to easily find your restaurant. Scheme.org is a vocabulary extension for the MicroData mark-up protocol that is universally understood by all the major search engines.
If you have a blog and are finding it difficult to get meaningful listings because of the disparate nature of the various elements of your site,rich snippetscan be used to enable Google to assess the relevance of your entire site to a search term. You can filter your results, and Google will be able to select exactly what you are seeking from the markup employed.
Results can be provided with photographs of the menus or of the chefs whichever you prefer, as long as they are included in your markup. Rich snippets take a bit of learning, but once you get it then it is a very powerful SEO tool.
It is important for you to maintain a permanent link structure within your blog. Permalinks are permanent URLs that can be used to access your blog pages and individual posts. They are essential to enable others to link to your posts, to access your pages and posts without having to visit your blog and carry out a keyword search, and also for you to provide links to specific posts by email or in other publications.
Permalinks come in various forms, the default being This is based on the post number. Similarly, is equally self-explanatory.
The screenshot below indicates these options. To define you own permalinks go to Dashboard – Settings – Permalinks and you will reach this page:
If you want the URL of your blog posts to be the same as their title, then set the custom structure to: /%postname%/
That means that for a post with the title Training Dogs, the URL for this post would be /training-dogs and it would appear in your navigation as Training Dogs otherwise, it may appear as m/?p=116 the number changing for each post. This is not good SEO.
You can also set up a custom structure to include a category in the URL. Unless you click on one of the radio buttons, your permalink will be the default. The sample-post text will be replaced in your own URL by the words in your slug this can be edited when you write your post in WordPress.
Stop words are generally ignored by Google. They are words such as the, and, and a. Later versions of Yoast will automatically remove these from slugs to make your URLs look neater. Once you have published a post, it will generally be too late to edit you slug. It is far better to get it right first time. It is much easier for somebody to remember a URL if it contains only two or three words in the file name, or is at least relevant to the topic.
It is important to decide right from the start whether or not you want the www to appear in your URL. Go to Dashboard = Settings = General and will be given the option to state your addresses on this screen:
It is OK to use either the is not essential. However, you should understand that is a different URL to Because of that, you must also go to Webmaster Tools and tell Google your preferred domain.
To do this in Google, go to the mainSearch Consolepage for your site and click on the top right cogwheel as shown below:
Then click on Site Settings when you will be given the options Geographic target, Preferred domain and Crawl rate.
Choose your preferred format. Some prefer to show the and some do not. You should be aware that many people new to internet searches will add the www when they write out the URL they are searching. In this example, Google will display the form without WWW as having it, and regard the two as being the same site.
It is important that the format you set in WordPress is the same as your choice inGoogle Search Console(Previously Google Webmaster Tools). Henceforth, Google will regard the two forms of the URL (with and without the www) as being the same. In Googles own words:
If you specify your preferred domain as and we find a link to well consider both links the same.
If you do not set a preferred domain, the two formats will be regarded as different domains i.e. different websites with duplicate content.
You can use a WordPress SEO plugin such as Yoast SEO to provide general control over your titles and other Meta data. Go to your WordPress dashboard and then SEO – Titles & Metas. Make sure you are on the Home or Post Types subheading on the horizontal navigation bar. This section enables to you set templates for your titles and descriptions:
By using a template, for example, WordPress will replace %%title%% with the title of the post or page, %%page%% with the page number and %%sitename%% with the sites name. %%sep%% is a declared separator defined in the title tag of your theme.
You can also state here whether or not you want to attach the noindex tag to the page. This means that Google will not index it this should be used if the page is a duplicate (or close to it) of another on your blog. Examples would be sales pages where there are differences only in color or size or the same content with pages in different languages.
You can also elect to show the date in the snippet preview or hide the Meta box altogether if you are entering the data manually straight into the HTML of the coding. You can so the same with your main home page, categories and tags if you wish. Most people prefer to simply write their own titles and use these rather than use site-wide templates.
The Help section on the navigation bar above provides you with a list of variables you can use within the %% delimiters. Using these, you can change the parameters to design your own templates. You can even create a custom field to accept specific information and data. However, that is not generally connected to WordPress SEO.
The Title tag lies within the head section of the source code of your page. This is easy to set up with a standard HTML web page, but why make things difficult for yourself when you have a plugin to do it for you. The SEO by Yoast plugin can handle just about all of your on-page SEO needs.
Once you have written your WordPress page or post, you should save it as a draft. Your post should be published only after all the SEO activities are complete, and you have the green SEO light showing. Underneath your post you will see the SEO entry fields:
The Snippet Preview offers a preview of how your listing will appear in Google. Enter the SEO title in the appropriate box, overwriting anything WordPress has already entered there. Use your keyword right at the beginning, and you may also add a secondary keyword towards the end. This can be a very effective strategy. Restrict yourself to 67 characters including spaces.
Avoid stop words as far as possible, although the title should read correctly. The single stop word at the beginning will not cause much harm. It is usually best not to include dates in your SEO title.
Finally, the title tag need not be exactly the the same as the title of your post. You can remove stop words as The from the beginning of the post title to render it better for SEO. Search engines and humans are sometimes looking for different things in written text. That is an important tip to keep in mind.
The focus keyword should be the primary keyword for the post the keyword for which you want to be ranked on the search engines. Your page analysis will be based on this.
The Meta description should describe the content of your blog in a maximum of 156 characters. It should also contain your main keyword at the beginning. Google will use this description below the title in its listing for your page or blog post. This is clearly shown in the snippet above.
Descriptions are best hand-written and not left to templates. Most templates will use the first sentences of your post, which tends to look amateurish to those acquainted with online content. Some individuals are also guilty of this. Make sure you write unique content for your description that would feel happy to see listed on Google beneath your title.
Yoast provides you with an SEO analysis of your page or post. Clicking on the Page Analysis link will throw up an SEO analysis of the page. Yoast will inform you where any problems lie. Make sure you resolve as many of these as you can. You wont be able to fix them all, but at least get the green light showing when you save the page.
If you use images on your posts, it is important that these images are optimized. This is particularly true if they are unique images when they could be listed on image search engines andGoogle Images. Even if not, simple optimization by using the alt tag can not only help your visitors to understand the meaning of an unresolved image but also get a few more ranking points from the search engine robots. You can do this manually or by means of a plugin. First, here are some tips on manual image optimization.
UseJPEGformat for photographs andGIF,PNGfor everything else. Never use bitmaps. If you are unsure, try both with a specific image and choose the best result. If your image is large, try to reduce the file size as much as possible using free online tools such asImage Optimizer.
Give your image a descriptive name. If your image is of a Samsung Galaxy S4, name the image samsung-galaxy-s4.jpg. Rather than just give it a number such as image2.jpeg.
The alt tag describes the image in case a visitor is checking out your site using a screen reader that does not resolve images. Adding it to your HTML markup for the image is as simple as this: img src=samsung-galaxy-s4.jpg alt=Samsung Galaxy S4 Smartphone /. The source code will also include the storage location of the file on your site.
In the example shown below, if the Post title was Samsung Galaxy S4, then the HTML for the photograph would be:
Take a careful look at your sidebar and what you are doing with it. Does everything on have to be present on every page and post, particularly outbound links? Those receiving links that come from every page on your site are not getting much value from them they receive very low priority with Google.
Many of the widgets people use throughout their site would be more appropriately restricted to their Home page only. Your blogroll is one, and many also publish their archives on every page. Why? It is not necessary, and archives and blogrolls should be noindexed in any case. Unfortunately, you cannot set different menus for each page so you would need two sidebars: one for the Home page and the other for the rest.
If you draw up a map of your entire site using the XML format, Google and other search engines will be able to visit each page on your site and be informed whenever your website or blog is updated. You will find several XML Sitemap plugins available for WordPress, but if you use the Yoast SEO plugin sitemaps are very easy to activate.
Click on the SEO link on the Dashboard and then XML Sitemaps. You will be presented with the following screen:
Simply click the checkbox to enable XML Sitemap functionality and hit SAVE. Thats it done. The plugin will then generate a sitemap in XML format.
Go to yourGoogle Webmaster Tools pagefor your site and submit your sitemap URL. The location is available when you hit the XML Sitemap button at the top of the above screenshot. Every time you publish a new post or page the sitemap will be submitted to Google and Bing.
These search engines will then be able to follow your blog and any changes you make to its content. This sitemap also includes the images on your blog, which helps your site to rank for its images in Google Image Search.
While Google prefers XML sitemaps, some search engines such as Bing appear to prefer HTML sitemaps. Human users may also find HTML versions more understandable. There is no reason why you cannot use both, publishing aHTML sitemapon your blog and an XML version in your root directory (Yoast plugin creates XML sitemaps dynamically, youll not see XML sitemaps in root folder if youre using Yoast plugin to generate the sitemap). It is also better for your SEO to generate both.
UseWP SEO HTML Sitemap pluginto generate the HTML sitemap.
Duplicate content can harm your search engine rankings. It is important to avoid duplicate content as far as possible, even though this is very difficult to do with WordPress. Features such as Tags and Archives can all result in duplicate content on your site. Examples are posting the same content under two different categories and in your archives.
There is more than one way to avoid duplicate content being indexed by Google. Here are the more common methods.
Other examples of duplication include sales pages, where you can have the same content describing pages that differ only in product specification (colors, sizes, etc.) and languages. When you cannot avoid duplication in WordPress, you can hide it from search engine robots by means of the robots.txt file.
This file can be used to identify content that should be ignored by Google robots. Copy the following to a text file:
User-agent: * Allow: /wp-content/uploads/ Disallow: /wp-content/plugins/ Disallow: /wp-content/themes/ Disallow: /tag/ User-agent: Mediapartners-Google* Disallow:
Name the text file robots.txt and save it to your root directory.
Mediapartners-Google relates to the robot used to establish the content of your site for Adsense purposes. By adding this to the text file you make sure that your instruction applies both to Googles main indexing algorithm (Googlebot) and to the Adsense algorithm, whether you publish Adsense adverts or not.
Category, tags, archives and other extensions can generate a great deal of duplication in WordPress. That is why they have been disallowed: your individual post pages are sufficient. Your wp-admin and wp-includes directory contents should also be hidden from robots.
Yoast includes a section where you can manage some of this for each page and post. Go to SEO – Titles & Metas then click on the General heading on the horizontal navigation. You will see this:
You can avoid duplication in archives by clicking the appropriate site-wide setting, and also prevent search engines from using DMOZ or Yahoo descriptions for your pages and posts. Switch to the tabs and you can choose the appropriate options tick noindex, follow.
If the same content is indexed by Google under different URLs, then duplicate content becomes an issue. For example, the following URLs are regarded by Google as being different:
to the head section of all URLs other than the preferred version. This tells Google that is the preferred site, or you could even indicate a preferred page by adding this code to all the other pages:
Since Google lists individual pages, you will have to do that with every page on the site. If it is just a matter of a version or not, it is easier to choose the preferred version as explained in Para 2.3.
Another example could be if you had different web pages sorted in different ways: alphabetically, numerically, by color, price and so on. These pages may contain the same intrinsic content, just sorted differently.
Then you should add the above coding to the non-preferred versions usually the versions that are the least use by your clients or customers. The same is true of the same content in different languages. Basically, the canonical relationship should be used when you have the same content in different forms on the same websites or blogs, or in different forms of the URL for a specific web page. Yoast SEO adds canonical tags to each page correctly so no need to care about this issue.
You are suggesting to Google which version should be indexed. The search engine is not obliged to agree with you however, and in some cases might not perceive the content as being a duplicate at all. In other cases, it might list the version with most relevant backlinks or other SEO factors.
If you have a page that does not want to be indexed by search engines then you can use the noindex Meta tag. The page will not be indexed and listed, but the linking authority will still be passed to that page. Heres the format to add to the head section of the HTML:
If you do want to pass linking authority to a specific page you can use the nofollow attribute in the link thus:
You can use that to lead a visitor to another link but do not want your PageRank passed to that page. If you want to combine these, you can use this format:
However, why should not want a page on your site not followed? The difference between the noindex and nofollow attributes confuse many people. In terms of avoiding duplicate content, it is this noindex Meta tag that you should use on the page you do not want to be indexed. Rather than use the canonical relationship for duplicate sites in different