First off, no click bait with the title. I mean it, but more on that later in this report. Here’s the full TOC if you prefer to jump straight to the part that you’re most interested in:
2. Pricing strategy and industry overview
3. How we lost 50% of our business overnight
You might have noticed that the previous report was a bit different – instead of focusing on the usual set of thoughts and takeaways, I showcased a timeline of our WordPress experience so far, plus some of the most notable milestones for the company.This month we’re back to the standard format, so get yourself prepared for twice the learnings!
1. Payments, tax, and other “fun things”
Last month, we finally managed to integrate FastSpring fully as our main shopping cart software. This means that from now on, all our sales go through them.
Now, why is this a big deal and especially for EU countries? A couple of reasons:
a) VAT/tax handling
Something I learned rather recently was that 5+ countries introduced kind of a new taxation on digital goods somewhere in the first half of 2017 (Russia, Serbia, Taiwan, India, among others). Moreover, 10 more countries are working on something similar (reports say).
It’s just really really hard to keep up with all those changes happening globally. Basically, if you’re on your in-house shopping cart, you need to hire another person full-time just to handle all the effort that goes into staying up-to-date with stuff like that.
On the one hand, you can experiment using a decent payments plugin to try getting that handled for you. But on the other, I just trust a reputable SaaS solution more, and it seems to me like a better overall choice. In other words, with someone like FastSpring, you’re basically outsourcing all the worrying about international taxation and regulation changes.
For example, when the regulations launched in the EU, Romania (where we’re at) lacked a central office for collecting all EU-related VAT, which meant that the German tax office, for example, contacted us and asked to pay the VAT on the sales towards German customers.
Solutions like FastSpring, Freemius, Avangate and others similar aren’t a classic shopping cart, though. It’s more like they’re becoming a reseller of your products, so it’s their responsibility to handle invoices, reporting, etc., while you get paid the remaining amount. All in all, instead of, say, 500 individual invoices, we just get 2.
Fees? Yes, but it’s still well worth it anyway.
b) Performance and flexibility
FastSpring supports both web and popup checkout solutions. For the web, they have really great tools for upselling/cross-selling, and everything is optimized for conversion quite nicely, IMO. After all, the main incentive for them is to get you even more customers and sales, which means higher earnings for them too.
Granted, if your company is based in the US then you might have more options to choose from. But for us, being in Romania, we couldn’t get a Stripe account nor pre-authorize PayPal payments. This meant we couldn’t do one-click upgrades/upsells. Now, however, our clients can just upgrade to a higher-tier subscription with a single click – no need to re-enter their payment details.
Lastly, everything automatically integrates with Google Analytics and GTM, which means that you don’t need an extra e-commerce tracking plugin, nor risk having your tracking implemented badly.
We used to self-host our affiliate program. This has not been perfect:
- hard for affiliates to keep accounts on every partner site,
- harder to trust your particular program,
- legal challenges (in our case) with payments and invoicing.
For the most part, we’ve been working with ShareASale to handle all that (which wasn’t bad at all – functionality-wise), but we’ve finally decided to move to an even better (more expensive) solution. FastSpring has an integration/partnership with Impact Radius, which means that they not only have the tracking integrated, but they will also pay affiliates themselves towards Impact Radius. Read: even less invoices for us to handle.
Same goes for partnerships; FastSpring can pay a percentage of a particular product’s sales to another person and then you will get only your part. There is simply no need to get 100% of the money in the first place only to then have to transfer some of it away to a third party yourself.
2. Pricing strategy and industry overview
It’s been a continuous challenge for me to come up with a good, long-term strategy for ThemeIsle. I worked on the pricing model a lot but I got completely stuck at some point, lacking new ideas and possible directions to take.
Finally, I turned my attention to other industries and niches that probably struggled with similar issues at some point. For me, the no.1 issue is the mindset that premium WordPress products should be a one-time purchase.
With that, I realized that, back in the day, this was basically the same problem that standard software products were facing. I remember when MS Office or Photoshop both worked as one-time purchases, not to mention things like the Windows OS.
This was perhaps the biggest eye opener for me considering all the things I was brainstorming about lately.
Also, even though the above software have much higher volumes than anything we see in the WordPress community, they still use solutions like Avangate, FastSpring or alternatives.
Some other learnings and interesting findings that are to that tune:
- I haven’t seen a single provider who’s selling lifetime licenses in the “big software” industries. All they’re selling is one, two, or three-year licenses at most.
- The Apple ecosystem is funny in its own way since the developers basically invented an approach of their own. For instance, you’ll see an App ver 1 for one fee, but then the same App ver 2 is a completely new product, so you have to buy it separately if you want to use the latest and greatest. For example, if you’re using a writing app, like iA Writer, you should be quite familiar with this approach. Can you imagine this done for a WordPress theme? Like, if we released our Zerif 2.0 and tried selling it as a standalone product, while also deciding to cease support for ver 1.0.
- Every big player is doing a lot of upselling and cross-selling in the shopping cart, and at various stages of the checkout process. There’s not much of this being done in our ecosystem.
- I’m also seeing numerous tricky techniques out there. Just to name a few, Photoshop has what appears like a “fake” annual plan just to prove to the buyer how good the other deals are, without probably expecting anyone to get the inferior one. Or, PHPStorm, which gets cheaper every consecutive year you renew (great incentive!). And to top it off, we have various antivirus software that keeps showing me a different price every time I visit the sales page. 🙂
At the end of the day, my main takeaway at the time of writing this is that unless you have a tool that kind of locks people in (like Sketch or Photoshop – both are proprietary solutions where adoption is important), there’s no reason to not have auto renewals or auto updates.
In other words, if your product is a WordPress theme or plugin, auto renewals seem like a good idea.
Taking all this into account, we have updated our pricing model again and tried making it more clear for people – regarding what they get. We’ve also added the possibility to opt out of the auto renewals while they’re in checkout. This is always a sort of compromise between running a business effectively and still remaining transparent – so that our users don’t feel strong-armed into anything.
3. How we lost 50% of our business overnight
It seems like we’ve said enough about hosting already, but no.
First off, no click bait, we really did lose about 50% of our business literally – I mean literally – overnight.
Although we didn’t know it was a hosting issue at first, this has turned out to be the biggest hosting problem that we’ve had in a while (okay, some coincidences and my laziness played a small role as well).
Here’s what’s up:
As I stated before, our blog is responsible for about 50% of our revenue at this point. This comes from various sources, but mainly affiliate, as well as referring people over to our ThemeIsle products. In other words, this blog is one of the main marketing channels for ThemeIsle.
TL;DR: One Sunday, the blog got nearly completely removed from Google. All of the most important money-making posts were nowhere to be seen. First, we thought that we got hit by one of the recent algorithm updates, but the truth turned out to be different.
About a year ago, we switched hosts to Kinsta (and even reviewed it here). Due to my laziness, I wanted to have some easy separation of our sites both sitting on the same codeinwp.com domain. The first one being the main site – at
codeinwp.com itself, and the other being the blog – at
codeinwp.com/blog. Those are separate WordPress installs, which required Kinsta to set up a reverse proxy in order to make this work for their infrastructure.
So on June 18th, after having an otherwise nice evening with some friends over, I started seeing that the blog was slowly disappearing from Google. At first, I thought it’s nothing to worry about and probably a glitch. The next day, seeing that nothing got sorted out, I started doing research and came to the conclusion that we must had been hit by a recent Google update.
There wasn’t much info about that update on the web though, so I started digging into things on my own.
I examined our links and content one more time, the recent plugin updates we did, but nothing seemed out of place. It was really frustrating and hard to believe that one of the more reputable blogs in the WordPress ecosystem could get removed from Google just like that.
I mean, getting a single page or post hit by an algo update or review can happen, sure, but the whole blog all at once…
I also learned that there is basically no means to complain or request a review. After all, an algorithm is a script, software, or some form of AI if you will, so there isn’t much that can influence it without doing massive changes on your end (to your site). On the other hand, those updates and the algorithms themselves is precisely what makes Google the best search engine around.
Nevertheless, I still got the impression that in this particular case it was a bit unfair. After all, we invest heavily in content creation, and some pieces take weeks and thousands of dollars to get done (like this one) – which I mentioned a couple of times before. But still, what can I do, right?
It took me a while to identify which specific Google update was likely the trouble maker for us. Finally, I found it written about here. Plus, there was this particular tweet:
The name of the update – Fred.
After looking into this for a couple of hours, it seemed like this might be it. In all honesty, we did focus a bit more heavily on monetization ever since Zerif got suspended. This must had been something that Google noticed, so they decided to remove us – I was thinking.
To somehow battle this, cut the losses short and at least get indexed again, we removed the advertising page completely, got rid of most of our affiliate links, added author profiles (see below), added an about page, and added an easier way for people to contact us. Basically, we made the blog more human and approachable for the readers.
We also realigned our content strategy to focus less towards monetization, and then started waiting patiently for the blog to start coming back.
What also added to my certainty that we’re going the right direction was that the only posts that were still visible in Google were the ones without any affiliate links in them.
Maybe it was just me being naively optimistic, but I somehow expected things to just get better over time, so I waited. I didn’t even want to let other people know what was going on, nor complain about it. I wanted everybody to just keep their focus and not worry about this. Our affiliate payments come with a two-month delay anyway, so we wouldn’t have felt the drop immediately.
Although I did manage to get some sleep, the stress levels were high (editor’s note: same). So almost one week passed, and …
This is when I started worrying big time.
I started looking for a way to maybe contact someone at Google to at least get an idea about what was wrong with the site. I used plenty of tools to analyze the site with over and over again. I changed a lot of links and spent somewhere around an hour each day in Google Search Console.
I looked at everything. Every single sub-page. Finally, when I was checking how Google sees the site, I noticed “noindex” popping up here and there. Of course, one of the first things I did was go for the robots.txt file. It appeared fine and there was no such tag in it.
I didn’t understand what I was seeing at first and thought that it might be some hidden Google thing/marker or something. After all, we didn’t have any “noindex” tag anywhere on the site (be it in the theme files or in Yoast SEO).
Anyway, I started digging through this some more, and I finally discovered that there was a new HTTP directive named X-Robots-Tag added to some our blog pages. This was put there by our host – Kinsta.
As it turns out, we’re the only client of Kinsta that has a reverse proxy set up. So in an effort to optimize things, they changed parts of the configuration that resulted in the “noindex” tag being added. Nobody else noticed it nor anyone else experienced the same problem, since, like I said, we’re the only client with this setup.
So just like that, we lost thousands of dollars in total due to a hosting mix-up. Although I haven’t done the exact maths, simply not to put myself down, it has to be north of $10k.
Money aside, what we lost in terms of stress had an even bigger toll on me. It’s for sure the biggest issue that we’ve faced with hosting in terms of overall impact.
On another note, there doesn’t seem to be any SEO tool, apart from GSC, that was able to detect that “noindex” tag. After all, how hard can it be? A note like, “warning; noindex tag detected” would have been more than enough to cut the problem short, after minutes, not weeks.
So how did it end?
Luckily, after getting the tag removed, everything started coming back within hours. Though, I’m not sure the whole blog has been re-indexed yet.
In hindsight, I think the nature of the issue and the response we initially got from Kinsta (basically, “whoops, sorry for the trouble”), don’t convince me to remain their client. Not with this blog at least.
While I do appreciate the work they do, the stakes are just too high, and for the price they’re charging, this sort of stuff shouldn’t happen.
I’m curious, though, how would you handle this if you were me?
In summary, mistakes do happen, and I’m sure Kinsta learned from it. Same for us. I am still researching and thinking how similar issues can be avoided in the future. Also, can you even get a guarantee from a hosting company that stuff like that won’t happen? Probably this is what enterprise hosting is about, am I right?
Anyway, here are some simple learnings that I took away from the whole thing:
- Avoid complex setups when they aren’t really required. Having things for convenience seems good, but can cause trouble in the long term.
- It probably won’t hurt to reach out to your host whenever you’re facing any SEO trouble at all. Just ask if things are in order on their end, and if they haven’t done any changes to your server at all. Any hacks they got hit with? Etc.
- Even though Fred turned out not to be the trouble maker in our case, learning about it and changing the direction a bit has also been very helpful. In short, always create educational content first, and only then monetize a couple of posts.
- This e-book released by Google is really really good. It’s a guide for their quality search raters, and it gives a good idea of how real world trust and user perspectives are shaped. We should all read this. Again, this is gold. I couldn’t stress this enough.
At the end of the day, all I got out of this whole fiasco was this lousy comic strip:
Okay, I don’t actually think it’s lousy at all. 🙂 It’s part of our new content experiment here on the blog, and you’ll see more of those in the upcoming weeks. By the way, I used Upwork to get the above one created, and it reminded me how awesome communities like that are. It took me basically one hour of work to specify what I needed plus back and forth, and then 1-2 days later, I got a handful of amazing comics delivered for $250 in total (here’s another example).
Okay, that’s all I have for you this month. As always, thanks for reading and for supporting us! Stay updated and get new reports delivered to you by subscribing here:
All edits and witty rewrites by Karol K.