Jeremiah Rogers

About Subscribe Gallery
Sat, Jan 10, 2015

In the last month this blog got 25,000 unique visitors. Many of those visitors stuck around for five or more minutes, which is phenomenal. However, only 1 in 1,000 converted into long term readers. That’s terrible.

My top priority for this blog is to keep it high quality. My second priority is to help fund my travels. That requires having people stick around long enough so that someday they will buy a print or subscribe to The Signal.

The abysmal conversion numbers made me decide to get more aggressive about retaining readers. I didn’t want to compromise design design by filling the right rail with distracting graphics.

My solution is a new internal “ad system.” I have one “ad” per page load on desktop and two per page load on mobile. The content of those “ads” changes and lets me move traffic around the website without upselling within the content of the site. This has increased reader retention tenfold.

The Traffic

In two weeks this site got more than 25,000 unique visitors from 132 countries. Here’s how that traffic splits geographically from Google Analytics.

Visitors came from 132 countries around the world.

You can see how these visitors behaved in a heat-map provided by Clicky analytics (that’s an affiliate link). Almost none of the visitors made it into the right hand navigation bar to find more articles. Very few of them made it past the Disqus comments at the bottom of the article to read more articles. That’s a serious design problem. I needed to fix it.

Heat-map of visitors before ad system to my most popular article.

I needed a way to let people know about my trip and that they could follow it without compromising my design values. My solution was to implement my own advertising system. I have nine ads, picked at random, inserted at most two per per page. If you’re on mobile you’ll see one right here, below this paragraph.

Since the ads might change over time here are two screenshots. If you’re on desktop ads show up on the right hand side like in this image.

And on mobile the ads are at the bottom of articles and sometimes inserted directly into the content if the article is long.

What I love about this solution

  1. The ads only sell products and send messages that I believe in. I had serious quality issues with Google Adsense (see below.)
  2. The ads speak with a separate voice than the content. An orange box with a message has more integrity than a sentence mid-article pitching something. I’d like that clarity.
  3. All of the ads direct traffic into my site instead of away from it. This gives me way more value than a 50 cent click and makes the ads well targeted.
  4. I don’t have to compromise site navigation or integrity to remind people to follow the paths that help me keep this blog going.
  5. The ad system lets me send a message to old and new articles at the same time. Most of the ad impressions are served on pages that get high search traffic — not pages frequented by existing readers.
  6. Finally, the ads aren’t all about money. I’ve got one ad for finding a random image and one encouraging readers to [donate to charity:water]()


In just one day the ads are ten times as effective at converting casual readers into subscribers. Here’s an updated heat-map of visitors to the 35mm lens article. Base traffic is much lower, but a few users click on the right hand column ad now.

Heat-map of visitors after ad system for Jan 11, 2015.

Over time I’ll test ad copy and coloring to see what’s most effective.

At Their Best

At their best my new ads should draw new readers further into the content and not distract existing readers. They are already ten times better at retaining readers.

I’ve shown them to existing readers and existing readers think they look great.

If you run a content heavy high quality blog you might consider a similar solution.

Appendix: Why not Adsense?

I find image based ads very distracting and wanted to keep them off of my site. Google Consumer Surveys, Adsense, and Amazon detracted too much from the experience of reading.

Google Consumer Surveys gave me no way to check the quality of the surveys they were given to readers. They didn’t even let me see the surveys they were running. I was outraged to find that Google was asking all of my readers what they think of the UN. That’s a politically charged question I don’t want to be associate with.

A questionable Google Consumer Survey sent to me by a friend with the caption “serious bug”. Few people know what this is and Google gives me no way to spot test quality on the ads. I don’t like how politically charged the question is either.

Adsense shocked me with terrible image ads pretending to be a Facebook UI. I didn’t want that crap on my page.

A crap ad Google survey on my page, pretending to be a Facebook notification.

If these ads made as much as print sales or subscriptions to The Signal I might keep them around, but the money was far too low.

Wed, Apr 30, 2014

When I decided to take a trip around the world I wanted to document it properly. I could have posted the whole trip to Facebook but I wanted to try owning my own website again.

This site is a bit unusual for a blog. It’s statically generated into HTML and written in Markdown with customizations to make my photos pull directly from Lightroom. Below are some thoughts about why I did this and then the technical details of how it was implemented.

Creating your own medium

I’m a firm believer in the statement “The Medium is the Message.”1 It means that the method you use to communicate determines the message you are able to send.

As an example here are how some mediums influence messages2:

  1. Facebook status updates seem to perform best when they’re succinct, easy to consume, and uplifting.
  2. Books are best at 100-300 pages.
  3. Magazine article are best at several thousand words.
  4. In general the photos that do best on 500px and Instagram are the photos that would hang well in a hotel room, not the photos that change the world.

I want my site to be perfect for sharing stories built around photos. I want the writing to complement the photos and build them into a story. Each image can stand well on it’s own but their impact is stronger when used in a story and arranged with accompanying text. No existing tool seemed perfect for the job I wanted to do so I built my own medium for the kind of message that I want to send3.

So far this has gone well, my story Tokyo in Motion would not be possible on Facebook because it interleaves animated GIFs and images with text, something that Facebook doesn’t support. Another example storiy full of imagee is my Travelogue from Japan.


A smaller concern for the site was owning my own identity. Google search results are a valuable asset that grows over time. I didn’t want to find myself stuck in several years with someone else acting as a gatekeeper between me and the content I have created. Each photo on this site has a permalink with descriptive text that will show up in Google results.

In the short term the content is getting less traffic than it would if posted directly to Facebook or Twitter. In exchange I get more meaningful engagement from people I’ve never met who found my site through Google or links from other blogs.

Criteria for the site

  1. Customizable to the content I want to share
  2. Hosted on my own domain
  3. Incredibly secure and fast
  4. Easy to share high volumes of photos
  5. Easy to edit offline or with slow connections

To be secure and fast I decided on having a static site. Each page on is compiled from source files into static HTML and images. This makes the site fast. Since there are no exposed services and minimal code running on the server the site is also incredibly secure.

The site is built using Pelican with a few custom scripts.

**Script 1: ** Photos are exported as full resolution high quality JPEGs into a folder called “originals”. Afterward a script I wrote uses the Mac OS X sips command to resize images. In my experience sips gives higher quality and smaller sized images much faster than ImageMagic.

Script 2: A custom Pelican reader class which crawls all the JPEGs on the site and gives them a permalink with a title and description. The permalink is based on the image filename and stays the same forever.

Script 3: This is not really a script, but I have macros img and img-small that autocomplete into properly sized images to be included in a story.

Summary and Future Changes

Overall I’m very happy with this setup. Using Pelican and Lightroom I edit my photos to look the way I want, export them to a folder, and then they are immediately pushed to my site. Today there are around 350 images accessible on the site out of my catalog of 7,994 photos.

Amazon S3 has worked well as a host but I may soon move to DigitalOcean so that the static site can be generated on the server. The right navigation rail on each article permalink gets updated whenever a new post is created. This means a simple blog update pushes 50-100 files to Amazon S3 which takes 20 minutes from Southeast Asia.

  1. Coined by Marshall McLuhan. I never read the book. [return]
  2. Of course these are simplifications. [return]
  3. I started working on it before Storehouse came out. Even then I think Storehouse is too pretty and not as functional as what I’ve built. [return]