Archive for May, 2010

WordPress SEO Presentation

Last night I made a presentation at the Orange County SEO Meetup. Steve Wiideman, the organizer of the group, asked me if I could give a talk on how to do SEO within WordPress. Since I’m a big proponent of WordPress, I agreed.

I covered a number of topics from theme optimization techniques, and recommended WordPress configuration settings, as well as a few tips on how to write blog posts themselves. I also went through a short list of a few of my favorite SEO related WordPress plugins.

If you missed the presentation and would like them, the slide presentation is available online. Steve also said that he’d have a video from the presentation posted on his web site.

If you saw the presentation (or not), and have any feedback or comments, feel free to post them here.

And if you’re in the OC area and interested in SEO, I can highly recommend the SEO Meetup group. They meet every month and there’s always something to learn.

SEO, WordPress

No Comments

Adobe Adopts Standard Video Format

A few weeks ago, I posted something about Apple’s position regarding Flash.

Today, Adobe announced that it is dropping it’s hard stance and insistence that Apple allow users to run Flash on the iPhone and other popular Apple platforms. Adobe’s about-face maneuvers are combined with their announcement of endorsing the HTML video format favored by Apple. Recently, Adobe had placed ads in a number of technical publications stating that the love Apple, but hate the way that they “take away your freedom of choice in what you experience on the web.” So it appears that Adobe is admitting defeat and stepping in to embrace the new technologies rather than fight them.

I think this is a good thing. I’ve set up videos on a number of web sites and in almost every instance ran into problems. Either the viewers are not running with the latest version of browsers, or Flash plugins for the browser, or something else. There are numerous video formats, including .FLV, .WMV, .MOV and others — each with their advantages and disadvantages. But there’s no single format that is supported by everyone. This means that it’s difficult to create a web site that makes full use of video technologies and can easily viewed by all audiences.

We need standards. We need open technologies. Open standards are the life-blood of technology and the Internet. The more open standards that are adopted, the easier things are to implement when building your next project, whether it’s hardware or software.

I realize that video is, in many ways, still in its infancy on the web. But the sooner standards are made and adopted, the sooner developers will be able to freely use them in feature rich applications in ways that all (or almost all) viewers will be able to easily consume. And that’s what we all want.

development

No Comments

WordPress 3.0 and Custom Content Types

I’ve talked a little bit before about the new Custom Content Type feature in the upcoming WordPress 3.0. This is a feature I’ve been looking forward to, as I have ideas for a number of plugins I could write that would add new content to a WordPress site. I’ve been waiting for this to be supported in the core code rather than trying to tack this on to the existing WordPress data model.

What are Custom Content Types?

Well, it’s just a fancy way of saying that WordPress will be allowing new types of content to be added to a web site. Right now, there are two types: pages and posts. Pages look like web pages and can be added to your site in an ordered fashion. Blog posts are just that, and can be categorized and tagged for organization. Internally, they’re both treated the same. Meaning that both page and post contents are added to the same database table within WordPress.

Custom Content Types are also stored in the same database table along with pages and posts. This has an advantage: the search feature is designed to read through the “posts” table (which includes all content types, not just posts) when it’s looking for something. So, if you create a new content type and it’s data is stored in the same table, then it will be included in the search. This could be important if your new content type is, for example, a product. Your customers can come to your site enter a word into the search box and find the product pages on your site that include that word.

You can create Custom Content Types for just about anything: podcasts, movies, advertisements to be shown in certain areas on your site, or as mentioned above, products. The real advantage here is that since the new content types are added to the database in the same way as the existing content types you get searching of the custom content for free.

Custom Content

I started working with the new Custom Content Types in the WordPress 3.0 beta today. Within a fairly short period of time I was able to create a content type for a Product. I added edit screens within the admin panel for the new content, created a new permalink structure set up for the content and was able to search and find the new pages. I added meta data for a price, sale price, sku, and weight…things that are typical to describe a product that would be sold on a web site, and put them all within a meta box that is displayed on the Edit Product admin page.

So the APIs to create custom content aren’t difficult to work with. Being able to create new content types gives some very powerful new content management features to an already powerful system. I’m looking forward to seeing what kinds of things people will create with these new features. And I look forward to being able to implement some of my own ideas as well.

frameworks, WordPress

1 Comment

Optimizing Page Speed

I’m in the process of optimizing a web site using Google’s Page Speed Tool.

One of the suggestions it gave was to “Leverage Browser Caching.” What they mean by this is to direct your web server to tell your viewer’s browser that it’s okay to cache images, CSS and JavaScript.

So I did a little hunting around and found the following that can be added to your .htaccess file:

<ifmodule mod_expires.c>
  <filesmatch "\.(jpg|gif|png|css|js)$">
       ExpiresActive on
       ExpiresDefault "access plus 1 year"
   </filesmatch>
</ifmodule>

What this does is use the Apache mod_expires module to specify an expiration date for files. Of course, you need to have the mod_expires module installed for your server. If you’re not sure, you can ask your host but most hosts have a list somewhere of which Apache modules they are set up with.

How it Works

In the example above, the second line indicates which types of file are to have the expiration date. In this case, it’s telling Apache to look for files of type .jpg, .gif, .png, .css and .js. If you’re also using files with an extension of .jpeg, you can add that to the list as well. All of these are file types that most likely will not be changing often. At least not as often as the dynamically generated HTML that most sites are creating these days, including WordPress blogs.

The third and fourth lines are telling Apache to set the “Expires:” HTTP header to an expiration date of one year from now. This means that the browser will try to cache these files for a period of one year, unless of course the cache is deleted.

Why You Need This

Some WordPress themes as well as other visually rich web sites use large amounts of images to render their pages. But because the themes used often place images in a theme directory instead of an /images directory it makes things difficult to direct the web server to give these caching instructions.

Adding these instructions to the .htaccess file in your site’s root directory will now add the appropriate “Expires:” headers to the requests made for these files. This can reduce the time it takes for your viewers to download all of your page elements, since on any subsequent page views almost all of the images are already downloaded and cached on the viewer’s computer.

Optimizing web pages like this makes for a much nicer user experience, which hopefully means that your viewers will spend more time on your site. If users quickly leave your site it can increase your “bounce-back” rate — which can have a negative impact on your SEO efforts. Since this is pretty easy to set up and has very little negative impact, there’s really no reason not to do this for your own sites.

page optimization, SEO, WordPress

No Comments

Another SEO Meetup

I attended another SEO Meetup this evening, hosted by Steve Wiideman — the SEO Expert.

I like these groups because I always seem to learn something. I figure as long as I learn one or two things, it makes it worth my time and I was not disappointed. It’s also nice to hang out and talk with others that share my interests…technical interests. Unfortunately, my wife isn’t as geeky as I am, so I need to go outside for that.

The main topic of discussion was how to organize the HTML within a web page for best results. I already know quite a bit about this, like making sure your keywords are included in titles, and headings as well as the content of the page. But I did end up learning some things about the Robots meta tag as well as a few tips on Keyword Proximity.

I also learned something that I had never considered before: not excluding a site’s images folder from being crawled. It didn’t occur to me that Google would crawl and index images on your site and add them to their Google Images directory. So if your images are well-named and crawled, it creates more opportunities to get your site found when people are searching for images.

So I waled away armed with some new techniques and knowledge. All good stuff.

SEO, WordPress

No Comments