Aztec Online

Web Design, Development and SEO

May 3,2012


Adding a custom attribute to a product couldn’t be easier, and is all controlled through the admin panel. You can create an attribute or whatever type you wish, and then choose exactly where you want it to appear within the product management pages using “Attribute Sets”. This obviously is a great part of the functionality of how magento works. However if you want to add a custom field/attribute to the category page, there is no simple way of doing this. The thing that surprised me is that category attributes are managed in exactly the same way as a products, using EAV. EAV stands for entity – attribute – value model.

How attributes are stored for categories

An attributes information is stored in the database table  ”eav_attribute”. This stores all the data about an attribute including labels, codes and references to models to populate and customise fields.

Column Type Null Default Links to Comments
attribute_id smallint(5) No Attribute Id
entity_type_id smallint(5) No 0 eav_entity_type -> entity_type_id Entity Type Id
attribute_code varchar(255) No Attribute Code
attribute_model varchar(255) Yes NULL Attribute Model
backend_model varchar(255) Yes NULL Backend Model
backend_type varchar(8) No static Backend Type
backend_table varchar(255) Yes NULL Backend Table
frontend_model varchar(255) Yes NULL Frontend Model
frontend_input varchar(50) Yes NULL Frontend Input
frontend_label varchar(255) Yes NULL Frontend Label
frontend_class varchar(255) Yes NULL Frontend Class
source_model varchar(255) Yes NULL Source Model
is_required smallint(5) No 0 Defines Is Required
is_user_defined smallint(5) No 0 Defines Is User Defined
default_value text Yes NULL Default Value
is_unique smallint(5) No 0 Defines Is Unique
note varchar(255) Yes NULL Note

I will briefly explain what some of these attributes are although they are pretty self explanatory.

  • attribute_code – this is the code used as a unique value in the frontend
  • frontend_label – this is what is displayed in the admin panel next to the field
  • source_model – this is used for dropdowns, multi-selects to populate the data in a custom way
  • backend_type – the datatype as used by the mysql database
  • frontend_input – the data type as used by magento

Attaching an attribute to a category tab

This is handled by a table called “eav_entity_attribute”. As you can see by the table below it’s pretty much a linking table, linking an attribute to a type (product / category / order etc), then linking to an attribute set and a group (e.g. tab, section, fieldset) and a order in which to sort it.

This also proves that attribute sets as used by products can be technically used by anything which uses the EAV model, e.g. orders, categories, shipments etc.

Column Type Null Default Links to Comments
entity_attribute_id int(10) No Entity Attribute Id
entity_type_id smallint(5) No 0 Entity Type Id
attribute_set_id smallint(5) No 0 Attribute Set Id
attribute_group_id smallint(5) No 0 eav_attribute_group -> attribute_group_id Attribute Group Id
attribute_id smallint(5) No 0 eav_attribute -> attribute_id Attribute Id
sort_order smallint(6) No 0 Sort Order

Allowing the field to show up

In order for the field to show up on a category page, you need to add an entry to the “catalog_eav_attribute”. In this table you can set what the attribute can be used for and how it is visible to the user. The attribute id must match that of which has been saved in the “eav_attribute” table and in order for the field to display, ‘is_visible’ must be set to 1.

Column Type Null Default Links to Comments
attribute_id smallint(5) No eav_attribute -> attribute_id Attribute ID
frontend_input_renderer varchar(255) Yes NULL Frontend Input Renderer
is_global smallint(5) No 1 Is Global
is_visible smallint(5) No 1 Is Visible
is_searchable smallint(5) No 0 Is Searchable
is_filterable smallint(5) No 0 Is Filterable
is_comparable smallint(5) No 0 Is Comparable
is_visible_on_front smallint(5) No 0 Is Visible On Front
is_html_allowed_on_front smallint(5) No 0 Is HTML Allowed On Front
is_used_for_price_rules smallint(5) No 0 Is Used For Price Rules
is_filterable_in_search smallint(5) No 0 Is Filterable In Search
used_in_product_listing smallint(5) No 0 Is Used In Product Listing
used_for_sort_by smallint(5) No 0 Is Used For Sorting
is_configurable smallint(5) No 1 Is Configurable
apply_to varchar(255) Yes NULL Apply To
is_visible_in_advanced_search smallint(5) No 0 Is Visible In Advanced Search
position int(11) No 0 Position
is_wysiwyg_enabled smallint(5) No 0 Is WYSIWYG Enabled
is_used_for_promo_rules smallint(5) No 0 Is Used For Promo Rules

Example of SQL required

Obviously if you are creating a custom module, you would want to wrap these SQL queries into a magento installer script, but for the purposes of demonstration, here are the 3 queries I used to add a field to the end of the general information tab of a category.


INSERT INTO `kit`.`eav_attribute` (`attribute_id`, `entity_type_id`, `attribute_code`, `attribute_model`, `backend_model`, `backend_type`, `backend_table`, `frontend_model`, `frontend_input`, `frontend_label`, `frontend_class`, `source_model`, `is_required`, `is_user_defined`, `default_value`, `is_unique`, `note`) VALUES (NULL, 3, 'additional_info', NULL, NULL, 'varchar', NULL, NULL, 'textarea', 'Additional Information', NULL, NULL, '0', '0', NULL, '0', NULL)
INSERT INTO `kit`.`eav_entity_attribute` (`entity_attribute_id`, `entity_type_id`, `attribute_set_id`, `attribute_group_id`, `attribute_id`, `sort_order`) VALUES ('156', '3', '3', '4', '156', '25');
INSERT INTO `kit`.`catalog_eav_attribute` (`attribute_id`, `frontend_input_renderer`, `is_global`, `is_visible`, `is_searchable`, `is_filterable`, `is_comparable`, `is_visible_on_front`, `is_html_allowed_on_front`, `is_used_for_price_rules`, `is_filterable_in_search`, `used_in_product_listing`, `used_for_sort_by`, `is_configurable`, `apply_to`, `is_visible_in_advanced_search`, `position`, `is_wysiwyg_enabled`, `is_used_for_promo_rules`) VALUES ('156', NULL, '1', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', NULL, '0', '0', '0', '0');


These will add the entry to your category admin form. The EAV model used by magento is incredibly powerful and gives you masses of flexibility and control over what data you want to store about products, categories, order or anything using the EAV model. In theory you can add your own eav_entity_type for something completely custom if you wish.

  • Comments Off
  • Tuesday
    May 1,2012

    Keywords are generally separated into 2 categories, short tail keywords and long tail keywords. For example, a short tail keyword would be “holidays” and a long tail keyword would be “winter sun holidays dubai”. The use of these different kinds of keywords will refer to specific stages of buying so you must be aware of what effect the keyword you are targeting will have on the type of traffic you receive, thereby effecting conversion rates.

    Stages of Buying

    • Research – Seeing what is out there
    • Comparison – Comparing differences, advantages and prices
    • Purchasing – Ready to buy
    • Evaluation – A current customer
    • Repeat – May start at any stage above

    Users thats are searching using short tail keywords are most likely to be arriving at the research stage, therefore the likelihood of buying is lower at this point. Whereas users arriving at a website from a long tail search are usually at the comparison or purchasing stage which means the user is coming with a greater intent to buy. Most ecommerce websites will try to optimise for the purchasing stage, where customers are ready to buy. This means that their conversion rate is at its highest when the customer arrives on the page.

    What is a long tail keyword?

    A long tail keyword is as the name suggests, a long string of words which can contain 3 to 6 words in the keyword phrase. They are less competitive than short tail keywords and are easier to rank for. When a user is looking specifically for a product or service, they will probably search using a long tail keyword, this also means that people searching for long tail search terms in general have a greater intent to buy. The more specific the search term the more likely that the user will find the result they are interested in.


    winter sun holidays dubai
    sony multiple cd player
    Ottoman style double bed

    What is a short tail keyword?

    A short tail keyword usually means a 1 or 2 word phrase. These terms are more broad or generic and will have a larger volume of searches. However, they are far more competitive than long tails and are very hard to achieve and maintain with the amount of competition. Short tail keywords also mean in most cases that the user has a lower intent to buy as they are searching more broadly and don’t really know what they are looking for.


    cd player
    double bed

    Long Tail vs Short tail

    As you can see from the above graph, the fewer number of words in a keyword term the larger the volume of searches. However if you look at area under graph you can see that there is a larger area for the long-tail keywords. In actual fact long tail searches take up 75% of all searches and short tail only 25%.

    In conclusion you can see that by targeting a greater number of long tail keywords, not only are the searchers more likely to buy, but also have by far the larger share of the search audience. Most searches averagely contain 3.5 words, and search engine users are getting more and more specific stats show. In summary, a long tail keyword is more specific or niche and by correctly analysing your keywords first, you will not only gain better rankings more efficiently, you will also be sending targeting traffic to your webpage which are more likely to buy. I believe, based on the above fact, that targeting key-phrases between 3-4 words will be the fastest and most efficient route to succeeding in both search rankings and conversions.

  • Comments Off
  • Tuesday
    May 1,2012

    A problem I have come across before is when I want to include an image within a transactional email, using:

    {{skin url="path/here/"}}

    The problem being that by default, the transactional emails will look in the skin folder for the admin area in the base package. However if your storing images in the frontend skin folder for your package/theme, you need to be able to provide this CMS syntax additional information. You can specify the area, package and theme you wish to refer to. See the code snippet below:

    {{skin url="path/here" _area="[frontend | adminhtml]" _package="[package name]" _theme="[theme name]"}}
  • Comments Off
  • Thursday
    Apr 26,2012

    I have often found the need to be able to display the name or other details about the category I am currently in. A product can obviously be included in more than one category, so figuring out which category you are currently inside would be useful. In the core catalog code in Magento, everytime you visit a category page a method is fired, setCurrentCategory(). This sets an entry in the magento registry with the current category object attached.

    Here is the code snippet to get the current category in magento

    <?php $currentCategory = Mage::registry('current_category'); ?>
  • Comments Off
  • Tuesday
    Jul 12,2011

    The all new Ext JS charting engine was completely rewritten for its latest version, Ext JS 4. The new charting system was developed by Sencha, in cooperation with the founder of Raphael JS.

    What makes this system so great is that it is able to calculate, render and animate a large array of amazing charts using JavaScript. As all modern browsers possess a build in JavaScript engine, Ext JS 4 no longer needs to rely on flash to create its charts, as it did with previous versions. Not only does this allow charts to lose any dependency with flash or external plugins, it also means that all components of the chart are rendered directly into the browsers DOM. This allows the charts with their data, fully accessible by JavaScript, making them extremely flexible and customisable.

    Creating A Simple Chart

    Creating a chart in Ext JS 4 follows the same process as creating nearly any component, using the new class system.

    <span style="color: #808080;"><em>Ext.create('Ext.chart.Chart', {</em></span>
    <span style="color: #808080;"><em>       //CHART CONFIG</em><em>

    When you first create your chart component, it has no knowledge of which type of chart it shall become. This is defined within the charts configuration using series, axes and a store. This is the same more the majority of cases in a real world scenario. When you draw your axes for a chart, that chart could potential be many different types (Line, Column, Area, Scatter etc.).

    <span style="color: #808080;"><em>Ext.create('Ext.chart.Chart', {</em></span>
    <span style="color: #808080;"><em>    animate: true,
        store: Ext.create('',{
            fields: ['category', 'data1', 'data2'],
            data: [
                {category: 'User 1', 25, 33},
                {category: 'User 2', 11, 54},
                {category: 'User 3', 46, 98}
    </em><em>    }),
        axes: [{
            type: 'Numeric',
    	position: 'left',
    	fields: ['data1','data2'],
            title: 'User Values',
            minimum: 0,
           	maximum: 100,
            grid: true
            type: 'Category',
    	position: 'bottom',
    	fields: 'category',
            title: 'User Categories'
        series: [{
            type: 'column',
            axis: 'left',
    </em><em>        xField: 'category',
            yField: ['data1', 'data2']
    }); </em></span>

    As shown in the code sample above, I have added 2 axes and a column series using the data from my store, thereby creating a Column Chart. This is a chart in its simplest form with the absolute minimum of required configuration to produce a chart.

    The data for a chart comes from a store, specifying which fields represent categories, series, axis values etc. The hardest part of creating charts for a web app that work, is getting your data right. As you can see from the previous code sample, the chart uses the fields defined within the store to specify how the chart is rendered.

    What Else Can You Do With Ext JS 4 Charts?

    Since the charts are rendered using JavaScript, manipulating the data is really easy, therefore has allowed Sencha to provide a huge amount of customisable options.

    • Legend with specified Position
    • Specify minimum/maximum axis values or leave for Ext JS to calculate for you
    • Create linear gradients to be used with chart components
    • Chart animation
    • Chart Shadowing
    • Series Highlighting, callouts and tooltips
    • Chart themes to customise the look and feel of a chart
    • Specify the size, style and rotation/direction of chart labels
    • And many more…

    What makes these additional configuration options so great, is that they all work and flow completely flawlessly, solely using JavaScript.

    In my personal opinion the Ext JS 4 Charts are one seriously amazing part of the framework, great job Sencha.

    Follow me on Twitter for more, @webdevluke


  • Comments Off
  • Ext JS 4: A Complete Review

    Jul 11,2011

    Ext JS 4 is the latest version of the popular JavaScript framework developed by Sencha, Ext JS.  Since the last version, Sencha has been boasting that Ext JS 4 will be the best, most comprehensive version of the framework to date, including many new features and performance improvements. Here is my review of their latest version.

    New Features – 4/5

    They have really gone to town, introducing new features in this latest version of Ext JS. The main features that were introduced were the following: -

    • JavaScript Charting Engine
    • MVC Application Architecture
    • Drawing Vector Graphics
    • New Class System
    • New Data Package
    • Dynamic Theming using SASS

    Sencha have made a real effort to provide a framework that has crossed all the T’s and dotted all the I’s, and I believe that it has done that. The new Charting engine works well and very fast, relieving many of us to know that we don’t need to rely on flash anymore within Ext JS to render charts.

    However, on a negative point, it seems that in order to implement so many new features, a sacrifice in attention to details was made. Although all these features work most of the time, it seems that they were rushed into the framework and not fully integrated within all other related components within the framework. This was annoying to begin with, but forgivable due to the sheer amount of changes that the development team has made in this update.

    Overall I feel that the new features really add value to Ext JS 4 and are a definite improvement upon the previous version.

    Ease of Use – 3/5

    Ext JS has never been popular for how easy it is to use. There is a steep learning curve in order to master its full potential. However, this latest release of Ext JS has made great steps into opening up the framework to a larger audience that previously were unable to pick up the complexity of the framework.

    Ext JS 4 now has more complete documentation, better guides and simpler syntax which makes the framework more attractive to new users. However, the documentation has a fair amount of mistakes and incomplete entries within the documentation which is disappointing.

    Upgrade Transition (3 to 4) – 3/5

    Due to the large amount of changes and additions to the framework in version 4, upgrading your version within existing Ext JS apps was never going to be a simple task. With syntax changing, the class system revamped and some classes condensed or removed, there was always going to be a difficult migration. The Ext JS development team did make an effort to ease the migration process by providing a compatibility layer for this transition. However, this was more of an after thought and did not work nearly as well as first hoped. The migration documentation and compatibility layer were also delayed repeatedly at the first releases of Ext JS 4 which left some of the community unhappy.

    Overall I felt that migrating a larger Ext JS 3 app over to 4 is a mammoth task, one which takes a lot of patience. I feel that Sencha should have given this a lot more thought right from the off, rather than leaving until late to consider it as an after thought.

    Performance – 2/5

    The performance is one of the biggest let downs for me. The hype leading up to the release of Ext JS 4 was promising a huge performance increase, greater than any version before. Although, after it was released, people were realising that the performance for many components and rendering had actually decreased.

    After running tests on the rendering and loading time of several components, we realised that Ext JS 4 was running at about 1/3 of the speed of version 3, which was particularly irritating because we were promised faster performance.

    Documentation – 3/5

    Another one of Sencha’s supposed improvements was that the documentation was to be more complete, easier to follow and easier to use. They did manage to achieve some of their goals, however the documentation that was released had several poor aspects.

    • Functionality was faulty
    • Missing methods and classes
    • Incorrect information and typos
    • Slow load time

    There seems to be a lot of strife within the Ext community in regards to the vital need for complete documentation. This is something that at least Sencha have admitted and are working on currently, and to give credit, when credit is due, they have made some good improvements already.

    Support – 3/5

    Obviously if you want the best support, you need to pay for it, and the paid support for Ext JS isn’t bad. However it does seem clear that the support for normal users is very limited. The community help each other overcome problems they find, but the Sencha support from these forums isn’t that great. Help being given to maybe one in ten people, and if a problem arises that is more complex than the average problem, it is discarded without response.

    Overall I think that the support is so-so. Sencha have a lot on their plate fixing and improving the framework, but the support is nowhere near what it could be.

    Updates & Patches – 2/5

    Sencha does provide relatively frequent updates to its users, providing beta and developer previews prior to the official launch of Ext JS 4. However, often the releases promising fixes and additions fail to live up to expectations, sometimes not achieving what was promised at all.

    Another issue I have personally found with updates & patches is the priority in which they are dispatched. I understand that paying premium customers are going to be given priority, but what eludes me is that when a bug is reported and solution provided to Sencha by the general population, they are not always allowed access to the fixes they have provided. Personally this seems like Sencha are happy to receive but less inclined to give back.

    Browser Compatibility – 4/5

    I know from experience of web development, how difficult it is to cater for all browsers, new and old. However I feel Sencha really do deserve credit in this department as 95% of browsers work as intended, unless users have made custom modifications. Catering for browsers back to IE 6 is a nightmare and am perfectly satisfied with the effort made here.

    Overall – 3/5

    However fond I am of the Ext JS framework which I would rate very highly compared with other JavaScript frameworks, this release has left me disappointed. Developing JavaScript frameworks is not an easy task and I feel that Sencha made a mistake by promising us a release date as soon as they did, which in turn, pressured them into making a release. I feel that the framework wasn’t ready to go and the testing run had failed to reproduce the flaws that the framework had. Given an additional couple of months development time, while taking compatibility into consideration from the beginning and giving the framework that extra polish, we would be looking at a 5/5, but instead I feel I can only give it a 3. I hope that Sencha learn from their mistake on Ext JS 4 and the next version will be an out and out success.


    Jul 8,2011

    There has always been a debate in regards to the best option for businesses to acquire the SEO services their business needs, and there is no real answer. There are 3 main routes that can be taken when contracting out your requirement for search engine success. Each has their own pro’s and con’s but really depends upon what the business is looking for in terms of an internet marketing solution.


    Agencies come in 3 different packages, you have your boutique agencies that specialise in just SEO, your all-in digital agencies that cover everything digital and agencies that offer SEO services as a secondary service. Obviously agencies offering SEO as a “value adding” service are not going to be as up to date and knowledgeable as some more SEO focused agencies, however if you are using them for other services, they maybe worth considering. In reality though, you are most likely to be choosing between Boutique and Full Digital agencies when looking for solely SEO services.

    Boutique Agencies

    A boutique agency offering SEO, is only focused on SEO. They most likely will have staff specialised in specific areas, such as link building, social media, content writing etc.


    • Up to Date knowledge of latest SEO trends
    • Access to good resources for social media & link building
    • Focused solely on getting you results


    • Often have no development or design knowledge
    • A lot of cowboy companies around offering just SEO
    • Not focused on conversions and sales, only rankings

    Full Digital Agencies

    A full or All-In digital agency will generally be full of very smart, switched on people who keep up to date with the latest trends in design, development and SEO. You will find that a full digital agencies approach to SEO is more rounded, they understand how to turn rankings into sales and page layouts and functionality to keep the users happy. Often SEO consultants will be more well rounded in their skill set, knowing abit about design and development from other colleagues in the office.


    • Up to date on latest trends
    • Focused on the overall success of your website
    • Often well established with proven success
    • Can provide design & development to support SEO


    • Not as specialised on SEO as a boutique agency
    • Design & development can sometimes hinder SEO success


    In house SEO experts work well in highly specialised industries, they will know the companies market inside out. Having an in-house SEO expert can also mean that they are less current with their knowledge of search trends and updates, due to the lack of discussion between employees in the same job.


    • Easy to communicate
    • Greater knowledge of the business processes
    • Dedicated to one business


    • Less up-to-date knowledge of SEO
    • Lack of resources for social media and link-building
    • No one to discuss SEO related problems or ideas


    A freelance SEO consultant is usually up to date with the latest search trends and is highly specialised in their field. Dealing with a freelancer is more of a personal experience, since you will be talking and discussing with a single person everytime.


    • Up to date SEO knowledge
    • Care about their clients more as it is their personal reputation on the line
    • Communication through a single person


    • Lack of resources that agencies possess
    • Often work part-time with no set working hours
    • Work alone, so have no support or colleagues to discuss ideas and problems


    So where should you turn to get your businesses ranking and performing well online? Well there is no real correct answer, only personal preference. If you are a large corporate company, generally an established digital agency due to their experience and resources or an in-house team. However, if you are a small or medium sized business, a freelancer or boutique agency may suit your needs better, especially if your after a more personal experience.

  • Comments Off
  • Thursday
    Jun 16,2011

    So you’ve created a masterpiece, optimized every last word and now your ready to publish that top quality piece of web content. You upload it to your website or blog and wait for the traffic to come pouring in, but it doesn’t. This is the mistake that many webmasters and bloggers make when publishing their content to the web. You could have the best content on earth, but it would be useless unless people are reading it. This is where promoting your content is essential for your work to be successful and not wasted.

    Here are 8 ways in which you can promote your web content online: -

    1. Writing a Tweet – Twitter is immensely powerful when used to promote content online. It has grown exponentially over the last year or so and now your hard pushed to find an established business not on it. A short sentence describing your content with a shortened link ( or similar) is all you need to do, possibly repeating this several times over a few days
    2. Posting on Facebook – Facebook is the most popular social networking platform on the web, creating and posting a link on your page will help let people know about your content.
    3. Ping Your Blog – Pinging your blog using free services lets RSS readers and search engines know that you have updated your blog and invites the search engine crawlers to return to index your new content.
    4. Digg it! – is a social bookmarking system where you share links with the Digg community. If people like the link you shared they can Dig it and show you that they like it. Getting enough Digs sometimes gets you onto Digg’s homepage, which gives a PR8 back-link, tasty eh.
    5. Commenting on Similar Blog Posts – Adding a follow on comment on a similar or related blog post giving your take or making a valuable addition to their post is generally welcomed. People often skim though the comments and if they come across a genuine, useful comment, they often follow the link
    6. Send out an email to your subscribers – Often the CTR of email shots are small, but if you have a large enough email list, it can provide some good traffic and can often spread a link to your content on other blogs
    7. Forum & Email signatures – If you find yourself emailing all day every day, adding a simple email signature will quickly spread your link to your recipients. The same works with forum posts. If you post regularly on forums, having a link to your content is another way of spreading the word.
    8. Submit a link to StumbleUpon – StumbleUpon has over 5 Million registered users and can provide some good traffic over a reasonable period of time. If your content is favourited by users, it can give a real traffic boost.

    There are hundreds of other ways you can promote your content online, gaining valuable backlinks and brand recognition. I recommend you make yourself a checklist of places to go to promote each and every blog post you make in order for them to have maximum effect.

    If you found this blog post interesting or useful, please follow me on twitter: @webdevluke

    Feel free to add any additional methods to promote your content in the comments.

  • Comments Off
  • Thursday
    Jun 16,2011

    Everyone loves a good contest, both the webmaster and the users. It brings a bucket full of backlinks, a healthy surge of traffic, some admiring subscribers and your viewers will kept happier. Everyone would love to win some awesome prizes for something that took them all of 30 seconds to do online. However, if your contest is not planned or run well, it could even reflect negatively on your blog/website.

    When Should I Run My First Contest?

    You should keep in mind what your current popularity on the web is. If you are only attracting 10 visitors a day, with a small social following, a contest is probably out of reach for you at this point. However, with reasonable traffic and a reasonable social following a contest can do wonders for your blog.

    Other thoughts such as the length of the contest and when it should start and end should be taken into consideration. People are most likely to enter competitions as they near their end, therefore should be at a time that the most people are online, after work or on the weekend would be my recommendation.

    What’s The First Step?

    Well the first step to creating a great contest, is to secure some great prizes. No one will want to enter a contest where the top 3 prizes contain items that have been lying around in your garage. Your prizes should be appealing to the demographic your blog or website is targeting. If you run a blog on trainspotting, prizes such as limited edition model trains, railway sets, special train tickets, event tickets would be of interest to your viewers. However, these kind of prizes wouldn’t be so popular if you are running a technology or gaming blog for example.

    There are only 2 ways to supply prizes for your contest, you supply them yourself or a sponsor supplies them. Now obviously the latter would be the favoured choice, however finding sponsors isn’t easy, but it is possible. You can start by skimming across the web for other contests, finding out who sponsored their prizes and get in contact yourself.

    What Are You After?

    The is a reason for every contest, even if it was just to entertain your viewers or to improve your brand identity, there will be a reason behind it. Make sure that you clearly decide what your goals are before you begin your contest. Here are some examples of goals: -

    • Improve your Twitter following
    • Increase Facebook likes
    • Get lots of backlinks
    • Add to your subscribers
    • Promote your business

    After setting out your goals, you need to decide how to measure the results. E.g. Aiming to achieve 500 Facebook likes, measuring before and after the contest to record the impact.

    Make It Simple

    When it comes to getting people to enter, it needs to be clear and simple. The world is moving fast and no one likes to wait for anything anymore. Making the competition entry process long and tedious will just put people off entering. Look back on your goals to decide how you would like your audience to enter. E.g. If you are after increasing your presence on Twitter, you could ask people to retweet a sentence with your @twittername & a hash tag relating to your competition.

    “Hey @webdevluke I want to win an iPad! #webdevipad!”

    Do You Want A Contest OR Competition?

    Which would you prefer? A contest is probably less effort, but a competition gives the user the feeling they are more likely to win if they get the answer correct. The difference is a contest is randomly chosen from a list on entries and a competition is chosen from a list of entries who have answered a question correctly or submitted the best work etc.

    Designing The Contest

    Now obviously the promotion is what gets users to the contest originally, but it is the styling, ease of use, content and the overall appearance which attracts them in and makes them “need” to enter. So what are the key factors to address?

    • Easy To Understand – Make sure that your contest is easy to understand how to enter, when it ends, what the prizes are.
    • Easy To Share – Make it as easy as possible for your viewers to share your contest across many different social channels.
    • Eye Catching Make sure that the contest catches your eye, colour titles, great images and styled content
    • Call To Action Make the viewer feel like they need to enter the contest straight away

    It is important to emphasise to the viewer what they could be winning and how they can enter, these should be the 2 main focal points on the page.

    Promoting The Contest

    Once your contest is sitting pleasantly and patiently, waiting to go live, everything is as perfect as you can make it. It is time to start promoting it. I would recommend trying to make some hype about the contest a week or so prior to the actual competition starting, this will give other blogs, forums, social networking profiles chance to mention and discuss your upcoming contest.

    How do you create hype about your contest? It may not work as well as you hope, but you need to lead on your viewers, telling them about the upcoming competition, tell them what the prizes are. You should do this in stages, keep them guessing what the prizes are, then how & when they can enter. Push this news though your blog, social networking accounts, forums, social bookmarking, comment on other blogs, do whatever it takes to get your contest known. Hopefully from this, other blogs and forums will pick up about your contest and write about it themselves, linking back to you.

    When it comes to actually promoting your contest, when you feel the time is right to release it, here is an example list of places to promote your contest.

    • Social Networking
      • Facebook
      • Twitter
      • LinkedIn
      • MySpace
    • Social Bookmarking
      • Digg
      • Reddit
      • StumbleUpon
      • Delicious
    • Pinging Your Blog (RSS)
    • Posting comments on related subjects
    • Forum posts in relevant niche
    • Newsletters
    • Email and Forum Signatures
    • Friends & Family


    Overall contests are a very powerful way of achieving huge numbers of backlinks, social followers or likes and brand recognition over a short period of time. However, they need careful planning and a good backbone to run from.

    If you found this blog post useful or interesting, please follow me: @webdevluke

    Have you run any successful or unsuccessful contests? Please share your experiences



    Recent Comments