Monday, January 26, 2009

Money Saving Tip: Lease-to-Own Servers

My ISP starting offering lease-to-own deals many years ago on dedicated servers.  At the time, you would pay an extra $25/month or so to sign-up.  Then after a year, your payment would get prorated down, and after two years you would own the server out-right.

I didn't really think much of the long term benefit of it at the time since I was swapping up my servers so often in the early days to account for increasing traffic and new sites I was adding each year.

Well come to find out my 2 years had come and gone this past summer.  I was doing some catching up on my books and realized my develoment server, which I was paying around $70/month for for 2 years, was now billing out at $2/month!  Nice!  I had completelyl forgotten about the lease-to-own program.  My server was essentially free from here on out!  The $2/month they charge me now is for the additional IP addresses I lease, unrelated to the hardware.

Since this is my development box, I can estimate keeping it for another 3+ years before it probably dies on me...  That will pocket me a total savings of $2520!

As an added benefit, my ISP will ship me the server once I terminate our contract, or upgrade to a new server.  It is my server!   Sweet!  

For my business I lease a few dedicated servers.   I have another one approaching the 2-year limit next month.  That one I pay close to $300/month for.  Once my hardware portion of that payment is reduced, I'll be paying less than $50/month for the server.  Assuming I hang on to it for another 2 years (possible, since I recently implemented a sweet memcached solution to help scale my server), that would give me a total savings of $6000 for this second server alone!

Between the two servers, I'm going to save $8500+ over the next few years.  Plus I'll get the servers sent to me to keep as nostalgia... ;-)

Tuesday, January 06, 2009

MySQL Performance Tip - Indexes and Wildcards

This one is kind of obvious once you think about it, but I had overlooked it in my code, so I figured maybe some other webmasters out there may have as well.  I found this snippet explaining the tip I want to share from a site called websitedatabases.com:


 MySQL also uses indexes for LIKE comparisons if the argument to LIKE is a constant string that doesn't start with a wildcard character. For example, the following SELECT statements use indexes:

SELECT * FROM tbl_name WHERE key_col LIKE 'Patrick%'; SELECT * FROM tbl_name WHERE key_col LIKE 'Pat%_ck%';

In the first statement, only rows with 'Patrick' <= key_col < 'Patricl' are considered. In the second statement, only rows with 'Pat' <= key_col < 'Pau' are considered.

The following SELECT statements will not use indexes:

SELECT * FROM tbl_name WHERE key_col LIKE '%Patrick%'; SELECT * FROM tbl_name WHERE key_col LIKE other_col;

For me, some of my most visited pages had some hidden queries buried deep in includes that were using front-end wildcards to search some of my largest tables.  It came to my attention the other day when I had to restart my server during the busiest time of my website's day (around 2-3pm).  My server could not catch up with the traffic due to the heavy pounding on my database.  

Typically it is not an issue since I use memcached to limit the usage of my database.  But in this case, my cache was lost due to the reboot, and every request was hammering the database.  So it forced me to take a closer look at my code.  Low and behold I found a number of these front-end wildcards in queries that I thought were using my indexes.   The funny part was that I really didn't need the wildcard on the front-end of the string pattern.  I must have just added it to try and get more results.  

I quickly fixed my code/queries and the site bounced back to its typical performance levels... and the database let out a sigh of relief... ;-)





Saturday, December 13, 2008

The NoFollow Debacle...

I've been researching whether or not to utilize the "nofollow" attribute on my user-generated links for about a week now.


It is pretty amazing how many different valid opinions are out there on this topic.  From one perspective (Google), Doctor Matt Cutts insists that the world is indeed round, and that we are all safe to use the nofollow tag where ever user-generated content allows links to be added.  He then goes on to also say that IF you have the ability to filter trusted users over non-trusted users, you could then consider removing the nofollow on any links contributed by trusted users.

Easy enough right?  Google says use it, so we should use it? 

Well not so easy.  There also exists the viewpoint that applying such a blanket attribute to all your user-generated links may actually hurt your site.  Some believe that it is a red flag to Google that your site/content must not be that trust worthy if you have so many "unchecked/untrusted" links on your pages.  Then there is the theory that if you are not going to trust any of your outgoing links, well then karma will come back and bite you as no one else will want to trust a link back to your site.

Ok, so forget.  I'm not going to use nofollow.  Who wants to be flagged as untrusted content?  I want to be a good internet citizen.  I'm going to try something else.

 What about redirects?  WebmasterWorld does a nifty 302 redirect for any and all user-added links to their pages.  Is that legit?  Well according to Google, 302 redirects do not pass any PR, but is it safe to use?  Many feel you should avoid 302 redirects all together since they are often abused by spammers/hijackers.   Of course Matt Cutts himself stated that redirect scripts are one of a few recommended ways folks can "sell links" legitimately.  Since 302 redirects don't pass any PR juice, they are safe to use for that purpose.  Ok great, but if I utilize a redirect script, are I now labeling myself as someone who sells links, but legitimately?  Is Google going to view me as a potential hijacker now with all my new 302 redirects?  Well no, IF you make sure to tell robots.txt to exclude any access to your redirect script.  But how many webmasters actually know how to implement this correctly?  One mistake can cost you dearly in search rankings.

Why the hell is this suddening getting like 10 times more complicated.  I just want to know if it is okay to allow my users to add links in comments.  A basic fundemental aspect of the web, and I cannot come to a decision on how to do it!?!

Okay fine, let's just leave the links as natural links.  Heck, we trust our users.  But what if we get one rogue user that starts posting links to unsafe sites.  Or one of our trusted members sells out and starts offering links from our site to other sites for cash?  Who has the time or ability to monitor all that when you are getting hundreds if not thousands of comments a day? 

Ok, forget that idea.

So I'm back to where I started.  Comments full of links that are not really links (just text URLs) that totally suck for user-friendlyness... all because I am forced to give a crap about what search engines think about my site, instead of just having to worry about what my users think.

I guess I owe special thanks to all the comment-spammers of the world!  

UPDATE:  I've come to a decision.  I'm going old school javascript style.  I'm going to have a js function that does the redirect for any URLs shared by users in comments.   I avoid the no-follow paranoia, I avoid the potential 302 pitfalls, I avoid the naturnal linking risks... and I get to still offer "working" links to my users.  

Here is my simple solution:

Javascript function:

function goLink(o){
  var u = o.innerHTML;
  document.location = u;
  return;
}
Then I simply made a matching style class to have the link appear as a link:

.link {
color: blue;  
cursor: pointer; 
text-decoration: underline;
}

Thursday, November 20, 2008

Simple Trick To Increase Your Pageviews & Revenues By 20%

A few weeks back I was reading a forum thread over at DigitalPoint about a webmaster who had added some handy navigation links to his pages that helped him browse through his content more easily.  He was talking about how he had initially added the new navigation links to help him keep up with monitoring the content more easily.  However after implementing his new links, he found the total pageviews he was getting on his site had jumped up.  Users were finding his new links helpful as well.


This simple idea of adding easy navigation to your site is one that had escaped me up until I read this guy's post.  It was so simple why hadn't I noticed it before?  My site is cleanly designed, I have a good search tool, and plenty of "related article" links after each story.  But those links require the user to actually keep scrolling down beyond the article, and then actually read the links to see if they are something of interest before clicking to the next page.

So it got me thinking, why not simply at a "Read Next Article >>" link to the end of each article?  With a little logic, I could even make it jump to the next related article.  

So now a user gets to the end of the article and does not have to scroll or think... They can simply click to see another article... click again to jump to the next.  Scrolling through my pages looking for something interesting to read.

Since I implemented this strategy, I've seen my pageviews jump by 20% across the board.  And as most of you know, pageviews relate to revenues.  I've seen a similar jump in revenues from both CPM ads and PPC ads.

If you have a content site, give it a try.  I'm guessing you will see similar results.

Monday, October 27, 2008

Are You Losing Out On Links To Your Site?

This is a huge tip for webmasters out there who have not yet discovered the new 404 feature released in Google's Webmaster Tools.


Matt Cutts did an great review on the new 404 error page feature to outline the exact steps you can take to see if you are missing out on a slew of links from other sites that may be simply mis-typed or mal-formed.

I reviewed my 404 error stats and found I had close to 100 links pointing to various pages on my site that were not working due to case problems in the url, or other typo problems.

I was able to create a few redirect rules in my Apache httpd.conf to help point the broken links to the corresponding active pages on my site.  I used a 301 redirect rule so search engines would now start counting these links as legitimate, active links to my site.

After downloading the 404 error report from Google's Webmaster Tools I had fixed a majority of the broken inbound links within an hour.  

Probably my most productive hour I ever spent.  If you have not already explored this new feature, I would definitely recommend checking out Matt's blog and follow his steps to review your broken inbound links. 


Wednesday, September 10, 2008

How To Game Google SERPS

Disclaimer:  I do not  recommend you try this technique outlined below.  I am explaining it for the sake of demonstration, and I do not condone this type of search engine "gaming".   Hopefully the more cases like this we expose, the better Google can make their search results.

UPDATE:  The following site was finally busted by Google and removed from SERPs.  Good work Google!  It is great to see karma catch up with the bad guys for once!  Victory for us good guys!  =)

Yesterday I came across Eric Lander's post "Ranting: Google & Online Reputation Management".  In the comments section of the post an interesting discussion took off regarding the consumer complaint sites mentioned in his post, and how they seem to litter serps results much like Wikipedia does.

I decided to take a closer look at one of the sites Eric mentions, PissedConsumer.com.  

Within minutes I was able to identify a link farm created by PissedConsumer that seemed to consist of at least 50-100 domains, if not more (I grew bored of copying and pasting them).  In this link farm they consistently link back to their main site by using sub-domains (ie - dell.pissedconsumer.com, hp.pissedconsumer.com, geico.pissedconsumer.com, etc).  

Here are just a few sites in their link farm I found:
  • writecomplaint.com
  • upsetclient.com
  • upsetshopper.com
  • pleasedconsumer.com
  • reviews-by-company.blogspot.com
  • bankerreviews.com
  • a380reviews.com
  • anotherreview.com
  • clientstory.com
  • customer-story.com
  • corpreviews.com
  • financingreviews.com
  • shopperstory.com
  • healthrunner.com
  • hithealth.com

The funny part is they actually start the link farm out from their own homepage… See their “Our Friends” section.

From there, each site links to a few other sites in the link farm.  And so on and so on.  I never reached the "end" of the link farm, so there could be more than 100 sites.

Interestingly they make no effort to conceal the fact that they are all pointing links back to the parent site, PissedConsumer.com.  Every one of these blogs has the exact same format/template, and every one of them links back to the parent site using sub-domain links.

To make matters even more interesting, all of these sites in their link farm reside on the same IP address (69.72.137.86).

If I was able to find all this in about 15 minutes, how is it that Google cannot figure it out? Perhaps there may be a loophole in their algorithm regarding links using subdomains?  From past threads I've read about how Google views subdomains as separate domains.  This may be the trick being used to get around their spam filter.

Another tactic they are using evolves around Blogger domains.  Here is just a small sample I found:

  • home-design-review.blogspot.com
  • internet-reports.blogspot.com
  • appliancereports.blogspot.com
  • travelreportsreviews.blogspot.com
  • electronics-reports.blogspot.com
  • carandtruckreport.blogspot.com
Each of these Blogger sites cleverly links EVERY keyword they are targeting back to their main site, PissedConsumer.com.  They throw in a legitimate link to the real site of the company they are targeting every now and then, but 99% of the links you find on these blogs all point back to PissedConsumer.com.

They are obviously doing something right, Quantcast claims they are pulling in 400,000+ visitors/month.  And for the handful of queries we tested, they seemed to always land in the coveted top ten of serps:

  1. http://www.google.com/search?hl=en&q=expedia+complaints
  2. http://www.google.com/search?hl=en&q=lowes+complaints
  3. http://www.google.com/search?hl=en&q=office+depot+complaints
  4. http://www.google.com/search?hl=en&q=home+depot+complaints

If the site was being penalized for gaming serps, they shouldn't be showing in the top ten for every search we tried in their niche. 

Seems like a problem when it is this easy to game the system.



Thursday, September 04, 2008

SEO ThinkTank Event Contest - San Diego


I just dropped by Shoemoney.com and found out Jeremy is having a contest for folks to submit entries stating how they could add value to this event by attending.  The winner gets an all expense paid trip to the conference.  Pretty cool.


So being the competitor I am, and having spent my last 8 years in seclusion, I thought this might be something worth going after.  So here is my submission:


What Can I Offer The Attendees Of 2008 ThinkTank

I feel it is only proper to start off by sharing a little background about myself.   I built my first website in 1993 when I was in college.  By 1995 I was building dynamic web applications that would pull data from a database.  Back then we were all about Netscape and O'Reilly's Web Server.  Microsoft Internet Explorer was just entering the game back then.   The good old days.

After college, I joined the corporate world.  I think I knew all along I was an entrepreneur at heart.  I was never quite satisfied with the corporate way of life.  My first year on the "Job" I started my own side web development business.  I must have drafted hundreds of letters and went door to door deliverying my sales pitch to every local business I could find.  This was in 1997.  The internet had not taken over the world.  No one wanted a website.  I got one nibble from a Florist shop.  I drafted up a killer site for them, demoed it and that was it.  They were not interested.  They did not see the value of having a website.   So I went back and focused my energy at work, building web applications whenever I got a chance in my corporate world.

Around 1999 I got an idea for my own website.  I saw a need and thought I could fill it.  There was some tough competition already jumping in, but I went for it anyway.  I setup a Linux server in my apartment with Apache and MySQL.  Never used either before, but from what I had read they were the way to go for building and hosting a site affordably.   I taught myself Perl and ran with it.  I launched my site by the end of year running off my home server.  

Flash to 2 years later.  My site had grown... but I was not making any money.  I started shopping around to sell it.  Had a few offers up to $15k.  I pretty much sold it to a guy for that price, but he couldn't pay it all at once, so I backed out.  Then I got an idea...

I decided to turn my site into a community run and managed site.  Before it would require a lot of my time and energy to run.  Hence why I wanted to sell it.  But if I could re-design it to be managed mostly by the community of users, then I could just leave it to run wild and grow organically.  That was my big turning point.  

With my site on community auto-pilot, I pretty much refocused on other things... Until Adsense popped on to the scene in 2003.  Adsense changed everything.  My site went from making zero to pulling in $500 a month.  I started realizing the potential of organic traffic and focused on making my site more accessible for search engines.  From that point on my website income would continue to double each year reaching 5-figures a month by 2008. 

Over the years I've learned a lot about what it takes to manage and build up an online community.    Managing an online community can be a fulltime job for many webmasters.  I have found ways to make it self-managed and self-policed.   I've done many things wrong over the years... and have seen it all... From death threats from users (one user actually said they wished my family was on the 9/11 airplanes so they would die a horrible death)... to being slandered on blogs...  threatened by lawyers... You name it... I've been through it.

My experiences handling all of these situations are my best asset that I can bring to the table... along with some pretty entertaining stories... ;-)