I just started working on my first mobile theme and using a new jumpmobi theme which seems the best I have ever seen. I will be using it co-existent with an existing desktop site and use a sub directory for it.
Not to load the existing operational website I am using WAMP which I find is really helpful and which I prefer to XAMMP. All going well until I tried to setup the permalinks which just didn’t work and would only operate using the default setting http://localhost/mobile/?p=123.
After much searching around I came across the fix which worked for me and which I should have realised from the start and here it is….
In WAMP the rewrite_module needs to be on and I believe in default it’s off.
- click on the WAMP icon in your task bar
- navigate to: Apache>Apache modules>
- scroll down to rewrite_module and click it.
All your pages and posts should work with your selected permalink setting.
I recently moved a WP site onto a good free host facility as they really didn’t want to pay for hosting on what was a fun blog for them.
Once up and running without much problems I realized that the dashboard was full off error messages which were all the same
Fatal error: Allowed memory size of 33554432 bytes exhausted
Most of the information boxes in the dashboard had failed with the code so I had to start searching around for what may have happened here.
I finally managed to find the fix by searching around and the best answer came from a WP moderator Sam Bolt
The bottom line was to do one of the following starting with the first -
- Find your wp-config.php file and add the following line to it : define(‘WP_MEMORY_LIMIT’, ’64M’);
- If you can access to your PHP.ini file then change the line in PHP.ini
(If your line shows 32M try 64M)
memory_limit = 64M ; Maximum amount of memory a script may consume (64MB) - If you are unable to get to your PHP.ini file then try adding this to an .htaccess file:
php_value memory_limit 64M - Finally speak with your host
Mine was fixed using the first fix define(‘WP_MEMORY_LIMIT’, ’64M’); let’s hope you are as lucky
Finally you may also be able to fix this problem by increasing the memory limit in your setting.php file, however, as this change will be lost with any new WP upgrade I would only entertain this one as a last resort fix.
UPDATE – 10th November 2012
Just a small update on fixing this problem. Yesterday I had this problem on one of my sites and none of the fixes above worked. I could even verify that I had increased the “memory_limit to 64M” in the php.ini file and showed in the php.info.
The fix was to disable all the plugins which straight away got rid of the problem. I then slowly re-activated the plugins checking as I went through each one.
Surprise surprise – on activating the final plugin the fatal error message was still gone.
Don’t really know why but I’ll accept it as something to try if I ever come across this problem again.
I have just migrated a wp site to a new host and all went well.
- I created a new database and imported the db backup from the old host.
- I then uploaded the home directory files which were backed up from the old host.
- I changed the “wp-configuration.php“ file settings to reflect the new database, user id and password for the new host.
- I changed the DNS settings on my domain name provider to reflect my new host details.
All went really well, in fact it was the best migration to date and the new DNS settings switched in within an hour which was great.
However, when I checked that all the plugins etc. were functioning correctly I got the following error message on all my admin pages
“Error Warning: Your backup folder MIGHT be visible to the public”
The suggested fix from the plugin stated as follows
“To correct this issue, move the .htaccess file from wp-content/plugins/wp-dbmanager to /home/xxxxxxx/public_html/wp-content/backup-db”
Well, I’d seen this message many times before and the move as requested had always worked before so thought I must have dropped the “.htaccess” file in the move. Remember that the original file is “htaccess.txt” so you also have to change it to “.htaccess” when doing the move (or copy).
No, it was still there so I went back to my original host, zipped up the whole “public_html/wp-content/backup-db” directory and replaced the new host “backup-db” directory with it just in case something was corrupted in the migration .
No, the error message was still there so I realised I had to dig somewhat deeper.
Permissions on the directory? No all ok
I then looked at the actual setup of the plugin using the “DB Options” which you rarely visit once the plugin is configured.
That’s when I realised that there was an area that was still configured with data for the old host – my account name reflected as a directory. This is to be found in the “Path To Backup:” setting.
Mine was set with the old path for my previous host
“/home/domain/public_html/wp-content/backup-db”
I changed it to reflect my new host settings like this
“/web/docroot/1111/domain.com/htdocs/wp-content/backup-db”
After the change and reseting the page, the message disappeared.
I tested full functionally of the plugin without any problems and I would add that this plugin from Lester ‘GaMerZ’ Chan is still great, I have been using it now for many years, thank you Lester.
I have found that one of the best SEO plugins for Word Press is WordPress SEO which is yet another of Joost de Valk’s many good WP plugins.
I started to use it some months ago and apart from the learning curve that always has to be passed through I found it quite intuitive and documentation enough to do the job. All on all one of the best “free” SEO packages around.
Today I was faced with opening two new WP sites and I’m designing the themes for each so I just wanted a few plugins to get me going. I loaded WordPress SEO and started to configure the standard setting which are pretty much the same for all my sites and as I was tidying up thought I may as well use the settings export facility so I can import for the second website.
Unfortunately when you try to export it comes up with an error
Warning: chdir() [function.chdir]: No such file or directory (errno 2) in /home/xxxxxxx/public_html/www.yyyyyyyyyyyy.com/wp-content/plugins/wordpress-seo/inc/wpseo-non-ajax-functions.php on line 90
This is when I remembered that I’d tried this some while ago with the same result – what a bummer. This time I resolved to try and find a fix and not being a PHP expert this meant searching the internet.
This time I struck gold after about half an hour searching.
I take no credit for the work but I did what the patch suggested and it works a treat but remember his warning “Try out at your own risk”.…
The patch applies to the file located in the plugin directory “wordpress-seo/inc/wpseo-non-ajax-functions.php”
This is the fix verbatim:-
There is a subtitle difference in that the dir must be an OS path when creating the file and a url when returning the file for download.
There should also be a leading / on settings.ini and settings.zip
Here is my workaround. Try out at your own risk.
NOTE: I have not tested the resulting import yet.
Additions market with > starting from line 80. Mods marked with |
> $upload_dir = wp_upload_dir();
> $wpseo_upload_path = $upload_dir['path'];
> $wpseo_upload_url = $upload_dir['url'];
| if ( !$handle = fopen( $wpseo_upload_path.’/settings.ini’, ‘w’ ) )
die();
if ( !fwrite($handle, $content) )
die();
fclose($handle);
require_once (ABSPATH . ‘wp-admin/includes/class-pclzip.php’);
| chdir($wpseo_upload_path);
$zip = new PclZip(‘./settings.zip’);
if ($zip->create(‘./settings.ini’) == 0)
return false;
| return $wpseo_upload_url.’/settings.zip’;
And the guy we should all thank for it is known as setuptips and a member of the WordPress.org Forums.
By Angelique L. Rewers (c) 2011
Once upon a time, it seemed as though the number of “followers” or “connections” a person had on social networking sites like Twitter, Facebook, and LinkedIn was akin to the number of votes they had for homecoming king or queen. It was the adult version of a high school popularity contest.
However, as these websites have now matured – and as entrepreneurs and business owners have figured out how and how not to use them – most everyone has come to realize that it’s not about the number of connections you have, but the number of right connections.
Just like in the real world, you want to make sure you’re making the most of your networking time by connecting with those people that have similar or complementary interests or expertise and, therefore, create a mutually beneficial relationship – particularly when sites like Facebook limit your number of friends to only 5,000. In fact, many people who have large followings of the wrong people are taking the drastic step of deleting their connections and starting over from scratch.
Whether you’re just getting started building your social media network or you’re a seasoned pro, who’s thinking about doing a major overhaul, here are seven steps you can take to help you build the right connections.
1.) Start With the People You Know. If you’re still not using social media and are hesitant to get started, the best way to get your feet wet is by connecting with those you know personally: your friends, your family, your neighbors, and your co-workers. But don’t stop there; your network is likely a lot bigger than you might think. Don’t forget about your former co-workers, your connections through professional organizations to which you belong, your clients or customers, members of your mastermind communities and even vendors with whom you’ve done business.
2.) Add the New People You Meet. Not so long ago (unless you were in sales), the majority of the business cards you collected at networking events, conferences, trade shows and other professional development opportunities probably went in the garbage can the next day. Today, however, there’s no excuse for not taking a few minutes to extend the life of those connections by sending social media invites the very next day. Be sure to remind the person who you are by referencing something from your conversation or by providing a piece of follow-up information that you promised.
3.) Follow Your Followers’ Followers. Check out the connections and followers of your colleagues, peers, friends, etc. On Twitter you can easily see who your friends are following, as well as who is following them. Facebook automatically provides suggestions of people you might want to add because you have a lot of shared connections. In LinkedIn you may need to ask your connection to make an introduction. In any case, if you have things in common with your networkers, it stands to reason that a good portion of their followers is also worth following. Just be sure not to “spam” your connections’ lists.
4.) Broaden Your Reach. Extend invitations to people in groups to which you belong in both the real and online worlds, such as professional organizations. On LinkedIn you can connect with the folks you “meet” through LinkedIn Groups. And on Facebook you can make connections when you’re invited to attend an event or when you join someone’s fan page.
5.) Follow the Experts. We’re constantly learning from experts in our respective industries. Why not reach out to these folks in the social media world? Maybe you’ve just read a great book. See what the author has to say on Twitter. Or maybe you’ve received a brochure for an upcoming conference that you’d love to attend but can’t. Before you throw the brochure in the trash, search for the speakers’ names on social networking sites and send them an invitation to connect. Let them know that you saw their session description for the conference and you’re disappointed you’re going to miss it, but would love to keep track of where else they might be speaking.
6.) Do Some Digging. Don’t forget to take the time to search for people who share similar interests as you or who would be an ideal customer for your business. Granted, this is the most time consuming of all the methods. But it will give you the chance to unearth new sources, experts and connections that will add value to your business and who you might not otherwise have ever “met.” Be on the lookout for bloggers, reporters, and analysts who cover your company or industry.
7.) Invite Others to Follow You. To truly create an online “relationship” it needs to be a two-way street. One of the best ways to encourage others to follow you is by showing that you will provide value to them. In other words, be worthy of their time. Start by ensuring your online profiles are professional (i.e. no avatar photos) and accurately describe who you are, what you do, and what topics you’re interested in. Provide content and commentary that matches that profile, is timely and doesn’t spam. Promoting is fine so long as it’s balanced with valuable content. Link to blog posts, videos and articles your followers would find interesting. Ask questions
and provide insightful comments on other people’s posts. Make it easy for others to follow you by providing “follow me” widgets on your website, blog posts, article archives, and podcasts.
Remember: It’s not about the number of connections you have on these sites – it’s about the quality of those connections. Today, people are looking for authenticity. They want to meet real people with real things to say who will add value to their personal and professional lives.
Are you doing something interesting to find valuable contacts on social media sites? Leave us a comment and let us know what strategies are working for you!
By Angelique Rewers, ABC, APR – Richer. Smarter. Happier.
The Queen of Clarity – Angelique Rewers, ABC, APR, harnesses her extensive experience working with Fortune 500 companies to help solopreneurs clarify their marketing focus so they can build a business that makes them happy and makes them money. If you’re looking for simple, low-cost ways to boost your sales, get Free marketing *Brilliance!* now at: http://www.richersmarterhappier.com/brilliance_ezine.htm
This is a good video about the SEO benefits of Social Bookmarking – a great way of gaining traffic.
Thanks to http://videos.sitepronews.com/
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 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.

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.
Since my previous article about Yslow 1.0 [3], 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.
Page Speed rules shared with Yslow 1.0
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 Page Speed’s documentation [4] details interesting.
- Avoid CSS expressions
- Combine external CSS
- Combine external javascript
- Enable gzip compression
- Leverage browser caching
- Minify javascript
- Minimize DNS lookups
- Minimize redirects
- Parallelize downloads across multiple hostnames
- Put CSS in the document head
Page Speed may sometimes advise you to do stupid things. For example, under the “Leverage browser caching” rule, Page Speed suggested that I make __utm.gif 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!
Page Speed rules shared with Yslow 2.0
I haven’t yet discussed these rules, so let’s look at them now:
- Minimize cookie size
- Serve static content from a cookie-less domain
- Specify image dimensions
Minimize cookie size
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.
Serve static content from a cookie-less domain
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.
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!
Specify image dimensions
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.
Don’t use HTML to resize images; use a graphics program. The width and height attributes in your HTML <img> 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.
I get a perfect score on this, and there’s no excuse for anything less.
Rules unique to Page Speed
In some cases, Yslow’s guidelines may include these topics, but not in the form of an automated check on your web page.
- Defer loading of javascript
- Optimize images
- Optimize the order of styles and scripts
- Remove unused CSS
- Serve resources from a consistent URL
- Leverage proxy caching
- Use efficient CSS selectors
Defer loading of javascript
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).
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.
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.
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.
Optimise images
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.
Optimise the order of styles and scripts
Ideally, you wouldn’t include any javascript in the <head>, as this violates Yslow’s rule, “Put javascript at the bottom.” If you need to include scripts in the <head>, however, try to get the order right. External scripts should come after all the external stylesheets, and inline scripts should come last of all.
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.
Remove unused CSS
I score 100% on this one, which is surprising given that my CSS is an overgrown, tangled thicket of complexity that desperately needs pruning.
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).
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.
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, see Nicole Sullivan’s presentation [5].
Serve resources from a consistent URL
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.
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.
Leverage proxy caching
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).
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.
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.
Use efficient CSS selectors
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.
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:
ul li {color: blue;}
ol li {color: red;}
That would be the usual way to do it; instead, Google recommends adding a class to each <li>, so that you can use class selectors:
.unordered-list-item {color: blue;}
.ordered-list-item {color: red;}
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.
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 performance impact of CSS selectors [6]. 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.
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.
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.
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.
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.
Rules unique to Yslow 2.0
In some cases, Page Speed’s guidelines may include these topics, but not in the form of an automated check on your web page.
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 34 best practices [7] in total.
- Reduce the number of DOM elements
- Make favicon small and cacheable
- Avoid HTTP 404 (Not Found) errors
- Avoid AlphaImageLoader filter
- Make AJAX cacheable
- Use GET for AJAX requests
Reduce the number of DOM elements
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.
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:
document.getElementsByTagName('*').length
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 <div>s whenever possible. This will leave them with hideously convoluted CSS and problems maintaining their code.
By all means remove extraneous markup, and also try to limit the complexity of DOM access in your javascript (for example, avoid using javascript to fix layout issues [8]—here I have sinned). But never be afraid to throw in an extra container <div> when you can see it will make life easier.
Make favicon.ico small and cacheable
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).
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.
Avoid HTTP 404 (Not Found) errors
This one is obvious. If your document has broken links, fix them.
Avoid AlphaImageLoader filter
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?
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.
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.
Make AJAX cacheable, and use GET for AJAX requests
I can’t pretend to understand these rules properly, having never used AJAX. Nevertheless, the ideas are straightforward.
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:
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.
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.
Conclusions
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.
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.
Article printed from The Web Squeeze: http://www.thewebsqueeze.com
URL to article: http://www.thewebsqueeze.com/web-design-articles/google-page-speed-and-yslow-2-0.html
URLs in this post:
[1] Yslow: http://developer.yahoo.com/yslow/
[2] Page Speed: http://code.google.com/speed/page-speed/
[3] article about Yslow 1.0: http://www.thewebsqueeze.com/web-design-articles/yslow-going-from-f-to-a.html
[4] Page Speed’s documentation: http://code.google.com/speed/page-speed/docs/using.html
[5] see Nicole Sullivan’s presentation: http://developer.yahoo.net/blogs/theater/archives/2009/03/website_and_webapp_performance.html
[6] performance impact of CSS selectors: http://www.stevesouders.com/blog/2009/03/10/performance-impact-of-css-selectors/
[7] 34 best practices: http://developer.yahoo.com/performance/rules.html
[8] avoid using javascript to fix layout issues: http://developer.yahoo.com/performance/rules.html#dom_access
Fred Morgan – seoexploration.com
With the modern style of losing the “www” at the beginning of the website URL you may encounter problems – especially with statistical analysis programs.
I’m not really concerned with the semantics of whether one should or should not use the starting “www” but being of the old school I still tend towards using it. These days most hosting facilities utilise the dual base directories of “public_html” and “www” where “www” is the automatic clone of the “public_html” directory so, under normal circumstances, either URL will work fine.
However, I have seen browser cache problems give display problems identifying a difference between them – i.e. missing favicon images and intermittent flash errors etc. It took me a long time before I identified where the problem actually lay. Everyone always identifies the standard cache reload fix but not that you may be varying the actual URL (www) search which can happen when using previous saved browser shortcuts or bookmarks.
.htaccess
I always now use a 301 redirect with the following script in my .htaccess file which redirects my incoming URLs to www however this step should only be taken by those who understand that problems could follow if incorrect editing is done. Firstly create a backup copy of your original .htaccess file just in case things get messed up. Now add the following 3 lines of 301 redirection code
(note : aaaaaaaa.bbb is tobe replaced by your website URL i.e. okikoki.com)
RewriteEngine On
RewriteCond %{HTTP_HOST} ^aaaaaaaa.bbb
RewriteRule (.*) http://www.aaaaaaaa.bbb/$1 [R=301,L]
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’s time for the follow-up.
Google’s new technology
Since a while Google is testing a new AJAX version of their search engine. I’m not sure who’s seeing the AJAX version and who isn’t, but in Holland most of the Firefox users do see it. You can see if you’re one the new one by looking at the url of a result page:
![]()
The great thing about this new version is that it makes Google Analytics capable of tracking the clicked position. Yes you heard what I say: the position. Where the ‘old’ Google only allowed us to track the page a keyword was on, the new Google allows us to track the exact position.
The new filters
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 the video where Joost explains this all):
Filter name: "Ranking 1" Filter type: "Custom filter - Include" Filter field: "Campaign Medium" Filter pattern: "organic"
Filter name: "Ranking 2" Filter type: "Custom filter - Include" Filter field: "Campaign Source" Filter pattern: "google"
And this is the new filter that is capable of tracking positions:

And the copy/paste version:
Filter name: "Ranking 3" Filter type: "Custom filter - Advanced" Field A -> Extract A: "Campaign term", "(.*)" Field B -> Extract B: "Referral", "(\?|&)cd=([^&]*)" Output To -> User Defined: "$A2 (position: $B2)"
And a bonus filter to add an “unknown position” message when the position of the searched keyword is not passed through:
Filter name: "Ranking 4" Filter type: "Custom filter - Search and Replace" Filter field: "User Defined" Search String: "\(position: \)" Replace String: "(position unknown)"
The new reports
If you have implemented everything correct you should see this in the “Visitors -> User Defined” report:

A list of keywords with the position the keyword was on when a visitor clicked it. Now you’re able to see the exact positions, more precise than any ranking tool that is out there. There’s 1 minor drawback: business listings next to the little maps are counted as a position also:

The blue result is counted as the 11th result, and not as the first organic result. But when you’re analyzing your positions you can easily separate the geo-related keywords from the rest.
Sitelinks
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:

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:
Filter name: "Ranking 5" Filter type: "Custom filter - Include" Filter field: "Referral" Filter pattern: "oi=(oneline_sitelinks|smap)"
The positions you will see are pure sitelinks positions, and you will get an idea about which sitelink is popular and which isn’t.
Extra tip
While we are dissecting the referring url from the Google Search engine we could take a look at the “meta” parameter (my dutch blogpost about this). It’s used when people use one of these options:

The selected country or language is in the “meta” parameter (not applicable for Google.com) and can be made visible with the following filter:
Filter name: "Language / Country" Filter type: "Custom filter - Advanced" Field A -> Extract A: "Referral", "(\?|&)meta=([^&]*)" Output To -> User Defined: "$A2"
And remember: do this on a new profile so you don’t mess up existing profiles. The selected language(s) or country is visible in the “Visitors -> User Defined” report.
I had this filter for quite a while on a lot of Dutch sites and saw that the three options where used like this:
- The internet: 96,69%
- Pages in Dutch: 3,28%
- Pages from Holland: 0,03%
Well, that was the update, hope you liked it.