SEO Keyword tools

Better SEO thinking

A freelance Web developer may be asked to develop websites for diverse customers (charities, companies,…) in many fields : hairdressers, architects, schools,…

Being aware of SEO is part of the web developer’s skills. And the customer may not always be aware of the keywords trends on the Web. His website may be indexed by search engines like Google but can hardly be found (because listed too far from Google’s first 10 results) if no SEO thinking has taken place.

This post will show you the basic free SEO tools that can be used to prepare a website’s better indexation and ranking by search engines.

Before starting

Just take a look at Google Analytics. Your website gets hit thanks to three traffic sources :

Google Analytics : traffic sources

  • Search engines : a web surfer types keywords and clicks on your website listed in the search engine’s results
  • Direct traffic : a web surfer types your url ( in the url field of his browser
  • Referers : a web surfer visits a website that provides a link to your website

What interests me in this post is how we can drive surfers from search engines. Indeed :

  • direct traffic will improve when your visibility on the web and in the real world improves (thanks to advertising, for example)
  • and the number of referers will rise if other websites’ webmasters provide a link to your site. Therefore, you’ll need to convince them that your site is worth linking.

What keywords for my website

The keyword search you need to make will not provide a set of keywords to be placed in a meta tag “keywords” inside the head of your html document since Google does not use the keywords meta tag in web ranking. Google rather uses the page url, title and description tag and, of course, the page content. The page Html content itself may soon become a rich content source for Google since HTML is evolving to HTML5 with new content-related tags like <header>, <nav>, <article>, <section>, <aside>, <footer>,…

Improving the search engines hits implies

  • applying accurate SEO tips to your site (url rewriting and redirection handling, breadcrumb trails, dynamic title tags and description tags, accurate content,…)
  • and a thorough work on keywords, these very keywords the web surfer is supposed to type in a search engine

The Web developer’s customer may be skillful in his own field, but may not know exactly what keywords net surfers will type in a search engine to reach his own website. There are a few tools that can be used to get to know these keywords.

Google Adwords

Google Adwords is a commercial tool by Google that lets you choose keywords that will display an ad of your website on top of Google search results. This tool can be expensive, depending on the keywords you choose.

But Google Adwords also provides a Keyword Generator . Imagine we’re building an architect’s website with descriptions of the houses he built, renovations, building tips,…

Google adwords keywords tool and generatorHere you can type a list of keywords (one per line), your website url. Then you can select the country and language you’re looking for.

keywords : architecte tournai, maison, construction, rénovation

country : Belgium

language : French

Google will provide you with a list of keywords suggested from the list you typed and from what web surfers type in Google, which will accurately extend your keyword list. Google also provides searches trends with a timeline and the amount of monthly searches. So you know what keywords are relevant in the field and must be inserted in the SEO areas of your website.

The list of keywords provided by Google Adwords are the keywords your competing websites have ranked with ;) :

Google Adwords keywords tool results

Google Insights – Trends

With Google Trends, you can also improve your website keyword search and check Google logs to know how often web surfers have used your keywords on Google in Belgium in the last few years :

Google Trends

I’ve tried to look for 4 different keywords in Belgium : architecte Tournai, maison, construction, rénovation : each keyword gets its own colour and the statistics are shown as follows :

Google Trends results

Google trends also gives you the frequency of searches per keyword in each sub-region.

CuteRank – A keyword Google ranking tool

If you want to check how well your website is displayed in a Google search, just download CuteRank. They’ve got a free version available for download.

Once installed, just add a profile, i.e. your website url and the keywords your want to check, choose the search engines you want CuteRank to check. Then launch the analysis : if you’ve chosen the keywords wisely (the ones web surfers are supposed to type) and everything’s green, you’re on top of it : your website appears in the first page results. If not, you’ll have to check your content and SEO strategy to improve ranking :

Cuterank : a tool to check your website's keyword positions in search engines


Google does not use keywords meta tag in web ranking

Preview of HTML5

Google Adwords Keyword Tool

Google Trends

CuteRank – tool to check your website’s keyword position in search engines

PHP forms thank-you pages

Google Analytics filter page names

I used to script login forms, contact forms, registration forms, order forms,… that were displayed in a login.htm, contact.htm, register.htm, order.htm with the forms action attributes set to the same url. Once submitted, PHP checked the form fields and displayed a thank you message (or an error message) within the same html page. This is not the right way to do it if you want to track users that filled in the form correctly or the ones who abandoned filling in the form or the ones who filled it incorrectly and submitted it again…

If you want to get deeper into the statistics of your website thanks to Google Analytics tools, for example, it may be wiser to generate login-thank-you.htm, contact-thank-you.htm, register-thank-you.htm or order-thank-you.htm. Once the form is submitted, have PHP check what has to be checked through a form validation class (check for required fields, email fields,…) and redirect the user to the thank-you-page to display the thank you message if he filled it in correctly. If this is not the case, redirect him to a contact-error-email.htm page for example.

After some time, you’ll go to Google Analytics / Content / Full report : use the filter field at the bottom of the page to filter by “containing keyword” or “not containing keyword” with a value like ‘thank-you’ to display all pages containing those keywords and get statistics about those pages.

WordPress SEO Plugins

Wordpress plugins directory

I believe WordPress (WP) is the Blog solution. Its community is constantly growing, it integrates the latest SEO developments, the number of plugins and themes developed is constantly increasing…

Your WP Blog posts indexation by Google is a real-time indexation which is a real improvement compared to the time which is necessary to update indexation of common websites (15 days).

In order to improve indexation or optimize your WP for search engines, you’ll need to install some WP plugins.

Installing plugins in WP is (dead-)easy. You simply have to upload the extracted plugin directory into your WP /wp-content/plugins directory. Then you’ll activate and configure the plugin in your WP admin interface.

Take a close look at what plugin you choose before installing. Indeed, some of them may generate a conflict after upgrading WP, for example. Each plugin states some requirements concerning the WP version with which it is compatible. By choosing state-of-the-art plugins, you’ll have less compatibility problems. I advise you to look for the necessary plugins in the WordPress Plugins Directory (more than 8,000 available plugins) :




Each of your post in WP receives a unique url which is called permalink. It is generated automatically and you can modify it to suit your requirements.

You’ll also find a Permalinks settings page in your WP Admin interface. You should use a custom structure for the automatic url that WP creates for each of your blog posts.


will create the following permalink : : “php5″ being the category title and “polymorphism” the title of your post. If your blog post has already been published and is listed in Google (which is surely the case), and if you change your permalinks strategy, your old blog post url will lead to a broken link. So the solution in that case is to use 301 redirects through an .htaccess file.

Plugin for SEO (Search Engine Optimization) : All in One SEO Pack

Optimizing your blog for better search engine ranking requires you :

  • to name your blog posts thoroughly,
  • to give each blog post or page a unique title and description
  • to use permalinks
  • to install and activate a plugin like All in One SEO Pack

I chose the plugin All in One SEO Pack from WP developer Hallsofmontezuma.

Simply download the plugin archive, extract it and upload the plugin directory to /wp-content/plugins/. Then go to your WP plugins admin interface and simply activate All in One SEO Pack. Once it has been activated, All in One SEO appears in your WP Settings Menu. Select it and configure it :

All in One SEO Pack - settings

The home title and home description tags need to be completed with the pieces of information you want Google to list.

I don’t use keywords since most search engines don’t pay attention to it anymore.

Post title format, Page title format and Category title format are likely to rank in search results so you’d better set them to the post title, page title and category title. Some themes add the blog title to it but if your individual posts are unique (which they should be), give them a unique title without generic keywords such as your blog title.

Google Sitemap Generator Plugin

An XML sitemap is a file that should be stored somewhere in your website directory, that can be submitted to Google through the Webmastertools, for example, and that will help Google mapping your website. This can be automated in WP thanks to the Google XML Sitemap Generator (WordPress Plugin). It is as easy to install and configure as the above plugin.

Alternate text – Link titles

Edit alternate text field for images in WordPressYou could trigger hits from Google Images if you complete the alternate text field for images. So, insert an image in your post, click on the Edit button on the image and go to the “Advanced settings tag”, then fill in the alternate text field.

The same image settings tab also allows you to modify link settings. If you want to put a link on your image, don’t forget to edit the Advanced Link Settings and set a title to your link.


Webliography :

All in One SEO Pack (WordPress Plugin)

Google Sitemap Generator (WordPress Plugin)

SEO for Blogs (YouTube video)

SEO in a nutshell

I really want to thank Mehdi LAANAIT for his suggestions concerning SEO (Search Engine Optimization).

Smart urls or search engine optimized urls allow bots like Google to identify keywords in urls. Website ranking then gets an added value. Parsing urls, title tags, description tags (keywords tags are now deprecated) and the body of a webpage allow search engines to rank web pages.

The basics

Including SEO concerns inside Web development requires

  • Apache .htaccess changes
  • urls changes

Building SEO-friendly URLs

Let’s assume a PHP website has to be re-written. Dynamic pages were formerly generated by PHP with the form :

to display articles belonging to category 1 (let’s say “kite photography”) and to subcategory 32 (“Rokkaku kites”). The problem with that url is that it does not tell the visitor or the bot about the content of the article. For SEO concerns, it should.

New urls will have to be generated throughout the website and be of the form :

The subdirectory “kites” doesn’t exist on the web server. It is only a virtual directory name generated by PHP for the sake of better SEO. The only thing the developer still has to manage is the way Apache server will treat the request to

Apache .htaccess : url rewriting

URL rewriting is the art of making php-generated urls human readable.

Apache’s .htaccess file will allow the developer to activate the Rewrite Engine which will analyse the url request and transform it into what’s necessary for the website not to end on a 404 error page.

This file will contain the following lines :

Options +FollowSymlinks -MultiViews #Line 1 : tells Apache to follow symbolic links

RewriteEngine on #Line 2 : activates RewriteEngine (Apache mod_rewrite module)

RewriteRule ^([a-z]+)/([a-z]+)$ index.php?cat=$1&scat=$2 [L] #Line 3 : rewriting rule

.htaccess Rewriting rule example

Let’s consider the following line :
RewriteRule ^([a-z]+)/([a-z]+)$ index.php?cat=$1&scat=$2 [L]

Apache will look for the string of characters between ^ et $ in the url.

This string is divided into :

  • a number of lower case characters from a to z. This string will be stored in variable $1
  • followed by a slash /
  • followed by a number of lower case characters from a to z.This string is stored in variable $2

The second part of the rewriting rule is the php file Apache will load if the rewriting rule is to be applied :

index.php?cat=$1&scat=$2 [L] : flag [L] tells Apache to stop treatment without checking the following rewriting rules since the current rule drives the client to the right file.


Url rewriting is part of the solution to help google ranking your pages better. Back links, keyword selection, sitemaps, html tags (h1, strong, alt,…),… also contribute to a better ranking.

Once the developer has understood keywords are the key to success… let bots do their job…

Here are some non-wikipedia references :

Google source
Apache mod_rewrite doc
Webconfs / SEO tools
Website Grader

SEO and domains

Domain names are often less human readable than expected since the developer usually tries to make it as short as possible.

Register a number of domain names for the same project

Any registrar worth their salt will charge between 7 and 15 euros per domain name. The developer can suggest 2 domain names to his customer :

  • one easy-to-remember domain name for quick access (to be printed on visiting cards, advertisements,…). This domain name often contains abbreviations, is an acronym,…
  • and another one containing relevant keywords regarding the activity related to the web site.

If several domain names point to the same website, be sure to change your Apache .htaccess file to auto-redirect all your domain names to the same principal domain.

Domain redirect example

Developers regularly register 2 domain names : one with and the second with no www. Imagine the 2 following domains : and

Both should point to the same principal domain (i.e.

Change your .htaccess file with the following lines :

Options +FollowSymlinks -MultiViews
#ErrorDocument 404 /seo/404.php
RewriteEngine on
rewritecond %{http_host} ^ [nc]
rewriterule ^(.*)$$1 [r=301,nc]

Options +FollowSymlinks -MultiViews #Line 1 tells Apache to follow symbolic links

RewriteEngine on #Line 2 activates Apache Rewrite Engine (mod_rewrite module)

rewritecond %{http_host} ^ [nc] #Line 3 rewrite condition checks if rewrite rule is to be applied => if http_host (current host name) is [NC] flag is used to make the condition case insensitive

rewriterule ^(.*)$$1 [r=301,nc] #Line4 Apache sends a 301 redirect header to The rewrite rule ensures the path is sent as well with regex (.*) that is sent to thanks to the variable $1

Time matters

A quick Whois lookup tells the developer if the requested domain name is available or not. Registering a domain name can be done for one year or more. This time criteria is used in the Google algorithm for page ranking since a domain name that will last longer will be considered to be more trustworthy.