notes from moving to blogger custom domains
Posted by ark, ,
I've been moving my blogs over to blogger's custom domains since blogger will be stopping support for ftp sometime soon (now later than they announced). Here's some of the good and the bad experiences I had during the move.

1. No way to customize the 'request access to this private blog page'.

Some of my blogs are private. I used to implement this with some php wrapper in the template that set a cookie based on a really simple question. My main goal was keeping out robots not real people. With custom domains the option I chose was to have a private invite only blog. That's all cool, but the page when you go to the blog not logged in, or logged in without permission provides no way at all to request permission to read the blog, or to contact the blog author. Or any way to customize any of the text on the page to tell people how to get access to the blog.

2. No way to set the favicon

Favicons are important to me. I have too many tabs open in Google Chrome to not  use favicons. The default favicon is the blogger favicon, this is annoying since it's the same as the blogger compose favicon too. I tried adding 'link rel="icon"' higher or lower down in the header and Chrome just ignored it.

In the end I copied some javascript that replaces the favicon. It's not perfect but it works most of the time. Webmaster Central still uses the blogger icon which is annoying.

3. Alternative/Feed information in the header

The Blogger feed page is super confusing. I can put my feedburner url in there but alas it never seems to show up in the source of the served page. Then people will subscribe to the blog via the blogger url which I may want to change later. The subscribe gadget/buttons do this too. plus it also puts links to rss versions of the feed in the header, which I don't have feedburner versions of. It's horrible that so many years after Google bought feedburner it's still not integrated well.

Also I have lots of subscribers who are subscribed to a url on the old site. I can't have the new custom domain replace the old site since I still need these links to work. Don't tell me about the failover site, because that doesn't work when you have a private blog!

In the end I wrote more javascript to strip out all the old feed information and replace it with my feed information. I also use my own subscribe buttons with my own urls in them.
I had to move all my blogs to custom domains which were different than the original blog urls. Now I need to wait for Google to index my public blogs even though the content didn't really change.

4. Those annoying screwdriver/wrench icons to edit gadgets! I turned off quicklinks.

I turned off quicklinks and yet blogger still insists on showing me the quick edit tools for all my gadgets, this is especially annoying on my private blogs where I must be signed in!
I ended up getting rid of these by hand editing the expanded template html a terrifying experience.

5. oauth feeds have drafts

As I documented before I fetch the feeds to my private blogs and make restricted versions of those feeds available semi-publicly. I was surprised to find out that feeds fetched via oauth had the draft blog posts in them too! I should have made a google account with only read access and fetched the blog feed using that (then getting my oauth stored credentials would have only given you access to read the blog, not post to it too!).

6 search gadgets for label or subscribe

The tools to search the layout gadgets are awful. I searched for label or labels and didn't get the main google provided label gadget (or it was hard to find). same with trying to find a subscribe gadget (which ended up not working for me anyway (see my complaint about feeds).

7. Redirecting the Old Blog to the New Blog.

O.K. enough complaining. I've listed how I fixed a few issues. Here's some other fixes I found useful:
for my public blogs it was easy to modify .htaccess files to redirect traffic to the new blog. Here's some rules that worked for me. note that archives used to end with .php but now end with .html It seems blogger keeps the file extensions for old posts so they still have .php at the end.

RedirectMatch 301 /scripts/(2[0-9]*.*)$1
RedirectMatch 301 /scripts/labels/(.*)\.php$1
RedirectMatch 301 /scripts/archive/(.*)\.php$1.html
RedirectMatch 301 /scripts$
RedirectMatch 301 /scripts/$
RedirectMatch 301 /scripts/index\.php$

For my private blogs I wanted to put up an alert that the blog had moved but give a way to contact me. I did it with the following php that I added to the template so it appeared on every page:

.alert {
background-color: #f00;
color: #fff;
padding: 50px 0px 50px 5%;
margin: 50px 0px 50px 5%;
border: double 3px #000;
font-weight: bold;
text-align: center;

.alert a, .alert a:hover {
color: #fff;
<div class="alert">
This blog has moved!

The new location of this page is:
<?php echo $newloc ?>

If you are unable to read that page then please Email us using the Email
link on the left.

I added email addresses using javascript so they're not easily harvestable.

I do like that I can add javascript to my new blogger template by adding a html/javascript gadget, that worked pretty well for me.