Recent Posts


Calling them Home


Frustrated by Magento? Then you’ll love Commerce Bug, the must have debugging extension for anyone using Magento. Whether you’re just starting out or you’re a seasoned pro, Commerce Bug will save you and your team hours everyday. Grab a copy and start working with Magento instead of against it.

Updated for Magento 2! No Frills Magento Layout is the only Magento front end book you'll ever need. Get your copy today!

With all the Yahoo and Verizon shenanigans going on I decided to pull my Magento Quickies posts off Tumblr and hold them close again at my personal home page.

You can find all the old posts in the Programming Quickies category. DNS is doing its DNS thing, but should eventually redirect to that same category page, and all the old URLs should be safely redirected to the right place. This post will be proof that the new IFTTT rule I’ve setup will make a link post to the remnant, which I’m keeping around for folks who prefer getting their internet via the Tumblr dashboard. If you see something going wrong with anything, please don’t hesitate to let me know.

The rest of this article is some notes on the migration and the weird everything works but just barely nature of today’s web publishing software.

Notes on the Migration

Step one was getting all my content off Tumblr. I already have a small backup script that uses the Tumblr API to backup the site daily, but the thought of parsing those XML files and creating new posts in the (not exposed to the web) WordPress backend I’m using did not fill my head with visions of sugar plums.

Fortunately WordPress has a Tumblr import feature which works almost seamlessly. I say almost, because for — reasons? — the WordPress importer needed me to turn off my custom domain handling at Tumblr — meaning during the import was offline.

Next, I had to deal with getting all these new posts imported into a single category in my WordPress site. StackExchange was surprisingly silent on this, but I did manage to cobble together an extension and some custom configuration that let me make the one time category assignment. (details in the aforementioned StackExchange post.

Trickier was what to do about the canonical URL problem. A while back Google introduced the concept of a canonical <link/> tag.

<link rel="canonical" href="" />

When this tag is present, you’re telling the world that

Hey — the text on this page? This is the real, canonical home for this content. If you see this content somewhere else without this tag, it’s a republishing via some syndicated/automated means but this URL is the real deal.

The problem? Tumblr adds a canonical <link/> to all its posts, and this tag is not a part of the design template, and there’s no obvious way to change this. While I’m never too concerned about the Kafkaesque cargo cult around how this might effect my SEO, I am concerned about communicating clear intent to the internet at large, and two different canonical URLs for the same content seemed wrong.

Why two different URLs? Because while I’m redirecting all the old URLs to their new homes at, I’ll still have a Tumblr blog at the Tumblr sub-domain ( with the incorrect canonical links.

So, one option was just deleting my Tumblr blog entirely — but that means anyone using Tumblr’s dashboard to check-in would stop getting updates from me. That seems wrong. So I opted for the still-destructive option two, which was deleting all the old posts at Tumblr after I flipped the switch.

Deleting all the old posts at Tumblr turned out to be another exercise in weird software hacks. Again, I probably could have re-learned the Tumblr API and written a script to delete everything for me, but did I really want to spend a day or two on that? The existing scripts I found seemed to work with an old version of the API or had less than clear instructions.

The solution? Use a now-under-promoted Tumblr feature call the mass editor and use a bit of javascript in Chrome’s console to select 100 posts

javascript:$('.overlay').slice(0, 100).click()

and then delete them. Do this five or six times and you’re done.

One last little bit of weirdness was discovering that Tumblr automatically posts AMP versions of all your posts. This makes sense from a mobile experience point of view, but given the weirdness of how Google users AMP as a signaling flag (for news sites only. so far.) that it’s OK to republish this content via their Google hosted CDN (i.e. not the original website), I’m not 100% comfortable with Tumblr doing this. They also don’t seem to allow you to edit the AMP/mobile page design either. All the more reason to get myself off Tumblr and back to my late 90s version of the web.

I am, as always, grateful for the open web, WordPress, and the magical powers of a web browser when you know javascript. I’m also eye rolling pretty hard at how so many things almost worked but needed massaging from someone with a deep technical background. I have no idea how non-programmer civilians manage this stuff day-to-day.

Copyright © Alan Storm 1975 – 2023 All Rights Reserved

Originally Posted: 28th August 2017