<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
><channel><title>SeoExploration &#187; google</title> <atom:link href="http://www.seoexploration.com/tag/google/feed/" rel="self" type="application/rss+xml" /><link>http://www.seoexploration.com</link> <description>discovering new optimisation techniques</description> <lastBuildDate>Fri, 11 Nov 2011 14:37:05 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.2.1</generator> <item><title>Google Page Speed and Yslow 2.0</title><link>http://www.seoexploration.com/2009/12/google-page-speed-and-yslow-2-0/</link> <comments>http://www.seoexploration.com/2009/12/google-page-speed-and-yslow-2-0/#comments</comments> <pubDate>Wed, 09 Dec 2009 12:53:06 +0000</pubDate> <dc:creator>anon</dc:creator> <category><![CDATA[Website Optimization]]></category> <category><![CDATA[activity monitor]]></category> <category><![CDATA[analytics]]></category> <category><![CDATA[archive]]></category> <category><![CDATA[archived]]></category> <category><![CDATA[archives]]></category> <category><![CDATA[external css]]></category> <category><![CDATA[firebug]]></category> <category><![CDATA[google]]></category> <category><![CDATA[performance rules]]></category> <category><![CDATA[web pages]]></category><guid
isPermaLink="false">http://www.seoexploration.com/?p=153</guid> <description><![CDATA[Posted By Mike Hopley On June 15, 2009 @ 12:52 pm Hot on the heels of Yahoo’s Yslow [1], Google have published Page Speed [2], a tool they have been using to optimize their own web pages. Now you can use it too. Page Speed is similar to Yslow in several respects: it’s an add-on [...]]]></description> <content:encoded><![CDATA[<p
id="BlogDate">Posted By <a
href="http://www.badmintonbible.com/" target="_blank"><span
style="text-decoration: underline;">Mike Hopley</span></a> On June 15, 2009 @ 12:52 pm</p><div
id="BlogContent"><p>Hot on the heels of Yahoo’s <a
rel="external" href="http://developer.yahoo.com/yslow/">Yslow</a> <sup>[1]</sup>, Google have published <a
rel="external" href="http://code.google.com/speed/page-speed/">Page Speed</a> <sup>[2]</sup>, a tool they have been using to optimize their own web pages. Now you can use it too.</p><p>Page Speed is similar to Yslow in several respects: it’s an add-on to Firebug; it analyses your pages according to a set of performance rules; it draws attention to rules that you score badly on; and it also provides a page activity monitor.<br
/> <img
title="Google Page Speed and Yslow 2.0" src="http://www.thewebsqueeze.com/wp-content/uploads/2009/06/page-speed.jpg" alt="Google Page Speed" width="468" height="246" /><br
/> For each rule, Page Speed gives you a general indication of how well you’re doing, in the form of a green tick (good), red circle (bad), or amber triangle (indifferent). You can also hover over a rule to see your percentage score. Page Speed does not provide an overall percentage score, but it does arrange the results in order of importance.</p><p>Since my previous <a
rel="external" href="http://www.thewebsqueeze.com/web-design-articles/yslow-going-from-f-to-a.html">article about Yslow 1.0</a> <sup>[3]</sup>, Yslow 2.0 has been released; this includes a further 9 rules. Let’s now take a look at all these rules—both Page Speed and Yslow.</p><h3>Page Speed rules shared with Yslow 1.0</h3><p>These rules are the same as those I previously discussed, although their organisation is different. I’m not going to cover these rules again, but you may still find some of <a
rel="external" href="http://code.google.com/speed/page-speed/docs/using.html">Page Speed’s documentation</a> <sup>[4]</sup> details interesting.</p><ul><li> Avoid CSS expressions</li><li>Combine external CSS</li><li>Combine external javascript</li><li>Enable gzip compression</li><li>Leverage browser caching</li><li>Minify javascript</li><li>Minimize DNS lookups</li><li>Minimize redirects</li><li>Parallelize downloads across multiple hostnames</li><li>Put CSS in the document head</li></ul><p>Page Speed may sometimes advise you to do stupid things. For example, under the “Leverage browser caching” rule, Page Speed suggested that I make <code>__utm.gif</code> cacheable. This tiny gif is used by Google Analytics to help compile your statistics; if you make it cacheable, Analytics will fail to track visitors who retrieved it from a cache. Leave it alone!</p><h3>Page Speed rules shared with Yslow 2.0</h3><p>I haven’t yet discussed these rules, so let’s look at them now:</p><ul><li>Minimize cookie size</li><li>Serve static content from a cookie-less domain</li><li>Specify image dimensions</li></ul><h4>Minimize cookie size</h4><p>Google’s advice here is more specific than Yslow’s: keep the average cookie size below 400 bytes. I get perfect marks on this from both tools, so I haven’t investigated further.</p><h4>Serve static content from a cookie-less domain</h4><p>I score badly on this one, and I expect many other sites will too. Surprisingly, requests for components such as images also include cookies, and these are generally just useless network traffic. The best way to fix this is to use a CDN; obviously, this will also cause you to score well on Yslow’s “Use a CDN” rule.</p><p>And yes, this means I’ve changed my mind about CDN’s. Some good, cheap CDN’s are now available, such as SimpleCDN or Amazon Cloudfront. I use SimpleCDN, and have found them to be okay; but I’m not happy with their changing their service offering at short notice, and their Lightning service is currently not working for me—hence my poor score on this rule!</p><h4>Specify image dimensions</h4><p>Lazy designers often take a large image and use HTML to squash it down; consequently, the file size can be much larger than is necessary.</p><p>Don’t use HTML to resize images; use a graphics program. The width and height attributes in your HTML &lt;img&gt; tag should exactly match the size of the image. Doing so will also give the best appearance, as the browser does not need to scale the image.</p><p>I get a perfect score on this, and there’s no excuse for anything less.</p><h3>Rules unique to Page Speed</h3><p>In some cases, Yslow’s guidelines may include these topics, but not in the form of an automated check on your web page.</p><ul><li>Defer loading of javascript</li><li>Optimize images</li><li>Optimize the order of styles and scripts</li><li>Remove unused CSS</li><li>Serve resources from a consistent URL</li><li>Leverage proxy caching</li><li>Use efficient CSS selectors</li></ul><h4>Defer loading of javascript</h4><p>Before you can test your website against this rule, you must enable “Profile Deferrable Javascript” in the options. You may want to disable it again when you’re done, as it can slow down Firefox. Moreover, this profiling is only accurate on your first visit: to get an accurate result, you must start a new browser session and run Page Speed directly you load your website (before loading a second page).</p><p>The idea behind this rule is that javascript slows down your pages even when it’s not actually being used. Even if the script is cached, the browser must load it from disk and execute it. Some javascript functions need to be available before the onLoad event; others don’t. This rule proposes that you split off these latter functions into a separate file. You can then use some trickery to “lazy-load” this javascript after the document has finished loading.</p><p>It’s unclear to me whether this lazy-loading is better than simply putting your script at the bottom of the page. If your script is at the bottom, then it will still need to be downloaded and evaluated before the onLoad event is fired (I think), and lazy-loading will bypass this limitation; but what if you’re using a framework such as jQuery, which has the more sophisticated onDomReady event? To be honest, I don’t yet know enough about this issue to make simple recommendations. I suspect, however, that lazy-loading is even faster than simply putting javascript at the bottom of the page.</p><p>The good news is that Google Page Speed will identify these uncalled functions for you. Ironically, although I had plenty of uncalled functions, they all came from Google’s own ga.js; I’m not sure I want to mess with that, as it may screw up my Google Analytics stats.</p><h4>Optimise images</h4><p>Page Speed automatically creates optimised versions of your images, and offers a link to them. This is similar to running your images through Smush.it.</p><h4>Optimise the order of styles and scripts</h4><p>Ideally, you wouldn’t include any javascript in the &lt;head&gt;, as this violates Yslow’s rule, “Put javascript at the bottom.” If you need to include scripts in the &lt;head&gt;, however, try to get the order right. External scripts should come after all the external stylesheets, and inline scripts should come last of all.</p><p>Why does the order matter? Because javascript blocks subsequent downloads. While your javascript is downloading and being evaluated, the stylesheet that comes after it can’t be downloaded. Check out the documentation for more details.</p><h4>Remove unused CSS</h4><p>I score 100% on this one, which is surprising given that my CSS is an overgrown, tangled thicket of complexity that desperately needs pruning.</p><p>Every CSS rule adds bytes to be downloaded, and also requires parsing by the browser. Obviously it’s good to remove dusty old rules that you never use, but even after doing so you may still have a single monolithic CSS file that styles a diverse range of pages. As a result, every page gets a large amount of CSS that’s not needed; if your site is like this, it may be more efficient to split your CSS across multiple modules (although this increases HTTP requests).</p><p>Clearly a trade-off is necessary here. I recommend keeping a consistent style as much as possible; apart from the speed benefits, consistency helps visitors and generally looks more professional than constantly changing styles. For large sites with many different types of pages (such as Yahoo), however, it’s often better to split CSS into modules.</p><p>Even if your site only needs one stylesheet, it’s a good idea to start thinking in terms of object-oriented CSS, because this makes your CSS simpler, shorter, and more flexible; for an expert explanation of the topic, <a
rel="external" href="http://developer.yahoo.net/blogs/theater/archives/2009/03/website_and_webapp_performance.html">see Nicole Sullivan’s presentation</a> <sup>[5]</sup>.</p><h4>Serve resources from a consistent URL</h4><p>This one is fairly obvious. To benefit from caching, we need to keep the URL consistent. For example, if on different pages you serve the same image, but from two different domains, then it will get downloaded twice instead of being read from cache.</p><p>For most people this shouldn’t be issue; it’s most likely to apply if you’re doing something fancy and automated to split your content across multiple hostnames.</p><h4>Leverage proxy caching</h4><p>Now this one is clever. When people visit your website, its resources can be cached not only by them but also by their ISP. Then when another visitor comes via the same ISP, he can download a copy from the ISP’s cache—which will be faster, because it’s closer to him than your server. Page Speed’s documentation recommends that, with a few exceptions, you set a Cache-control: public header for static resources (such as images).</p><p>Be careful not to do this for resources that have cookies attached, as you may end up allowing proxies to cache information that should be kept private to a visitor; the best solution is to serve these resources from a cookie-less domain. Also be careful with gzipping: some proxies will send gzipped content to browsers that can’t read it.</p><p>I’m not sure how this rule interacts with the use of CDN. Again, this is one I don’t understand well, and I’d welcome discussion on it.</p><h4>Use efficient CSS selectors</h4><p>This rule is controversial. The idea is that some CSS selectors are much harder for the browser to parse than others; the most efficient are ID and Class selectors, because these do not require the browser to look higher up the document tree to determine a match.</p><p>With this rule, Google is recommending a radical change in the way we write CSS. Specifically, they are suggesting that we add otherwise unnecessary ID’s and classes to the markup, in return for a speed advantage. As an example, they consider the situation where you want different colours on ordered and unordered list items:</p><pre>ul li {color: blue;}
ol li {color: red;}</pre><p>That would be the usual way to do it; instead, Google recommends adding a class to each &lt;li&gt;, so that you can use class selectors:</p><pre>.unordered-list-item {color: blue;}
.ordered-list-item {color: red;}</pre><p>No doubt this is faster, but it also takes longer to write and imposes a maintainance burden in your markup. If there were tools that would automatically generate such optimised CSS and the accompanying markup, then it might be worth doing. I suppose you could use server-side coding to generate the markup—for example, using the HTML helper from CakePHP—but this seems a heavy-handed approach.</p><p>My scepticism over this rule was initially quashed by the towering authority of Google, but then I looked around to see whether there was any research on the subject. The most respectable tests I could find came from Steve Souders himself, in his post about the <a
rel="external" href="http://www.stevesouders.com/blog/2009/03/10/performance-impact-of-css-selectors/">performance impact of CSS selectors</a> <sup>[6]</sup>. Steve found that, in real-world conditions, the maximum possible benefit of optimising CSS is 50 ms; and for 70% of users (i.e. those running IE7 or FF3), it’s only 20 ms. These numbers were obtained with 6000 DOM elements and 2000 extremely inefficient CSS rules. This is pretty much a worst-case scenario; most sites, even complex ones, will have far fewer DOM elements and CSS rules, and their CSS will also be much simpler.</p><p>Steve concludes that the potential performance benefits are small, and not worth the cost. I’m inclined to agree, but I’d welcome more information.</p><p>Nevertheless, there’s no harm in getting into good habits: some of Google’s recommendations for CSS selectors are quite reasonable, such as not over-qualifying ID and class selectors with an antecedent tag selector (so .errorMessage is better than p.errorMessage). Such coding habits also sit harmoniously with object-oriented CSS.</p><p>If you read Steve’s post, be sure to check out Nicole Sullivan’s comment: “Micro-optimization of selectors is going a bit off track in a performance analysis of CSS. The focus should be on scalable CSS.” To me, this seems a much more sensible and maintainable approach than the monomaniacal one recommended by Google.</p><p>I do extremely badly on this rule (0%). Although I consider the recommendations to be unrealistic, my terrible score does reflect the excessive complexity and lack of modularity within my CSS.</p><h3>Rules unique to Yslow 2.0</h3><p>In some cases, Page Speed’s guidelines may include these topics, but not in the form of an automated check on your web page.</p><p>Note that Yahoo’s documentation includes other recommendations that are not checked by Yslow (because they haven’t discovered a sensible way to automate the test). Yslow has 22 rules, but Yahoo lists <a
rel="external" href="http://developer.yahoo.com/performance/rules.html">34 best practices</a> <sup>[7]</sup> in total.</p><ul><li>Reduce the number of DOM elements</li><li>Make favicon small and cacheable</li><li>Avoid HTTP 404 (Not Found) errors</li><li>Avoid AlphaImageLoader filter</li><li>Make AJAX cacheable</li><li>Use GET for AJAX requests</li></ul><h4>Reduce the number of DOM elements</h4><p>The more DOM elements you have, the longer it takes to download your page, to render it, and to play with the DOM via javascript.</p><p>Essentially, this rule asks you to avoid large amounts of unnecessary markup, including markup added by javascript. As an example, yahoo.com has about 700 DOM nodes, despite being a busy page. My home page has 267 DOM nodes, and that could be reduced a lot. You can check how many nodes your page has, by entering the following into Firebug’s console:</p><pre>document.getElementsByTagName('*').length</pre><p>Blindly applying this rule can be dangerous (and that’s true of many performance rules). Don’t cut off your nose to spite your face! Markup purists will take this rule as a vindication for using the absolute minimum of markup, and in particular for avoiding the use of container &lt;div&gt;s whenever possible. This will leave them with hideously convoluted CSS and problems maintaining their code.</p><p>By all means remove extraneous markup, and also try to limit the complexity of DOM access in your javascript (for example, <a
rel="external" href="http://developer.yahoo.com/performance/rules.html#dom_access">avoid using javascript to fix layout issues</a> <sup>[8]</sup>—here I have sinned). But never be afraid to throw in an extra container &lt;div&gt; when you can see it will make life easier.</p><h4>Make favicon.ico small and cacheable</h4><p>You might think that a favicon is not even worth the HTTP request, but you don’t get a say in the matter: the browser is going to request it anyway. Make one, make it small, and put it in the root directory of your website (where the browser will look for it).</p><p>Because you can’t change the name of this file—it must be called favicon.ico, or it won’t work—you should be moderate in setting its expiry date. It’s hardly essential that your visitors immediately get your latest favicon, but equally you wouldn’t want it to be cached for 10 years! I give mine a two-month shelf-life.</p><h4>Avoid HTTP 404 (Not Found) errors</h4><p>This one is obvious. If your document has broken links, fix them.</p><h4>Avoid AlphaImageLoader filter</h4><p>Ah, good old alpha-transparent PNG’s; how we love them! What web designer hasn’t flirted with multi-layer scrolling transparencies at some point? And who has not felt a sense of satisfied mastery, upon forcing IE6 to eat them via a clever hack?</p><p>The sobering reality is that, although you can make alpha-transparency work in IE6, you pay a heavy price for doing so. All the hacks rely on Microsoft’s AlphaImageLoader filter. Not only does this filter block rendering and freeze the browser while it’s being calculated, but it also increases memory consumption. To make matters worse, the performance penalty is incurred for each element, not for each image. For example, let’s say you have a fancy alpha-transparent bullet point image for your unordered list items; on a page with 20 bullets, you get the penalty 20 times over.</p><p>Use PNG-8 transparency instead, if you can. Incidentally, creating a web page from multiple layers of transparency is probably a bad idea anyway: even in good browsers, these kinds of pages are sluggish to scroll; find a better medium for expressing latent op art.</p><h4>Make AJAX cacheable, and use GET for AJAX requests</h4><p>I can’t pretend to understand these rules properly, having never used AJAX. Nevertheless, the ideas are straightforward.</p><p>If a resource has not changed since it was fetched, we want to read it from cache rather than getting a new copy; this applies just as much to something requested via AJAX. Steve summarises it thus:</p><blockquote><p>Even though your Ajax responses are created dynamically, and might only be applicable to a single user, they can still be cached. Doing so will make your Web 2.0 apps faster.</p></blockquote><p>Apparently, GET is more efficient than POST, because it can send data in a single packet, whereas POST takes two steps: first send the headers, then send the data. Providing your data is less than 2 kB (a limit on the URL length in IE), you should be able to use GET for AJAX requests.</p><h3>Conclusions</h3><p>Google Page Speed is a useful new tool for optimising your websites’ performance. However, some of its advice can be misleading—in particular, CSS selector efficiency is a red herring that distracts you from the more useful goal of building object-oriented CSS.</p><p>Yslow is the more mature tool, and I recommend you give it priority. After you’ve finished with Yslow, you may be interested in what Page Speed has to say.</p></div><hr
style="text-align: center;" />Article printed from The Web Squeeze: <strong
dir="ltr">http://www.thewebsqueeze.com</strong></p><p>URL to article: <strong
dir="ltr">http://www.thewebsqueeze.com/web-design-articles/google-page-speed-and-yslow-2-0.html</strong></p><p>URLs in this post:</p><p
style="margin: 2px 0pt;">[1] Yslow: <strong><span
dir="ltr">http://developer.yahoo.com/yslow/</span></strong></p><p
style="margin: 2px 0pt;">[2] Page Speed: <strong><span
dir="ltr">http://code.google.com/speed/page-speed/</span></strong></p><p
style="margin: 2px 0pt;">[3] article about Yslow 1.0: <strong><span
dir="ltr">http://www.thewebsqueeze.com/web-design-articles/yslow-going-from-f-to-a.html</span></strong></p><p
style="margin: 2px 0pt;">[4] Page Speed’s documentation: <strong><span
dir="ltr">http://code.google.com/speed/page-speed/docs/using.html</span></strong></p><p
style="margin: 2px 0pt;">[5] see Nicole Sullivan’s presentation: <strong><span
dir="ltr">http://developer.yahoo.net/blogs/theater/archives/2009/03/website_and_webapp_performance.html</span></strong></p><p
style="margin: 2px 0pt;">[6] performance impact of CSS selectors: <strong><span
dir="ltr">http://www.stevesouders.com/blog/2009/03/10/performance-impact-of-css-selectors/</span></strong></p><p
style="margin: 2px 0pt;">[7] 34 best practices: <strong><span
dir="ltr">http://developer.yahoo.com/performance/rules.html</span></strong></p><p
style="margin: 2px 0pt;">[8] avoid using javascript to fix layout issues: <strong><span
dir="ltr">http://developer.yahoo.com/performance/rules.html#dom_access</span></strong></p> ]]></content:encoded> <wfw:commentRss>http://www.seoexploration.com/2009/12/google-page-speed-and-yslow-2-0/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Track SEO rankings and Sitelinks with Google Analytics II</title><link>http://www.seoexploration.com/2009/09/track-seo-rankings-and-sitelinks-with-google-analytics-ii/</link> <comments>http://www.seoexploration.com/2009/09/track-seo-rankings-and-sitelinks-with-google-analytics-ii/#comments</comments> <pubDate>Sat, 05 Sep 2009 16:31:50 +0000</pubDate> <dc:creator>anon</dc:creator> <category><![CDATA[Google-Analytics]]></category> <category><![CDATA[analytics]]></category> <category><![CDATA[google]]></category><guid
isPermaLink="false">http://www.seoexploration.com/?p=116</guid> <description><![CDATA[2 September, 2009 André Scholten Earlier this year I did a guest post on this site to show you how to track your SEO rankings with Google Analytics. It was quite some news for a lot of people, just take a look at the 300+ comments. And now it&#8217;s time for the follow-up. Google&#8217;s new [...]]]></description> <content:encoded><![CDATA[<h2><span>2 September, 2009</span> <span><a
href="http://yoast.com/track-seo-rankings-and-sitelinks-with-google-analytics-ii/#author">André Scholten</a></span> <span> </span></h2><div><p>Earlier this year I did a guest post on this site to show you how to track your <a
href="http://yoast.com/track-seo-rankings-google-analytics/">SEO rankings with Google Analytics</a>. It was quite some news for a lot of people, just take a look at the 300+ comments. And now it&#8217;s time for the follow-up.</p><h2>Google&#8217;s new technology</h2><p>Since a while Google is testing a new <a
onclick="javascript:pageTracker._trackPageview('/outbound/article/smackdown.blogsblogsblogs.com');" href="http://smackdown.blogsblogsblogs.com/2009/01/30/google-web-search-goes-completely-ajax/">AJAX version</a> of their search engine. I&#8217;m not sure who&#8217;s seeing the AJAX version and who isn&#8217;t, but in Holland most of the Firefox users do see it. You can see if you&#8217;re one the new one by looking at the url of a result page:</p><p><img
src="http://netdna.yoast.com/uploads/2009/09/examplefirefox.gif" alt="examplefirefox" width="533" height="35" /></p><p><span
id="more-1582"> </span></p><p>The great thing about this new version is that it makes Google Analytics capable of tracking the clicked <strong>position</strong>. Yes you heard what I say: the position. Where the &#8216;old&#8217; Google only allowed us to track the page a keyword was on, the new Google allows us to track the exact position.</p><h2>The new filters</h2><p>You can use the first 2 filters mentioned in the old article, be before you do that: create a new profile where you can apply these filters to (tip: watch <a
href="http://yoast.com/rankings-filter-analytics-video/">the video</a> where Joost explains this all):</p><pre>Filter name: "Ranking 1"
Filter type: "Custom filter - Include"
Filter field: "Campaign Medium"
Filter pattern: "organic"</pre><pre>Filter name: "Ranking 2"
Filter type: "Custom filter - Include"
Filter field: "Campaign Source"
Filter pattern: "google"</pre><p>And this is the new filter that is capable of tracking positions:</p><p><img
src="http://netdna.yoast.com/uploads/2009/09/ranking3.gif" alt="ranking3" width="411" height="439" /></p><p>And the copy/paste version:</p><pre>Filter name: "Ranking 3"
Filter type: "Custom filter - Advanced"
Field A -&gt; Extract A: "Campaign term", "(.*)"
Field B -&gt; Extract B: "Referral", "(\?|&amp;)cd=([^&amp;]*)"
Output To -&gt; User Defined: "$A2 (position: $B2)"</pre><p>And a bonus filter to add an &#8220;unknown position&#8221; message when the position of the searched keyword is not passed through:</p><pre>Filter name: "Ranking 4"
Filter type: "Custom filter - Search and Replace"
Filter field: "User Defined"
Search String: "\(position: \)"
Replace String: "(position unknown)"</pre><h2>The new reports</h2><p>If you have implemented everything correct you should see this in the &#8220;Visitors -&gt; User Defined&#8221; report:</p><p><img
src="http://netdna.yoast.com/uploads/2009/09/userdefinedkeywords.gif" alt="userdefinedkeywords" width="240" height="177" /></p><p>A list of keywords with the position the keyword was on when a visitor clicked it. Now you&#8217;re able to see the exact positions, more precise than any ranking tool that is out there. There&#8217;s 1 minor drawback: business listings next to the little maps are counted as a position also:</p><p><img
src="http://netdna.yoast.com/uploads/2009/09/mapsresult.gif" alt="mapsresult" width="450" height="285" /></p><p>The blue result is counted as the 11th result, and not as the first organic result. But when you&#8217;re analyzing your positions you can easily separate the geo-related keywords from the rest.</p><h2>Sitelinks</h2><p>Very interesting: the sitelinks positions are also tracked, and in a more intelligent way than the maps results. If you click on a sitelink, the actual position of that sitelink is passed on. For example, this sitelink has position 4:</p><p><img
src="http://netdna.yoast.com/uploads/2009/09/sitelinksranking.gif" alt="sitelinksranking" width="400" height="125" /></p><p>If you want to get better insights about your sitelinks you should create an extra profile with the first 3 filters mentioned above. Then add this extra filter to only track those keywords where people clicked on the (full or oneline) sitelinks:</p><pre>Filter name: "Ranking 5"
Filter type: "Custom filter - Include"
Filter field: "Referral"
Filter pattern: "oi=(oneline_sitelinks|smap)"</pre><p>The positions you will see are pure sitelinks positions, and you will get an idea about which sitelink is popular and which isn&#8217;t.</p><h2>Extra tip</h2><p>While we are dissecting the referring url from the Google Search engine we could take a look at the &#8220;meta&#8221; parameter (<a
onclick="javascript:pageTracker._trackPageview('/outbound/article/andrescholten.nl');" href="http://andrescholten.nl/zoekt-men-in-google-op-het-internet-of-in-het-nederland/">my dutch blogpost about this</a>). It&#8217;s used when people use one of these options:</p><p><img
src="http://netdna.yoast.com/uploads/2009/09/googleopties.gif" alt="googleopties" width="485" height="102" /></p><p>The selected country or language is in the &#8220;meta&#8221; parameter (not applicable for Google.com) and can be made visible with the following filter:</p><pre>Filter name: "Language / Country"
Filter type: "Custom filter - Advanced"
Field A -&gt; Extract A: "Referral", "(\?|&amp;)meta=([^&amp;]*)"
Output To -&gt; User Defined: "$A2"</pre><p>And remember: do this on a new profile so you don&#8217;t mess up existing profiles. The selected language(s) or country is visible in the &#8220;Visitors -&gt; User Defined&#8221; report.</p><p>I had this filter for quite a while on a lot of Dutch sites and saw that the three options where used like this:</p><ol><li>The internet: 96,69%</li><li>Pages in Dutch: 3,28%</li><li>Pages from Holland: 0,03%</li></ol><p>Well, that was the update, hope you liked it.</p></div><div
id="author"><img
src="http://www.gravatar.com/avatar/91df1020caec70125240f061d5f80c19?s=60&amp;d=http%3A%2F%2Fwww.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D60&amp;r=G" alt="" width="60" height="60" /></p><h3>This post was written by: André Scholten</h3><p><a
href="http://en.traffic4u.nl/web-analytics-consultancy#utm_campaign=yoast&amp;utm_medium=referral&amp;utm_source=andre">Web Analytics Consultant</a> and <a
href="http://en.traffic4u.nl/seo#utm_campaign=yoast&amp;utm_medium=referral&amp;utm_source=andre">SEO specialist</a> at Traffic4u. For more info check my <a
href="http://andrescholten.nl/">Web Analytics and SEO blog</a>.</p><p>See all posts by: <a
title="Posts by André Scholten" href="http://yoast.com/author/andre/">André Scholten</a>.</div> ]]></content:encoded> <wfw:commentRss>http://www.seoexploration.com/2009/09/track-seo-rankings-and-sitelinks-with-google-analytics-ii/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Google Analytics Tutorial Part 2</title><link>http://www.seoexploration.com/2009/07/google-analytics-tutorial-part-2/</link> <comments>http://www.seoexploration.com/2009/07/google-analytics-tutorial-part-2/#comments</comments> <pubDate>Mon, 27 Jul 2009 15:23:00 +0000</pubDate> <dc:creator>anon</dc:creator> <category><![CDATA[Google-Analytics]]></category> <category><![CDATA[analytics]]></category> <category><![CDATA[flash code]]></category> <category><![CDATA[flash events]]></category> <category><![CDATA[google]]></category> <category><![CDATA[javascript events]]></category> <category><![CDATA[link position]]></category><guid
isPermaLink="false">http://www.seoexploration.com/2009/07/google-analytics-tutorial-part-2/</guid> <description><![CDATA[by Patrick Altoft on June 12, 2007 The Advanced Google Analytics Tutorial raised more questions than it answered so I have spent this afternoon going through everybody’s comments and trying to answer them. If you have any more questions please feel free to ask in the comments at the end of this post. Google has [...]]]></description> <content:encoded><![CDATA[<p><em>by</em> <a
title="google-analytics-tutorial" href="http://www.blogstorm.co.uk/google-analytics-tutorial/" target="_blank"><span>Patrick Altoft</span></a> <em>on</em> <abbr
title="2007-06-12">June 12, 2007</abbr></p><p>The Advanced Google Analytics Tutorial raised more questions than it answered so I have spent this afternoon going through everybody’s comments and trying to answer them.</p><p>If you have any more questions please feel free to ask in the comments at the end of this post.</p><p>Google has just announced a few new features including the ability (finally) to click on referring url’s and be taken to the referring page.</p><p>Michael asked:</p><blockquote><p>Is there a way to see stats based on a specific day? I’d love to be able to see which pages are more popular as I’ve changed my site over time. I might change link position or something for a week and it’d be nice to see stats for that time period only to be able to compare them.</p></blockquote><p>Click on <em>Content &gt; Top Content</em> and then scroll right down to the form that says Find url and type the page you want to view the stats for. In this case I wanted to view stats for users clicking on my outgoing (affiliate) links.</p><p><img
title="Find url" src="http://www.blogstorm.co.uk/images/ga2.gif" alt="Find url" /></p><p>From the chart below we can see that the link outgoing/top (named because it was at the top of the page) has had 1060 clicks in the time period selected.</p><p><img
title="The outgoing/top link had 1060 clicks" src="http://www.blogstorm.co.uk/images/ga-q1.jpg" alt="The outgoing/top link had 1060 clicks" /></p><p>If you look to the top right of the screen you should see a drop down box containing a data range.</p><p><img
title="Drop down data range box" src="http://www.blogstorm.co.uk/images/ga-q4.jpg" alt="Drop down data range box" /></p><p>Click on the box and enter your desired date ranges in the boxes (hint: click on the box and then the name of the month at the top of the calendar to highlight the whole month) and then click the “Apply Range” button.</p><p><img
title="Drop down date range box" src="http://www.blogstorm.co.uk/images/ga-q2.jpg" alt="Drop down date range box" /></p><p>The result should be a graph comparing data from the two date ranges, one range has a blue line and one is shown with a green line.</p><p><img
title="Date range box" src="http://www.blogstorm.co.uk/images/ga-q3.jpg" alt="Date range box" /></p><p>Hunter asked:</p><blockquote><p>How do we track flash movie plays with google analytics?</p></blockquote><p>Tracking Flash events is the same as tracking JavaScript events, just call the urchinTracker function:</p><p><code>javascript:urchinTracker('/homepage/flashbuttons/button1');</code></p><p><strong>Example Flash Code</strong></p><p><code>on (release) {</code></p><p>// Track with no action</p><p>getURL(&#8220;javascript:urchinTracker(&#8216;/folder/file&#8217;);&#8221;);</p><p>}</p><p>on (release) _</p><p>//Track with action</p><p>getURL(”javascript:urchinTracker(’/folder/file’);”);</p><p>_root.gotoAndPlay(3);</p><p>myVar = “Flash Track Test”</p><p>}<br
/> onClipEvent (enterFrame) {</p><p>getURL(”javascript:urchinTracker(’/folder/file’);”);</p><p>}</p><p><a
href="http://www.google.com/support/googleanalytics/bin/answer.py?answer=55520&amp;topic=11006">More details</a></p><p>LGR asked:</p><blockquote><p>Is there anyway to attach the onclick event handler on a link I want to track without editing the html, perhaps at the bottom of the page? Just wondering if it is possible to separate the HTML from the javascript so it is easier to maintain.</p></blockquote><p>Motorcycle Guy asked :</p><blockquote><p>Surely there is javascript to add that javascript to every external link? it seems dumb to have to rewrite your whole application.</p></blockquote><p>I don’t think there is an easy way to do this. The best way would be to make your site database driven and append some automatic variables to the events you want to track.</p><p>Another solution would be to give each of your links an id parameter and then to track clicks on each id and register the event that way.</p><p>If anybody has any better suggestions please post in the comments.</p><p>f4rrest commented:</p><blockquote><p>There are some things still only available in the old UI though, such as graphing country-specific visitors.</p></blockquote><p>Clicking on <em>Visitors &gt; Map Overlay</em> and then the Country detail level and finally selecting the graph view I was able to create the chart below. Is this what you were looking for? I suspect you wanted to see how traffic from a certain country changed over time but this isn’t possible unfortunately.</p><p><img
title="Traffic by country" src="http://www.blogstorm.co.uk/images/ga-q5.jpg" alt="Traffic by country" /></p><p>Slides asked:</p><blockquote><p>Can GA be used to track registered users and their activity on site?</p></blockquote><p>I don’t think GA is the right solution to track individual user sessions and activity on a website. Depending on the data you want to track it sounds like a php application would be best.</p><p>darnit commented:</p><blockquote><p>I would love to know how to view the pages sending traffic in the referring information statistics. Not just the domain but a link to the actual page sending traffic.</p></blockquote><p>Clicking on <em>Traffic Sources &gt; Referring Sites</em> and then clicking on del.icio.us (or any of the other sites on the list) you can see a list of the referring pages as well as build a pie chart to visualise the data. Click the “Views” icons to view the pie chart.</p><p><img
title="Referring pages" src="http://www.blogstorm.co.uk/images/ga-q6.jpg" alt="Referring pages" /></p><p>This method falls down on sites where the referring page is site.com/page.php?id=12345 as Google strips the id parameter off. It works fine for most blogs as they tend to use a folder structure rather than dynamic urls.</p><p>Any more questions feel free to ask</p> ]]></content:encoded> <wfw:commentRss>http://www.seoexploration.com/2009/07/google-analytics-tutorial-part-2/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Advanced use of Google Analytics and the new interface</title><link>http://www.seoexploration.com/2009/07/advanced-use-of-google-analytics-and-the-new-interface/</link> <comments>http://www.seoexploration.com/2009/07/advanced-use-of-google-analytics-and-the-new-interface/#comments</comments> <pubDate>Mon, 27 Jul 2009 14:02:11 +0000</pubDate> <dc:creator>anon</dc:creator> <category><![CDATA[Google-Analytics]]></category> <category><![CDATA[affiliate link]]></category> <category><![CDATA[analytics]]></category> <category><![CDATA[google]]></category> <category><![CDATA[hyperlink code]]></category><guid
isPermaLink="false">http://www.seoexploration.com/2009/07/advanced-use-of-google-analytics-and-the-new-interface/</guid> <description><![CDATA[by Patrick Altoft on June 7, 2007 Since Google Analytics was launched in 2005 it has become one of the top analytics packages for small to medium sized websites. Growth was initially slow due to the frustrating waiting list system initiated by Google to avoid over stretching their servers. Now that the waiting list has [...]]]></description> <content:encoded><![CDATA[<p><em>by</em><a
title="advanced-google-analytics" href="http://www.blogstorm.co.uk/advanced-google-analytics/ " target="_blank"> <span>Patrick Altoft</span> </a><em>on</em> <abbr
title="2007-06-07">June 7, 2007</abbr></p><p><img
src="http://www.blogstorm.co.uk/images/ga.gif" alt="Google Analytics" /><br
/> Since Google Analytics was launched in 2005 it has become one of the top analytics packages for small to medium sized websites. Growth was initially slow due to the frustrating waiting list system initiated by Google to avoid over stretching their servers. Now that the waiting list has been removed anybody can sign up to use this great service.<span
id="more-4"> </span></p><p>The user interface had a major redesign in May 2007 and a lot of the features we love have become hard to find. This guide should help you find your way around the new system.</p><p>I see a lot of comments on the forums asking whether Analytics can do X, Y and Z. In most cases it can do it but people just don’t realise it. As webmaster of several large sites I have been using GA for around a year now to track a huge number of variables. In this post I will go through a few of the more obscure interactions that GA can tack on your site.</p><h2>Tracking exit clicks, banner clicks and RSS feed subscribers</h2><p>Have you ever wanted to know how many people clicked on a particular link or banner on your site? You may wish to find out how many people click on an affiliate link, how many people from a certain country click on your banner advert or even the number of visitors from Digg that clicked to sign up to your RSS feed.</p><p>GA can track this for you quite easily by simply adding an onClick event to your hyperlink code.</p><p><code>&lt;a href="http://www.example.co.uk" onClick="javascript:urchinTracker ('/outgoing/rssfeed'); "&gt; </code></p><p>Every time somebody clicks on the link above GA will register a page view on the page www.yoursite.com/outgoing/rssfeed. To view the stats for the link you will need to follow the directions below:</p><p><img
title="Select Content and then Top Content" src="http://www.blogstorm.co.uk/images/ga1.gif" alt="Select Content and then Top Content" /></p><p>In your GA account visit Content &gt; Top Content and you will see the most popular pages on your site. Enter the term “outgoing” into the filter box as shown below and you will see a list of all the pages on your site with “outgoing” in the url. Normally this will just show exit clicks unless you happen to have real pages with “outgoing” as part of the url.</p><p><img
title="Drill down to the content you require" src="http://www.blogstorm.co.uk/images/ga2.gif" alt="Drill down to the content you require" /></p><p>To drill down into the data simply click on the url you are interested in and you will see a snapshot of data like the image below.</p><p><img
title="Page snapshot" src="http://www.blogstorm.co.uk/images/ga3.gif" alt="Page snapshot" /></p><p>(screenshot courtesy of <a
href="http://www.firesgalore.co.uk/">Gas Fires Galore</a>) If you want to drill down further by clicking on the “Segment:” drop down menu you can see details such as the source of the visitors, the keywords they were searching for and the landing page they arrived on.</p><p>This data is extremely valuable to webmasters who are not selling products. Sites selling products can measure ROI accurately by looking at the profits made on a particular sale compared to the cost of obtaining the visitor whether by SEO or Pay Per Click marketing. If you don’t sell products you need to place a value on other aspects of your site. How much are you willing to pay to acquire another blog subscriber? Was the $5000 you spent on link bait worthwhile?</p><p>All these actions can be tracked using the onClick event in Google Analytics.</p><p><a
href="https://adwords.google.co.uk/support/bin/answer.py?answer=27246&amp;topic=8202">More information at the Google Help Section.</a></p><h2>How do I track downloads?</h2><p>Downloads can be tracked again using the onClick event as above:</p><p><code>&lt;a href="http://www.example.co.uk/files/map.pdf" onClick="javascript:urchinTracker ('/downloads/map'); "&gt; </code></p><p><a
href="https://adwords.google.co.uk/support/bin/answer.py?answer=27242&amp;ctx=sibling">More details</a></p><h2>Tracking ecommerce revenue</h2><p>Tracking where your visitors come from is very important. Tracking where your actual customers came from is even more important. If you knew that people searching for your keywords on MSN Live were twice as likely to buy your product as people searching on Google you can happily bid far more for your Adcenter clicks as your Adwords clicks.</p><p>Sales reports by traffic sources can be found under the “Traffic Sources &gt; All Traffic Sources” section of the menu.</p><p>Before explaining how to track your transactions lets look at the data that GA can provide on this subject. These figures are for April 2007. Some details are blocked out for privacy reasons.</p><p><img
title="Revenue from different sources" src="http://www.blogstorm.co.uk/images/ga5.gif" alt="Revenue from different sources" /></p><p>Lets drill down into the stats for Google (keywords removed):</p><p><img
title="Revenue from different keywords" src="http://www.blogstorm.co.uk/images/ga4.gif" alt="Revenue from different keywords" /></p><p>From the chart above we can see that some keywords earn £31.52 per visit whereas some only earn £5.72 per visit. This data is hugely valuable as you can adjust your PPC bids on high and low paying keywords to maximise your profits.</p><p>GA also lets you drill down to see stats such as the number of people who bought product A after searching Google for Product B.</p><p>Now we know why we need to see these stats it makes the task of enabling the tracking slightly more appealing.</p><h2>How to track Sales</h2><p>To track your sales you will need to use some server side script on your confirmation page (the page people see after they complete a transaction on your site) to populate a form in the following format:</p><p><code>&lt;body onLoad="javascript:__utmSetTrans()"&gt;<br
/> &lt;form style="display:none;" name="utmform"&gt;<br
/> &lt;textarea id="utmtrans"&gt;UTM:T|[order-id]|[affiliation]|<br
/> [total]|[tax]| [shipping]|[city]|[state]|[country] UTM:I|[order-id]|[sku/code]|[productname]|[category]|[price]|<br
/> [quantity] &lt;/textarea&gt;<br
/> &lt;/form&gt;</code></p><p>Example</p><p>UTM:T|34535|Main Store|111108.06|8467.06|10.00|San Diego|CA|USA</p><p>UTM:I|34535|XF-1024|Urchin T-Shirt|Shirts|11399.00|9</p><p>UTM:I|34535|CU-3424|Urchin Drink Holder|Accessories|20.00|2</p><p>Once you have populated the form GA will start tracking your sales right away.</p><p>The Google Help Section has a good <a
href="https://adwords.google.co.uk/support/bin/answer.py?answer=27203&amp;topic=8198">reference guide for this topic</a>.</p><h2>Tracking 404 errors</h2><p>Google Analytics makes the process of tracking your 404 errors fairly straightforward. Simply add the code below to your error page and GA will tell you the source of the traffic that is generating the error.</p><p>Make sure you replace the xxxxx-x with your GA account number!<br
/> <code><br
/> &lt;script type="text/javascript"<br
/> src="http://www.google-analytics.com/urchin.js"&gt;<br
/> &lt;/script&gt;<br
/> &lt;script type="text/javascript"&gt;<br
/> _uacct = "xxxxx-x";<br
/> urchinTracker("/404.html?page=" + _udl.pathname + _udl.search);<br
/> &lt;/script&gt;</code></p> ]]></content:encoded> <wfw:commentRss>http://www.seoexploration.com/2009/07/advanced-use-of-google-analytics-and-the-new-interface/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
<!-- Served from: www.seoexploration.com @ 2012-02-05 12:35:39 by W3 Total Cache -->
