Monthly ArchiveJuly 2007
Link Love Chris Gray on 29 Jul 2007
The Blogging Tip Meme
I’m not that big on Memes (because most don’t fit into the theme of this site) but when I learned that Derek Semmler had tagged me with this one I was very excited because it was right inline with what SEO Ladder is all about (bloggers helping other bloggers)! The purpose of this meme is to shed some light on some great blogging tips that other bloggers are sharing with the world. So without further ado…
-Start Copy-
It’s very simple. When this is passed on to you, copy the whole thing, skim the list and put a * star beside those that you like. (Check out especially the * starred ones.)
Add the next number (1. 2. 3. 4. 5., etc.) and write your own blogging tip for other bloggers.
Try to make your tip general.
After that, tag 10 other people. Link love some friends!
Just think - if 10 people start this, the 10 people pass it onto another 10 people, you have 100 links already!
1. Look, read, and learn. *****
- http://www.neonscent.com
2. Be, EXCELLENT to each other. ****
- http://www.bushmackel.com/
3. Don’t let money change ya! ***
- http://www.therandomforest.info
4. Always reply to your comments. *****
- http://chattiekat.com
5. Spell check is your friend. ***
- http://thingsbymike.com
6. Be the blog. ****
- http://www.meandmydrum.com/
7. Your readers are your treasure. ***
- http://www.brownbaron.com/blog/
8. Learn From The Pros. *
- http://www.shaunlow.com/
9. Pay a visit to your visitors. Be active in your community. **
- http://www.leochiang.com
10. Take advantage of the ability to future date posts. **
- http://dereksemmler.com
11. How to Optimize Your Permalink Structure using Search Engine Safe URLs. *
- http://www.seoladder.com
-End Copy-
Now it is my turn to pass along the Link Love to the following bloggers who have posted some great tips:
WordPress & SEO Chris Gray on 26 Jul 2007
Playing it safe with Search Engine Safe URLs – How to optimize your WordPress Permalink structure
One of the first tips I picked up while delving into the world of SEO was the use
of so called “Search Engine Safe” (SES) URLs. SES URLs are formatted in such a way
that your query string parameters appear to be part of the path. The result is a cleaner,
more “human readable” URL that is more likely to be indexed by most search engines.
While search engines vary on what they will and will not crawl, most spiders tend
to ignore pages that contain numerous query string parameters so most SEOs recommend using Search Engine Safe URLs whenever possible.
For example:
Typical dynamic URL:
http://www.seoladder.com/index.php?category=seo&id=1234
Search Engine Safe URL (note the query string is now part of the path):
http://www.seoladder.com/category/seo/id/1234
Ho to create SES URLs in WordPress
Fortunately, WordPress allows you to optimize your Permalink Structure right out of the box without the need for additional plug-ins or code hacks. The downside is that SES URLs are not turned on by default and many users (including myself) fail to activate this feature until after they have been indexed (more on this in a minute).
To turn on Search Engine Safe URLs in WordPress you will need to perform the following steps (Note: this tutorial is based on WordPress 2.2):
- Login to the WordPress Admin and select Options | Permalinks
- From the Permalinks sub-page you will be presented with four Permalink options (Default, Date and Name Based, Numeric, and Custom). Choose one of the three SES Permalink options that best suits your needs (i.e. Date and Name Based, Numeric, or Custom).

- Finally, click the Update Permalink Structure button to commit your change. That’s it, nothing to it.
Which Permalink Structure should I use?
Most web masters tend to use “Date and Name Based” Permalinks because the post name is included as part of the URL. By including the post name in your URLs you can potentially boost your page’s ranking (provided you’ve included relevant keywords in your page titles). You can also design your own Permalink structure by selecting the “Custom” option. Beware though, if you choose to go with a “Custom” Permalink structure be sure to include some sort of numerical data in the URL structure (i.e. post id, or date). Using the post name alone can prevent you from accessing some pages such as style sheets or the wp-admin.
While WordPress makes it extremely easy to change your Permalink structure, you should carefully weigh the pros and cons before deciding to make the switch. For example, if your blog has already been indexed under the default Permalink structure you will loose your existing page rank for those pages already in the index (not to mention you will also now have bad links in index). Changing your Permalink structure will also break any incoming links that have accumulated to date. To avoid these issues you will need to ensure that the proper 301 redirects are in place before you change over to a new Permalink structure. I suggest taking a look my previous post on the proper way to move a web page for additional information on how redirect old links to your new Search Engine Safe URLs.
What SES structure are you using?
As you may have already noticed I am currently using the “Date and name based” Permalink structure on this blog (as well as a few others that I maintain).I would be interested in hearing your take on SES URLs and what structures are preferred by other webmasters…
Blogging & WordPress Chris Gray on 16 Jul 2007
How to backup your WordPress blog - WordPress Configuration Management
Having worked as a software contractor in the Defense industry for a number of years I quickly picked up on the importance of Configuration Management (CM) and software change control. The value of developing a good configuration management plan was burned into the back of my head very early on in my career.
By managing the changes made to a work product you are able to recreate it from scratch in the event of a failure (such as a loss of a hard disk or virus). Managing change also allows you to revisit various work product “milestones” at different stages in the development lifecycle (e.g. two releases ago). While quite painful at times, CM can benefit all types of software applications (including WordPress).
The problem with WordPress in regards to CM
When I created my first WordPress blog I instantly fell in love with the speed at which you could get a website up and running. I also fell in love with the ability to change the look and feel of my blog with almost no effort (and all from the comfort of my favorite web browser). With “ease of use” also came the ability to trash my entire blog with a single click.
I’m sure many of you have been there; you activated that brand new WordPress theme and then spent the next three days tweaking the code to get it just how you like it. Then during testing you finally notice that one column hanging out of alignment (which has been for the last day and a half without you noticing). You have no idea which change made over the course of the last three days could have caused it and are forced to start over from scratch…maybe you haven’t but I have and it really sucks.
If I would have saved my changes at various “milestones” along the way I would have saved myself from having to start over from scratch. What’s worse was that I made all of those changes on my live “production” server and my readers were watching the mishap unfold right in front of them!
My Solution
With that being said I quickly made a visit to my “CM Happy Place” and decided to approach my blog the same way I would approach developing a piece of software.
- Create a development environment.
The first step I took was to set up a local test environment that mimicked my WordPress setup on the web. This might sound like a no-brainer to most but there are many bloggers out there who have never developed a piece of software before or have ever heard of the SDLC. This single step can save you hours of downtime when you decide to make a change or perform an upgrade.
Creating a local development environment entailed the installation of three software components (a Web Server, a Scripting Engine, and a Database). You may have heard of the term LAMP. LAMP stands for Linux (OS), Apache (Web Server), MySQL (Database), and PHP (Scripting Engine). In my case I am running Windows so I went with a WIMP (Windows, IIS, MySQL, and PHP) setup…LOL, how fitting, <Linux users applaud>! Once the software components were installed and configured, I copied all my WordPress files from the production server. Finally I created the WordPress database using a backup of my production database. I will post the trials and tribulations of this endeavor in a later post (it wasn’t without a few bumps let me tell you).
Now that I had a stable development environment (that looked exactly like it did on the web) I could now test any changes locally without impacting my live blog.
- Create a source code repository.
Next I set up a source code repository to version any changes made to my blog configuration from this point on. In my case I choose Microsoft Visual SourceSafe as my source control configuration management tool. There are many other packages out there that perform the same function (e.g. Tigris.org Subversion and MKS Source Integrity). If these tools are too complex you could even choose to version your changes manually (using the file system) but I recommend against it.
From there I determined which files and directories needed to be added to my source code repository. For WordPress, not all files in the htdocs directory need to be checked in (as they are never modified after the initial install).
The files that should be checked in are as follows:
htdocs
|____ .htaccess
|____ wp-config.php
|____ wp-content
|____ themes
|____”your theme directory - *.*”
You will also need to check in any files that you modified along the way (e.g. plug-ins or core WordPress files that were hacked). In my case I only modified my theme so I was finished.
That’s about it. From then on, any time you make a change to your theme be sure to check it out before you modify it and check it back in when you move it to your production server. Most tools allow you to add comments when you check in a file so be sure to add a meaningful comment. Comments really help when trying to determine what was changed between versions.
Additional activities
Database Backups
In addition to the steps above I suggest that you also take regular backups of your WordPress database. There are numerous plug-ins that automate database backups but you can always use a tool such as phpMyAdmin to perform backups manually. You may need to request special access from your hosting provider to access phpMyAdmin on your production server.
Misc. File Backups
You will also want to take regular backups of your wp-content/uploads directory. This directory contains all the files/images that you have uploaded over time and will be necessary if you ever need to restore your blog. I choose not to check these files into my source control repository because of the dynamic nature of the directory structure but you may want to do so in lieu of FTP backups.
Helpful Plug-ins
During this endeavor I also decided to develop a WordPress plug-in called TransferTweaks. This plug-in saves changes (made to the header, footer, and sidebar) in the WordPress database instead of the theme file itself. The plug-in will then insert your code in the appropriate part of the page every time a request is parsed. The advantage of this plug-in is that there is no need to reenter your changes when switching to a new theme. Your “tweaks” will always be available to the current theme via script. I am currently using this plug-in on four WordPress blogs and it has proved to be a huge time saver when changing themes!
Conclusion
Hopefully this article has encouraged you to invest some time ensuring your hard work is protected against any future “mishaps”. All of these techniques are not specific to WordPress and can be easily adapted to virtually any blogging platform with a little research. Finally, checking your code into a source control tool such as Microsoft Visual SourceSafe is not a necessity for properly backing up your WordPress blog. You can back up your blog with as little as a simple FTP client if you wish. There is bound to be something I missed along the way…so please let me know and I will add any details that I missed
