Are HashBangs bad for AdWords?

hashbangPowI manage a site with lots of keyword specific content (+700 pages) that happens to be displayed using AJAX (Specifically JSON and JavaScript.) This was the preferred method because the client wanted to encourage visitors to be able to quickly browse through the content without having to wait for the browser to refresh. We understood the Search engine optimization dangers so made sure to follow Google’s recommendations for a crawlable AJAX application. We implemented the JavaScript pages with HashBang(#!), the non-Javascript escaped fragments, and made sure to include them in our sitemap that we sent to Google. Everything appeared to be working as our pages skyrocketed up the organic search results.

Great SEO ranking didn’t translated into great Quality Scores

With the success we had with our organic SEO strategy it was time to implement our AdWords SEM campaigns. I picked a handful of important keywords and HashBang enabled landing pages and got started. I waited a few weeks so that the campaigns had a chance to be seasoned but with average quality scores around 3-4 I knew something wasn’t right and suspected that Google AdWords was not seeing our AJAX powered content. Doing my own research on the subject yielded zero results and a call to Google wasn’t helpful because the Google AdWords rep didn’t even know about the escaped fragment recommendations.

In case you didn’t know, quality score is how AdWords determines if you make it into the auction and the price you have to pay per click. A low quality score is going to cost you in both the amount of impressions you receive and the price you pay per click.

Google AdWords Keyword planner

Luckily, AdWords provides tools that suggest keywords based on the relevant content AdWords sees on a web page. Lets try their Keyword planner tool and see what results we get.


All of the AJAX based content is in a web app we call “works with”, similar to the Google Apps Marketplace. So as a control, it makes sense to see what the keyword planner identifies as the top keywords for that page. First thing I noticed is those keywords are not very specific to the content of the web app. Also, in the right corner of the Google’s Keyword planner is an “Add all (306)” button which will be important when comparing the amount of keywords the tool finds on the other pages. hashbanged_app

HashBanged content page

One of our first landing pages has to do with Microsoft Word, so loading that into the Keyword planner tool I expect to see some keywords related to Microsoft Word show pretty high on the relevancy list. Instead, these are the same keywords that show up in our control and the “Add all” button is still 306! Clearly the keyword planner tool see these two pages as having the exact same content.


Escaped fragmented page

As part of Google’s recommendation for crawlable AJAX pages we created these fragment pages that are supposed to be crawled by Google’s bots. Loading this page into the Keyword planner we finally get to see those Microsoft Word related keywords and our “Add all” button climbs to 866 keywords found in the page.


Keyword rich static page

As a final test I decided to create a static page that closely resembles the AJAX version of the page. It has the same content, but doesn’t have the cool AJAX application that lets the visitor switch between products works with. As you can see in the screen grab below, the results are very similar to our escaped fragment page and more proof that AdWords can’t see the proper content in our AJAX page even though we followed their recommendations for crawlable pages.


Could Keyword planner just be lame?

There is a possibility that keyword planner is just doing a simple scrap of the page you point it at and it may not be indicative of Google AdWords understanding of your page when assigning quality scores. What makes matters worse, is that Google AdWords doesn’t evaluate quality score whenever you change destination URIs even though pointing at relevant content is a major factor in a keywords quality score. The only way to get a reevaluation of a keywords Quality Score is to get enough impressions and clicks to trigger a reevaluation. For us, it means paying a much higher Max. PPC than we probably should, just to if the Quality Score improves over time.

Have you had a similar issue with HashBang web pages receiving poor quality scores, or waiting for reevaluations of keywords after you’ve improved the relevancy of your landing pages?