Apparently there is a Flash Security Vulnerability deriving from the 'authplay.dll' in Adobe's Flash Player on Windows, Mac and Linux for both Adobe Reader and Acrobat v9.x. Basically, an unsuspecting victim may be lured to a site that contains malicious Flash code to either crash or compromise the integrity of the victims computer ... Hmmm.
The Adobe Flash browser plug-in is available for multiple Web browsers and operating systems, any of which could be affected ... An attacker could also create a PDF document that has an embedded SWF file to exploit the vulnerability. This vulnerability is being actively exploited.
According to Trusteer, Two weeks after the press release, approximately 80 percent of Trusteer's installed base of 2.5 million online banking users still haven't received the Flash update.
Florida SEO Says, "Dear JavaScript ... Will You Ever Forgive Me? "
In my last post ... I attempted to explain how pure JavaScript menus were not good for SEO. However, after reading how the message came across to some of my readers, I feel it's probably best if I add some clarification. Thanks to Dan Switzer at PengoWorks for pointing out that my post needed some explanation. What I mentioned regarded the usage of pure JavaScript menus -Not All- JavaScript menus. If my post confused anyone, I apologize. There are lot's of SEO friendly menus that incorporate both JavaScript and yet maintain good web design practices ... So, now let's take a look at a few that stuck out with me.
In my humble opinion, menus that use JavaScript to manipulate the DOM (Document Object Model) and CSS (Cascading Style Sheets) to handle styling, maintain a good balance between usability and provide a dynamically appealing experience.
Okay ... So Show Me Some Cool Stuff Now
Before I show the following examples I want to point out the main factor that make these menus search engine friendly is the accessibility of the links to the robots. These menus do not rely on JavaScript to display the content either.
The first example here is from one of the most respected names in design ... A List Apart. Here Dave Shea provides an excellent detail on creating a menu implementing CSS Sprites with JQuery.
Next, one of my favorite designers, Collis Ta'eed provides in exhaustive detail, everything required to create a very attractive and effective tabbed content area using CSS & JQuery ...
Soh Tanaka offers a very clean and attractive JQuery & CSS menu. Aside from issues with IE6's non-support of the :hover psuedo-class for elements other than anchor tags, this is a very good menu and degrades gracefully with JavaScript disabled.
Clark gives a solid example of how to create an animated drop down menu that also degrades well with JavaScript disabled - The key here is that the animation on the list elements is acceptable regardless of whether the visitor has JavaScript enabled.
Okay ... I'm not a great designer by any sense. But, when I created this site I decided I wanted a little DHTML action and of course promote good SEO techniques at the same time ... So, I used Adobe's Spry Accordion Widget to build my right navigation ... It too degrades gracefully with JavaScript disabled - The menus tabs will simply open up if JavaScript is not activated.
There are many excellent examples out there ... I really just wanted to take a few minutes to clarify the difference between a pure JavaScript menu and a menu that uses JavaScript and CSS.
SEO 101: Search Engine Robots Can't Follow Links in Pure JavaScript Menus
I've recently been receiving some interesting quotes for SEO services with Florida Search Engine Optimization. As part of the standard procedure I employ when reviewing a prospective client's site, I inform them that site architecture is very important and therefore must be taken into consideration. On several occassions I've suggested the removal of JavaScript based menus, and was met with a challenge. One of the prospective clients asked me why it was neccessary. So, I explained the mechanics of a crawler to him in some detail. The other prospective client wasn't all that trusting at first, so he decided to get a second opionion from another SEO before giving me the go ahead. I didn't have any problem with that ... I've been doing SEO for a while now and I've yet to find a client that accepted my opinion of a site review on blind faith regardless of the successful campaigns I've demonstrated.
SEO Experience Required - A Case for SEO Standardization?
What happened next really suprised me. I expected the need to debate my case with the prospective client that was not all that warm to me. However, I was actually opposed by both client's SEO's. Yes, that's correct. Both of the prospective client's SEO's were baffled as to why I suggested having text based menus. Oh yeah ... we SEO's tend to think they know everything ...
After receiving the suggestion for the menu removal, one of the SEO's mentioned to my client, "It's not important ... just make an XML sitemap so the robots can find you ... " I found that rather amusing. However, I found the other SEO's comment to be just as interesting as the first's. He simply stated that "He's even made Flash based sites rank on the first page ... " Thing is, the client requested a quote for services with me primarily due to the SEO's lack of effectiveness ... said SEO didn't so much as provide one case-in-point example - Pwned. So an experienced SEO is essentially stating that by providing an XML sitemap to the navigation of a site, serious issues arising from JavaScript based menus can be resolved. Okay - I don't think so ... But, let's see how accurate this is ... or isn't.
To Crawl or Not to Crawl? That Is ... Important.
A web site's internal link structure is very important when considering SEO. Almost any Decent SEO will attest to this. So why is it important? Because a web site is really nothing more than a group of pages linked together. Granted the linking relationships can become quite complex but it's really just a Web of Links. When robots can't determine what is and isn't a link, they can't move from link A to B ... Link A was never realized.
To demonstrate ... Let's take a look at a site that employs JavaScript navigation and may not neccessarily require having highly crawlable links. I'm going to use Deluxe-Menu.com for this example - It's a very nice site that uses a JavaScript based menu, and does so with impunity - The site's entire theme is provided on the home page.
From the Eyes of a Spider - Where's the Web?
So what we see here is a screen shot of the site's navigation ... We can clearly see the links for Home, Product Info, Samples, Download, Purchase and Support in the menu. Simple enough. However, if we inspect the internal linking of the page through a text-only browser such as Lynx, it also shows that there are no visible traces to these links. The screen shot below is from the SEO text browser over at domaintools.com which, I have quite a habit of using ...
So what are we're looking at here? This basically provides a detail of the elements a search engine robot would recognize when they visit a site. Blue signifies an anchor or link element. Red signifies images - for this example it isn't relevant to us whether those images are also links. The first link we see at the top of the page is for the site's logo, deluxe-menu.com. The next link we see in the document structure is for the site's sitemap which comes directly after the JavaScript menu. Notice how there are no links elements recognized by the text browser for the menu. A crawler would not identify this as a link either.
Okay, so I wouldn't expect someone in the C-Suite to be able to gauge the performance or effectiveness of a web site. But for an SEO? This should be first year ... I find an unusually high amount of people claiming to be a "professional SEO" that don't know the first thing about web design, web development, Server Side programming or even HTML for that matter ...
While I was hacking and cursing my way through a routine to convert RSS feeds in to HTML ... I had an idea. I thought, "Wow, maybe there's another way to do this ..." Converting RSS can be messy so I opted for a much easier and cleaner solution ... JSON. For those Ajax pros out there ... have a heart ... I'm definitely a nOOb at JSON ... I just wanted to share my experience because the introduction and experience was enlightening ... at least to me it was.
Before I go in to this, I am offering this obligatory warning. What I'm about to do may not be in compliance with Google's T.O.S. So, if you get yourself in a pickle with the big G ... It's on you. You've been warned.
What I wanted to do is create dynamic and fresh content for say ... Oh the news. That's a no brainer. Typically you could just grab some RSS feeds and embed them in your content. So, What if you wanted the HTML from say ... Google's news ... Hmmm? You could use a SOAP request to Google for the info ... But SOAP won't be supported by Google for much longer ... So, that's no good. That's where Google's RESTful JSON interface comes in. According to Google documentation for their AJAX Search API, The interface was created for developers that need to have access to Google's Search API in non-JavaScript environments. The docs provide the base URL's to retrieve results for several of their searchers. Here' s a list of all the types of searchers you can access remotely.
Web Search: http://ajax.googleapis.com/ajax/services/search/web
Local Search: http://ajax.googleapis.com/ajax/services/search/local
Video Search: http://ajax.googleapis.com/ajax/services/search/video
Blog Search: http://ajax.googleapis.com/ajax/services/search/blogs
So I decided to have my hand at grabbing some news ... Here we go ...
<!--- Create a Couple Vars for the Search Params ... ---> <cfset gQuery = #ReReplaceNoCase("ColdFusion","\s+","%20","ALL")#> <cfset qRegion = #ReReplaceNoCase("Fort Lauderdale","\s+","%20","ALL")#>
<!--- Save the Result to a Var ---> <cfhttp
url="#gData#"
method="get"
result="gDataResult"> </cfhttp>
<!--- Make the Data is JSON ---> <cfset gData = #SerializeJSON(gDataResult,false)#>
<!--- Clean up the Result Data with RegEx ---> <cfset gData = #REReplace(gDataResult.FileContent, "^\s*[[:word:]]*\s*\(\s*","")#> <cfset gData = #REReplace(gData, "\s*\)\s*$", "")#>
<!--- Make Sure We Have JSON ... ---> <cfif !IsJSON(gData)> <h3>Uh Oh ... Somthing Went Terribly Wrong ... <br />
But! Don't Fret ... Coders are Hard at Work to Get Things Up ... <br />
Right Away ... ;) </h3>
<!--- If the JSON is Good, Deserialize It. ---> <cfelse> <cfset gData = #DeserializeJSON(gData)#>
<!--- Create a Var for the Reponse Data ---> <cfset response = #gData.responseData.results#> <cfloop from="1" to="#ArrayLen(response)#" index="ndx"> <cfoutput> <p><strong> <a href="#response[ndx].unescapedurl#" rel="nofollow"
target="_blank">#response[ndx].titleNoFormatting#</a> </strong><br /><br/>
#response[ndx].content# <br /><br /> </p> </cfoutput> </cfloop> </cfif>
The Google Search API's Class reference has a list of all the arguments you can include as URL parameters that will give you plenty of options to customize your results ...
After reading this post you won't be able to "Master Search Engine Rankings" ... However, with some simple guidelines, you can create an effective plan to put your analytics data to work for you. Before I jump on my soapbox and start preaching the gospel of SEO, I want to state for the record that there isn't one absolute way to plan out an SEO strategy.To be honest, I don't think I've ever taken the same exact approach for any web site I've worked on ... and I've worked on quite a few over the years.
SEO is to Analytics as Grapes are to Wine
When I was in college I waited tables at a really exclusive restaurant because ... well, I could make decent money if I could sell steak and wine. Every day we would have lessons from an in-house sommelier that would instruct us about all the different features of what ever wine they had to offer. I really didn't know much about wine so I tried to get this guy to tell me everything he knew. So, I asked, "What do I need to know to sell the best wines?" and he said ... "It's grape juice ... just tell the customers what's it tastes like ..." That made it ridiculously easy to look at wine as nothing more than ... sour grapes ... my wine sales soared after that ... The point is ... SEO Analytics are not mysterious, esoteric and complicated. People are though ... and many SEO's and web masters don't really "get the point" to having analytics data.
SEO Analytics Data » Looks So Good
I hate to be a buzz kill but in my book there really isn't anything exciting about ... data. Maybe if some hot naked blonde was presenting it to me ... I might be a bit more interested ... but that doesn't happen ... everyday. Now don't get me wrong, there are some great software applications that display visual depictions of rankings, conversions, click-patterns, visitor trending and heat maps, in uber cool Flash and Flex applications or snazzy charting and graphics, but the only thing these visuals are representing is data. That's it.
Analysis Paralysis is Not Good
When I first started in SEO I was working for a company with a fairly large base of resources and tools at my disposal to research, review, study and learn all about the SEO field. That wasn't necessarily a good thing. Though I have a voracious appetite for knowledge ... I found that after a while I wasn't being all that effective with all of this stuff I learned. I had to keep what I could use everyday and leave the rest for later. So, that got me looking in to some GTD solutions ... more stuff to learn ... but, this time the learning was definitely worth it.
Research » Plan » Execute
That's it. This is my big secret to mastering search engine rankings ... It's that simple. Please note that I said simple ... not easy. If you want your analytics data to work for you ... you need to know what metrics are important to you, and which one's are not. Since I do SEO work mostly in the services sector, most of my clients are interested in generating business leads. Based on that, the most important metric for me to measure is the value of a new client for my clients. Once I have that figured, I move in to action by setting up goals and objectives. SEO Analytics data is simply the information required to create ... A Plan. Once I know the key performance indicators for my campaigns, I set up a plan to either increase or maintain the positive aspects and reduce the threats and liabilities. As soon as I forge a solid plan of action ... I execute. After I execute ... I go back to the analytics data, do my research, come up with another plan and execute again. Guess what I do next.
Recently there seems to be a big shift in focus in the SEO industry regarding the importance of conversions over search engine rankings. This concept really sounds like a no-brainer to me ... probably because I was trained in SEO by a company that earned income solely from their lead generation ... If our rankings didn't turn into conversions for our clients ... We didn't complete our goals ... We lost our clients. The bottom line for my SEO strategy has always been focused toward online conversions of search traffic.
So Why Are Conversions Important » Now?
Last year Google ramped up their personalized search initiative which effectively tailors search results from behavior based user data ... According to Google's Matt Cutts, there needs to be a shift in the way SEO's currently operate. WebProNews's Mike McDonald recently asked Matt "Is Ranking Dead?" In response to Mike Matt stated,
"I'm not sure I would say ranking is dead but it's not as important as it used to be. The fact is the smart SEOs are not just necessarily looking at the rankings. They are looking at conversion, they are looking at their server log. It's great if you're ranking for a phrase but unless that leads to sales that doesn't help you very much."
"The challenge is not to pay so much attention to ranking, pay attention to traffic, pay attention to conversions and keep building good content and don't worry about 'can I show people that I rank number one for my trophy phrase ' ... "
The video below is from the interview with Matt Cutts and Mike McDonald at PubCon LasVegas ...
Furthermore, Google's working diligently on their Universal Search model and SEO's need to be able to adapt to Google's ever changing environment by learning to develop and initiate a broader range of tools to complete the conversion equation by bringing in targeted search traffic. For the SEO industry this means you need to focus more than ever before on building campaigns that are targeted towards conversions and not so much on rankings. However, it is important to note that rankings are only a metric, and have always been only part of the equation that is required to increase conversions. Obtaining search engine rankings without actually benefiting from that positioning is not very useful.
SEO is Changing » Is Your SEO Strategy Changing Too?
Recently there was a guest post by Eduard Blacquiare on Joost de Valk's site entitled, "Measuring SEO » Why Rankings Are Worthless". In his post he mentions several key points supporting the transition of rankings-based success to a conversion focused model. Some of the key factors Eduard mentioned are:
Ranking Checkers » Google has recently been blocking some automated ranking testing equipment.
Personal Search » Google is putting a great emphasis on their efforts to tailor their search results.
Furthermore, Eduard continues in his post with his view on things we can do to measure our success.
Measure the Growth Rate of Search Engine Traffic ...
Measure the Growth Rate of Search Engine Traffic per Keyword ...
Measure the Growth of Conversions from Search Engine Traffic ...
Measure the Growth of Conversions from Search Engine Traffic per Keyword ...
Personalized Search » What About Traffic from Nationally Focused Search Terms?
This is a topic I would like to discuss with Matt myself... In Matt's discussion with Mike McDonald, he mentions searching for the word "bank" will illicit a different result in the United States than it would in Great Britain. This is due in part because part of the metrics to determine personalized search results are based on the user's I.P., their search trends and their search behavior. From what we can infer from what Matt stated, personalized search result are relevant to the term as well as user data. Though personal search is playing a big roll in the dynamic, ever-changing environment at Google, I don't believe that competition for keyword ranking is going to be dismissed for nationally focused keywords.
Analytics are Paramount in the Quest to Obtain Conversions
Again, I received a fairly intense introduction to the SEO industry, so I have a solid understanding of the importance of conversion statistics. One of the first tools that I used was ClickTracks, which I still to this day consider a powerful tool in any SEO's arsenal. However, I recently also picked up a copy of the absolutely fantastic book, "Advanced Web Metrics with Google Analytics" by Brian Clifton which I highly recommend for anyone interested in measuring the success of their SEO marketing campaigns.
A Little Gem at the End
So, now that you've gotten this far, I can only assert that you are interested in the success of your SEO campaigns. Again there was another excellent post on Joost de Valk's blog, this one by Andre Scholten, on how you can track your organic Google rankings with Google Analytics ... Here's the video on Vimeo ...
I've implemented this on several of the campaigns that I am currently running and I can verify that it definitely works. You can now have your organic keyword rankings appear in your Analytics reports by setting up some custom filters in your Google Analytics account. This means you can determine the quality of the conversions you are getting from both paid, and non-paid keywords and their respective positioning in the search engine results pages ... How's that for conversion statistics?
Hyves Google Web Site Penalty Checker » As I was perusing through the updates on Seo Master List, I saw an interesting post from Search Engine Watch regarding checking whether your web site is penalized or banished from Google by simply adding "hyves." Before your domain name ... IE (hyves.google.com) Though it may seem strange ... it apparently works. All you have to do is add the name hyves before your domain name and you will get the results ...
According to Marcus Tandler, AKA Media Adonis, the resulting PageRank from the addition of the sub-domain will return the result in the form of the following grades on the Google Tool Bar PageRank indicator:
PR 0 » The site is banned in Google
PR 4 » The site has received a Google Penalty
PR 7 » The site is okay.
I went ahead and tried my luck at it with my site to see what I could come up with ... and luckily I got a PR 7 ...
You might want to take a look at your site's condition soon though ... once this gets out to the mainstream it's only a matter of time before the big G gets it offline ...
While doing my morning crawl through my email I ran across an article from Eric Enge of Stone Temple Consulting regarding a recent interview he had with Angus Norton of Microsoft ... after reading the article, I was persuaded to go check out Eric's site to see if there is anything valuable to the SEO world that he was kind enough to share with the rest of the us ... and sure enough there was ...
Perusing through the linkbuilding category on his site, I found a reference to LinkDiagnosis.Com ... knowing Eric to be of a discriminating taste, I investigated a little more ... and I'm glad I did ... This is one gold mine of a tool ...
Once you go to LinkDiagnosis.Com ... you need to click on the download link and install the firefox extension (Sorry IE users) and then restart your browser ... then return to the page and enter your URL or your competitions ...
Okay ... I haven't been blogging too much as most of those that I speak to have mentioned ... Well ... I have to be honest ... I really haven't been interested enough in anything to write ... maybe I'm just being resistant to the "Once a Week" suggestions from the blogging pros ...
For what it's worth ... the blog bug has somewhat returned ... so, I'll try to get back to writing at least once a week ... Blog ... Blah ... Blah ... Let's see how long this lasts ... Oh yeah ... Have a Merry Christmas and a Happy New Year ... If I don't blog again before their times arrive ...
Recently I decided that it's time to start paying a bit more attention to improving the visual presentation of one of my sites. The site's built in ColdFusion with lot's of nifty CF Ajax stuff thrown in. CFDiv's, CFWindows, and Pods here and there too. So, I figured since I'm not too bad at coding in CF - at least I can usually Google my way through most of the snags I run in to - I wanted to try challenging myself a bit by taking on something fairly foreign to me. Ajax.
I know the basics of Ajax. Asynchronous JavaScript with XML - Sending and receiving Http requests and responses to a server to return data to a site without refreshing the documents. However, I had little experience actually taking on an Ajax project. But if that wasn't difficult enough, I wanted to get really frustrated, so I decided to use a JavaScript library that I had little if any experience with - Entrance JQuery.
Now I've seen a lot of very groovy examples of the nifty UI tricks that can be done with JQuery. They are cool. But I really wanted to learn how to use JQuery for my specific needs. So, I did. I choose to launch my campaign with a real world example. So for my project, I mapped out what I wanted to do with ColdFusion, JQuery, and Some CFAjax stuff. Here's what I planned out ...
First, I wanted to add a US database to my site, SEOMasterList.com, to build out some dynamic pages. The reasons for that should be quite apparent. I'm planning to obtain rankings and possibly monetize the site.
Next, I wanted to add some cool visual effects while providing improved functionality to the site, and possibly give visitors a better experience.
And finally, I just wanted to see if I could actually do it - two weeks in to it, I finished it. I have got to admit I spent a hell of a lot of time learning while trying to get the site done - someone with experience could have probably launched it in a matter of no time. But, I learned a lot.
Once I modified, installed, and built out the components to accommodate the addition of the database, I set up another component to dynamically bind the results from the database to two selects in a form. This was very challenging - I spent the better part of two days just trying to get the bindings to work. Luckily, I found a cool ColdFusion script and modified it to output my database queries to XML. That came in really handy. The first go at trying to output 80,000+ records to a single flat XML file didn't work out to well. I ended up rebuilding the data CFC's several times in order to get what I needed. I ended up with a 1.4 MB XML file that I'm now using to bind to the data in the selects.
After tackling that part of the project, I wanted to introduce some visually appealing effects to the site so I picked up the latest JQuery code and sent it up to my site. After some effort, I was successful in creating a pretty slick interface for my Ajax loaded form. Through the use of some nifty ('#div').show(),('#div').hide () functionality on the form page, I was able to add and remove elements of the page which weren't necessary at every stage of the form submission process. This proved to be tougher to implement than I had expected. Up to this point I have a form bound by CFC's to data, an asynchronous form handler to process a form submission, and some nifty JQuery going on to assist in dressing up my application modifications. All in all. I think it went really well - and I learned a whole hell of a lot doing it. If you want to see what I did ... have a heart ...
I'm an Ajax nOOb. Check it out on SEOMasterList ...
GOD Must Love Gold - Florida SEO - Sunrise & Atlantic
Edward Beckett said: Thanks Jake ... I'd rather just give em' away ... ;-) [More]