WordPress.com 404 With Blogger Permalinks

Part of the research I did before migrating from Blogger to WordPress.com, was to make sure that current Blogger permalinks will resolve correctly once the old posts were imported into WordPress.com. At the time all seemed fine, but soon after migrating, I received alerts from Google Webmaster Tools that there is an increase in site errors, specifically 404 errors.

Some background: Permalinks are the URL’s that point directly to specific posts on the blog. These URL’s are known by search engines, are shared on forums, and are basically the static address of posts. Blogger and WordPress.com use different styles of permalinks. WordPress.com allows some customization of permalinks, but unlike WordPress.org, there is no support for custom plugins to handle rewrites for permalinks, 302’s or 404’s.

Although not documented anywhere, WordPress.com does support Blogger style permalinks, and will correctly redirect the Blogger style link to the WordPress.com style page. As an example, see the links below, one for Blogger and one for WordPress.com:

http://blogdotinsanegenius.blogspot.com/2012/06/looks-can-be-deceiving.html
https://blogdotinsanegenius.wordpress.com/2012/06/looks-can-be-deceiving

Search engines will know the link using the old blogger style URL, and both styles of links will correctly resolve to the current page:

https://blog.insanegenius.com/2012/06/19/looks-can-be-deceiving
https://blog.insanegenius.com/2012/06/looks-can-be-deceiving.html

So why is it that Google Webmaster Tools reported a suddenly spike in 404’s?

Google.404.1

By reviewing the links that report 404, I noticed that the permalink format of certain posts on WordPress.com was slightly different to the Blogger permalinks.

http://blogdotinsanegenius.blogspot.com/2009/10/hitachi-a7k2000-and-seagate-barracude.html
http://blogdotinsanegenius.blogspot.com/2010/05/zotac-xboxhd-id11-mkv-h264-video.html
http://blogdotinsanegenius.blogspot.com/2008/03/printing-from-network.html

https://blogdotinsanegenius.wordpress.com/2009/10/11/hitachi-ultrastar-and-seagate-barracude-lp-2tb-drives/
https://blogdotinsanegenius.wordpress.com/2010/05/28/zotac-xboxhd-id11-mkv-h-264-video-playback-performance/
https://blogdotinsanegenius.wordpress.com/2008/03/30/printing-from-the-network/

Notice the difference? Blogger appears to keep links short, and remove words like “the” and “and”.

I contacted WordPress.com support, and they provided a manual solution. They suggested that I modify the “slug” of each 404 post to match the Blogger style permalink.

Slug

This resolved the problem with the top 404’s, but I would have expected the Blogger import plugin to take care of this for me.

But, I soon received another alert email from Google Webmaster Tools, and this time the 404 posts looked a bit different.

Google.404.2

Notice that all the links contain parameters in the URL (I think these are old style Google Analytics parameters), and without the parameter the redirect works, but with any parameters the redirect fails.

https://blog.insanegenius.com/2009/09/western-digital-re4-gp-2tb-drive.html
https://blog.insanegenius.com/2009/09/western-digital-re4-gp-2tb-drive.html?m=1

I again contacted WordPress.com support, and I am still awaiting a resolution.

[Update: 9 August 2012]
Just got an email from WordPress.com support, the problem with parameters is fixed, thank you.

From Blogger to WordPress

I outlined my concerns with Blogger in my last post, and after much deliberation, I decided to move my blog from Blogger to WordPress.

There are two main choices; use WordPress.com for full service blog hosting, or use WordPress.org and host the WordPress application at a hosting provider. Here is a summary describing the differences.

I decided to try both options; I created a blog a WordPress.com, and I created a self-hosted blog using WordPress.org.

Creating the blog at WordPress.com was very quick and easy.

As with Blogger, you can pick any sub-domain name for the hosted blog, as long as it is unique. On Blogger my site is blogdotinsanegenius.blogspot.com, and on WordPress.com my site is blogdotinsanegenius.wordpress.com, not very imaginative, but descriptive and unique.

WordPress, like Blogger, allows you to point your own domain name to your hosted site using a CNAME record. But, unlike Blogger where it is free, WordPress.com charges $13 per year for this feature. WordPress.com offers additional paid domain services, including domain registration and DNS management.

WordPress supports importing from a variety of sites and formats, including Blogger, and my posts, settings, and comments were all imported in a few minutes.

Here is the screenshot of the various import options offered:
Tools.Import

There are certain restrictions in using WordPress.com vs. WordPress.org, and to a lesser degree Blogger, most notably no advertising of your own. WordPress.com will show their own ads, as that is their revenue model, similar to Blogger showing Google ads. But Blogger, as far as I know, does not restrict the use of other ads such as Amazon, nor do they restrict the use of affiliate links. WordPress.com specifically calls out that Amazon affiliate links are ok, as long as it is not the primary purpose of the site. WordPress.com offers a $30 option to remove all of their ads from your blog.

For self-hosted WordPress I needed a hosting provider, and WordPress.org offers some suggestions, probably with a revenue partnership. The world of low cost hosting is like the wild west; many brands owned by the same company, review sites owned by the hosting companies, referral programs leading to biased third party reviews, low cost signup high cost renewal, etc. I decided to try BlueHost and DreamHost, and I will give a brief review and overview of my signup and WordPress setup experience.

If you enter the BlueHost using http://www.bluehost.com/wordpress_hosting, the link from the WordPress.org hosting provider site, you are offered hosting at $3.95 a month, if you enter BlueHost using http://www.bluehost.com/ you are offered the same hosting at $4.95 a month.

BlueHost does not offer a trial, but they do offer a 30 day money back guarantee. Do read the terms, full refund less non-refundable fees, if cancelled within 3 days of signup.

When you go to the signup page, you have to enter a domain name, either a domain you own, or a domain you intend to buy. As I did not want restrict myself to a particular domain, I used the embedded support chat to contact support. After typing my question, and hitting the live chat button, I was redirected to a new page, where I had to select my contact option again, and then enter my question again. So basically the embedded support chat is bogus, whatever you type is thrown away, and you are directed to an outsourced chat provider.

When I finally managed to chat to an agent, they had to ask me what site I came from, another indication of the poor chat integration implementation. The agent assured me that I can change the domain any time, and their system just requires me to pick something. But, it turns out that this is not entirely true, once you remove the primary domain, you can never add it back again. I cannot imagine a technical reason for this restriction, so it may be related to avoiding a user creating a new hosting account vs. renewing an existing account at a much higher cost. To avoid any problems, I just used a domain I own but do not actively use.

The account creation and setup flow was optimized around taking my credit card information, once the account was created, it was rather confusing, starting with my login name being the domain name I selected in step one.

The first email I received, “Welcome to Bluehost! (redacted) – configure your account.”, told me that the fist step is to transfer my domain or to point my domain the the BlueHost DNS server, I did not want to do either of these. The email included links to the FTP server hosting the account, FTP username, and a link to change the password, but the change password link pointed to the main BlueHost site.

The second email I received, “Welcome to Bluehost! (redacted) – Get started now!”, included links to getting started tutorials.

The third email I received, “Welcome to Bluehost! (redacted)”, included a change your password link, and this URL was personalized, and let me create a new cPanel login password.

I proceeded to login to cPanel using my new password, and I was redirected to what I assume is the machine hosting the account, https://box835.bluehost.com:2083/frontend/bluehost/index.html. Notice that the port number is 2083, and this failed, as the network I was working on does not allow anything other that port 80 HTTP and port 443 HTTPS outbound traffic. I contacted support, who indicated I need to open port 2082 and 2083 outbound, no, I can’t do that. My own research into their own KB system gave this link, instructing me to use a different admin URL, and this worked, using standard SSL, and no host or port specific redirects.

I wanted to map a temporary domain name to the hosting account, so that I can install, configure, and test WordPress, before committing to point my blog’s DNS entry to BlueHost. There was no convenient way to do this, I either had to use the http://%5BIP%5D/%5Baccount%5D/ path format, or I had to map one of my own domain names to the hosting IP address, or I had to point one of my domains to use their DNS server. And, this other domain had to be an unused domain, as I don’t want to transfer a live site before having the destination ready.

At this point I decided to try DreamHost. The main DreamHost page lists the shared hosting as $8.95 a month, if you click on the WordPress link, you are offered the same hosting at $6.95 a month.

DreamHost offers a 2 week trial, you basically always sign up for the trial, and will only be charged if you do not cancel within 2 weeks.

The signup process is straightforward, the first thing you are asked is to create an account using your email address and select a password. After providing your credit card information, you are asked to provide a FTP username.

The first email I received, “[redacted] DreamHost Account Approval Notification!”, included the login information to the FTP server hosting the account, and indicated that the account is being created. The FTP password was system generated, and is different to the account password I already selected.

The second email I received, “[redacted] DreamHost FTP-only User Activated”, indicated that the FTP account had been successfully created.

Logging in to cPanel ran over standard HTTPS and I had no problems accessing the management portal.

The domain management portal allows you to create any number of domain to site mappings, and does not require the domain names to be mapped to or registered with DreamHost’s DNS. In order to create a sub-domain, you must first add the main-domain, even if you don’t intend to use or map it. DreamHost supports mirror domains, that allows you to use a dreamhosters.com sub-domain to point to your site. This was very convenient as it allowed me to register blogdotinsanegenius.dreamhosters.com, and use this domain for testing and configuration, and later I can use it as a CNAME for the blog’s DNS entry.

Installing WordPress was easy, DreamHost supports automatic deployment of a large number of popular applications.

Here is a screenshot of the available blogging applications:
DreamHost.Applications

I cannot speak to long term stability or performance, but judging based on the setup and administration process and experience, I think the $3 per month extra for DreamHost over BlueHost is well worth it.

As part of the blog migration I have to maintain existing permalinks, else search engines and users with links to content will not find the information.

As an example, consider the following permalinks:
Blogger: http://blogdotinsanegenius.blogspot.com/2012/06/looks-can-be-deceiving.html
WordPress.com: https://blogdotinsanegenius.wordpress.com/2012/06/19/looks-can-be-deceiving/

Blogger and WordPress.com uses different permalink formats. Blogger uses a yyyy/mm/title.html format, where WordPress.com uses a yyyy/mm/dd/title format. WordPress.org allows the permalink format to be changed, and also allows plugins to be used to convert between incoming and hosted formats.

I found many articles explaining the process of migrating from Blogger to hosted WordPress.org, but I could not find anything on similar functionality at WordPress.com. I asked about this on the WordPress user forum, and a forum user claimed that Blogger style permalinks are supported, yet I could find no information about it on WordPress site. I tested it, and it did indeed work. I contacted WordPress support to get an official answer, and they claimed it is not supported, and recommended that I use WordPress.org. The forum users’ comment was very insightful; “Most of the staff have less experience at WP.com than I do, but you can ask them.”

Another difference between Blogger and WordPress is the use of labels vs. tags and categories. On Importing the site from Blogger, all the labels were converted to categories. Most of the labels really needed to be tags, and fortunately WordPress offers a bulk tag to category, and category to tag converter.

Below are screenshots from Windows Live Writer showing Blogger style labels (categories) and WordPress style categories and tags:
WLW.Blogger
WLW.WordPress

 

WordPress.com supports all the features I need, and at $45 per year for no ads and a custom domain, it is cheaper than the cheapest self-hosting, and more importantly, maintenance free.

I am posting this directly to the WordPress.com sub-domain, next I will change the blog’s DNS CNAME to point to the WordPress.com sub-domain, and if all goes well, you are reading this post on blog.insanegenius.com.

Looks can be deceiving

It has been almost two weeks since I switched to using Blogger’s new dynamic template.

Browsing the site with the new template works really well; it uses most of the available browser real estate, it looks good on an iPad, it feels nice and fluid, but it also has problems.

 

For some reason my AdSense integration stopped working, and the AdSense site said my account needs to be verified. AdSense was working fine in the old template, so something in the new template, or switching to the new template, must have triggered this. I’ve had AdSense for almost a year, and in that time I’ve not even made enough for Google to trigger a payment. In order to verify my account, I had to enter a PIN they mailed me on a postcard, entered the amount of a test transfer in my bank account, and entered a PIN read to me on my phone. Two days after the verification steps were completed ads started showing up again.

 

Very few widgets support the dynamic template, and the options are limited to a handful of very basic widgets.

 

One of the supported widgets is the label cloud, and as I was configuring it, I decided to do some label cleanup. In the process I noticed that the new Blogger management interface is terrible at editing labels, and that direct links to labels no longer work.

 

In the old Blogger management interface it was easy and obvious how to add and remove labels, although renaming has never been supported. In the new interface there is only an add option, and to remove a tag, you have to add the same tag again to remove it, I discovered this by accident, as all the Blogger help still refers to the old management interface. Same as the old interface, you can filter all posts that contain a certain label, and then you can select one or more of those posts, and then add, or add again to remove, labels. Now, when a post has been selected, and you change the filter, that post does not get unselected, and when you then apply a label to a visibly selected post, it also applies to any previously selected posts that are not currently in the filter view. This is just silly.

 

Since I changed some of the labels, and I know that links to labels are case sensitive, this is another silly thing I never understood as label creation and editing is case insensitive, I wanted to test a label link. When clicking a label in the cloud widget on the main blog page, the link works fine, but when you directly navigate to a label link, you get a blank page. Not good.

 

Since I was so disappointed in only making a few dollars in a year of serving AdSense ads, I decided to create an Amazon Associates account, tag my links to Amazon products, and  show some Amazon ads, hoping I can at least recover the cost of the domain registration fees. It turns out that Blogger no longer natively supports Amazon ads, seems a bit anti-competitive to me, but that’s the nature of their business. Ok, you can host Amazon ads by using HTML in your template, but, the dynamic template does not support any customization, and it does not support any HTML widgets.

That leaves me to using just tagged links to Amazon pages, that is easy enough, just a bit of re-editing old pages. A friend suggested I use Bitly to shorten my Amazon tagged links, that way I can do link tracking, and since adding Bitly I’ve had … 3 clicks, seems I’ll have to keep paying those domain fees after all.

That same friend was kind enough to remind me of my associate obligation, to make it clear to users that I’m an Amazon associate, by adding legalese to my site. Something I would normally do in the footer, but wait, you guessed it, the dynamic template does not support any customization, and all I can do is add the text directly to every post.

Since that is a hassle, here is what I need to say, so I’ll just say it here to get some coverage:

blog.insanegenius.com is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to amazon.com.

 

Reading the blog on the iPad is a pleasant experience, but, the sidebar widgets that pop out are clearly designed for a mouse, not a finger, as such it is next to impossible to get them to pop out.

 

I use Windows Live Writer to author my blog posts, it is a great app, and the integrated image posting and sizing is so much easier than any alternatives I’ve tested. Unfortunately, the WYSIWIG functionality does not work with dynamic templates. In order to retrieve the blog template, WLW will make a test post, read the template, and then delete the test post. After making the test post, WLW times out reading the post, but at least it deletes it.

There are some rumblings that WLW may be discontinued, based on its absence from the Windows 8 Metro lineup of Live apps, and in support from the user community, there is a petition to not kill WLW.

A blog subscriber notified me that he was getting some “temporary post” titled posts in his feed. I’ve seen these before in Google Reader, even from Microsoft’s own MSDN and TechNet blogs. It seems that FeedBurner is so hasty that it streams the temporary post created by WLW before WLW had a chance to delete it. No harm, it just looks odd in the stream.

 

By now I was  pretty fed up with Blogger and the dynamic template, and I started looking for alternative and free blog hosting. There really seems to be only one free and feature rich alternative, and that is WordPress.com. WordPress has an easy to use Blogger importer, that imports posts, comments, and settings. Check out my blog in WordPress format. There is one catch, the free .com version of WordPress does not allow direct advertising, they do the advertising for their own revenue. Not that it really matters as the few dollars I stand to loose is well worth it if I don’t need to deal with Blogger.

 

I am still hopeful that Google will step up to the plate and fix Blogger and dynamic templates, but at least I know there is an easy migration path to WordPress.