Archive for December, 2007

SEO Tips and Tools

Friday, December 21st, 2007

Josh Strebel, one of the SEO experts behind the Phoenix SEO Agency Obuweb, stopped by the Integrum offices this afternoon to share his wealth of knowledge on search engine optimization and how we, as developers, can help our clients by developing with SEO in mind. He gave us a lot of great information on the subject that we’ll highlight below.

HTML Tags

Different HTML tags add varying weights of importance to the content that you place within them. Here are a list of the most important tags in your website and how you can use them to boost your site’s rankings in search engines.

  • Title: The most important tag on any web page, in a web crawler’s eyes, is the title tag. The title defines what the page is about and should be no more than 8 words in length.
  • Meta Description & Keywords: Although it has been debated whether or not meta tags are a must have on a website, Josh suggests that a lot of search engines still use these to create the snippet that shows up under your site title on search pages.
  • Header Tags: Web crawlers see content positioned within a header tag (h1, h3, etc.) as being more relevant and therefore place heaver weights on keywords showing up within those tags.
  • Lists: Ordered and unordered lists of content are also another tag that search engines place heavier weight on.

When building a website for a client, Josh suggests making the title and meta tags of each page customizable so they can be tailored to specific content.

Load Time

As developers, one thing we can do to assist in the optimization of web pages for search engines is ensure speedy page load times. Josh gave the analogy that web crawlers are like children with ADD. If the spiders can’t get to your content quick enough, they will easily get board and move on to the next site.

Relevancy

One of the first points Josh discussed was on site relevancy. Relevancy is measured in two parts, contextual and community relevancy. Contextual relevancy is the position of keywords and keyword rich material within your website relative to the top of the page. Spiders are hungry for content, and the faster you get food in front of their mouths, the happier they are. That being said, position header tags, and content as close to the top of the page as possible. Also, don’t clutter up your header with a bunch of javascript. You want to keep the head section of your HTML document as sparse as possible so that the spider can quickly get at the real meat of your page. Place javascript at the bottom of the page when possible.

The other relevancy measure is community relevancy. The contextual relevancy is what you say your site is about, and the community relevancy is what others on the web say your site is about. This is done via links. Josh calls these links back to your site 3rd party endorsements or “juice”. The more juice you have coming in to your website, the higher community relevance your site has and the higher your page will rank in search engines. This is one aspect of search engine optimization that you probably won’t be able to do for your clients.

Redirects

When you move a website or webpage, make sure to redirect your traffic to that page using 301 HTTP status code. Doing a 301 redirect tells search engines that your website has been permanently moved and will preserve all of the “juice” that you’ve built up for the page/site that you’ve moved.

In Ruby on Rails, this is as simple as redirect_to 'some-url', :status=>301. This can also be handled and configured on your web server.

Wide vs. Deep Linking

Most search engines don’t crawl very deep into a website. This means that if you must click on several links before you can get to your content, you may be loosing out on some potential search engine exposure. Make sure that valuable content is easily accessed within two to three levels of your home page or your content may not be found.

Social Media Optimization

One of the more interesting topics that Josh covered was Social Media Optimization. This is the notion that having profiles on social media type sites such as LinkedIn, Facebook, Digg, etc. with links back to your website are all great ways to send juice and therefore higher community relevancy back to your site. I never knew there was any value in having these kinds of links, but apparently there is. This will be an interesting topic to follow as social media sites continue to gain popularity among internet users.

Tools

Last, but not least, Josh has recommended several tools to help with your SEO efforts. Check them out.

Top 7%

Thursday, December 20th, 2007

A new site popped up last week called CommandShift3. The site’s tag line is “It’s like Hot or Not for web design.” What it definitely IS – is a terrific way to enjoy spending (maybe wasting?) your time.

Really… it’s plain awesome.

So, I added Integrum’s website into the battles to see how we’d fair and I’m quite proud to say we’ve done alright. More than alright, we’re in the top 7%. We’ve won 225 of 332 battles we’ve been in and we are ranked 277 out of the 3996 submitted websites. Those are numbers I can live with.
integrum on commandshift3

iPhone Raffle

Tuesday, December 18th, 2007

So today is the day. At noon today Josh Huckabee will closing entries to the Apple iPhone Raffle and will be selecting a winner for that shiny new phone. You can see the winner selected live on uStream

Join in on the fun and watch the raffle live! Don’t forget to buy your ticket.

Introducing kthxtees!

Friday, December 14th, 2007
At Integrum we have a lot of fun doing what we do. It seems like almost daily we come across a phrase or a concept that we all say would make a great t-shirt. At one point we started writing these “slogans” on the white boards around our office. Often times art was included with the slogan.

We finally broke down and said lets take a day and put up a site so we can make these t-shirts real and start wearing our creativity instead of just admiring it on the white boards around the office. So after much deliberation about what to call this venture we have launched kthxtees.

We realize that because we are doing print on demand that prices are a bit higher than if we created locally and held inventory, but honestly we don’t want to be a retail shirt vendor. We just want a way to express ourselves and let others share in the fun. If you have a shirt idea that you have always wanted done, drop us a line. If we like the idea we will try to design something and get it up in the store. We hope to release 1 or 2 new shirts per week. We certainly have a large back log of ideas from our white boards.

Skipping ActiveRecord Callback Methods

Wednesday, December 12th, 2007

ActiveRecord provides a great way to tie into a model’s lifecycle through various callbacks. However, in certain cases you may want to skip specific callbacks you’ve defined on a model similar to skipping filters in ActionController. Rails doesn’t support this natively, but its very easy to extend ActiveRecord to add this feature. The solution we ended up using was inspired by this post on thatswhatimtalkingabout.org.

Frist, we’ll need to open up ActiveRecord and add the method that will allow us to skip the callback. There are a few ways you can go about doing this, but we use an initializer. So create a file in config/initializers called active_record_extensions.rb with the following code:

class ActiveRecord::Base
  def self.skip_callback(callback, &block)
    method = instance_method(callback)
    remove_method(callback) if respond_to?(callback)
    define_method(callback){ true }
    yield
    remove_method(callback)
    define_method(callback, method)
  end
end

All this code does is store off the callback method, yields the passed in block and then adds the callback back in.

So, lets say we have the following model…

class User < ActiveRecord::Base
  after_create :send_notification
end

You may have some process that is creating Users where you don’t want the notification to be sent after the user gets created. In order to do this, simply wrap your create or save in the skip_callback method like so:

User.skip_callback(:send_notification) do
  User.create(:name => 'Josh')
end

Now you’ve successfully created a User without the send_notification callback getting executed.

Integrum Christmas Party 2007

Wednesday, December 12th, 2007

Oh yes, it was that good!

On Saturday December 8th (immediately after BarCamp Phoenix) we had the first ever integrum Christmas Party!! This has been a great year for us, we have worked on some great projects, we have met and worked with some really great people, and so it was time to celebrate! We are very family oriented and so we had everyone come over to my house and bring their families. We enjoyed lots of food and drink, and far too much desert! There was a fierce ugliest sweater contest, a hilarious white elephant gift exchange, and gifts for the kiddos, but the highlight of the evening was still to come…

At the end of the evening, I was so proud to be able to thank everyone on the integrum team for all their hard work and dedication to making integrum a success. I have the great pleasure of working with some of the smartest and greatest people, I couldn’t have dreamed up a better team of people who care about not just our clients and our work, but eachother. So after a brief thank you the big moment had arrived…

What’s in the box, you ask?

iPhones, of course!

Shock and awe!

Thanks to all our families, friends, and great clients for all your love and support over this last year! Look forward to great things to come from integrum in 2008!

To see more of our fun Christmas photos, check out our flickr group.