Ok, first of all, you should be displaying full text for your feeds; none of this crap where you only display a teaser. Teasers are a waste of time, and just wear me out. I have RSS feeds because I DON’T want to visit the site and wait for all your images to load. I want to be able to judge for myself whether your post is important without having to visit the real thing.

Anyway, here’s my point in this article: you should design your articles with RSS feeds in mind first. If you run a blog, that’s probably how a lot of your viewership reads what you write. What does this mean for your code? Well, it means you need gracefully degrading, semantic HTML.

Semantic HTML

You need descriptive HTML that splits your articles into sections logically. You don’t always have access to CSS styling (or at least, you can’t count on it), so you should be using your headers, paragraph elements, and lists as appropriate. If your article is viewed without anything other than default styling, your readers will still be able to easily skim to where they want to read.

Graceful degradation

If a feed reader does support HTML (most nowadays do), you won’t be able to count on certain things, like external stylesheets, background images, or video and normal images working properly. If you post a video, make sure to also post a link directly to the video.

Basically, if something you’re writing won’t work without CSS, find a different way to do it. You can’t make your feed look just like your web page, and you shouldn’t try either. They’re essentially different media.

Comments No Comments »

Over the past several months, I and some people I work closely with have been attempting to find good developers to take over some of the work we’ve been doing, but time and again we attract people that totally overestimate their skills and don’t really know a whole lot. On a 10 point scale people consistently rate themselves at 7-9, where in reality they’re maybe a 3 or 4 if they’re lucky.

Where does the overestimation come from? My guess is that there are 2 types:
1. People who’ve done a project using CSS or JS and think that extrapolating what they learned in that project to everything means that they know how to use those technologies anywhere, and
2. People who don’t stretch themselves to learn everything about a language or technology before assuming that they’re done.

I’ve met more that fit into #2 than #1, thankfully.

I guess I’m just tired of people that don’t live up to what I expect. If someone wants to get paid a lot of money, they’d better know what they’re talking about, and not just BS their way through a project at barely above an introductory level.

Sorry for the rant.

Comments No Comments »

5. Clean up your code

Search engines like clean code: code that is minimal, and accomplishes the simple purpose of presenting the content to the user. In other words, you want a high text-to-HTML ratio. This will come naturally if you have separated your markup from your presentation using style sheets, but you can probably do even more. Avoid tag soup and “div-itis”, and include scripts, stylesheets, and other site elements externally, rather than inline.

Currently, some search engines are marking off for bad code, and I expect this trend to continue in the future. Also, go ahead and validate your site against an HTML DOCTYPE; make sure to choose the right DOCTYPE, too.

Things like formatting are inconsequential, so you don’t need to go through and indent your pages. Just make sure that elements are correctly nested and that HTML is valid against the DOCTYPE you chose. The W3C validation tools are quite useful:

4. Set up clean URLs

This is minor, but it can help. Most content management systems will allow you to do this automatically, and it’s not too hard to do it yourself using Apache’s mod_rewrite if you already have “bad” URLs set up that you don’t want to mess with.

Essentially, the idea is to have URLs that include the keywords you’ve chosen to promote for your page and site (you have chosen keywords, haven’t you?). For example, this page has “seo” and “search engine rankings” in the URL (/blog/archive/lazy-mans-seo-5-easy-ways-to-improve-search-engine-rankings/). Search engines prefer that form to /blog.php?page=400243. It’s also good for visitors, as they’ll have an idea of what the page is about, just by looking at the URL.

By the way, some CMSs use an underscore to separate words. Google (and other search engines, I presume) prefers the use of a dash instead, so if you have the option to switch, do so.

Granted, this isn’t going to make you #1 in the results pages, but it does help.

3. Use semantic document outlining

The original purpose of the Web was to help transmit ideas through documents. As such, HTML gives you pretty good options for semantic outlining of your documents. The most important of these are the header tags. Specifically, <h1>, <h2>, and <h3> have the greatest weight for search engines. The <strong> and <em> tags are also good (but don’t overuse them, as it gets hard to read).

How does it help? Text within an h1 tag, for example, will be emphasized to a search engine as important, relative to the rest of the page. Placing keywords in that text will help “rank” those keywords highly when the page is indexed, so make them relevant.

2. Make a complete sitemap

Sitemaps are a very useful area of your site, both for search engines and for users as well, for the same reasons: sitemaps provide a structure to otherwise non-linear websites, and will help the deeper, meatier webpages show their stuff.

Aside from a standard sitemap web page, you should also create a Google Sitemap. While your ranking isn’t automatically increased just because you have one, it does help to make sure more of your content is indexed. You can automatically generate a sitemap by doing a quick Google search, but one of the better tools I’ve found is from Enarion.

1. Create powerful titles for each page

The <title> element is your best friend in SEO, so make sure it has your keywords in it at least once. Try to find a balance between readability and keyword usage; if in doubt, err to the side of readability.

You have around 60-70 characters that will really be counted and displayed in search engine results, so take that into account. Don’t try to force your company name or the current section into the title, as it will dilute the potency of the keywords that are specific to that page. Here are the exceptions: if it’s the home page (then, obviously, you should put the company name), if your company name is short, or a keyword is part of the section name.

You don’t have to repeat your keywords in the title, but it’s a nice little extra if you can do it without making the wording sound stilted or stupid. Once again, err on the side of human readability. Rememer, just because you’re at the top of the search engine results doesn’t mean somebody will click on your link, especially if the page title sounds dumb.

One more thing: try to keep it alphanumeric. Diamonds, colons, spades, or extraneous marks detract from: 1. the number of characters that your keywords have to fit into, and 2. the professionalism and credibility of the page. Keep it simple. Use a pipe (|) or dash to separate phrases or sections in your title, if you even need a separator at all.

To summarize…

  1. Use as few HTML tags as possible
  2. Include stylesheets/scripts with the link tag
  3. Put keywords in your URLs, and use a dash to separate words
  4. Put keywords in headers, strong, and em tags
  5. Make both a regular and a Google sitemap (Yahoo and MSN also support the same spec now)
  6. Titles should be meaningful and to the point

Comments No Comments »

Integration

It looks like Adobe’s main push in Creative Suite 3 was integration among all the different pieces of software, mostly among Flash, Photoshop, Illustrator, and Fireworks. Importing and transferring files into Flash is extremely easy, and for the most part creates vector graphics and transfers text properly. What’s that mean? You can do all your storyboards in Illustrator and transfer to Flash, which doesn’t have as powerful of design tools and options.

You can even paste right into Dreamweaver if you want to, but I don’t think any self-respecting developer worth their salt would do that.

Flash-specific Updates

Well, the obvious pick is the arrival of ActionScript 3, which allows actual class-based, object-oriented programming. Everything is an object now, and everything can be strongly typed correctly, rather than halfway. It’s a definite improvement over AS2 and it’s just a lot easier to be in there developing now.

The coolest new thing in AS3 is E4X, a new way of working with XML that essentially replaces XPath/XQuery, etc., and it’s built into the XML object so you can perform data selection inline.

Also nice is the new event model, which consists of attaching event handlers to objects that raise events, rather than using anonymous functions like before.

Comments No Comments »

Flash Player 9’s been out since June of 2006, and in less than a year it’s jumped to 81-84% penetration, which is great news. I hope that Adobe can continue to release the player versions ahead of time and keep everything up-to-date with the autoupdaters so that when the authoring tools come around, plenty of people are actually using the player at launch date.

Here are the stats.

Comments No Comments »