Tag Archives: SEO

snakeoil_sm

SEO is bullshit

Let’s just start out with the fact that I’ve been working on websites since 1994. So I’ve been here since the whole thing began. I should also say that I myself have done my fair share of SEO type things in the past, and no I don’t feel good about it. So let me explain why I think anyone who says they do SEO is full of crap. The big reason I feel this way is that no one should be working to specifically improve their rank via manipulation of their site’s content. The programs that analyze your site are going to constantly get smarter over time and at some point will be able to understand the words and images on the page. Make what you want to make, write what you want to write. Be helpful and have good information worth sharing. If your site’s goal is to get more visitors just to drive ad revenue and you don’t care about your content, then you’re already doing it wrong. No amount of money is going to fix that in the long term. If you’re trying to increase sales of products on your site, make stuff that people want to buy and either sell it at a good price or tell the amazing, truthful, story as to why they should get it from you.

Let’s step back and take a look at the way search engine robots work. They start by crawling the web to discover new and updated pages. There is an algorithm used to decide which sites to crawl, how often and how many pages to fetch from a site. After the crawler is done, the process of indexing all the information from your site is started. Indexing just takes all the words found along with the location of the words on each page in to account. In addition it then may process any information included in key content tags and attributes, such as the title tags and alt attributes. Now, and this is key, the resulting page rank that is returned based on a query on a search site is hugely weighted by the number of quality sites that have incoming links to your site. So basically if no one is linking to you, you’re going to have a bad time. It can’t just be any site either, it needs to be incoming links from sites that also have good rankings.

I know what you’re thinking now, you’re thinking that sounds sort of complicated and I just want to hire an SEO expert to help make sure that happens. Well hold on because you still shouldn’t do that. Let me tell you why gaming a search engine is a losing strategy. Most SEO professionals claim to have mastered some sort of dark arts, which no one can reproduce. These guys are snake oil salesmen at their best. Avoid them at all costs. They are working on flaws in the system to artificially inflate your rankings. It’s only temporary and might end up hurting your site in the long run if you end up getting black listed.

I should point out that I don’t think you should do it all yourself, I mean if you have the time and the energy you should. What I am saying is be careful who you hire to help. Educate yourself a bit, before you go spending money. If the shop is selling only SEO magic, then you should be wary. What you really need is someone that understands all the issues holistically. Good user experience design, good coding standards, in depth marketing knowledge, and an approach to help with your public outreach will help you so much more.

What I’m talking about shouldn’t even be called SEO in most cases. What it really is, is Search Engine Gaming (SEG). I think I just made up an acronym, sorry. Most people are paying to have someone game the system for them to improve their site’s ranking. Which is a constantly losing battle as the engineers at search engine companies are always hard at work to disable these types of hacks. In some cases these types of hacks can make things even worse for you.

Okay, so you’re sitting there and thinking to yourself, “What am I supposed to do then to get better search result rankings?” You could still hire someone to help come up with some strategy, but if you do, you should know that most of the search engines themselves have written really useful strategy guides already and are pretty much the best practice to follow. You want to make the robots happy follow their guides and do the hard work to promote your site and create useful content that people want to read and you’ll be much happier with the results.

Google’s SEO starter guide

Yahoo’s SEO basics

Here’s is some excellent advice from an older post on Bing’s blog

SEO is fundamentally about creating websites that are good for people. The most basic advice we can give for achieving optimum rank for your site in Bing is to do the following:

TL;DR So in a nutshell, my issue with search engine gaming, is that it’s like paying someone to go and make friends for you. Real friends come from building relationships and making an effort to stay connected. So instead pay someone to host a party, cook the food, set something up that enables you or your company to actually connect with others.

 

SEO for Silverlight

There are more challenges when it comes to optimizing for search engines to consume your content if it is a dynamic Rich UI application that doesn’t rely on Ajax. While Google is able to pick up Flash SWF files during its crawl, this does not guarantee that the content is parsed correctly or given the same weight as any other file formats or a pure HTML/AJAX page. Worse, if the application uses a web service, how can it be guaranteed that all the pages are crawled and returned correctly?

In most cases you will need to make sure that the page hosting the application has some html text that describes the application and what it offers. So in essence treat the page in the same way you would HTML.

When possible expose the content of the application so that it too can be indexed.

Simple Silverlight application – XAML to XHTML with XSLT

For a Silverlight element that contains all of its content in the XAML the best method would be to transforms the XAML using XSLT into friendly XHTML. The goal is to contain the translated XAML into a <div> element that would be replaced by the Silverlight control. Search engines would find the XHTML while browsers with Silverlight installed would see the Silverlight app.

 

   1: <div id="SLHost">
   2:     <asp:Xml ID="XHTML" runat="server" DocumentSource="seo.xaml"
   3:   TransformSource="XAML2XHTML.xslt" EnableViewState="False"/>
   4:     <script type="text/JavaScript">
   5:         createSilverlight();
   6:     </script>
   7: </div>

Then use the following XAML2XHTML.xslt

   1: <?xml version="1.0" encoding="utf-8"?>
   2:  
   3: <xsl:stylesheet version="1.0"
   4:     xmlns:sl="http://schemas.microsoft.com/client/2007"
   5:     xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
   6:     exclude-result-prefixes="sl">
   7:  
   8:   <xsl:output omit-xml-declaration="yes" indent="yes"/>
   9:  
  10:   <xsl:template match="/">
  11:     <xsl:comment>This is the text that is in the Silverlight XAML:</xsl:comment>
  12:     <xsl:apply-templates select="*"/>
  13:   </xsl:template>
  14:  
  15:   <xsl:template match="sl:Canvas">
  16:     <div>
  17:       <xsl:apply-templates select="*"/>
  18:     </div>
  19:   </xsl:template>
  20:  
  21:   <xsl:template match="node()"/>
  22:  
  23:   <xsl:template match="sl:Image">
  24:     <div>
  25:       <img src="{@Source}"/>
  26:     </div>
  27:   </xsl:template>
  28:   <xsl:template match="sl:MediaElement">
  29:     <div class="Media">
  30:       <a href="{@Source}">Media</a>
  31:     </div>
  32:   </xsl:template>
  33:  
  34:   <xsl:template match="sl:TextBlock">
  35:     <div>
  36:       <xsl:value-of select="@Text"/>
  37:       <xsl:value-of select="text()"/>
  38:       <xsl:apply-templates select="*"/>
  39:     </div>
  40:   </xsl:template>
  41:   <xsl:template match="sl:LineBreak">
  42:     <br/>
  43:   </xsl:template>
  44:  
  45:   <xsl:template match="sl:Run">
  46:     <span>
  47:       <xsl:value-of select="@Text"/>
  48:       <xsl:value-of select="text()"/>
  49:     </span>
  50:   </xsl:template>
  51: </xsl:stylesheet>

 

Handling more advanced Silverlight applications

How do you design an application that could have dynamic content and robust interaction while at the same time enable a web crawler to understand and categorize the underlying content correctly? Unfortunately there is no simple answer or single correct answer. It depends highly on the application’s purpose. In some situations there will be no way to offer the content of the application up to spider outside of the application. In this case it’s best to have as much meta information on the page hosting the application as possible. By following the standard HTML methods in this document you can still extend the indexability of your application by making sure external links are properly formatted and that high ranking sites link to your application.

Detect and Serve

It requires a little more work up front from a development standpoint to go this route, but if you really have a strong need to get the content in your application indexed then this will be the best approach. The goal is to develop the code of the site to be delivered in multiple formats based on the user agent that is accessing the content. This isn’t all that uncommon anyway with the large range of browser and devices out there that are consuming the web already. Most applications are built with the data stored separately from the interaction in a database or local XML document. The site would have to be built so that it can serve up HTML pages for those who don’t have Flex/Flash/Silverlight installed. Plus, we could potentially change these pages for mobile devices like the iPhone that don’t yet support Flash or Silverlight.

It’s also recommend to have some enticement or value proposition to explain to real users why it would be beneficial to add the plug-ins required to get the optimal experience.

The goal would be to have clients that have the plug-in or runtime installed, would be provided the rich interaction. On those that don’t, a functional page in HTML will be provided. More importantly, to the search engines, these pages that are generated will be tagged and indexed correctly, making the content of our applications visible and increase their visibility.