Forum Moderators: Robert Charlton & goodroi
The problem is...what does Googlebot do when every time it visits a site and there is a different page there due to split testing?
It would seem to me this would severely impact a site's ability to maintain decent rankings.
The only way I can think of to avoid it is to check for bots and when one is detected to then deliver a static version of the page. However, this is basically what a cloaking script does and I imagine that would also flag a site as suspicious as well.
Any thoughts on effectively split testing multiple landing pages and keeping Googlebot happy?
P.S. Yes, I know about google's website optimizer...believe it or not there are things it CAN'T do. Not to mention, I would prefer G not know everything about my sites...but that's just me.
One approach is to allow the static, established page to take the lion's share of the traffic - but use a javascript replace() method to redirect some of that traffic, say 10% or so, to a test area on a different url. Googlebot will not follow the javascript replace(), and I use that particular method, rather than location.href or similar to be sure that the test pages doen't break the Back Button.
Further protection can come from a meta robots "noindex,nofollow,noarchive" and even a robots.txt disallow rule. And if by some chance a manual inspection comes along - well, you're doing something legitimate any way and only trying to help keep the testing out of the index, which is a help.
You could even get into user-agent detection and never insert the javascript replace() if you see googlebot, slurp, msnbot, askbot etc. While it may seem to the "purist" that this is cloaking, it is well within the spirit of the guidelines when done for testing purposes. That is, it is not deceptive in its intent, it is protective and beneficial to Google's resources.
Basically a PHP script that looks for a list of user-agents and for example if it sees "Google" then it would load "index_2.html" rather than "index.php".
I'm just wondering how the bots view something like this as it is essentially cloaking albeit for good reasons. The split-tested pages versus the static pages typically are only testing one element like a sub-headline or image.
Essentially, the various versions of the pages are stored in a MySQL database and are pulled via the PHP script (index.php). So if nothing is done when a SE bot is detected then it will just see a blank page.
I learned this the hard way before setting up an "index_2.html" as described above and my site was listed in Google as "index.php" and nothing else.
What if I left my standard static index page as is and added a javascript to the top of it that directed to "splittest.php". Additionally, I would add nofollow/noindex to each of the split test versions.
In this way I could direct all users to the split test for quickest results.
SE bots should in theory not follow the js and visitors with js disabled would also simply see the standard static page.
Am I missing something here or would this work?
Is it possible you could point me to an example of the code I could use to do such a thing?
As far as testing a small portion rather than all users...I leave that up to my script to determine.
I'm testing a page that gets thousands of hits per day and the "action" I'm testing is to optin and download a whitepaper.
The script is set to test a predetermined amount of visitors until a statistically significant number is reached. If the new version is the winner then that continues to be served. If the control proves better than the new version then it will be served 100% of the time.
In my eyes, serving only 25% is not really needed as I'm not testing drastic items like the offer itself but rather layout changes like using a male or female photo, headline colors etc. While some of these may depress response, nothing would completely kill results...and if it did, the script would stop serving it rather quickly.
Without any "if" statement, the script in blue will redirect all the javascript enabled traffic to the test page - but that's the situation I think is unecessary and potentially even risky. Keep serving the main traffic stream your usual page at the usual URL until your testing decids on the improved version.
<script type="text/javascript">
if {[i][place conditions between the curly brackets][/i]}
location.replace(testpage.htm)</script>
Sometimes I see people redirect with the line location.href="testpage.html" - and that puts the Back Button into a loop, if they try to use it.
But I don't want to get any further into a javascript dicsussion in this thread. We're getting too far outside the topical area of Google Search, so I'll leave the exact coding as a homework exercise.