Wednesday, June 23, 2010

Achieving High Organic Search Ranking

This is a paper I wrote for my employer, The Alexander Group, Inc. (AGI), and is, as such, their property and falls under copyright protection (sorry open source folks). It is not to be reproduced or otherwise copied or distributed without AGI consent.

Achieving a High Organic Search Ranking
---------------------------------------------------------------------
written by Sunil Ciszewski, Director Software Services
---------------------------------------------------------------------
Organic Search Results
The major automated search engines (unlike human edited search engines like Mahalo.com) use similar techniques for reading and categorizing web pages. They all utilize automated processes, known as spiders, to review and load every web page they can find. They use the links on each web page to search out additional web sites. Eventually your web site, along with millions of others, will be catalogued in their databases. The catalogue is a means for producing search results (aka relevance rankings) when users enter search terms.

“Organic search results” is the term that describes search results driven mainly by the relevance of the content of a web site in relation to the search terms. Organic search is important because: 1) it ensures self-selected visitors come to your web site, and 2) a high ranking in organic search results is increasingly seen by users as validation that you are useful. Users arriving via web search want to be there, which gives you a prime opportunity to influence their thinking and establish your professional credentials. The higher your rank in an organic search result set (i.e., the closer to the top of the result list you are), the more likely people will click through to your web site. Your goal should be to appear at the top of the first page of search results for terms and words which describe your business/organization. This paper describes some of the more common tactics you can employ for achieving a high organic search ranking.

Tactics
Search Engine Optimization (SEO) is the term of art which describes the steps you take to try and obtain a high organic search ranking. At a minimum there are three things you must do to attain a high ranking:

1. Get your pages included in the search index
2. Determine what keywords best pertain to you
3. Optimize your web page content

Including Your Pages in the Search Index
Search engines all use the concept of an index. An index is basically a database which links words with web sites (an oversimplification, but it serves our purpose here). For example, Google may have a list of 10K web sites whose content refers to the word “zebra” in some significant way. Some of these web sites will be specifically about zebras, others about zoos that specialize in zebras, and still others which are nothing but pages with links to more information about zebras. In any case, each of these web sites was visited by the Google spider and catalogued. Your site needs to be included in the cataloguing process.

If your site has been around for any non-trivial length of time (e.g., months, years) you are, most likely, already catalogued. If your site is new, or has changed addresses, no one knows you exist. Each scenario requires some work on your part.

For existing web sites, you need to determine your current ranking and find out how much of your web site is included in the major search engine catalogues. To do this, you might have to start with determining the keywords you best fit within (next section in this document). The three most common ways to determine current ranking are:

• Searching common industry keywords and phrases. Keep a detailed record of the search terms and ranking results which you used. This record will serve as your baseline reading, to which you will compare future readings after making changes.
• Use the tools included in the various, freely available, search engine toolbars. Most, like the Google toolbar, offer some visual indication of the ranking or importance of a web page. Keep a record of your findings.
• Use the tools built into the search engines themselves to pull information. For example, Google offers the “site:” search option. This will provide you with a listing of all the indexed pages of the web site you entered. Keep a record of your results.

New sites need to get themselves noticed by the search engines. To accomplish this you can use sitemap submissions, the addurl option, or paid inclusion to obtain your initial index.

Sitemaps were first used by Google and have subsequently been adopted by all the other major search engines (e.g., Bing, Ask, Yahoo). A sitemap is a file that tells the search engine crawler the location of all the pages on your site. The sitemap file has a specific format (the description of which is outside the scope of this document) and can either exist on your web site or can be submitted directly to the individual search engines. While not guaranteeing a ranking position, a sitemap will at least ensure that the search engines know that you exist.

The addurl option exists for both Google and Bing. Both engines offer sites the ability to submit themselves using these tools:
http://www.google.com/addurl/
http://www.bing.com/webmaster/SubmitSitePage.aspx

Paid inclusion only works for a few engines and allows you to pay to be included in the “organic” search results. Google, for instance, does not offer this, nor does Bing. Some of the lesser players do. This is the least recommended way of getting indexed.

Determining the Best Keywords for Your Web Site
Optimizing your pages to include specific search terms is the surest way to attain a high organic search result ranking. When people conduct searches they are trying to solve a problem, find information, or buy/review available products/services. They start by typing in a phrase, question, or a few descriptive words (in fact, most searches involve three or more words). One of the keys to attaining a high ranking is to accurately predict what the search terms will be and then modifying your web pages to include the words and phrases. The first place to look for good keywords is to look at your competitors and figure out how they’ve tuned their content. What words do they seem to target? Under what search conditions do they appear? Make a list of the major products/offerings your company provides and then survey people to see what would search if they were looking for those products. This is one of the hardest parts of any SEO project and will likely consume a good deal of your time.

For example, people searching for sales compensation administration software might put in words like, “pay calculation,” “incentive calculation,” “incentive management.” Knowing this, we would include these words in our web page content.

Optimizing the Content of your Web Site
Once you have the list of words for which you want your site to appear when a user conducts a search, you have to include the words in the content of your web pages. This is known as optimizing your content.

Optimizing content is a combination of the following:
• Keyword Prominence – Keyword prominence refers to the placement and position of keywords in your web pages, and is very important. The intra-page location ranking is as follows:
1. The page title which appears in the browser title bar
2. Words in header tags (like Header 1, Header 2, etc.)
3. Highlighted or bolded words
4. The first 200 words of content on the page

• Keyword Density –Keyword density refers to the percentage of keywords compared to overall content on each page. You should aim for 7% -10% of your content to be keywords.

• Keyword Frequency – Keyword frequency refers the number of times each keyword appears on a given web page. If you only have 10 words on your page and one is a keyword you have 10% density, but a site with 5% density and a frequency of 10 will rank higher than you. Your goal should be to try and balance density and frequency. Don’t pack your page with keywords. Search engines may mark you as a spam site (death sentence) if they catch you gaming the system.

• Link Relationships – Link relationships refer to what sites link to your web site, and to whom you link. To attain a high ranking you must build relationships with other web sites. Common places to start building link relationships are with your clients, partners, and trade associations. Press releases contain links, too, and are a good source of quality links. Exchange links with other web sites. Get them to link to articles, survey results, and white papers on your site. You do the same for them. Make sure your internal (page-to-page) navigation links works correctly. Although they don’t add a lot to your ranking, they can detract from it if not working correctly.

After modifying your web page content, it’s important to check your page rankings again using the same keywords you used to take your baseline reading. Keep a good record of the results. You will, most likely, need to change content in several iterations, which will necessitate further readings.

Appendix

Directories
Directories are the original web site search engines and still exist. Yahoo! was one of the original directory services, although there are others, like Open Directory (www.dmoz.com). Directories work on a self-submission model. They list companies and web sites and categorize them by business type (e.g., industrial supplies, management consulting, etc.) The category under which you get listed, however, is not guaranteed. Human editors make the final decision. You are also not guaranteed a position in the listing. The directory service displays a short blurb, written by you, along with your link. While Open Directory is free, Yahoo! charges a nominal fee to be included. Almost all SEO projects include being submitted to directory services.

Additional Resources
Search Engine Marketing, Inc. (Moran and Hunt, IBM Press) – ISBN-13: 978-0-13-606868-6
http://en.wikipedia.org/wiki/Search_engine_optimization
http://www.google.com/support/webmasters/
http://www.bing.com/webmaster
http://www.webmasterworld.com/

Sunday, January 4, 2009

SQL and Matrix math

Have you ever needed to do matrix multiplication in SQL, or multiply a matrix by a scalar? Here's an excellent article by Robyn Page and Phil Factor over at Simple-Talk about doing matrix math in SQL. It's surprisingly simple (relatively speaking, of course).

SQL Server Matrix Workbench

The keys to good software

There are four primary reasons good software is good software, claims Mike Elgan of Computerworld.

Consistency, simplicity, performance, and stability.

I agree. these are extremely well categorized. His point about simplicity nails it completely. Software has to be simple from it's design up through it's use by end-users. You cannot graft simplicity on after the fact.

Wednesday, September 17, 2008

Web 2.0 resources

Examples of Web 2.0 look-feel

Backpack
Aptana/

Design guides and tools

Web Design from Scratch
Photoshoplab.com
vandelaydesign.com

Arrays and SQL

An article that describes different techniques for faking arrays in SQL.

Faking Arrays in Transact SQL/

Here's a technique I wrote. It takes a delimited string and returns a results set. You can turn this into a function which returns a table variable too.

===========================================
create procedure usp_parse_string(@delimiter varchar(5), @parsestring varchar(1000))
as
SET NOCOUNT ON

declare @tempstring1 varchar(1000)
declare @tempstring2 varchar(1000)
declare @pos int, @oldpos int

create table #mytable (token_string varchar(100))

/* trim spaces of the string */
select @tempstring1 = ltrim(rtrim(@parsestring))
select @tempstring1 = REPLACE (@tempstring1, '"' , '' )
--select @tempstring1

/* see if delimiter is in string */
select @pos = charindex(@delimiter, @tempstring1)
/* select @tempstring2 */

/* if it is in the string, then get first token */
if @pos <> 0
begin
select @tempstring2 = substring(@tempstring1,1,@pos - 1)
--select @tempstring2
--insert it into the token table
insert into #mytable values (@tempstring2)
end

/* now get rest of tokens */
select @oldpos = @pos
select @pos = charindex(@delimiter, @tempstring1, @pos + 1)
while @pos <> 0
begin
select @tempstring2 = substring(@tempstring1, @oldpos + 1, @pos - @oldpos - 1)
insert into #mytable values (@tempstring2)
--select @tempstring2
select @oldpos = @pos
select @pos = charindex(@delimiter, @tempstring1, @pos + 1)
end

--get the last token
select @tempstring2 = substring(@tempstring1, @oldpos + 1, len(@tempstring1))
--select @tempstring2
insert into #mytable values (@tempstring2)

select * from #mytable

go
===========================================