Skip to content

Transparency Report #30 – How to Lose 50% of Your Business Overnight

Welcome to the 30th edition of the monthly transparency report (for July 2017). In this series, I do my best to share with you everything that’s been going on at CodeinWP and Themeisle – from a business point of view. The good, the bad, and the ugly. And we have a lot of the latter this time. Click here to see the previous reports.

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:

1. Payments, tax, and other “fun things”
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:

FastSpring

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.

c) Affiliates/partners

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.

On another note, by working in this industry, we are biased towards self-hosted solutions and being in full control in general. Sometimes, though, this provides us with only false benefits that aren’t all that valuable at the end of the day. As it is with payments, for example, I don’t really need to self host those, all I need is to have them taken care of and done reliably.

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.

Themeisle pricing

3. How we lost 50% of our business overnight

It seems like we’ve said enough about hosting already, but no.

And this is not about surveys, experiments, or anything like that. This is about what’s in the headline…

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.

CodeinWP stats

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 wpshout.com domain. The first one being the main site – at wpshout.com itself, and the other being the blog – at wpshout.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.

New author bios

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 …

Nothing.

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:

  1. Avoid complex setups when they aren’t really required. Having things for convenience seems good, but can cause trouble in the long term.
  2. 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.
  3. 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.
  4. 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:

comic strip: blog gone

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.

Yay! 🎉 You made it to the end of the article!
Share:

23 Comments
Most Voted
Newest Oldest
Inline Feedbacks
View all comments
PageSpeed Today
August 26, 2017 9:56 pm

Thanks Ionut! It’s always useful to learn from other people’s mistakes. I hope to make a not or two from your experience.!

Garikai Dzoma
August 26, 2017 7:44 am

Thank you for another insightful report. Some of your experiences sound frightfully familiar. I do stare at my analytics in horror sometimes. I don’t use Kinsta but what I have learnt in the world of hosting is that mistakes happen. Remember the Amazon fiasco early this year?

Ionut Neagu
August 31, 2017 11:18 am
Reply to  Garikai Dzoma

I think at the beginning is scary, in time we learn to get used on possible risks, configure alerts. Re: Kinsta I still thing they are doing a great job, we can also learn from their experience on how such an unfortunate series of events can hurt even if the initial mistake wasn’t that big.

carrie dils
August 24, 2017 9:08 pm

Hi Ionut,
I always enjoy reading your transparency reports and appreciate you letting us learn from your “bumps in the road.” Here’s to a fully indexed blog soon…
Cheers,
Carrie

Ionut Neagu
September 13, 2017 1:21 pm
Reply to  carrie dils

Thanks Carrie! Everything is working great now 🙂

Goran Ljubuncic
August 24, 2017 7:30 pm

I was wondering if you evaluated any other platforms beside FastSpring and if so, why did you decide to go with FastSpring?

Ionut Neagu
August 31, 2017 11:20 am

Hey Goran! I haven’t done a ton of research, however I didn’t wanted to go with a small/newer player since I see this as an pretty important part of the business, considering especially that there are recurring renewals tied to the platform. One thing that made me choose FastSpring is that I knew few other people from the community using them since few years successfully.

seriousgeekazoid
October 18, 2018 9:42 pm
Reply to  Ionut Neagu

how do you notify customers of a theme or plugin update?

Chris Fitzgerald
October 26, 2018 1:13 pm

Heya, usually we just handle them via the dashboard.

For a major update or new release, then we might write a blog post and announce it via our newsletters.

Zachary Miller
August 23, 2017 7:38 pm

I have found that I learnt the most when I had a difficult and mysterious troubleshooting task. You sort of go into overdrive and just start vacuuming up information to try to solve the problem. A stressful but speedy way to learn. Glad the story has a positive uptick at the end. 🙂 Also, your blog never feels like an affiliate farm to me, I gain lots of insights and never feel like it’s just about monetization. Perhaps this isn’t the place to discuss this, but considering you’re running your own business and clearly are a highly respected member of the WP community, I find it a bit strange that you are promoting Upwork here. I have used Upwork before when I had almost no budget, but the quality of the work can be questionable and it’s a little too easy to take advantage of whoever is doing the work because they might be desperate for the work so they lower their prices to be competitive. This may seem great if you’re all about penny pinching, but I try to hire people who get paid what their worth. $250 for several cartoon strips which probably took many hours to produce… Read more »

Ionut Neagu
August 31, 2017 11:26 am
Reply to  Zachary Miller

Hey Zachary,
Thanks for stopping by and your 2nd comment is interesting, even if I was working on those platforms as a freelancer for years. I mean I was aware of the disadvantages, that’s why I have decided to start wpshout.com instead of relying on projects from those platforms, however I never thought at the point you are making.
Thinking about it now I think that you can be fair to people even when using such platforms ( thing that I am trying to do), and from a freelancer perspective they definitely help a lot, I am pretty sure that I won’t have been where I am today without freelancer.com, it gave me lots of opportunities and freedom 10 years ago, even if that by looking at it now I worked a lot initially for nothing, but I didn’t care, sometimes the initial opportunity is enough, then you can decide how you move forward.

David Braun
August 23, 2017 2:58 pm

Wow. This is ridiculous reaction by the host. If I would be them, I’d try to provide you 5 years worth of credit towards your hosting plan to save their face. Thanks for sharing your story Ionut.
Considering the quality of your content you create I would never believe Google would penalize you for the affiliate links – you are not an affiliate farm.

Thomas Fanelli
August 25, 2017 5:19 pm
Reply to  David Braun

And to expand on David’s comment, you would think they would do the especially since you are in the WP community!!!

Ionut Neagu
August 31, 2017 11:28 am
Reply to  Thomas Fanelli

I agree that they could have done better, later on when I contacting somebody from their team informing them about the issue, they offered 1 year of hosting. The truth is however that offering 1 year or 10 or nothing don’t make you a better hosting provider, I will definitely appreciate more if they will make sure such things won’t happen 🙂

Aleš Krivec
August 23, 2017 1:38 pm

We have some themes in your lists and get decent referral traffic from you guys. I noticed instantly that suddenly referral traffic was 0 one day. And no matter what search I did you where nowhere to be found on Google. Got me worried also so I am glad you resolved. 🙂 It’s such a weird error, but yes probably still better than Google penalty.

Sabina Ionescu
August 24, 2017 2:28 pm
Reply to  Aleš Krivec

Hey Ales, thanks for sharing this with us. Indeed, this affected more than our business as it bounced into our partners as well. I can’t imagine what happens when even larger business go stealth and take others down with them. Hope this won’t happen again!

Vishal Kothari
August 23, 2017 1:28 pm

If I were you – I would have posted on some WordPress FB groups about this, would have asked in a couple of mastermind groups on Slack & probably my host (may be, not sure).
But glad you found this out soon. As you rightly said, do avoid complex setups where it can be avoided.
One question: What were you using for your self-hosted affiliate program? We currently use AffiliateWP & wanted to learn about your previous setup.
P.S: I met Marius & rest of the ThemeIsle team during WordCamp Kanpur. Keep up the good work!

Ionut Neagu
August 23, 2017 1:35 pm
Reply to  Vishal Kothari

Hey Vishal,
Thanks for your input, next time definitely I will ask around more. I hesitated to ask around since I was sure is a Google thing.
For self-hosted affiliate program AffiliateWP is great.

M Asif Rahman
August 22, 2017 10:51 pm

God! Thats horrible! But maybe think it this way, if it’s something to do with Google Algorithm, you would not be able to do anything!
I personally host all my server, manage all my stack, but I am server loving geek anyway, and turning server, endlessly trying to optimizing is my kind of thing, not sure how affordable this is for others.
Another thing man, get rid of DISQUS. If you need some reading material about why I am stressing about this, knock me.

Sabina Ionescu
August 23, 2017 11:06 am
Reply to  M Asif Rahman

Hey, we are considering giving up Disqus. Do you maybe have any experience with Spot.IM or any other alternatives you recommend? Thanks!

Ionuț Staicu
August 23, 2017 1:04 pm
Reply to  Sabina Ionescu

Sabina, if you want to also develop a comunity around codeinwp, you could use a Discourse forum with its WP plugin.
I’m using this set up for devforum blogs and works fairly well (there isn’t much activity on that blog though)

Sabina Ionescu
August 24, 2017 2:29 pm
Reply to  Ionuț Staicu

Thanks for the tip, will check it out!

Benjamin Houy
September 1, 2017 7:10 pm
Reply to  M Asif Rahman

I’m curious, why do you recommend getting rid of Disqus. I know they insert affiliate links in comments (even if affiliate links are disabled in setting), is this the reason why?

Or start the conversation in our Facebook group for WordPress professionals. Find answers, share tips, and get help from other WordPress experts. Join now (it’s free)!