» Publishers, Monetize your RSS feeds with FeedShow: More infos (Show/Hide Ads)
I wanted to say thanks to Yoast's sponsors, for enabling me to continue to provide you with WordPress tips and tricks, and to allow me to work on some cool stuff that I'll be able to announce soon!
Advertise on Yoast, and get to that WordPress crowd
This blog has a very engaged crowd of readers, who are very active with their blogs and sites. Thousands of them will see your ad each day, thousands of WordPress and Magento loving, smart readers, who know or want to learn about SEO, speed optimization and more.
Currently our sponsors are (see their ads on the right hand side):
As you can see, there's only 7 right now, which means, indeed, that we've got one open spot! Buying an ad on yoast.com is easy as can be, thanks to Todd Garland and his wonderful team at BuySellAds. You can buy an ad directly through this link, or contact them for a proposal.
Starting next month, I'll do a monthly post highlighting our sponsors to thank them for their sponsorships, it really is the only way to keep this site up and running!
Update: within 90 minutes of publishing this post, Raven Internet Marketing Tools bought an ad, thanks guys, much appreciated!
Thanks to Yoast's WordPress loving sponsors is a post from Joost de Valk's Yoast - Tweaking Websites.A good blog needs good hosting, you don't want your blog to be slow, or, even worse, down, do you? Use WestHost, and you'll never have issues again!
So one of the things I've always wanted to do is use an Analytics tools API to enrich the data about a visit. Clicky is one of the few tools out there that have a well detailed API that allows you to push in extra data during the visit. The extra data bit I really wanted to add is an action that I consider one of the most vital actions on a blog: commenting.
Let me start by showing you the "end result", first what a "visit" containing a comment looks like, second what data is stored for each visitor (the new feature adds both the name and the email address):
This is done by some pretty cool combination of the WordPress API and the Clicky API, and it also allows you to add comments as a goal in your Clicky:
Pretty neat huh?
Comment Tracking in Clicky is a post from Joost de Valk's Yoast - Tweaking Websites.A good blog needs good hosting, you don't want your blog to be slow, or, even worse, down, do you? Use WestHost, and you'll never have issues again!
I make mistakes. You make mistakes. We all do. And some of these mistakes end up providing our readers with a 404 page. Chances are that page says "Error 404: file not found". How does that help your visitor?
Instead of just identifying the problem, your 404 page needs to offer a solution.
In the default WordPress Kubrick theme the 404 page (example) is probably one of the ugliest pages you've ever seen, and chances are yours is not any better. Today is the time to end that. This post will provide you with everything you need to make your "404 - File not found" page a starting point instead of a dead end street.
The goal of a good 404 page is simple: to make sure visitors landing on it continue browsing your site, and find the content they came for. Let's get going.
Get into your visitors mindset
Get into the mindset of the person that just got to a 404 page on your site. They were expecting something else, if not, they wouldn't have gone there. So there's a couple of things you should absolutely not do:
First of all, considering they've probably clicked a link somewhere to get to that 404 page, whose fault is it that they're getting a 404? Theirs? No. Yours? It very well might be, so you'd better apologize.
Second, make sure the styling of your 404 page fits in with the rest of your site. Sometimes designers go overboard with their 404 pages, and make them look like, for instance, a Windows blue screen. This can have the very undesired effect of people leaving immediately.
Third, if you are going to make jokes, like that Windows blue screen, make sure it's a joke everyone gets. Especially when you're blogging in English, you might end up with a lot of readers for whom English is their second or third language. Your puns, though well intended, might be going nowhere because their mastery of the language isn't sufficient. Because of that they might leave... Is that worth it?
Let's make a killer 404 page
Ok so we know what not to do. We also know that the visitor came to your site looking for specific content, usually having followed a link from somewhere. Now it's time to start giving them ways of doing that. If you're not using WordPress and you're lazy, the Google 404 widget might be helpful. If you are using WordPress, we can do better than that.
Let's let us be inspired by some great 404 pages:
I'll be honest: the Conversion Rate Experts guys have inspired the first version of my 404 page. They offer you 4 options to get to the content you were looking for:
- search
- check the URL for misspellings
- check the sitemap
- start over at the homepage
That's a great start. Apple gives you a sitemap straight away. Depending on your site's structure that might be a great idea too.
I wanted to add one more thing: a set of pages that actually might be related to the URL people had typed in. To do that, we'd have to parse the URL and see if there's something useful in there. Let's see what we have to work with:
What data does a 404 error page provide?
A lot of people seem to think that a 404 page is a dead end street. It's not, there's a whole lot of data that can help you find the content your visitor was looking for. Let's start with the URL: it contains something very useful. All the text that's there after the slash of your domain should be pointing you to what it is the person was looking for.
Luckily, WordPress stores that information for you. The $wp_query->query_vars['name'] variable holds whatever was in there. It does do some replacing in there though, it replaces all weird entities with a dash (-). We'll use this bit of information to spice up your 404 error page.
First of all, let's check whether there's a direct match for that var in a page name once you strip out all the things that people sometimes add to your URL erroneously. (If you read on there's an adapted version of the Kubrick 404 page which you can use to update your own themes.)
$s = $wp_query->query_vars['name']; $s = preg_replace("/(.*)-(html|htm|php|asp|aspx)$/","$1",$s); $posts = query_posts('post_type=any&name='.$s);
If that doesn't deliver results, you'll want to do a search for that word, to do that we'll have to rip out the dashes in the name, and then do the search. As we're going to re-use the $s variable further on, we'll do that outside of the if statement to check whether the previous query delivered results:
$s = str_replace("-"," ",$s); if (count($posts) == 0) { $posts = query_posts('post_type=any&s='.$s); }
Now we have an array with posts, at least, we hope we do, so let's check that, and loop through it:
if (count($posts) > 0) { echo "<p>Were you looking for <strong>one of the following</strong> posts or pages?</p>"; echo "<ul>"; foreach ($posts as $post) { echo '<li>'; echo '<a href="'.get_permalink($post->ID).'">'.$post->post_title.'</a>'; echo '</li>'; } echo "</ul>"; }
I've made an adapted version of the Kubrick 404 error page, which you can download here.
There's a plugin that does something similar to the above, called Smart 404. It chooses to redirect the visitor to the first result it gets. It wouldn't be my preference, I actually want people to notice that the URL was wrong.
So now we have a great 404 page, but we haven't used all the data that we were provided with. Another bit of data the 404 provides is the referrer: someone linked to your page with a wrong URL, or is linking to a page that isn't there anymore. So we've got one thing left to do:
Preventing 404 error pages
There's a very cool plugin called 404 notifier by Alex King, which can provide you with an RSS feed of the 404's on your site, and Redirection, one of my all time favorite plugins, offers the same functionality. You could also use my own Google Analytics for WordPress plugin. It tracks the 404's as 404.html (look for them in your content report).
Using Google Analytics has the added advantage that it saves the referrer, so you know which URL the visitor originated from. This allows you to not only redirect the URL to the correct place, but also to ask the site that referred the visitor to fix the URL.
Another great way to keep track of 404's on your site is using Google Webmaster Tools. In the Diagnostics - Crawl Errors area of Webmaster Tools Google gives you a great overview of what 404's it encountered on your site:
Two Things you Need to Know about 404 pages
These are things that WordPress is doing right, but it's good to know these things:
- Internet Explorer will only show your custom 404 page if it's larger than 512 bytes (hard to get smaller than that with WordPress).
- 404 is not only the name, it's also the HTTP header that the page should send, if not, you might end up with 404 pages in the search engines indexes. You can easily check this with a HTTP header checker.
As said, no need to worry if you're using WordPress, but good to know these things.
There's really no excuse left now for a bad 404 page, so go fix yours! Once you've done that, drop your site's URL in the comments, and I'll make a small gallery of cool 404 pages in this post.
Practical Guide to 404 Error Pages: What WordPress is Missing is a post from Joost de Valk's Yoast - Tweaking Websites.A good blog needs good hosting, you don't want your blog to be slow, or, even worse, down, do you? Use WestHost, and you'll never have issues again!
The guys at Clicky recently wrote a post asking someone to re-develop their WordPress plugin. Since I have quite a bit of code lying around for what they needed, I emailed them and told them I'd be happy to build it. If you don't know Clicky, you really should check it out, it's a pretty solid analytics package with some cool realtime features, be warned though: their "Spy" feature is quite addictive...
Update: the plugin is now out of beta and on wordpress.org, search for Clicky in your backend and install it, or download it from the Clicky plugin page on WordPress.org!
For a 1.0, this plugin has a pretty decent feature set:
- Automatically adding your Clicky tracking code everywhere:
- Option to ignore admins
- Option to store names of commenters
- Option to track posts & pages as goals and assign a revenue to that page or post
- An overview of your site's statistics on your dashboard
- Integration with the Clicky.me Short URL service:
- Automatically create a short link for each now post and page
- Option to automatically tweet posts and pages on publish
It's using my backend class for it's admin UI, so it looks nice and clean (click for larger version):
And it adds a box to your edit post / edit page screen in which you can decide to Tweet the post or not if you've got those settings enabled and define the goal tracking variables:
Clicky Tracking for WordPress is a post from Joost de Valk's Yoast - Tweaking Websites.A good blog needs good hosting, you don't want your blog to be slow, or, even worse, down, do you? Use WestHost, and you'll never have issues again!
One of the things Mark Jaquith and I talked about when Mark was on Press This a month back, in the episode aptly titled the Future of WordPress, was that Automattic would be adding a way for people to indicate whether a certain plugin was working for them or not, regardless of what the plugins "Compatible up to" version is.
This seems to have gone in beta now on wordpress.org, where you'll see a block like you see on the right appear next to plugins. I think this is an awesome addition, as it makes the compatibility data a lot more reliable.
Plugin Compatibility data now crowdsourced is a post from Joost de Valk's Yoast - Tweaking Websites.A good blog needs good hosting, you don't want your blog to be slow, or, even worse, down, do you? Use WestHost, and you'll never have issues again!
Another quick tip to help you optimize your site: sometimes you want to load one or more images in a post in a nice Thickbox or Lightbox. But in most cases, you don't need to load these scripts, wouldn't it be cool if you could load these scripts only when you want them to load?
I decided, that the only time I want Thickbox to load, is when I manually add class="thickbox" to the code of a post or page. So I wrote up a little script that checks for that, and loads Thickbox if needed. Now you need to know that to make Thickbox work, you need to load both a script and a css file, so the complete code is the following:
function yst_conditional_thickbox() { global $post; if (is_singular() && strpos($post->post_content,'class="thickbox"') !== false) { wp_enqueue_script('thickbox'); wp_enqueue_style('thickbox'); } } add_action('wp_print_styles','yst_conditional_thickbox');
This code should go into your themes functions.php file. Let's explain it a bit: the function checks whether the content of the post contains the text class="thickbox". If it finds this text, it enqueues both the Thickbox script and CSS file. The add_action "hooks" this function to a WordPress hook. I use the wp_print_styles hook here, because that executes in the head, and makes sure both the stylesheet and the script file get loaded properly.
Now of course there's nicer ways of doing this, like making it into a full regex to see if class="thickbox" is actually set on a link, to prevent it from loading on a post like this one, which doesn't have a thickboxed image in it, but does contain the text. But let's be honest, how often is that really the case? This simple conditional load means you can use Thickbox when you need it, but you're not making your users download Thickbox all the time when you're only using it in 5% of your posts.
Let me know in the comments if this works for you, and which other things you think you should load conditionally, to make your blog a bit faster and more userfriendly!
Quick WP tip #2: Conditional Thickbox loading is a post from Joost de Valk's Yoast - Tweaking Websites.A good blog needs good hosting, you don't want your blog to be slow, or, even worse, down, do you? Use WestHost, and you'll never have issues again!
Warning: major geekery ahead! Sometimes you need to see what's wrong with a WordPress install, and you need to see it fast. I've had a set of hacks around for a while to do that, but finally started combining it into a WordPress Debug Theme. This theme is quite simple for now, as it only does a few things, but does them quite effectively.
The first thing it does, on the homepage of the blog you've activated it on, is show the most important constants for that blog (see this screenshot). It shows you the important URL's, editor and memory settings etc.
On subpages it will show you something else: the page type, all the query vars that are set and the SQL query for that page. I've found that just doing a print_r or var_dump of $wp_query is hard to read, this theme tries to be a bit smarter about that, see these examples.
This theme also works in the preview, so that might be enough in a lot of cases. It also works great together with Donncha's Theme Tester, as Alex Leonard mentioned in the comments. Be warned that you might want to remove this theme from live sites though!
So all you have to do to use this is download it, upload it to your server and activate it.
If you're a developer this theme might come in handy sometimes, I'd love to know if you use it and what you'd add, maybe we can turn this into something super useful together.
WordPress Debug Theme is a post from Joost de Valk's Yoast - Tweaking Websites.A good blog needs good hosting, you don't want your blog to be slow, or, even worse, down, do you? Use WestHost, and you'll never have issues again!
I was upgrading a WordPress MU site we work on and came across an annoying issue: core update wouldn't work the way it's supposed to. I got the following error:
Unpacking the update. Could not copy files. Installation Failed.
After a bit of Googling I found a thread in the WordPress forums that contained a gem of a fix:
In the file /wp-admin/includes/class-wp-upgrader.php change this:
// Copy update-core.php from the new version into place. if ( !$wp_filesystem->copy($working_dir . '/wordpress/wp-admin/includes/ update-core.php', $wp_dir . 'wp-admin/includes/update-core.php', true) ) {
To:
// Copy update-core.php from the new version into place. if ( !$wp_filesystem->copy($working_dir . '/wordpress-mu/wp-admin/includes/ update-core.php', $wp_dir . 'wp-admin/includes/update-core.php', true) ) {
And low and behold: my automatic upgrade worked at once.
Upgrading issues with WordPress MU is a post from Joost de Valk's Yoast - Tweaking Websites.A good blog needs good hosting, you don't want your blog to be slow, or, even worse, down, do you? Use WestHost, and you'll never have issues again!
This morning I was pleasantly surprised to find a new advertiser had signed on to my blog. The guys at Automattic have placed an ad for VideoPress, and I had to admit that I had briefly looked at the service but hadn't done anything with it yet. I guess this was a good time to change that, and to be honest, I'm impressed.
I've made a short video, which covers how to get your VideoPress account on WordPress.com, how to install the VideoPress plugin and how to then insert a video into your post (make sure to click on HD in the upper right if your bandwidth allows for it):
As you can see this video is 1280x720, aka HD, and you get unlimited plays, all the bandwidth is "on" Automattic. You also get pretty detailed stats about your video, even with the total number of minutes played, and a whole lot more. The complete feature list is best gotten on the VideoPress support page.
As you can see these video's come with default embed codes, just hover over the video and click on embed in the upper left:

So thanks, Automattic, for supporting yoast.com and for making such a cool service available.
Note: even though the link above has a tracking code, I didn't get paid for this post in any other way than that Automattic advertises with a 125x125 button here. I bought my own VideoPress upgrade when I was shooting this video.
VideoPress: Web Video, WordPress Style is a post from Joost de Valk's Yoast - Tweaking Websites.A good blog needs good hosting, you don't want your blog to be slow, or, even worse, down, do you? Use WestHost, and you'll never have issues again!
One of my colleagues was working on a site for a client of ours, and needed to apply styling to the previous and next post link. As in most of our sites we use Lester Chan's excellent wp-pagenavi plugin so I dove into that to check how I could style it.
Turns out Lester is being very good about it and is using the WordPress internal functions next_posts_link and previous_posts_link. This is good because both of these functions have a simple filter that we can hook onto to add a class to those links, and the code below will work in all instances, also when you're not using Lester's plugin but just plain old WordPress.
By default, those links don't have any classes on them, but by adding the following two simple functions to our functions.php, we can add those very easily:
function previous_posts_link_class() { return 'class="previouspostslink"'; } add_filter('previous_posts_link_attributes','previous_posts_link_class'); function next_posts_link_class() { return 'class="nextpostslink"'; } add_filter('next_posts_link_attributes','next_posts_link_class');
If you've added these two functions to your functions.php, you can now use the previouspostslink and nextpostslink CSS classes to style these two links!
Quick WP tip: pagination classes is a post from Joost de Valk's Yoast - Tweaking Websites.A good blog needs good hosting, you don't want your blog to be slow, or, even worse, down, do you? Use WestHost, and you'll never have issues again!
Justin Cutroni wrote a great post a while back on Tracking Zero Result Searches in Google Analytics. Tracking zero result searches on your website (corporate site, e-commerce website or your blog) is vital to get a glimpse of what your visitors are looking for but can't find on your website.
Beneath you will find more info the updated Google Analytics plugin for Wordpress and a guide on setting up zero result search tracking on your blog, but first we'll go in depth with the marketing and usability perspective of tracking those failed searches.
Identity vs. brand perception
Every website owner can explain in a few sentences why the website is online and why people should visit it.. this is the identity of your website. Each visitor has his own perception of your website (mostly based on, advertisement, design and tone of voice). This is the brand perception.
Within a perfect world the perception your visitors have of your brand and your identity would be a perfect match. Of course this isn't the case for most websites (unless you work for Coca Cola, Google or Apple, and even then). Due to the huge diversity of visitors almost all website are facing the challenge of providing visitors with the correct information to persuade them to take the desired action (buy, read on, interact, subscribe).
In our experience, most website aren't always successful in achieving this harmony of brand and brand perception… But how can you determine whether this is the case on your site? Look at your landing pages with high bounce rates. Visitors leave because they are not interested in your offer or expected something different when they clicked on the link to your website. And, of course, check out on-site search, it's a very valuable metric to look at:
How can internal search tracking help you improve your website?
Going back to the example of the landing page with a high bounce rate, we only know people are leaving the website and can only guess as to what they were looking for. Tracking your visitors searches will give you far more insight in what your visitors are really looking for but can't find.
By combining the (internal) search keywords, possible e-commerce data and the top content of your website you get some basic insight in the most popular content/products of your website. But this (as Justin Cutroni points out in his blog post) isn't including searches visitors made on your site that have zero results.
What does a zero result search mean?
If a visitors performs a search on you website and isn't getting any results it's likely he will keep searching… But there's a big chance this next search will be done on one of your competitors websites. A search query with no results can have quite a few different meanings, all of them useful information to help you improve your website, the most common ones are:
- Brand Identity Issues
The visitor has the perception that he can find a certain piece of information on your website but shouldn't have been on your website in the first place (a discrepancy between your identity and the brand perception of your visitor).Chances are you are attracting the wrong kind of visitors (or in the wrong stage of a buying process if your are trying to sell stuff). Taking a look at the traffic source in order to determine if you're ranking on the proper keywords or target the right terms with your CPC campaign (maybe you can save some bucks). The referral pages are worth looking at, maybe visitors performing this type of search just didn't look at the right pages which would help them in their quest for information.
- Keyword Choices
The words used by the visitor when searching for something are completely different that the vocabulary used on the website. For example: Your visitor searches for "VAT" but the website only contains a section about "goods and services tax".This situation is a great chance to improve your website. You will be presented with a list of quickly fixable "issue": keywords used by your visitors which are not present on your website at the moment. Including search terms which resulted in zero search results within related post/pages will make sure people can find what they are looking for (even if it's in their own words) and can make a huge impact on the user-friendliness and the effectiveness of your website (whether you are trying to sell stuff or just get your content read). Looking back at the identity and brand perception matching tone of voice and vocabulary with your visitors could prove a step in the right direction to get more loyal visitors.
- The Internal Search Engine is Inadequate
The search engine used on the website can not find content that should have been showing up in the search results, even when you're sure it's there. While this might not be as quick a fix, internal search is, as you will understand by now, hugely important. So you should solve the issues with the search engine and save valuable visitors.
Of course there are many more useful way's of looking at the data (think of the data visualization option of Google Analytics). Justin also points out two interesting way's of looking at it.
How to implement the Zero result search with the Google Analytics plugin for Wordpress
Most of the steps Justin describes are covered within the updated Google Analytics for Wordpress plugin. After installing or updating the plugin and configuring according to your needs, you're almost done. The tracking is done by default, you only need to perform the actions in step 3 of Justin's post, configuring the Site Search settings correctly within Google Analytics.
Google Analytics Site Search Settings
Configure your Site Search Tracking exactly like the following video:
Click here to view the embedded video.
After this you should be able to track your zero result searches. Do let us know in the comments if this is working for you and what it has helped you find!
So, if you're still here, go and update or install your Google Analytics for WordPress plugin! If you're a Magento user: stay tuned for the Magento extension that implements this same kind of tracking for Magento!
Huge thanks to my colleague Roel Willems for writing the first and awesome draft for this post! If you need help interpreting your Google Analytics results, or in setting up this tracking, you know where to find us!
Searching Without Result is a post from Joost de Valk's Yoast - Tweaking Websites.A good blog needs good hosting, you don't want your blog to be slow, or, even worse, down, do you? Use WestHost, and you'll never have issues again!
Last nights Press This featured a very pleasant conversation with Aaron Brazell, also known as Technosailor, the author of the upcoming WordPress Bible. We discussed a lot of things, as usual, and as I promised in the comments on my previous Press This update, I've kept more notes so I can do this post and give you all the links to the stuff we talked about!
We talked about which area's of WordPress are under utilized according to Aaron, and he mentioned an area that is dear to my heart as well: the widget functionality that was introduced in 2.8. WP Engineer has a great post on how to build widgets 2.8 style, but if you're a TextMate user, like both Aaron and myself, you should really check out both my TextMate bundle for WordPress and Mark Jaquith's TextMate WordPress widget snippet.
Then we talked briefly about BackPress, which is the attempt to normalise all the code that is shared between BBPress and WordPress into one library of functions and classes that can be used separately as well. Aaron mentioned using it for some non WordPress projects and I've done the same.
We also ranted together on WordPress security, mainly because Aaron did a post on Technosailor with the title WordPress Security and How I’m Going to Take All Your Money. He explained his point: the people who know how to fix this stuff have jobs, they usually make their living building WordPress sites, we don't have the time to fix your blog, so please please upgrade, and if you do get hacked, and it's your dumb fault, we will charge you a lot of money for it.
When asked about his book signing tour it turns out that WordPress authors don't get flown around the world yet to promote their books, which probably has something to do with the WordCamp's being quite local and cheap to go to. I did mention that Aaron should actually be at WordCampNL, where I'll be speaking too October 31st, and he seemed eager to come but probably not this year...
There was a lot more that I'm not going to type out, you'll just have to listen to the show!
Make sure to subscribe to Press This by using the appropriate subscribe button on the Press This page, or tune in live on webmasterradio.fm each tuesday at 2 PM Pacific, 5 PM Eastern, 10 PM GMT, so you can join in the chat! Next week I'll be talking to my buddy Todd Garland of BuySellAds about how to monetize your blog!
Press This with Aaron Brazell is a post from Joost de Valk's Yoast - Tweaking Websites.A good blog needs good hosting, you don't want your blog to be slow, or, even worse, down, do you? Use WestHost, and you'll never have issues again!
audio/mpeg (41 362 ko)
So since I haven't gone as far as adding the Press This podcast straight into my feed (I think I will though, if you have a problem with that, I'd love for you to let me know in the comments), I wanted to give you an update here on the recent shows.
There have been three guest on three different shows:
- Mark Jaquith on the Future of Wordpress
An interesting show and discussion for those of you interested how WordPress will develop over the next few versions. - Brent Csutoras on WordPress & Social Media
Especially interesting to those of you that like doing social stuff with their blog. - Avinash Kaushik on Blog Analytics and Metrics
Very cool show on how to measure your blog, what kind of things you should be tracking and which kinds of traffic are worth while and which are not.
I'm very pleased with how Press This is doing, but I'd like to improve it even more and thus would love to hear your feedback in the comments if you have listened to any of them. Also, if you haven't listened, let me know why not!
Press This updates is a post from Joost de Valk's Yoast - Tweaking Websites.A good blog needs good hosting, you don't want your blog to be slow, or, even worse, down, do you? Use WestHost, and you'll never have issues again!
Over the last few months I've been doing a lot of work on my plugins. I've found out that with each new release, they get more users, which is good, and get more time demanding, which is unfortunate. Now with OrangeValley going so well, and the things we have planned there, as well as my wife being 7 months pregnant and the fact that we'll thus have a 2nd kid soon, I probably won't have as much time as I used to have to maintain all my plugins.
So when the guys from startups.com approached me about whether they could take over maintenance on Sociable, I happily said yes. They have plenty of experience and some very good ideas for the plugin, so I'm confident they'll do a good job.
Before any of you ask: yes, some money was involved in this transaction, but I can tell you that if I had to buy everyone who reads this a beer I'd still be bankrupt. I'll still be involved in the development for a while, but they'll be responsible for keeping the plugin up to date from now on. The new home for Sociable is called blogplay.com, and all that is left for me is to wish them all the best with maintaining Sociable!
Sociable gets a new home is a post from Joost de Valk's Yoast - Tweaking Websites.A good blog needs good hosting, you don't want your blog to be slow, or, even worse, down, do you? Use WestHost, and you'll never have issues again!
So I'm starting to wake up from Think Visibility, after flying back yesterday to dive straight into a family party. I can honestly say it was very cool, my presentation went quite well I think, judging by the average of the reactions. Julian's presentation after mine was very interesting as it was the first time I ever heard someone who actually works at a newspaper in Europe talk smartly about SEO.
Straight after that was the presentation by Judith Lewis, who did a great job as usual, but still felt she had to bribe the audience by handing out chocolates :). I've seen a couple of sessions after that, but one that's worth a special mention was Zoe Piper's presentation on the content network, which was well structured and had an awesome design. I think she's a better presenter than Patrick Altoft, whom she works for, so maybe Patrick should consider sending out Zoe in the future. (Kidding, but she really is a talent to keep an eye on!)
Both the night before the conference and the "after" party turned into great nights out, with a dinner in between the drinks and the conference which gave me a chance to catch up with Anthony Shapley, whom I met last year at A4UExpo and went on to work for Dave. He's a really cool guy to hang out with, so I hope Dave makes a habit of taking him to conferences too!
So, the conference was a blast. Everyone was in a good mood and a lot of people walked up to me to have a chat, which I really, really enjoyed. In all I must have met about 50-60 people I didn't know before the conference, that's what I'd call good networking!
Now there's a load of other reviews, I'll try to link to most of them:
- Think Visibility conference
- ThinkVisibility: the things that get left behind in the web development process
- Think Visibility Conference Review (Sept 2009)
- Think Visibility 2009 Review | SEO & Social Media | Web Toastie
- Think Visibility September 2009 | Piggynap's Blog | Zoe Piper
- Think Visibility | MichaelAHeap.com
- Think Visibility Update
- Burn Down Easy » Think Visibility was Awesome
- Think Visibility II
Think Visibility II was a blast is a post from Joost de Valk's Yoast - Tweaking Websites.A good blog needs good hosting, you don't want your blog to be slow, or, even worse, down, do you? Use WestHost, and you'll never have issues again!
Julian Sambles from the Telegraph is up on stage here talking about Newspaper SEO. I've had a bit of email conversation with Julian before when he wrote an article in the Telegraph about the Queen's new website, and I know that he knows his stuff.
Hearing him talk about how they're optimizing the Telegraph, and how they've had to turn around their organization to do it and how they're event trying to educate their readers on Social Media.
I do hope he'll put his slides online later, but I'm also going to be asking Julian to come on Press This and talk about how the Telegraph is using WordPress and why they choose to do that.
As someone who's worked with quite a few news organizations in the Netherlands, it's very nice & refreshing to hear someone talk about all this stuff, with his own opinion and doing really well. We've had a recent debacle in the Netherlands with a newspaper moving over to a new site and forgetting completely about doing redirects, to see this guy show everyone the ropes on how this stuff should work is really cool.
I'll embed his presentation here when he uploads it!
Newspaper SEO at Think Visibility is a post from Joost de Valk's Yoast - Tweaking Websites.A good blog needs good hosting, you don't want your blog to be slow, or, even worse, down, do you? Use WestHost, and you'll never have issues again!
Here are the slides from my presentation here at Think Visibility. As I talk a lot more than I type on my slides this might not always make sense to you if you weren't there, but feel free to follow all the links and check it all out!
My presentation at Think Visibility is a post from Joost de Valk's Yoast - Tweaking Websites.A good blog needs good hosting, you don't want your blog to be slow, or, even worse, down, do you? Use WestHost, and you'll never have issues again!
I've been frustrated for ages with how WordPress deals with user profile fields. There's a "default" set of contact fields, which has always looked random to me: AIM, Yahoo IM and Jabber / Google Talk. A while back I got frustrated enough to have a look at how this is actually dealt with in the backend of WordPress, and found out that it wouldn't take too much work to fix it into something more decent.
In ticket #10240 I proposed that these user contact fields were filterable, and wrote a patch for it. With some help from Mark Jaquith the patch became clean and nice, and a few weeks back Peter Westwood was so kind as to commit it. So now, starting with 2.9, we'll be able to filter user contact fields.
This works very easily, the code below adds Twitter and removes Yahoo IM, and yes, this is all the code that's needed to do it:
function add_twitter_contactmethod( $contactmethods ) { // Add Twitter $contactmethods['twitter'] = 'Twitter'; // Remove Yahoo IM unset($contactmethods['yim']); return $contactmethods; } add_filter('user_contactmethods','add_twitter_contactmethod',10,1);
How cool is that? Can't wait for 2.9 to come out now, can you? :)
User Contact Fields in WordPress 2.9 is a post from Joost de Valk's Yoast - Tweaking Websites.A good blog needs good hosting, you don't want your blog to be slow, or, even worse, down, do you? Use WestHost, and you'll never have issues again!
So I'm on Schiphol Airport, on my way to Think Visibility in Leeds, UK, and I found that there are no power outlets here. Good thing I brought an external battery for my Macbook Pro... When I plugged it in I thought this would be a great time to write a bit about the new travel gear I've been buying the last few months.
Let me show you what's on my desk with me right now:

Travelgear: HyperMac, Mifi and MacBook Pro
To the left is my HyperMac external battery, which is powering and charging my laptop at the moment, and also has an outlet to charge my iPhone, should it need charging. I've been traveling quite a bit with this and found that, when fully charged, my MBP-100 HyperMac gives me about 6 hours of added productivity, which is very useful if you're in trains as much as I am.
On the right of the HyperMac is my Novatel Mifi, which is giving me a great HSDPA connection here in the airport. If you don't know the Mifi, it's a wireless hotspot that uses your simcard, and converts your 3G connection into a wireless hotspot for 5 devices. It's got an absolutely great antenna, giving me the best connection I've ever had wirelessly here in Holland.
Coolest thing about the Mifi? I can use it on the road, for instance while driving. Yesterday I was stuck in a traffic jam, but had to go into a Skype conference call. So I booted up the Mifi, made my iPhone to its Wireless connection, and was able to use Skype on my iPhone to do the conference call, while driving! (Nevermind the safety issues, I was going a maximum of 5 mph...)
I got my Mifi at Henk van Ess's MifiEurope.com, he's also going to be bringing the Eye-fi to Europe, the combination of a Mifi with and Eye-fi must be very good for those who make a couple more pictures a week than I do...
The Mifi and Hypermac both are a bit pricy, but they do help me to spend as much of my travel time working, and thus are well worth their money!
Travel gear... is a post from Joost de Valk's Yoast - Tweaking Websites.A good blog needs good hosting, you don't want your blog to be slow, or, even worse, down, do you? Use WestHost, and you'll never have issues again!
One of the most powerful features of Magento is it flexibility. With the CMS functionality you are able to create very SEO friendly static pages in an easy way. There's one issue though: by default Magento lacks a good way of including a group of products on a page if they are not all products from one single category.
You can include some dynamic content, e.g. all products from one category. Just add the following block to your CMS page to show all products from the category with ID 8 on a static landing page:
{{block type="catalog/product_list" name="product_listing" template="catalog/product/list.phtml" category_id="8" }}
Now wouldn't it be great if you could also filter the products on attribute value? For instance to show all black cell phones on a static page? Well, now you can! With this new Magento landing page module you will be able to do this in a very easy way. Just download the module and copy it to the root of your Magento install. After this you will be able to show all black cell phones (this example is using the Magento sample data) by simply adding this block to your CMS page:
{{block type="Yoast_Filter/Result" name="filter_result" template="catalog/product/list.phtml" attribute="color" value="24" category="8" }}
Go to your newly created CMS page and you will see a page with all black cell phones. Now it is time to optimize your landing page with some good unique content, a nice title, search engine friendly url, some header tags and you will have a very seo friendly Magento landing page. In the same way you can filter all products on attribute value and/or category. So for a optimized landing page for all Apple Computers just create something like this example:
Dynamic attribute filter pages
Well designed pages created by hand with unique content will outperform dynamic generated ones, but it is a hell of a job to create 10k landing pages. So another great feature would be the option to create dynamic pages for each value of an attribute. After the installation of the module and the Magento demo data installed you can go to yourmagentoshop.com/f/color/24/ and you will get all black products on one page.
As you can see the url start with /f for calling the module name, /color is the attribute name and /24 is the value of the attribute. For drop-down and multi-select attributes this is a number (the ID of the attribute value), for text attributes it's the textvalue. An example URL of a text attribute for the Magento demo data would be yourmagentoshop.com/f/country_orgin/italy/.
Extending your Landing Page with static content
A page without content isn't very SEO friendly. The Magento CMS uses static blocks for text blocks. When you create a block with the identifier landing-$attribute-$value this block will be added to the above the product listing. So for the example above you should create a static block with the identifier landing-color-24 and voila, the static block is added to the page yourmagentoshop.com/f/color/24/.
Example Magento Landing Page
So by now you'll want to see an example. Well we've got one for you, though it's Dutch. We work with a Dutch childrens book site called ZoekKinderboek of which all proceeds go to charities, and have used this feature to create author pages there. So check out this example: all books by Paul Biegel.
Downloads
So you were probably wondering by now, but You can download the module right here!
Need help?
Of course, if you want to use this Landing Page module in your Magento install and would like us to help set it up, use the hire me form and let us know!
Landing pages module for Magento is a post from Joost de Valk's Yoast - Tweaking Websites.A good blog needs good hosting, you don't want your blog to be slow, or, even worse, down, do you? Use WestHost, and you'll never have issues again!





















