Wednesday, July 21, 2010

A mosque at Ground Zero: A healing idea, or a provocation?


The controversy over the proposed Muslim “Cordoba House” two blocks from Ground Zero in New York City has been heating up over the last few weeks. Cordoba House, described as a community center similar to a YMCA by its chief proponent, Imam Feisal Abdul Rauf, is viewed as an affront by the families of 9-11 victims and others sensitive to the horrors of the September 11, 2001 attacks by radical Muslims who hijacked airliners and flew two of them into the World Trade Center, killing nearly 2,800 people.

In an announcement that caused political observers to scratch their heads, President Barack Obama told the nation last week that the mosque is a matter of religious freedom, which is guaranteed by our Constitution. Once again, Mr. Obama has inexplicably involved himself in an issue that didn’t require him to take a position, unnecessarily creating problems for himself, and further fueling the fire of the opposition.

His comment drew immediate and strong reaction from opponents, forcing a clarification. “My intention was simply to let people know what I thought, which was that in this country, we treat everybody equally and in accordance with the law, regardless of race, regardless of religion,” he said later.

Fair enough, Mr. President, but you’ve got it all wrong: the opposition does not contend that the Muslim group is not within its rights to build a mosque – there are at least 100 already in the city’s five boroughs. The building now occupying the proposed site, however, is close enough to have been damaged by debris from the explosion when the planes hit the towers, and a majority of both New Yorkers and Americans say the site – only 600 feet away from Ground Zero – is the wrong place to build Cordoba House.

A Fox News/Opinion Dynamics poll shows that while 61 percent of Americans polled think the Muslim group has a right to build a mosque, 64 percent think the proposed site is the wrong place, and only 30 percent think this project is appropriate. A CNN/Opinion Research Poll shows 68 percent are opposed to it. A Rasmussen Reports survey focused on New York state voters and found that only 20 percent favor building in the shadow of the WTC, while 58 percent were opposed. A Marist poll found that Manhattan residents oppose the mosque by a 53 to 31 percent margin.

And if there wasn’t enough controversy already, the Washington-based Council on American-Islamic Relations said that the effort to stop the project is the work of “Islamophobes,” and the leader of the Hamas terror organization, Mahmoud al-Zahar, told the New York Post, we “have to build the mosque.” Some opponents who are uneasy about the project have focused on elements such as its name – Cordoba House – and the history of Muslim conquerors to celebrate conquests by building mosques on the ashes of their vanquished enemies.

Abigail R. Esman, writing for Forbes.com, comments that “Cordoba, after all, was conquered in 711 by the Muslim Berber Gen. Tarik ibn Zayad, and by 756 became the capital of the Cordoba Caliphate, which covered most of Spain. Christian and Jewish civilians in that time were regularly murdered and enslaved. Among the first things the conquerors did under the new Caliphate was replace the Christian Church of Saint Vincent with the Great Mosque of Cordoba.”

“What emerges, then,” she continues, “is a potential symbol of victory at the site of one of Islam's most horrific acts in history. ‘We destroyed the World Trade Centers,’ the radical Islam world will say, ‘and replaced it with a mosque – there, in the financial hub of New York City, the capitalist center of the world.’ First Cordoba, then Cordoba.” There are also questions as to the sources of funding for the $100 million project.

Imam Rauf, however, paints a very different picture. “American Muslims want to be both good Americans and good Muslims,” he wrote in the New York Daily News. “They can be the best assets the United States has in combatting (sic) radicalism,” he stated. “We believe that people of good faith can use the common core of their religions to find solutions to problems that will let them live together.” But if all that is true, why persist in championing a project to which a majority of Americans are opposed, and which would bring immense pain to those very New Yorkers the imam and his fellow Muslims want to be one with?

If Imam Rauf and his colleagues are as he said, “the anti-terrorists … the people who want to embolden the vast majority of Muslims who hate terrorism to stand up to the radical rhetoric,” can you not accomplish this noble goal a respectable distance from the scene of the worst radical Muslim murder in our nation’s history? The best way to foster understanding between the different religions and to show the essential degree of sensitivity is to abandon the Islam-centric demand to build the mosque near Ground Zero, and build it somewhere farther away.

Tuesday, July 20, 2010

When can I use HTML5 & CSS3?

We've updated fmbip.com's litmus test results with real-world scores showing when you can start to use specific HTML5 & CSS3 functionality.


  • HTML5 & CSS3 Browser Scores
    HTML5 & CSS3 Browser Scores
As web designers we want to know when we can start to roll out HTML5 and CSS3 functionality on our client's sites and we want to share that knowledge. So last Autumn we built findmebyip.com; a free testing tool that sends you a live, detailed report of what your client's browser supports.
Since the 23rd of October 2009 findmebyip.com has collected some 56,000 detailed, real-world results of HTML5 and CSS3 browser capabilities. Today we've added those results to our massively popular litmus test summary page.
View: HTML5 & CSS3 Browser Support Scores

And the winner is... CSS3 Selectors

The most promising areas seem to be CSS3 Selectors. Some selectors which have picked up support in IE7 are now nearly ubiquitous. Post prominent are are the three attribute match selectors - begins, ends, matches - and the general siblings selecto. The other CSS3 Selectors enjoy good support across the other browsers with only the earlier FF3s missing a few things. The lack of earlier FF3 support for things like n-th child accounts for a 2% drop off for those features.
/** Available in all but IE6(!) **/
.foo[ attr ^= "string" ] { }
.foo[ attr $= "string" ] { }
.foo[ attr *= "string" ] { }
.foo ~ bar { }

CSS3 Properties - Font Face is here!

Most widely available of the CSS3 Properties is of course Font Face which has been available in IE for decades. With Google's recent release of their font API the deregulation of typefaces looks like a real possibility.
A few other notable properties are the use of RGBA and HSLA and Opacity. Guess what, yes, IE doesn't support them yet so you'll still have to hack about with proprietary filters if you want your sites to look the same in IE.

Web Applications Coming of Age

IE8 support for HTML5s storage architecture and Google's shift to supporting HTML5 over Gears is all looking very promising for the future of faster, less bandwidth intensive web application development. Chrome 5 has in fact, just recently become the first browser to tick all of our HTML5 Web Application boxes.
Geo Location is still trailing behind according to our test although good mobile support for Geo Location isn't really illustrated in these results. There's a mobile version of our litmuse results page coming soon incidentally... just waiting for the amazing guys behind litmusapp to launch their mobile browser tests. ( I think they're a bit too excited about their email analytics to care right now! )

What's not ready? HTML5 Forms

HTML5 form input types and form attributes are quite a long way behind the rest of the class. This is down to little or no support from Firefox or IE. Chrome 5 again gets a big gold star for having the most comprehensive HTML5 Form support.

War of the Codecs

I'm going to be honest here and say that I'm not massively familiar with all the different HTML5 Audio and Video Codecs. From our results it would seem that both the ogg/vorbis audio and video codecs have the widest support. I am slightly concious that there were some recording bugs when we first added A/V codecs though. This is partly why we've excluded all the earlier results, calculating our scores from just the last 20,000 (2 months of) results. I' d be very grateful if someone more knowledgeable about HTML5 Audio & Video codecs would take a look and give an opinion.

A word about Internet Explorer and IE9

Yes, I'm sorry, it has to be said... the world is waiting for IE to get its act together on this one.
Firefox and Apple are providing pretty wide support for CSS3 and HTML5 already. The litmus charts show the leap that Firefox made with FF3.6.
Google seem to have just stormed ahead of the field taking Chrome 5 to almost universal support for all of our tests save for two form attributes - autocomplete and list - and two audio codecs.
What about IE9?? Well, lots of people have been asking for us to add IE9 results to our table. Unfortunately at the moment the javascript used to record the results doesn't seem too happy in IE9. We use a combination of prototype.js, modernizr.js and a little jimbo.js to test and record and we haven't had a chance to diagnose where the problems lie. If anyone is familiar with IE9's javascript capabilities please, please get in touch and we'll add IE9 to the results. Everyone's waiting to find out how it fares!

CSS3 Pseudo-Class Selectors Emulation in Internet Explorer

Keith Clark, an independent web developer from the UK, has developed a JavaScript solution to IE’s CSS3 shortcomings in relation to CSS3 selectors. CSS3 selectors became the first W3C module to reach proposed recommendation status back in December 2009.

His ie-css3.js project (currently in beta) allows Internet Explorer, versions 5 through 8, to identify CSS3 pseudo-class selectors and render any style rules defined with them. All this is achieved by simply including the script, along with Robert Nyman’s DomAssistant, within the head element of your web pages.

Supported Pseudo-Classes

  • :nth-child
  • :nth-last-child
  • :nth-of-type
  • :nth-last-of-type
  • :first-child
  • :last-child
  • :only-child
  • :first-of-type
  • :only-of-type
  • :empty

Limitations of the project

  • Style sheets MUST be added to the page using atag. Page level stylesheets or inline styles won’t work. You can still use @import in your style sheets.
  • Style sheets MUST be hosted on the domain as the page.
  • Style sheets using file:// protocol will not work due to browser security restrictions.
  • The :not() pseudo-class is not supported.
  • The emulation is not dynamic. Once the styles are applied they are fixed so changes to the DOM won’t be reflected.

How does it work?

ie-css3.js downloads each style sheet on the page and parses it for CSS3 pseudo-class selectors. If a selector is found it’s replaced by a CSS class of a similar name. For example: div:nth-child(2) will become div._iecss-nth-child-2. Next, Robert Nyman’s DOMAssistant is used to find the DOM nodes matching the original CSS3 selector and the same CSS class is applied them.

Finally, the original stylesheet is replaced with the new version and any elements targeted with CSS3 selectors will be styled.

Bypassing IE’s CSS parser

In accordance with the W3C specs, a web browser should discard style rules it doesn’t understand. This presents a problem — we need access to the CSS3 selectors in the style sheet but IE throws them away.

To avoid this issue each style sheet is downloaded using a XMLHttpRequest. This allows the script to bypass the browsers internal CSS parser and gain access to the raw CSS file.

Find out more and Download

ie-css3.js is released under the MIT License and can be downloaded from the project page on Keith Clark’s website.

You’ll also need to download Robert Nyman’s DOMAssistant.

Cross Browser CSS Transforms – even in IE

An example of a page using the CSS Transform property and cssSandpaper. Visible in most major browsers, including Internet Explorer. Layout based on work done by Paul Hayes in his article

The CSS transform property allows developers to rotate, scale, and skew blocks of HTML via CSS. Although you can do the same thing with images in Photoshop or The GIMP, using CSS transforms allows developers to do the same thing with any HTML markup and allows users to select the text within the transformed object.

When I first saw sites using transform, I looked at the underlying code and tried to produce pages using transform in all browsers. Although Firefox, Opera and Webkit based browser support it via vendor-specific prefixes (using -moz-transform, -o-transform and -webkit-transform respectively) Internet Explorer doesn’t support it at all. I didn’t like that, so I took out my JavaScript whip, beat Explorer into submission and made it do my bidding (but not without getting a few mental bruises of my own).

Before I start talking about the details of my solution, let’s take a look at a few examples of it in action. The following code has been tested with Firefox 3.5, Safari 4, Chrome 4, Internet Explorer 6 and higher.

  1. Rotations Example
  2. Skew Example
  3. Cube Example, using rotates and skews
  4. Another example that looks like a CSS3 version of a Geocities page.

(The examples also work on my copy of Opera 10.5, although I have seen it fail on other installations – I will update this post when I find out why).

cssSandpaper to the Rescue

I saw the design potential of using CSS transforms and was frustrated at Explorer’s lack of support. I originally tried a non-JavaScript solution which involved creating CSS rules that combine transform with an IE technology that does something similar: the DXImageTransform.Microsoft.Matrix CSS filter.

I then, to steal a phrase from Russel Peters, started to Hurt Real Bad:

  • the syntax of transform is very obvious:
    #myObject {
    transform: rotate(40deg) scale(2.0);
    }

    but the IE filter code is quite intimidating:

    #myObject {
    filter: progid:DXImageTransform.Microsoft.Matrix(sizingMethod='auto expand',
    M11=1.5320888862379554, M12=-1.2855752193730787,
    M21=1.2855752193730796, M22=1.5320888862379558);
    }

    The scary numbers that the DXImageTransform.Microsoft.Matrix filter uses requires knowledge of matrix and vector mathematics. Even though there is a great Wikipedia article on the subject, even the mathematically gifted wouldn’t want to do the calculations to do a simple rotate in CSS (I would like to note here that even though I have a university degree in Mathematics, I hate doing arithmetic inside my head. If you don’t believe me, watch me figure out a tip at a restaurant sometime. I’m not kidding).

  • although it is possible to have a list of transformations using transform, the DXImageTransform.Microsoft.Matrix filter only allows one transform matrix. In order to implement multiple transforms using one filter, a designer would have to convert all the transforms into matrices and multiply them together. Again, as ugly as I am when I first wake up in the morning.
  • when rotating, skewing, or doing any other transformations on objects using the transform property, the center of the object remains fixed. However, the Matrix filter doesn’t keep the centre of the transformed object fixed, as seen by the illustration below:
    Rotate using CSS transform Rotate using IE Filter

See the above example in action (compare IE with the other browsers to see the difference for yourself)

I was about to give up on my endeavor until I read Weston Ruter’s clever CSS Gradients in Canvas article, which implements gradients in older versions Firefox and Opera. What I really liked was how he used the CSS from a web page to place the canvas gradients in the page (as opposed to using CSS classes to indicate where the gradients should go). I then thought it would be a great idea to do the same with CSS transforms – why not have JavaScript find out which objects are transformed by reading the style sheets containing the transform rules, and if the browser is Internet Explorer, apply the Matrix filter, while translating the image so that the center is maintained. How hard could it be …….. right?

After a few obsessive months of coding, coffee drinking and Asprin popping (as well angrily asking myself on several occasions why the &@$! I would wanted to do this in the first place), I created cssSandpaper.js, a library that implements transform (and some other CSS3 properties) as consistently as possible in all browsers. It uses many ideas from Ruter’s gradient script, as well as sylvester.js, James Coglan’s brilliant matrix and vector math library.

The code is currently in a beta stage, but I think that it’s in good enough shape that developers can start to play around with these really cool effects today and have it work in almost any browser.

Browser Differences

After I finished cssSandpaper and played around with transforms, I found some slight differences in the way browsers handled them:

  • If you transform an object with scrollbars, it is possible to scroll the object in most browsers in most cases. However, in the cube page I mocked up, I noticed the following behaviour:
    • the left facing side of the cube isn’t easily accessible in IE.
    • the scrollbars don’t appear at all in Opera.
    • the scrollbars are not quite clear in Chrome for Windows, although one can still scroll the sides if you can guess where they are.
    • Firefox 3.5 for Mac puts the scrollbars in strange places (this has been fixed 3.6).
  • In Internet Explorer, the text is selectable but sometimes it takes a few tries to figure out how to do it (try selecting text with IE in my cube mockup and you’ll see what I mean).
  • When selecting text within Firefox, the text tends to jump around ever so slightly for some odd reason (this is quite a subtle effect that it is probably not noticeable in most instances).
  • It looks like Internet Explorer takes the block of HTML, converts it to an image and then does the transform (I’m not sure .. I’m guessing). As a result, the text in certain situations will look a little blurry, especially if scaling is involved.

As to be expected, the rendering of the transformed text in the other browsers slightly differs:


Explorer 6.x+ Firefox 3.5+ Safari 4.0+ Chrome 3.0+ Opera 10.0+
Windows
Mac OS X Not Applicable Doesn’t support transforms yet (as of version 10.50)
Linux Not Applicable Not Applicable Doesn’t support transforms yet (as of version 10.50)

Using cssSandpaper

After downloading the archive you must put the following tags into the head of your document after all of your style sheet declarations (this is to ensure the JavaScripts will run after the style sheets are loaded):



You can then use the transform property in your web pages. Note that since the specification for the transform property is finalized by the W3C, I decided to use the vendor-specific prefix -sand- before each CSS3 property it supports.

The following is a description of how to use transform, as well as two other CSS3 properties that cssSandpaper supports, box-shadow and gradient.

Download version 1.0 beta of cssSandpaper

-sand-transform

Description

Transforms allow developers to rotate, scale, and skew blocks of HTML via CSS.

Syntax

#container {
-sand-transform: ;
}

where can be a space separated list of the following functions:

Function Purpose
rotate(angle) Rotates HTML elements. angle can be in degrees (e.g. rotate(30deg)) or radians rotate(1.3rad)
scale(sx[, sy]) Scales HTML elements. sx and sy are numbers, where 1 represents the original size, 2 represents twice the size, etc. Note that if sy isn’t specified, it is assumed to be equal to sx. Similar functions are scaleX(sx) and scaleY(sy).
skew(ax[, ay]) Skews the object around the x and y axes by the specified angles in degrees or radians. If ay isn’t provided, it is assumed to be 0deg.
matrix(a, c, b, d, tx, ty) Applies a 2D transformation matrix comprised of the specified six values. If you aren’t familiar with linear algebra and matrix arithmetic, this function will be hard to understand. For further information, you may want to read Wikipedia’s Transformation Matrix article, although if you are mathematically challenged, you may run away from your computer screaming.

If you are familiar with matrix multiplication, note that c and b are reversed. This follows the way Firefox has implemented this method (i believe WebKit based browsers reverse these numbers).

Note: non-Explorer browsers support the translate function as well. I have not been able to find a way to make this work IE at this time, due to a technical issue with the IE’s Matrix filter property (for those who want details, I use sizingMethod='auto expand' when using the Matrix filter which doesn’t support translations, and using sizingMethod=’crop’ is not suitable to emulate the transform property). For this reason, the tx and ty values of the matrix() function are not supported as well.

Examples

-sand-box-shadow

Description

box-shadow allows us to take a block level element and put a shadow underneath. There can optionally set a blur factor to give a warmer effect to the shadow.

Syntax

#container {
-sand-box-shadow:
;
}

Note that in IE, the blur-radius is not supported, due to a lack of support in IE’s DropShadow filter.

Examples

-sand-gradient

Description

Gradients are gradual blends of color, and can be linear or radial:

Syntax

#container {
background-image: -sand-gradient(, , , , , ..., )
}

The type can be linear and gradient, although Internet Explorer doesn’t support radial gradients at this time, due to limitations in IE’s gradient filter. Internet Explorer also only supports simple linear gradients (i.e. only horizontal and vertical and only two colours).

A more detailed explanation can be found in the section regarding gradients of the W3C’s working draft of CSS Image Values Module Level 3

Examples

Other Known Issues

  • Currently, when a users changes the font-size in IE, the layout gets a little messed up. This will be fixed in a future release.
  • Scripting in IE cannot be done via the usual obj.style.transform. There is, however, an alternative way of scripting the cssSandpaper supported properties which will be outlined in a future blog post (I don’t mean to keep anyone in suspense … it’s just that I feel like I’ve spent too much time on this post and I want to get at least this part out the door :-) ).
  • Opera 10.5 sort of works. It works on my copy, but not on another copy I’ve seen. I don’t know why yet, but I will find out soon and post and update when I do.
  • Weston Ruter’s gradient script has more features. I will incorporate them in a future release.

Future Work

cssSandpaper will eventually be about more than just transforms – I would like to be able to support other advanced CSS topics (maybe even animations, if it is possible). It probably has a few bugs in it – I would really appreciate anyone letting me know if you find any (my e-mail address is at the top left part of the page).

If anyone would like to get contribute code or do testing, I would love the help too. :-)

Acknowledgments

I would like to thank Weston Ruter for his CSS Gradients in Canvas script, since I stole many of his ideas with his permission (I will be implementing more of the advanced features of his script in a future release of CSS3Sandbox). I would also like to thank James Coglan for building Sylvester so I didn’t have to.

Downloads

Go to the cssSandpaper documentation to download the latest version.

Google Chrome Frame: Clever Way to Fix and Kill Internet Explorer

From the web developer’s point of view, Internet Explorer is pure agony. Majority of web users are still stuck up with IE6, which eludes them from experiencing JavaScript performance improvements and HTML5. Google has a clever fix to this problem – Google Chrome Frame.

Essentially, Google Chrome Frame is an open source plug-in that brings HTML5 and other open web technologies to Internet Explorer. Google describes Chrome Frame as:

"We’re building Google Chrome Frame to help web developers deliver faster, richer applications like Google Wave. Recent JavaScript performance improvements and the emergence of HTML5 have enabled web applications to do things that could previously only be done by desktop software. One challenge developers face in using these new technologies is that they are not yet supported by Internet Explorer. Developers can’t afford to ignore IE — most people use some version of IE — so they end up spending lots of time implementing work-arounds or limiting the functionality of their apps."

"With Google Chrome Frame, developers can now take advantage of the latest open web technologies, even in Internet Explorer. From a faster Javascript engine, to support for current web technologies like HTML5’s offline capabilities and , to modern CSS/Layout handling, Google Chrome Frame enables these features within IE with no additional coding or testing for different browser versions."

This, however, won’t solve the problem because most IE users won’t install Chrome Frame. Google has a plot for that as well – Google Wave, the very much awaited real-time communication platform which is all set to be previewed next week. Internet Explorer users who intend to try Google Wave will be asked to download and install Google Chrome Frame.

cf-in-ie

Google justifies this strategy as:

"Google Wave depends on strong JS and DOM rendering performance to provide a desktop-like experience in the browser. HTML5’s offline storage and web workers will enable us to add great features without having to compromise on performance. Unfortunately, Internet Explorer, still used by the majority of the Web’s users, has not kept up with such fairly recent developments in Web technology. Compared with other browsers, the JavaScript performance is many times slower and HTML5 support is still far behind. Likewise, the many different versions of IE still in use — each with its own set of CSS quirks and layout limitations — further complicates building rich Web applications."

"In the past, the Google Wave team has spent countless hours solely on improving the experience of running Google Wave in Internet Explorer. We could continue in this fashion, but using Google Chrome Frame instead lets us invest all that engineering time in more features for all our users, without leaving Internet Explorer users behind."

Great move by Google for both users and developers. Internet Explorer users will be enticed to try Google Chrome (or Firefox, maybe). Even if they don’t switch over, Chrome’s rendering engine working within IE means lesser pain for the developers. On the other hand, Microsoft is trapped. If they somehow try to cripple this plugin from running, it’ll greatly damage Microsoft’s reputation.

Google Fixes IE For Microsoft, Adds HTML5, Fast JS and More

Google Chrome Frame is an open-source plugin that adds HTML5, Canvas, a fast JavaScript engine and more to Internet Explorer; in fact it just swaps out Trident with Webkit! Developers can opt-in to the feature on their sites via a meta-tag / HTTP-header and prompt users to install Google Chrome Frame if they don't have it. Update: Correction, they don't support the HTTP Header.

It would be an understatement to say that developers are fed up with Internet Explorer. It has been dragging its heels for so long that developers are wasting time debugging just for IE’s quirks, not least having to leave out targeting modern features like HTML5 audio / video and high speed parallel processing in JavaScript.

Google Chrome Frame basically embeds Chrome’s webkit engine into IE (6/7/8), replacing Trident. However, this is not a flat out replacement, but rather an opt-in experience that web-developers can choose for their site by adding a simple meta tag in their HTML. The Developer’s Documentation describes this.

Developers can then use JavaScript to prompt the user to install Google Chrome Frame, and once installed all sites that opt-in to the feature instantly get a standards-compliant, cutting-edge HTML engine!

Last week, I said that the only way Microsoft could stop the marketshare IE is haemorrhaging would be to replace the Trident engine with Webkit! It looks like Google is jumping the gun and taking direct action to address the poor state of IE and bring it up to a respectable level

Of course, this isn’t going to apply to all users of IE, but it is a nice gesture that allows even IE users to experience what’s possible with a modern rendering engine and features. If Google wanted to push Google Chrome Frame (and webstandards as a whole) they could install Google Chrome Frame as part of other Google Software; they’re already installing Chrome without asking anyway! :P

Frankly, it‘s sad that IE is so behind the times that developers have to adopt this rather extreme method, but if it drives the adoption of HTML5 and helps lessen Adobe Flash’s (and IE’s) grip on the Internet, then all the better.

This is still an early release and there are a number of remaining issues.

Tuesday, July 6, 2010

Keyword stuffing of a web page.

Keyword stuffing is the deliberate beefing up of particular phrases in the content of the web page. It is a search engine optimization technique for any adult web site promotion. History of keyword stuffing The keyword stuffing has made history more for its abuses than for its uses. It was used as a bait to hook more and more traffic onto its web page, in an attempt to ethically or unethically shovel up the rankings of the websites.
Consider some instances-

  • keyword stuffers used to hide the irrelevant keywords, by coloring it same as the web page background, making the search a mountain out of a mole hill.
  • The more intellectual web designers infested their contents with most coveted words like 'sex' even it had far anything to do with that pretext.
  • Some stuffing freaks did this art ad nauseam, as such at the end of the day there were more keywords on the web page than its contents and the web page looked more of an American tattooed pattern.
Then one day, all of a sudden leading search engine websites like Google and Msn , came down heavily on these practices and specified their norms to keyword stuffing , failing which the web designers would be nabbed and their website banned for ever.
These guidelines -
  • Squashed the practice of ratings based on the frequency of the keywords.
In contrary it made way for themed related keywords that have something to do with the content of the website.
  • Specified the degree to which any keyword can be impregnated, and also the positions where they are to be stuffed.
A stuffing of up to 10% in major headings, first paragraph, ending and sparsely distributed in the middle is desirable for any adult website promotion. A word of caution It is highly recommended for adult web marketing that stuffers do stick to the basics, as the search engine sites employ sophisticated tools like the keyword density analyzers and by no means, will a machine understand that you were by any way unintentional.

Think Global Act Global: Writing for Your Online Market

When you write web site content and design your pages, do you truly act with your target audience in mind? Or do you think global and act local?

I am amazed at the number of web sites I see that claim to target a global market, yet design and write their content for a regionally-specific audience. Not sure what I mean? Take the site I saw yesterday, for example. I won't embarrass the site owners by pointing to the specific domain, but let's just say the site is based in the U.S. and sells high quality gold chains throughout North America, Europe and Australia.

Now the owner of this site was complaining loudly in a webmaster forum that his pay-per-click campaign was having no luck converting sales from overseas visitors, particularly in the UK and Australia. He had spent a long time developing and tweaking a landing page for the campaign and he couldn't work out why hardly anyone outside the U.S. was buying. I took a look at his landing page and could see the problems straight away:

1) He used the American English spelling "jewelry" throughout the page without considering that persons who use British English spell it "jewellery".

2) He provided a toll-free phone number for persons in the U.S. to call, but did not provide any contact phone number for persons located outside the U.S.

3) He used the word "national" throughout the page, immediately isolating anyone outside the U.S.

4) He promoted "free shipping throughout the U.S." but did not specify shipping costs for persons outside the U.S.


The owner of this site had not even considered that persons outside the U.S. might search for keywords in anything other than American English. It didn't even occur to him that there may be an alternative spelling of his main keyword and he didn't think about the logistics for purchasers outside his country. No wonder the page wasn't converting outside the U.S.! He had made the classic mistake of isolating a large chunk of his audience by sending everyone to a one-size-fits-some page.

What he should have done was to create a separate landing page using British English spelling and shipping/contact information applicable to persons overseas. He could then have set up a unique PPC campaign targeting only UK/Australian searchers with regional keywords and ads leading to the British English landing page.

I see similar problems occur quite often in the online travel industry where you not only have to deal with regional spelling options, but also regional jargon. Think about the word "accommodation". Apart from the fact the word is commonly misspelled, it is used most often in the UK, Australia and New Zealand to describe places to stay while traveling. In the U.S., the words "accommodations" and "lodging" are more commonly used. Same goes for "holiday" and "vacation", with the latter being more common in the U.S. The word "traveling" itself is spelled "travelling" in British English! So you can imagine the minefield of problems webmasters must face promoting their travel sites online to a worldwide audience.

I don't mean to single out a particular country, but Americans seem to find it especially difficult to step outside their regional mindset. I am always receiving emails from the U.S. with helpful suggestions for fixing my "spelling mistakes".

The funniest email exchange I ever had in relation to this was from an American web designer. She had seen our Australian-based web site (with a .com.au domain) and emailed me to tell me it was "full of errors" and that if I wanted to present a professional business to site visitors, I should correct them. So condescending! I asked her to elaborate and she pointed me to these words she felt were spelled incorrectly:

optimisation
counselling
organised
enrolment
colour
catalogue
favourite
centre

Resisting the urge to use a few offensive words I'm sure she would recognize, I tactfully explained that our site was only targeting the Australian market and that we use British English spelling in Australia. Her response? Perhaps if we wanted to be taken seriously by an international audience, we should consider using the "more proper" American English. Flabbergasted, I pointed out the fact that American English was a derivative of British English and was not widely used outside her own country. Wikipedia has more about the differences between the two here. And let’s not forget that although it is the most common language used on the web, English is used by less than 30 percent of the world’s total Internet users.

The point of this story is that you absolutely have to think outside your market if you are going to advertise on the web. As ignorant as she was, my email friend did make me realize that many of her compatriots might also think our site was full of errors. American English is more common on the web and I've since learned to cater to that trend. I try to remember that in all writing I do for the web now, whether it's in my daily blog, the syndicated articles I write regularly or web page content.

Whenever you design or write for a web site that has an international audience, make sure you address each market. It pays to undertake detailed keyword research into your markets you are targeting so you can capture the correct regional jargon and spelling that people are searching for. Remember it's not enough to think global, you've got to act global too.

Social Media: The Instant Brand Killer

With the increasing uptake of social media sites such as Digg, Technorati, Slashdot, YouTube and MySpace, together with community bookmarking sites like Del.icio.us, Reddit and Ma.gnolia, companies the world over can reach their target markets via a whole new channel.

Social networking is like viral marketing on steroids. Companies can release a new product in the morning and have it talked about by millions of users on thousands of sites by the afternoon.

The good news is that social media is user driven. The bad news is that social media is user driven. Yes, there's the rub. Users are fickle creatures - they can love a product one minute and then drop it like a lead balloon the next, depending on their experience with the product, a rumor, or whether they have had their morning coffee yet. And if their experience is bad, the noise is generally louder. To protect their reputations it's not just journalists that companies have to impress these days. It's anyone with a computer and an Internet connection. Love it or hate it, the user community now has enormous power over the online reputation of a company or brand.

Not surprisingly, businesses and individuals alike clamor for the attention and mostly enjoy the limelight that social media can bring. Others hate the intense scrutiny that often accompanies the popularity. An example is usability blogger Kim Krause Berg's unpleasant first experience of Digg - I Don't Digg Being Dugg.

Online communities can even bring a site to its knees. Marketers are calling it the "Digg Effect" or the "Slashdot Effect". Buzz for a site can cause more than good or bad publicity. As Kim found out, the effect can cause traffic overload sometimes resulting in site downtime and lost business.

Social media can also kill the reputation of a brand instantly. Take the Microsoft Windows Vista Laptop Scandal for instance. No stranger to the benefits of social media, Microsoft had allegedly tried to exploit the power of the blogosphere at the end of last year, by sending a number of A-list bloggers a free Acer Ferrari laptop loaded with the yet-to-be-released Windows Vista and Office 2007.

The pitch was a request for the bloggers to "review" the new Windows software in their influential blogs. Many bloggers did write a review, but some did not disclose their free gift. When this fact was discovered later, the bloggers were hammered by large portions of the blogosphere for what they saw as a clear conflict of interest. Microsoft were tagged both literally and figuratively as bribers and Windows Vista was widely panned with parody tag lines such as "Vista: So Bad We Had to Give it Away". Not a great start to an online product release.

Another example of the damage that social networking can do to a company's online reputation is the National Pork Board of America's recent battle with breastfeeding advocate and well-known blogger Jennifer Laycock. Jennifer was sent a harshly worded letter from the Pork Board's representing counsel, threatening her with legal action for allegedly stealing their pro-pork slogan "Pork: The Other White Meat" in a pro-breastfeeding t-shirt she had designed that read "The Other White Milk".

The letter suggested that their case for trademark infringement was probably solid. Unfortunately for the Pork Board, the poorly-worded letter also suggested that they were insensitive to breastfeeding mothers and the plight of starving infants. The Pork Board didn't count on Jennifer's influence in the blogosphere and the power of social networking to carry her defiant response to the world. The Pork Board ended up receiving bags of hate mail and thousands of flame emails via their online contact form, forcing them to issue a public apology to Jennifer from the Board's CEO and a generous donation to the Mother's Milk Bank of Ohio in order to save face.

To their credit, the Pork Board did the right thing. They also made sure that all persons who complained about their approach to Jennifer received a polite, measured email response from the CEO. As a former PR consultant myself, I tip my hat at them. Having the apology come from the very top is smart. It demonstrates how seriously they took the complaints. The wording of the complainant response is polite and restrained. Addressing each and every complainer personally is impressive. It would've been tempting to ignore all the flames and issue some stock standard release.

Their choice of legal team may have been questionable, but the Pork Board's public relations team mobilized quickly, upgraded to full damage control mode and did a great job of mopping up the PR mess before it spread too far. Social media might have damaged them, but the Pork Board's reputation was ultimately salvaged by quick thinking and a swift online response.

Such situations underscore the growing importance of online reputation management (ORM) in our Web 2.0, social media-driven world. Companies should be tracking their online reputation on a daily basis to check for negative commentary via social media in order to avert potential PR disasters. Major search marketing players such as Andy Beal recognized the potential growth in ORM a long time ago. But I wonder how many PR/Search Marketing agencies currently offer this service?

With brand reputation increasingly at risk, you can be sure the smart agencies will be adding ORM to their service offerings faster than you can say "Can you Digg it?"

3 Steps to a Search Engine Compatible Site

Is your web site search engine compatible? Despite all the misinformation out there, it's very easy to design a web site that search engines will love. All you need to do is follow 3 simple steps:

1) Obey the Search Engine Guidelines

Nearly all search engines publish their own guidelines regarding the submission of sites, the type of sites they will accept and recommendations for optimized content. Google recently updated their Webmaster Guidelines which cover the most common forms of deceptive or manipulative search engine behavior that they consider to be 'spam'. They also published SEO Guidelines – advice for webmasters to heed when choosing an SEO. Google was the first search engine to publicly acknowledge search engine optimizers in this fashion.

It's not just Google publishing anti-spam guidelines. You'll find them at the following search engine sites as well:

2) Don’t Use Spammy Search Engine Tactics

Often, webmasters will use search engine spam techniques without even being aware that they are doing so. Or worse, web designers can - advertently or inadvertently - integrate techniques that could cause a site to be penalized in the site's rankings in one or more engines, without the site owner's knowledge of such penalties. The key to avoiding spamming the engines is research.
Keep track of the various search engine guidelines via the links above. Watch for any changes they make to these guidelines and tweak your site accordingly. Trawl the various webmaster and search engine forums regularly to ensure your site doesn't use any of the latest optimization methods that appear to be penalized. If you suspect your site has been penalized, remove the offending content, contact the engine concerned and ask to be reinstated.

Google actually encourage you to file a re-inclusion request via their Help Center and this post by Google staffer Matt Cutts outlines what should be included.

Alternatively, here is a sample email template you can use instead:

--------------------------------------------
Sample Re-inclusion Request Email

Dear [search engine name],

I am the owner of [your site URL].

I did not realize that participation in [spammy method] and
[spammy SEO name] programs could cause problems for my website. I was
assured that these techniques were search-engine-friendly by [your source for using spammy method].

I now understand that the practices used are not acceptable. I apologize for having allowed them to be placed on my website. I've removed the questionable pages and links from the site. I promise not to repeat such mistakes.

I am asking you to please consider reinstating my website,
[your site URL] into the [search engine name] Index.

Sincerely,

[Your Name]
------------------------------------------

To assist them to provide a high quality service, search engines encourage people to report search results they are dissatisfied with. If you spot some content spam or techniques that are clearly in breach of the search engine's public guidelines, you can report it using these links:

3) Build Sites for Visitors Rather than Search Engines

The methodologies may have changed over the years, but the same principles have always applied to "good" or "white hat" SEO. Build sites for humans, not search engines. Make the site as user friendly as possible, avoid the bells and whistles and include high quality, relevant content.

Wherever possible, include text-based content and navigation menus with simple, descriptive, well-written copy designed to convert your visitors into customers. Include keywords and phrases your audience would logically type in to search engines to find sites like yours. Only link to sites that are relevant to your target audience and spend some time on usability, making sure all your forms and shopping carts work.

Remember that what pleases a visitor is almost always what pleases a search engine too.

How to Create Search Engine Friendly Title and META Tags

In this article, I'm going to show you step-by-step how to create search engine optimized Titles and META Tags. This is a two part article. This part discusses the Title Element, also known as the Title Element. (Click here to read Part Two).

The TITLE Element

TITLE elements, (commonly called TITLE Tags), are one of the most important factors that search engines "look" at when it comes to determining the relevancy of a web page against a search query. In their ranking algorithms, nearly all the major search engines attribute a high relevancy weight to the content of the TITLE tag.

In the HTML code of a web site, TITLE tags look like this one for a fictional florist:

[TITLE]Miami Florists - beautiful floral creations made to order.[/TITLE]
(Please note that square brackets [ ] have been used in place of open and closing tags < > to prevent this page code from breaking. You'll need to replace all square brackets with open and closing tags.)

To view the HTML code of any site, choose "View, Source" from your browser toolbar or right click anywhere on the page and choose "view source code".

The META Description Tag

META Description Tags are designed to describe the content of web pages. Search engine robots will gather up this information when indexing web sites and often use it when referencing web pages in the search listings.

While not all search engines continue to utilize the META Description Tag, a majority of search engines rely on the content of this tag (together with a site's visible content) to provide information about a site that they can match with search queries. It is therefore important for webmasters to include keywords and phrases in the META description that they would expect searchers to use to find their site content.

In the HTML code of a web site, a sample META Description Tag looks like this:

[META name="description" content="Miami Florists create beautiful floral bouquets, arrangements, tributes and displays for all occasions, including weddings, Valentines Day, parties and corporate events. Deliveries throughout Florida."]
You can view the META Description Tag of a site by viewing the source code.

The META Keywords Tag

While only indexed by a small handful of search engines these days, the META Keywords Tag is still worth including within a site's HTML code, if only to provide those search engines with as much information as possible about site content.

In the HTML code of a web site, a sample META Keywords Tag looks like this:

[META name="keywords" content="flowers, roses, weddings bouquets, florists, floral arrangements, flower deliveries, Valentines Day gifts, Christmas decorations, Mother's Day, tributes, wreaths, clutches, sprays, in sympathy, funerals, corporate functions, parties, floral displays, Miami, Florida"]

The current lack of support for the META Keywords Tag by so many search engines can be attributed to increasing spam abuse by ignorant webmasters. These webmasters thought the keyword tag was a good place to stuff hundreds of keywords in the hope of achieving a higher search ranking, thereby "spamming" the search engines with useless, non-relevant data. This prompted many search engines to filter out the META Keywords Tag or lower its importance within the ranking algorithm.

You can view the META Keywords Tag of a site by viewing the source code.


Create Your Own Optimized Tags

Now, it's time to create optimized TITLE and META Tags for your own site. Let's start with the TITLE Tag for your Home Page.

Create Your TITLE Tag

Take the list of target keywords and phrases that you want your web site to be found for in search engines. You should have already allocated them to the appropriate pages of your site to be optimized. I use a spreadsheet for this purpose but you should use whatever works for you.

Now, open a text file in Notepad or something similar. If you like, you can use an existing sample TITLE Tag as your template. Let's say our existing Title is:

[TITLE]Miami Florists - beautiful floral creations made to order.[/TITLE]

Now take your list of keywords for the home page and put them in order of importance, with the ones you want to rank highest for at the top. For our fictional florist these are:

- florists Miami
- florists Florida
- wedding bouquets

Now you are simply going to combine these keywords into a sentence or short blurb so they make the best use of the keyword real estate available. Always try to use as few words as possible in your Title Tags, because each additional keyword dilutes the ranking relevancy of all the others.

In this case, I would initially combine the keywords as follows:

Florists in Miami Florida specializing in wedding bouquets.

Notice how I've got the keywords in the correct order for the search queries? I've tried to include the most important keywords towards the start of the tag. There was no need for me to repeat the keyword "Florists" more than once because the sentence I've used covers both "Florists Miami" and "Florists Florida". Most search engines will ignore "in" as a stop word, so it shouldn't matter that we've included it.

Although it's tempting to put a comma between Miami and Florida, on some search engines commas act as a keyword separator, so we don’t want to use one here because we don't want "Florists" and "Florida" to be separated.

Now, there is just one problem with this draft Title. Our 3rd keyword phrase "wedding bouquets" is right at the end of the sentence, meaning it may lose some relevancy weight (search engines consider keywords closer to the start of the tag as the most important). How do we fix this? Let's try this:

Florists in Miami Florida - wedding bouquets a specialty.

We don't want to use a period after "Florida" for the same reason that we don't use a comma. But a hyphen should not make a difference to search engines yet still allow the sentence to read logically to a searcher. So now we have our three target keyword phrases covered in a very short space.

In fact, the above sentence now covers the following keyword combinations:

- florists Miami
- florists Florida
- florists in Miami
- florists in Florida
- florists in Miami Florida
- wedding bouquets
- Miami wedding bouquets
- Florida wedding bouquets

When integrating your keywords, remember that their order is important. If you want your site to have the best possible chance of being found for the search query "Miami florists", you need to put the keywords in that exact order and not "florists Miami", because the spider searches the keywords in exact order. Unless they are stop words, also try to avoid using extra words between your keywords.

If you wanted to, you could integrate your company name into the Title tag, but (unless your company name is super short or includes a keyword), don’t sacrifice a keyword to do so. Instead, try placing the company name at the end of the tag so you can be sure that all your important keywords will be indexed first.

In the case of our florist, let’s imagine their name was Funky Florists. We could easily accommodate the name into the beginning of our optimized Title as follows:

[TITLE]Funky Florists in Miami Florida - wedding bouquets a specialty.[/TITLE]

It may reduce the keyword relevancy impact very slightly, but including your company name enables you to brand your page, which may be more important to you.

The content of the Title Tag is also what gets saved in a person's Favorite’s list when they bookmark your site, so having your company name included is worth considering from a branding perspective.

Title Elements and META Tags and took you step-by-step through how to create an optimized Title Element. Now it's time to create your optimized META Description and META Keywords Tags.


Create Your META Description Tag

Now it's time to create your optimized META Description Tag.

Take your list of target keywords and phrases and open another text file. Again, you can use an existing sample META Description Tag as your template. Let's say our existing description is:

[META name="description" content="Miami Florists create beautiful floral bouquets, arrangements, tributes and displays for all occasions, including weddings, Valentines Day, parties and corporate events. Deliveries throughout Florida."]

You can make your META Description Tag as long as you like, but only a certain portion of it will get indexed and displayed by search engines. According to Danny Sullivan in his article How to Use HTML Meta Tags, 200 to 250 characters of the META Description gets indexed but less than that gets displayed, depending on the search engine. So you want to make sure all your important keywords are listed towards the start of the tag.

Now take your list of keywords for the home page in order of importance. For our fictional florist these were:

- florists Miami
- florists Florida
- wedding bouquets


Now you need to create a readable sentence or two describing your web site and incorporating these keywords so they make the best use of the keyword real estate available.

Because search engines often display the contents of the META Description Tag in the search results, it is very important that your sentences make grammatical sense and are enticing enough to encourage readers to click on your link. Let's start with:

If you're seeking a florist in Miami Florida, Funky Florists create unforgettable wedding bouquets, floral arrangements, tributes and displays for all occasions.

Ok, so that's around 150 characters long and gets our three important keyword phrases included. But it’s a bit bland. We need to add something to entice the searcher to click on it. How about:
Order online for a 10 percent discount!

So now we have the following completed META Description Tag:

[META name="description" content="If you're seeking a florist in Miami Florida, Funky Florists create unforgettable wedding bouquets, floral arrangements, tributes and displays for all occasions. Order online for a 10 percent discount!"]

Our new tag is optimized for our keyword phrases, it's around 200 characters in length, it describes our site accurately, it speaks to the reader and it (hopefully) entices them to click on the link and view the site.


Create Your META Keywords Tag

We're almost there. Now it's time to create your optimized META Keywords Tag. Let me stress here that this Tag is quite unimportant in the grand scheme of things. Not many of the search crawlers even support it any more. You can see which ones do on this page. If you have the time and you really want to create META Keywords tags for your pages, then go ahead, but if not, then leave them out of your code altogether. This tag will have very little impact on your overall SEO campaign.

Assuming you do want to create a Keywords tag, take your list of target keywords and phrases and open another text file. Again, you can use an existing sample META Keywords Tag as your template. Let's say our existing Keywords Tag is:

[META name="keywords" content="flowers, roses, weddings bouquets, florists, floral arrangements, flower deliveries, Valentines Day gifts, Christmas decorations, Mother's Day, tributes, wreaths, clutches, sprays, in sympathy, funerals, corporate functions, parties, floral displays, Miami, Florida"]

You are just including a list of related keywords to include in this tag. Now take your list of keywords for the home page in order of importance. For our fictional florist these were:

- florists Miami
- florists Florida
- wedding bouquets

Because you have a lot more room in this tag, a good rule of thumb for creating a META Keywords Tag is to include the keywords and phrases your are targeting with your site content, as well as some terms that you don't necessarily want to use in your site copy but are still relevant to the site content. For example, the site copy, TITLE and META description tags would include the most important search keywords, but the META Keywords Tag could be used for keyword variations and combinations that don't appear in the visible site text, but that people may also search for. Examples include plurals, contractions, slang, variations, misspellings, cultural nuances and industry jargon.

For our fictional florist, these may include things like:

- wedding flowers
- roses
- wedding roses
- Valentine's Day roses
- sympathy gifts
- Mother's Day gifts
- funeral wreaths
- flower deliveries
- floral arrangements
- birthday gifts
- flowers
- flowers for wedding
- wedding decorations

So now we have the following draft META Keywords Tag:

[META name="keywords" content="florists Miami, florists Florida, wedding bouquets, wedding flowers, roses, wedding roses, Valentine's Day roses, sympathy gifts, Mother's Day gifts, funeral wreaths, flower deliveries, floral arrangements, birthday gifts, flowers, flowers for wedding, wedding decorations"]

However, when creating your Keywords Tag, you should not repeat any particular keywords within your META Keywords Tag more than five times and exclude commas so that all your keywords can be indexed in combination with each other.

So we need to fix the draft tag to remove the excess repetition of the words "flowers" and "weddings". This is easy to do because some of the keyword phrases already incorporate these single generic keywords.

For starters, we can lose the single "flowers" as it is already covered by some of the other phrases like "wedding flowers". Next, we can drop "roses" for the same reason. Then we can combine some keyword phrases together to save space, e.g. "flowers for wedding" and "wedding decorations" can be integrated to become "flowers for wedding decorations" so we can lose the extra instance of "wedding".

So now we have the following completed META Keywords Tag:

[META name="keywords" content="florists Miami florists Florida wedding bouquets wedding flowers wedding roses Valentine's Day roses sympathy gifts Mother's Day gifts funeral wreaths flower deliveries floral arrangements birthday gifts flowers for wedding decorations"]

Tailored TITLE and META Tags

While some webmasters remember to include a META Description and a META Keywords Tag in their home page HTML code, many forget to include them on every page of the site that they want indexed. Or worse, they duplicate the homepage TITLE and META Tags on all other pages. To give a web site the best ranking ability possible, it is highly recommended that each page of the site include a unique TITLE tag and unique META tags, individually tailored to the content of that specific page.

For example, our fictional Miami florist may have a page devoted to wedding bouquets and another devoted to funeral wreaths. The TITLE and META tags for the first page should include keywords relating to weddings and the page about wreaths should utilize keywords relating to funerals and sympathy.

The use of tailored TITLE and META Tags on each page creates multiple entry points to a web site and enables relevant content to be found in search engines no matter where it resides on a site. For example, instead of relying on visitors to arrive via the Home Page, the optimization of individual site pages makes each page more visible in the search engines, providing additional gateways to the site's content. The more pages optimized, the wider the range of keywords and phrases that can be targeted and the more entry points are created to a site.

How to Create Search Engine Friendly Web Site Copy

Search engines read text and not much else. Because they can’t generally index graphics, search engines rely on the text in web sites to provide information about the site content, which they can compare with search queries.

Webmasters therefore need to use body text on any pages on the site that they want indexed by the search engines and ranked highly for matching search queries. Not graphical text that was created in design software, but actual, visible body text. Not sure if your site uses graphical or body text? A good rule of thumb that I learnt from search engine guru Danny Sullivan is to try and highlight the text with your mouse. If you can drag your mouse over individual words in the text when viewing it in a browser, chances are this is body text and the search engines can read it.

Figure 1



Figure 2


The most important page on which to use body text is the home page. Above is an example of a home page that uses graphical text instead of body text. Figure 1 shows what content the site visitors see, while Figure 2 shows the content a search engine sees and indexes.

How much information about a site’s content does a page like the one above provide a search engine? That’s right, very little. With next to no text to be found, the search engine would have to rely on the page’s Title and META Tags to tell it what the page is about. With such little information to go on, it is unlikely that a search engine would consider this page a relevant match for search queries relating to its content. To remedy this, it is widely recommended that each web page you want listed in search engines should contain at least 250 words of visible body text.


Keyword-Rich Text

While it’s a good idea to use plenty of body text on web pages, if that text doesn’t contain relevant keywords and phrases that people type in to the search engines, there’s not much point, because a site isn’t going to be found for logical search queries anyway. Many web sites make the mistake of including text on their site that is either unrelated to their products and services, or full of marketing-speak like “Internet solutions” or “superior services”. The Internet is plagued with web sites selling particular items without once making reference to those items in their site text. Weird huh?

For a search engine to find a site relevant for a particular search query, it MUST find that search query somewhere in that site. The easiest way to ensure this is to include logical keywords and phrases within the visible text on web pages, as well as in the Title and META tags. The best way for webmasters to find keywords that searchers are actually using is by conducting keyword research of their target market on a site such as Keyword Discovery or WordTracker.

Once it is determined what search terms perspective visitors are commonly typing in to search engines, they can then be compared to the goods and services offered on the site and the body text can be adjusted accordingly. Sites lacking any keyword research tend to use very generic, unfocused body copy, or sales-oriented “hype”. Neither style contributes to high search engine rankings.

Target keywords and search phrases placed strategically throughout your body copy give your pages a much higher ranking potential on search engines for related searches. But it’s not as easy as throwing the keywords into your site text willy-nilly. You must ensure that the keywords are integrated seamlessly so their repetition is unobvious and so that the text flows smoothly for the reader.

Don't compromise the readability of your copy to achieve this - hire an expert copywriter to strike the right balance if need be.


SEO Copywriting

Before writing your web site copy, you should research potential keywords and phrases that your target audience may use in search engines and then narrow the list down to your priority terms for each page, sorted in order of importance. You should then use those target search terms as a basis for the creation of optimized Title and META tags for each page on your site. Once you’ve done that, it’s time to integrate those same target search terms into your visible web page copy. We call this SEO copywriting. But exactly how do we do it?


Speak to Your Audience

Don’t lose site of the reader when writing your body copy. Integrating your keywords is important, but not if you are sacrificing the readability of your site and losing the attention of your audience. Put yourself in their shoes like you did when researching your keywords. What are they looking for? What do they need? How will your product/service help them? Does it represent value for money?

Be emotive when describing your products and services. Describe how your product/service will make them feel or look, how it will improve their lives, give them more time etc. Use trigger words that people respond to such as “free”, “success”, “you”, “cash” etc. Not sure what these are? Check out Words That Sell reports. These reports are perfect if you are targeting a specific industry or profession because they define what keywords people in over 38 industries respond to and what they expect when making a buying decision.

Not sure who your audience is or what they’re looking for? Why not ask them? Use a free survey service such as Survey Monkey to learn more about them so you can write “to” them and not “at” them. You could even draft various styles of body copy and obtain feedback from your site visitors to determine what copywriting style works better for them.


Use Easy to Understand Language

The Internet is no place for verbosity. People are in a hurry - they want to find what they seek quickly and easily with the least hassle possible. You can help them in this quest by ensuring your site pages use simple language and easy to grasp concepts throughout. For example instead of "brand-building web information architects", use "website designers specializing in brand promotion". Keep the large chunks of text on each page to a minimum, using bullet points, white space, graphics, lists and sub-headings to break it up and make it easier to read. This rule of thumb is especially important when creating landing pages for pay per click and other advertising campaigns.

Use examples to get your main points across or to demonstrate your product benefits. Use the old WIIFM (What's In It For Me?) adage when composing your body copy to keep the user's interests at top of mind. Remember your international visitors by incorporating regional word usage (such as organize versus organize or jewelry versus jewellery) and avoid technical jargon that could alienate. Want your visitor to take a particular action? Spell it out for them in plain English, for example Click here to Buy Now, Subscribe to our free newsletter, Bookmark this page now etc. These references are called “Calls to Action”.


Build Your Copy Around Your Keywords

You should always build your page copy around your keywords and not the other way around. If your existing page copy doesn’t contain any of your target search keywords, you’re going to have to rewrite it! Start from scratch if you have to. The secret is to focus. Search engines aren’t going to rank your web site about socks highly if your body copy talks about foot sizes. You need to get specific. It sounds really obvious, but if you sell socks, make sure your site copy has plenty of references to the word socks! If you sell green wool socks, target the phrase "green wool socks" and not "foot apparel in lovely shades of emerald"! Who's going to search for socks using that phrase?

At the risk of sounding like Dr Seuss, if you want to be found for, big socks, small socks, cotton socks and wool socks, then mention them all. Better still, sort your copy into categories based on your various products and services. If you sell wool socks AND cotton socks, then have a page dedicated to each kind. This allows you to target niche keywords within your copy and meet the search engine's relevancy guidelines for related search queries.


Keyword Integration

So imagine you've added plenty of text to your pages and the copy flows well for the reader. You've researched your keywords and phrases and now you're faced with the dilemma of integrating the keywords into your copy. So how do you satisfy the search engine's craving for keywords without interrupting the copy flow for the reader? The answer is: very carefully.

Let's take a look at a practical example. We have a client that specializes in luxury adventure travel. Before I optimized their site, part of the home page copy read like this:

"We specialize in providing vacations for people who want a personal service. We bring to our efforts a fanatical obsession with quality and exclusivity. We also bring a freshness, an outward-going passion for discovery which justifies our growing reputation as one of the world's top travel providers. We can put together packages that include all adventure activities, accommodation, transport and food".

Extensive Keyword Discovery keyword research for the client had determined that the site should target the following key phrases:

• adventure travel
• best adventure vacations
• tailored travel
• overseas adventure travel
• luxury travel packages

So taking our original home page text, the challenge was to integrate these keywords carefully and naturally so as not to disturb the logical flow of the copy and lose the interest of the visitor. Here's how I did it:

"We specialize in providing the best adventure vacations for people who want a personal and tailored travel service. We bring to our efforts a fanatical obsession with quality and exclusivity. We also bring a freshness, an outward-going passion for discovery which justifies our growing reputation as one of the world's top overseas adventure travel providers. We can put together luxury travel packages that include all adventure activities, accommodation, transport and food".

Note that the key phrase "overseas adventure travel" accommodates the phrase "adventure travel" too. Voila! The search engines are happy because the site contains text content relevant to related search queries, the client is happy because we were able to integrate the keywords without distracting the visitor and I'm happy because I know the site is going to rank highly for the client's target search terms.

Now it’s your turn – go tackle your web site copy!

Thursday, July 1, 2010

101 CSS Techniques


CSS has fundamentally changed web design, it has provided designers with a set of properties that can be tweaked to make various techniques to make your pages just look right.


Today we are presenting a round-up of 101 CSS techniques designers use all the time. Definitely worth taking a very close look at! This is just the first series , the second part will be coming soon, stay tuned and Enjoy!




CSS Sprites



CSS sprites save HTTP requests by using CSS positioning to selectively display composite background images. To maximize accessibility and usability, CSS sprites are best used for icons or decorative effects.



Css8 in 101 CSS Techniques Of All Time- Part 1




CSS Rounded Corners



Rounded corners is one of the most popular and frequently requested CSS techniques. There lots of ways to create rounded corners with CSS, but they always require lots of complex HTML and CSS. Here are easy ways to achieve this effect.


  • Even More Rounded Corners With CSS- Single-image, PNG-based, fluid rounded corner dialogs with support for borders, alpha transparency throughout, gradients, patterns and whatever else you could want.
    Demo :
    Css9 in 101 CSS Techniques Of All Time- Part 1




  • Rounded corners in CSS- Simple bordered div which contained four divs that each had a background-image and that were positioned in each of the corners.

  • Liquid rounded corners- For liquid design and transparent scrolling ? tutorial and stylesheet

  • Mountaintop Corners- easier way for creating decent rounded corners.
    Css11 in 101 CSS Techniques Of All Time- Part 1





Image Replacements Technique



: Image Placement vs. Image Replacement (FIR)


This technique is mostly for headlines by using CSS to replace normal HTML text, with a background image in order to achieve a particular look.Several different image replacement methods have been proposed, each with their pros and cons.


when you need image replacement you can check the Gilder/Levin Method as described by Dave Shea or, if the replaced text is linked and CSS support for IE/Mac is required, the Gilder Levin Ryznar Jacoubsen IR method.


Css3 in 101 CSS Techniques Of All Time- Part 1




Sliding Doors



Sliding Doors of CSS introduced a new technique for creating visually stunning interface elements with simple, text-based, semantic markup.Beautifully crafted, truly flexible interface components which expand and contract with the size of the text can be created if we use two separate background images.


Css4 in 101 CSS Techniques Of All Time- Part 1




Sliding Doors" Box? Rounded Corners for All- The goal of this technique was to create rounded-corner boxes with visual flare and the absolute minimal amount of semantically correct markup. While making sure they could resize while keeping their backgrounds intact.


Css7 in 101 CSS Techniques Of All Time- Part 1




Image Text Wrap Technique



How many times do you have an image floated left in a block of content, but want to keep that content from wrapping around your image?


This technique allows you to wrap around image text flow control to emulate magazine style page layouts.



Css6 in 101 CSS Techniques Of All Time- Part 1




Equal Height Technique



One of the somewhat frustrating properties of CSS is the fact that elements only stretch vertically as far as they need to. So how can we make all columns appear to be the same height? Several techniques was introduced to solve this issue.


  • Faux Columns- The simple secret is to use a vertically tiled background image to create the illusion of colored columns.

  • Equal Height Columns ? revisited- A method to make all columns appear to be the same height but without the need for faux column style background images.



  • Equal height boxes with CSS- The trick is to use the CSS properties display:table, display:table-row and display:table-cell to make containers (in this case div elements) behave like table cells. The basic XHTML structure looks like this:
     












    Here is the CSS used to make this structure behave like a table:

     .equal { display:table; } .row { display:table-row; } .row div { display:table-cell; } 






Turning A List Into A Navigation bar



Why use a list? Because a navigation bar, or menu, is a list of links. The most semantic way of marking up a list of links is to use a list element. Using a list also has the benefit of providing structure even if CSS is disabled.





Making Headlines With CSS



Headers in Web pages?marked up with h1, h2, h3, h4, h5, or h6 elements?help the reader determine the purpose of sections in content. If your header is visually stimulating, the odds are better that the section will capture your reader?s eye.





  • Heading Style Gallery- Want something a little more stylish for your content headings (h1,h2,?) than a different font or color? Try one of the heading styles listed here to spruce up your content.

  • Typography for Headlines- Improve the typography in your headlines by being more creative, give them more ?pop?, that sort of thing.

  • Making Headlines With CSS- With a dash of design, we can utilize CSS to stylize those Web page headers to catch the reader?s eye and encourage them to read on.





CSS Shadows Techniques



A technique to build flexible CSS drop shadows that can be applied to arbitrary block elements that can expand as the content of the block changes shape.


  • -Build flexible CSS drop shadows that can be applied to arbitrary block elements that can expand as the content of the block changes shape.

    Css15 in 101 CSS Techniques Of All Time- Part 1




  • - Most of the existing techniques use negative margins, while this one is a really simple version wich uses relative positioning.

  • - This set of tests are based on an article found on A List Apart?s technique, but with less CSS coding.

  • CSS Drop Shadows II: Fuzzy Shadows- Picking up where Part I left off, in Part II designer Sergio Villarreal takes his standards-compliant drop-shadow to the next level by producing warm and fuzzy shadows.

    Css16 in 101 CSS Techniques Of All Time- Part 1




  • An improved CSS shadow technique- A very robust and easy-to-use technique for applying snazzy looking shadows using only Web technology and a few little image elements prepared beforehand.





CSS Transparency



One of the trickiest things to control, in a CSS-driven design, is the transparency of the interaction between foreground and background content.Below is a list of the best examples of the differing transparency approaches possible with CSS.


  • Partial Opacity- Placing text over an image can sometimes make it difficult to read, but with Stu Nicholls?s methods the background for the text is made ?opaque? using various methods of opacity (including css3) and the black text is then quite readable.

    Css17 in 101 CSS Techniques Of All Time- Part 1




  • Cross-Browser Variable Opacity with PNG- How to overcome flaky browser support for PNG so you can take advantage of this graphic format?s lossless compression, alpha transparency, and variable opacity.

  • Two Techniques for CSS Transparency





Various Link Techniques



  • Showing Hyperlink Cues with CSS- The CSS Guy shows us how to get the little icons next to hyperlinks that signify if that link will take you offsite, open a popup, or link to a file (as opposed to another html page). Here?s how to do it in a way that?s supported in IE7, Firefox, and Safari.

  • The ways to style visited Links- CSS offers various possibilities to make links more usable and preserve text readability at the same time. We need to differentiate visited and unvisited links, but we must keep text scannable and readable.

  • Link Thumbnail- Shows users that are about to leave your site exactly where they?re going. When that curious mouse pointer hovers over a link pointing to somewhere outside of your site, the script displays a small image of the destination page.

  • Iconize Textlinks with CSS- If you?re looking for more icons to implement, Alex provides a nice start.



Css2 in 101 CSS Techniques Of All Time- Part 1