Author Archives: Charlie Stelling

eBay API Repeatable fields in URL / OutputSelector

After some degree of searching I found a reference on how to include multiple output selectors in an eBay API call, they can be used in an array like format with the number (including ‘0’ if only using one output selector). The number needs to be placed in curly brackets after the outputSelector.


Angular JS Routing

Angular JS provides built in functionality to handles routes. Routes are declared by the $routeProvider which allows for the integration of controllers, templates and additional variables based on the url.


This requires angular-route.js to be included within your application as is no longer distributed. You can add the module as a dependency by using the following code, but be sure to included the JS file in your app too.

The $routeProvider has  a number of methods that can be utilized depending on your requirements. ‘.when’ accepts a string and an object as parameters. The string relates to the current url and how to react when matched. The object can contain the url for the template and which controller should be used.

”/index/:action’ is an example of a parameter that can be added to a url. In essence they are similar to $_GET[”] in PHP such as ‘?action=’ – See more about this feature in the controller section.

If no routes are matched ‘.otherwise’ can be used to catch and redirect elsewhere.


$routeParams can be utilized to get the additional parameter supplied from the url (and matched in the routing). ‘action’ was the name supplied in the routing and this is the name of the param in this example, though in theory you can use any name you deem fit, just be sure to update your routes accordingly.




Best Practices for SEO

Learn the best practices for seo by following these simple guidelines.



You’ve heard it before, and you’ll hear it again – “Content is King”. Posting high quality content containing targeted keywords is a must, and this must be done regularly. As a general rule, think each post that you write will bring you one unique visitor per month, obviously a targeted post should bring more than one visitor, but it’s a healthy way to think about it.


URL Structure

When posting new content it is imperative that the post has a good URL structure. Using keywords in your URL is a must though you should avoid using words like ‘a’, ‘our’, ‘for’, ‘the’  as they could have a negative impact on rankings. Using fewer words will give more weight to your keywords.

  • Include Keywords.
  • Avoid duplicate words e.g. software/software.php
  • Use ‘-‘ to replace spaces.
  • Avoid words like ‘a’, ‘our’, ‘for’, ‘the’.
    • Try to avoid using anything other than hyphens to separate words in a URL, they are user friendly and also make it clearer to search engine bots.
  • Fewer words the better
  • Keep your URL’s clean (avoid GET variables software.php?random=random)
  • Choose either ‘www.’ or not
    • and are two seperate domains, choose which one you prefer and stick to it. Make sure you have redirects in place to avoid duplicate content issues. The same situation is observed for the trailing slash, ‘’ and ‘’  – Choose one and stick to it.

If creating a blog try to set this up on the same sub-domain to what you want to promote. For example, your main store is on the sub domain ‘www’ ( – don’t create a new sub domain for your new blog unless you have to.



Backlinks are critical to the success of a webpage ranking in Google if done correctly. An organic growth in relevant backlinks to websites with good page rank will boost your chances of ranking highly.

Don’t backlink to spam sites or sites with questionable content. When you do give backlinks, make sure the site has a fair page rank.

Use Google’s Disavow tool to remove backlinks that are affecting your page rank e.g. low PR or spam sites.


Social Media

Activity on social media networks is a ranking factor. Sites that engage with their audience and are seen to have a decent following on the social sites are much more likely to rank better. As well as the ranking factor, posting statuses with links to your newly created content can help push more traffic to your site. Don’t spam though – no-one likes spam.


Page Load Speed

It is claimed that 75% of visitors wouldn’t return to a website if it took longer than 4 seconds to load


What is


What is ‘’ – ‘’ ( and ‘’ are affecting every webmasters website statistics on their Google Anayltics accounts. The sites, whilst not appearing malicious, send bots to your site; affecting your site with false positive visits and increasing bounce rate. Remove them from all your sites statistics using these simple filters.

They can be removed from your Google Analytic’s statistics by following these simple steps.



Log into Analytics and click on Admin – Select Filters


Select New Filter





When creating a new filter, give the filter name a identifiable name to easily recognize it should you need to modify it at a later date.

  • Change the Filter Type to Custom
  • Change the Filter Field to Referral
  • Add the in the Filter Pattern
  • Repeat for


301 Redirect Example

301 Redirects are used to help maintain page rank after switching to a new domain or making changes to website titles. They can be easily setup by making use of the .htaccess file (Learn how to setup Aptana to modify .htaccess files).

redirect 301 /page.html

Using the below code you can redirect search engines to a standard URL format. The problem occurs when users are able to access your site using different domains e.g. with or without the www. prefix.

#Canonical Fixes
RewriteRule ^home(.*)$ / [R=301,L]

#Rewrite WWW
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Minimum Core WordPress CSS

The minimum core WordPress CSS required for your theme is stated below, as defined here. This will ensure that alignment classes added in the WYSIWYG editor will appear on the front-end.


.alignnone {
margin: 5px 20px 20px 0;
div.aligncenter {
display: block;
margin: 5px auto 5px auto;
.alignright {
margin: 5px 0 20px 20px;
.alignleft {
float: left;
margin: 5px 20px 20px 0;
.aligncenter {
display: block;
margin: 5px auto 5px auto;
a img.alignright {
float: right;
margin: 5px 0 20px 20px;
a img.alignnone {
margin: 5px 20px 20px 0;
a img.alignleft {
float: left;
margin: 5px 20px 20px 0;
a img.aligncenter {
display: block;
margin-left: auto;
margin-right: auto
.wp-caption {
background: #fff;
border: 1px solid #f0f0f0;
max-width: 96%; /* Image does not overflow the content area */
padding: 5px 3px 10px;
text-align: center;
.wp-caption.alignnone {
margin: 5px 20px 20px 0;
.wp-caption.alignleft {
margin: 5px 20px 20px 0;
.wp-caption.alignright {
margin: 5px 0 20px 20px;
.wp-caption img {
border: 0 none;
height: auto;
margin: 0;
max-width: 98.5%;
padding: 0;
width: auto;
.wp-caption p.wp-caption-text {
font-size: 11px;
line-height: 17px;
margin: 0;
padding: 0 4px 5px;

Beginners Guide to Keyword Research

Locating the right keywords and then creating great quality content for a website unlocks the greatest source of potential customers online. Ranking well in search engines requires the right keywords to be targeted and to then be included in your website’s content correctly. Finding the right keywords can be a very challenging concept and time consuming, but the benefits of doing this are enormous. There are a number of tools available online to find the right keywords, including Google Adwords and Wordtracker. Wordtracker offers a commercial license, the advantage of this, is that it identifies potential websites that candidate well for a link exchange. Google Adwords is free to use and you can include advanced filters on results for greater manipulation; such as filtering by country, year, broad matches and more.

Search Engine Optimisation ServicesThere are a variety of keyword tools available for users wanting to enhance their site’s SEO capabilities, the most notable is Google’s own Adwords Keyword Tool which is a free to use and can be extremely beneficial if you understand how to use it.

Following the guidance in the image below, try typing your keyword into Google and take note of the amount of results returned. This gives you a good indicator of the amount of competition for a given keyword. Try to find keywords that meet these criteria.


Black Hat SEO

Black hat SEO as opposed to white hat SEO is where website owners try to purposefully trick Google, or another search engine, into thinking their site contains quality content… More often than not this is not the case. Google are constantly updating their search algorithms and penalizing sites that are not providing a good user experience for visitors. Examples of black hat techniques are keyword stuffing, where users with some experience in SEO research search terms that could rank well e.g. keywords with a high search volume, with a low competition, and then write articles that are filled with this keyword. Another example of a black hat technique was the purchasing of links to make your site seem like it had more authority. The recent Panda updates helped stop this from happening and penalizes sites which had undergone such a procedure.

Cloaking is the process of writing content that just a search engine bot would see; this is then styled so that it is invisible to human readers. This is against Google terms and conditions and can lead to a website being penalized and losing ranking altogether!

WordPress Blog Integration for Magento

Setting up a WordPress blog in Magento can be extremely beneficial; by utilizing the advanced blogging capabilities of WordPress, you can help push your store onto Google’s search results page.

Before we begin, it is worth recognizing the possible methods that can be used to add a blog to your Magento site.

  • Third party modules e.g. Fishpig WordPress Integration
  • Setting up a stand alone directory for WordPress not connected to Magento
  • Developing the necessary XML layouts, blocks and controllers to bind WordPress to Magento
  • Using a blogging platform other than WordPress through a module.

The easiest route would be to have a stand alone WordPress directory. Using the WordPress 10 minute install, you can quickly have a WordPress blog setup in no-time. This may not be to everyone’s requirements however, as you would be required to either use a different theme to your store or spend some time developing the WordPress theme to match that of your store. You would also be missing any reference to the dynamic features of your stores theme without more advanced development e.g. products, categories, shopping cart.

A recommended solution for integrating a simple blog would be to use the Fishpig module mentioned previously. There’s a free version (for a single store) or a paid version (£49.99 as of March 2015) both available on Magento CE and EE. The paid for version effectively allows you to setup WordPress MU which effectively allows you to setup multiple blogs on a single install of WordPress – beneficial on a multi-store install of Magento. The benefit of using a plugin, is that you do not need to develop the theme yourself. The WordPress blog will already be setup with your existing store’s theme and includes all the dynamic parts – including navigation, shopping cart, products etc.

Wordpress Integration Magento

The one drawback of using this module is the limited support for WordPress plugins, though some of the most popular plugins have been supported. The installation process is fairly well documented, though if you are experiencing difficulties, feel free to contact me or leave a comment.

Setting up WordPress MU using SSH

Setting up WordPress MU can be tricky, particularly on your first attempt. This post assumes you have already setup the minimum requirements in the wp-config.php and able to connect to your server via SSH.

On one of my first Hostgator shared hosting the ability to setup wildcard sub domains made it incredibly easy to add sub domains onto the WordPress MU sites, however after migrating to a new server i wasn’t able to setup the wildcard sub domains, whether or not this is due to server restrictions or my lack of knowledge I couldn’t say.

In this example my web structure is as follows:


cd into the subdomain

cd sd/subdomain/www/


Use ln -s to create symbolic links to your main install, you can copy the following commands all in one go though be sure to check your web structure and amend accordingly.

ln -s ../../../www/wp-admin/
ln -s ../../../www/wp-content/
ln -s ../../../www/wp-includes/
ln -s ../../../www/index.php
ln -s ../../../www/wp-activate.php
ln -s ../../../www/wp-blog-header.php
ln -s ../../../www/wp-comments-post.php
ln -s ../../../www/wp-cron.php
ln -s ../../../www/wp-config.php
ln -s ../../../www/wp-links-opml.php
ln -s ../../../www/wp-load.php
ln -s ../../../www/wp-login.php
ln -s ../../../www/wp-mail.php
ln -s ../../../www/wp-settings.php
ln -s ../../../www/wp-signup.php
ln -s ../../../www/wp-trackback.php
ln -s ../../../www/xmlrpc.php


I hope this makes some sense, feel free to suggest improvements or better ways to achieve this.