Basic On-Page WordPress Search Engine Optimization always starts with Search Engine Friendly URLs.
You can set these via the Permalinks option in your WordPress administration Panel.
But be aware that for these setting to work, you need to be on an Apache Web server that has Mod_Rewrite active and working!
If you are on windows based hosting package, there is one way to achieve SEF URLs, and you don't have settle for the standard ?p=123 produced by WordPress.
The easy way
The easiest way the get a good working .htaccess file is this:
- Upload an empty file called htaccess.txt to the root of your WordPress installation directory.
- Set the permissions to 707 which means writable by system and public.
- Rename the file to .htaccess
- Go into your admin panel and choose your preferred URL setting.
- Save the settings and check if you get the URLs you want.
- Go back to the permission settings (normally via FTP) and set the access to 404 to make is as secure as possible.
WordPress Permalinks Options
There were several options standard in WordPress before WP version 3.x.
Here is my preferred choice at that time in the custom structure /%postname% .html
That means you get post URLs that incorporate the post title and ends with .html
Be aware that this works with Posts only, page URLs are created with the title, without an extension.
So if you want the same URL for your posts as for your pages, you should set the option to /%postname%/ which is now the Post name option!
That option is now my standard choice as it creates a good permalink as wel as perform well in load times.
WordPress 3.x Optimized Permalinks Standard
As for the new version of WP 2.3 and up there are a lot fewer problems with duplicate content problems that you might have before, since Automattic made it a lot better picking up the URLs for each of the posts.
With the latest versions of WordPress, there is an option called Post name which is the best you can use. All other permalinks option will redirect to this one if you set it.
If you set that option, WordPress will automatically fill the custom field with /%postname%/ so don't worry about that.
Note! Pick your choice of permalinks and stick to it! Changing it after your indexed means you have to do a lot of 301 redirects.
Pretty WordPress Permalinks on Windows Servers
You can get Permalinks on a Windows based server and even on your own local development computer.
Instead of the Post name option, you have to use the Custom Structure with /index.php/%postname%/
Or ask your hosting provider if they have a server with one of these options:
- Microsoft IIS 7+ web server with the URL Rewrite 1.1+ module and PHP 5 running as FastCGI
- Microsoft IIS 6+ using ASAPI_Rewrite
If so ask them if they can move your site to one of those servers so you can use Permalinks without the index.php option.
Want to know more about all the other permalink options? Read more on http://codex.wordpress.org/Using_Permalinks