<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Web Design &#38; Development Talk &#187; General</title>
	<atom:link href="http://www.web-design-talk.co.uk/category/general/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.web-design-talk.co.uk</link>
	<description>Web Design &#38; Development Blog</description>
	<lastBuildDate>Thu, 29 Dec 2011 15:34:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Object Oriented CSS (OOCSS) &#8211; My View</title>
		<link>http://www.web-design-talk.co.uk/447/object-orientated-css-oocss/</link>
		<comments>http://www.web-design-talk.co.uk/447/object-orientated-css-oocss/#comments</comments>
		<pubDate>Thu, 29 Dec 2011 15:34:21 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[web design]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.web-design-talk.co.uk/?p=447</guid>
		<description><![CDATA[After reading an article about OOCSS (Object Oriented CSS) I was left a little numb and confused to be honest. I&#8217;d advise you read the full article before reading what follows. The idea is fairly simple &#8211; write your CSS using a &#8220;bottom up&#8221; approach, as opposed to a &#8220;top down&#8221; approach, treating your elements [...]]]></description>
			<content:encoded><![CDATA[<p>After reading an article about <abbr title="Object Oriented CSS">OOCSS</abbr> (Object Oriented CSS) I was left a little numb and confused to be honest. I&#8217;d advise you <a href="http://coding.smashingmagazine.com/2011/12/12/an-introduction-to-object-oriented-css-oocss/" target="_blank">read the full article</a> before reading what follows.</p>
<p>The idea is fairly simple &#8211; write your <abbr title="Cascading Styles Sheets">CSS</abbr> using a &#8220;bottom up&#8221; approach, as opposed to a &#8220;top down&#8221; approach, treating your elements as &#8220;objects&#8221;, using mainly classes, as opposed to IDs. The idea of this is to make classes more reusable and to encourage a greater css granularity architecture. The overall theory behind OOCSS is something I don&#8217;t dispute in the least, if anything it&#8217;s simply good practice when writing a CSS file.</p>
<p>For me, the whole article borders on the pedantic to the outright pretentious.</p>
<p>Firstly, I&#8217;m not a fan of the name. &#8220;OOCSS&#8221; implies a link to OOP (Object Orientated Programming), which it is not. I can see why they&#8217;ve named it OOCSS as I guess multiple classes could be similar to inheritance, an element on your page as an &#8220;object&#8221;, classes imply reusability etc. As a web developer, who uses OOP I was instantly put on the defensive, thinking &#8220;OOP for CSS, wtf&#8221;. I understand the name is simply a paradigm, but it sends out all the wrong signals for me personally.</p>
<p>Apologies if this article turns into a bit of a rant&#8230;..</p>
<p><span id="more-447"></span></p>
<h2>Descendant CSS Selectors</h2>
<p>OOCSS seems to have a odd rule whereby descendant CSS selectors (E&gt;g. .foo h4) are suddenly not allowed. Instead, to adhere to OOCSS principals you need to split the this into two separate classes and apply both classes within your HTML code:</p>
<pre class="brush: xml; title: ; notranslate">&lt;div class=&quot;button-basic button-skin&quot;&gt;&lt;/div&gt;</pre>
<p>Both methods &#8211; using a descendant selector and two classes &#8211; are perfectly valid for me.</p>
<h2>CSS Class Abstraction</h2>
<p>One of the ideas that I don&#8217;t agree with the fact that the article and whole concept implies that more class abstraction is good. People still learning could read into this idea the wrong way and (worse case scenario) end up with a plethora of abstract classes that produces some awful HTML:</p>
<pre class="brush: xml; title: ; notranslate">&lt;div class=&quot;padding center-element block text-italic floated-right&quot;&gt;&lt;/div&gt;</pre>
<p>I won&#8217;t go into the debate about speed of selectors either, as the article is little one sided here. Giving preference the use of classes over IDs is not a good way to go in my opinion.</p>
<h2>OOCSS Performance Benefits</h2>
<p>Another major selling point of OOCSS is that of site speed &#8211; which is of huge concern to web developers nowadays after recent Google changes, citing page speed as ranking factor. This part of the article is null and void for me as it&#8217;s so obvious. Small style sheets will result in smaller css files that download faster &#8211; that&#8217;s pretty obvious. Although after the CSS file has been gzipped there wouldn&#8217;t be a great deal of real world benefit. Saying all that however, OOCSS is something the majority of good developers do anyway &#8230;.</p>
<h2>OOCSS &#8211; Already Used &#8230;</h2>
<p>For me, OOCSS is an acronym someone has given to a technique they have suddenly realised they use, after comparing it to OOP &#8211; a fancy name if you like. It&#8217;s an acronym I imagine will be very common on CVs.</p>
<p>After reading the article I wondered why it existed in the first place. OOCSS is something any designer/developer worth their salts does by default after a longer enough period of time. One of the biggest sayings when relating to good CSS is &#8220;don&#8217;t use ID selectors for everything&#8221;. It doesn&#8217;t make a great deal of sense when you&#8217;re learning, but as time goes on you&#8217;ll realise that some commonly used IDs could just as well be a class &#8211; whallah, you have yourself the beginning of OOCSS. For instance, in pretty much all my projects I have a class called input-wide that one applied to an input field, makes it longer.</p>
<p>Hell, when I was first learning CSS years ago and ran my (awful, naff) sites through the <a href="http://jigsaw.w3.org/css-validator/" target="_blank">W3C CSS Validator</a> popped up a warning mentioning redundant CSS that could be better served using a class instead of ID &#8211; I never heard one mention of OOCSS then either.</p>
<p>To conclude, I&#8217;m not against OOCSS per se, I&#8217;m against the way it&#8217;s been described in the article as something new and revolutionary. In reality, everyone uses it, unknowingly as it&#8217;s simply a collection of best practices. The article would have a made a lot more sense if it was titled something along the lines of &#8220;CSS Best Practices&#8221;, as that&#8217;s simply what it describes, nothing more or less.</p>
<p>For me this whole area complicates CSS. Personally, I&#8217;ll keep using <a href="http://lessframework.com/" target="_blank">LESS</a> for rapid development of layouts on multiple devices and as a starting point for my CSS &#8211; which is just what I believe a CSS Framework should be &#8211; a starting point, not a long list of &#8220;do&#8217;s and dont&#8217;s&#8221;</p>
<p>I&#8217;m sure some people will totally disagree with me on this whole topic, so I apologise in advance. At the end of the day it&#8217;s a hugely subjective topic <img src='http://www.web-design-talk.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.web-design-talk.co.uk/447/object-orientated-css-oocss/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Appreciating Your Chosen Web Host</title>
		<link>http://www.web-design-talk.co.uk/410/appreciating-your-web-host/</link>
		<comments>http://www.web-design-talk.co.uk/410/appreciating-your-web-host/#comments</comments>
		<pubDate>Sat, 15 Oct 2011 14:29:44 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[LAMP]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[web companies]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.web-design-talk.co.uk/?p=410</guid>
		<description><![CDATA[Sometimes, you have small experiences that really make you appreciate your chosen web host. They leave you glad you spent the time doing your homework, testing out their support, features and generally ensuring everything is easy as possible with them. If it isn&#8217;t easy, then your job will be made all that much harder, unnecessarily. [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes, you have small experiences that really make you appreciate your chosen web host. They leave you glad you spent the time doing your homework, testing out their support, features and generally ensuring everything is easy as possible with them. If it isn&#8217;t easy, then your job will be made all that much harder, unnecessarily.</p>
<p>I experienced such a feeling last week with a client who wanted to use their own web hosting. I had updated a small website to include a blog and gallery, both updateable by the client. This wouldn&#8217;t usually be an issue at all if using my own hosting &#8211; simply upload the files, add in my custom htaccess file for some <a href="http://www.web-design-talk.co.uk/116/seo-friendly-urls-with-mod-rewrite/">mod rewriting</a> goodness and away we go.</p>
<p>However, the host in question was <a href="http://www.1and1.co.uk" rel="nofollow external">1and1.co.uk</a>. Now, I&#8217;ve read <a href="http://www.thespanner.co.uk/2007/08/06/1and1-suck/">some</a> <a href="http://tips.webdesign10.com/web-hosting/why-you-should-never-use-1and1-com-hosting">absolute</a> <a href="http://www.simonjones.info/1and1internet/">horror</a> <a href="http://www.chrisbeach.co.uk/view/tech/avoid_oneandone_internet">stories</a> about this company in the past &#8211; all such experiences seem very typical of a very large company, with their support teams based offshore.</p>
<p>So, back onto uploading the updated site in question. I had expressed initial concerns about the clients current 1and1 hosting package, noting that they&#8217;d most likely need to upgrade with 1and1, even though they were on an intermediate hosting package entitled the &#8220;1and1 Standard package&#8221;. I had also personally been forced to use their support about a year ago, which was hard work to say the least. Moving forward, I carried on and uploaded the site to 1and1&#8242;s servers and then visited site. Instant internal server error 500. Straight away I knew this was the hosting as I had previously given the client a link to a staging area on my preferred web host, that worked flawlessly. I&#8217;m aware 1and1 have some restrictive hosting on their basic packages (which seems to be inherant of such a large company, with thousands of customers in my experience), so I immediately headed towards to the .htaccess file (it&#8217;s essentially a variation of the <a href="http://html5boilerplate.com/">HTML5 Bolierplate template</a> with some of my own magic included, nothing out of the ordinary though) and renamed the htaccess file. Whallah &#8211; the site loaded, thus isolating the issue straight away. Great, I can inform 1and1 and find out what htaccess directives are allowed, it <em>should</em> be a run of the mill support request for any support department.</p>
<p><span id="more-410"></span>However, such a request to 1and1&#8242;s support department wasn&#8217;t easy in the least, in fact it was very challenging. After being on hold for roughly 10 minutes I was answered by one of their offshore support staff, who was quite difficult to understand, yet very polite. All I wanted to know was what, if any, features they support on custom htaccess files, on the clients current hosting package. Simple right?</p>
<p>This is the point things got a little messy unfortunately (yes, so early on in the telephone call). After putting me on hold for a further 5 minutes, the lady came back to telephone to tell me to &#8220;check my htaccess file for misconfigurations&#8221;. I  reiterated my previous statement (as there are no errors) and she told me to &#8220;please hold so she could check more things&#8221;, after saying it is easy to leave typos in htaccess access files (I guess that&#8217;s true, but it wasn&#8217;t the case here). After a further 5 minutes was told to go to a PHP script she had uploaded on the site, that displayed the output of a phpinfo call, that I should &#8220;check&#8221;.</p>
<p>Let&#8217;s take a step back here. I have isolated the error down to a server restriction on the 1and1 end. Their response has been to check my perfectly working htaccess file and to look at the output of a phpinfo call. It should be obvious to a person working on a technical support line that if I&#8217;m not getting an internal server error after removing a htaccess file, then the issue lies with the custom  htaccess file &#8211; it&#8217;s error isolation 101, surely? I explained this yet again to the operator who then suggested I &#8220;remove the htaccess file to prevent misconfigurations&#8221;. At this point I was getting a little impatient, decided to make my excuses and end the call &#8211; as we were getting no where. Granted, the lady was very polite on the phone, but my issue was not getting dealt with at all.</p>
<p>So after a 35 minute phone call, I was still left with a site, through no fault of my own, that wasn&#8217;t working. Not good for me, the client or my general sanity. I decided to call again, in order to get this resolved. I sometimes do this in the hope of speaking to a different, more informed member of staff. Sometimes I get lucky, others I don&#8217;t.</p>
<p>The second time I called I believe I spoke to someone a little more experienced, still in an offshore location though. I had to re explain my issue again (there were no recent calls logged, quite annoying &#8230;), I got equally as illogical replies as before. I was told one &#8220;solution&#8221; (said in the loosest sense here) was to go through each line of the htaccess one by one and keep commenting out lines until I tracked down the issue. The file is over 250 lines long &#8211; no thanks! That is not a solution at all in my books. At this point I gave up and decided to report back to client.</p>
<p>What was a little odd related to the emails that got sent the my client, about 20 minutes after my first call &#8211; my client forwarded these onto me. Here is a copy of paste (the gramatical errors are definately not mine!!!) of the email:</p>
<blockquote><p>This is an update regarding your previous call, abou your site &#8220;**********&#8221; that is showing error 500. When there is an error with a .htaccess file, all pages of the website will display a 500 error indefinitely until the .htaccess file is corrected or removed. As little as a simple spelling mistake or syntax error will cause a 500 error. If the .htaccess file has been edited recently, replace the file with a backup. If no backup is available, try to undo the changes to the file if you can remember what has been altered. If those options are not feasible, you can try commenting lines one by one by placing a pound sign(#) at the beginning of the line to comment it out. Then try to access a page of the site. Continue to add the pound sign to more lines until the 500 error stops which should help you pinpoint which line needs to be corrected.</p></blockquote>
<p><em>(email sent 14 October 2011 15:51:36 GMT, from support@1and1.co.uk)</em></p>
<p>I then got the following email from them re the second call:</p>
<blockquote><p>This is an update regarding your call awhile ago, please refer to our FAQ link below for you to check the php settings on the server. You will need to create a phpinfo.php file using notepad and copy the code then paste it in your phpinfo.php file: How can I check the PHP settings on the server? <a href="http://faq.oneandone.co.uk/server/managed/8.html" rel="external, nofollow">http://faq.oneandone.co.uk/server/managed/8.html</a></p></blockquote>
<p><em>(email sent 14 October 2011 16:42:00 GMT, from support@1and1.co.uk)</em></p>
<p>A little later, the following email came through, again a copy and paste:</p>
<blockquote><p>Please upload the phpinfo file for you to get hold of the list of all settings allowed on our servers. With regard to the .htaccess file, sometimes the problem is with the syntax you encoded. In this regard, we highly advise that you make sure you key in the correct directives in order to prevent further issues.</p></blockquote>
<p><em>(email sent 15 October 2011 06:23:00 GMT, from support@1and1.co.uk)</em></p>
<p>Great, yet more generic statements that don&#8217;t help. We have established several times now that the htaccess file was working correctly on the 1and1 hosting, that the issue was due to the 1and1 servers and that all I wanted to know was what, if any, htaccess directives are allowed/disallowed.</p>
<p>These emails are not helpful to anyone and needless to say, I won&#8217;t be chasing 1and1 up any further about this &#8211; it&#8217;s far too time consuming. Instead (and for the sake of my own sanity) I advised my client to transfer her site.</p>
<p>What is most concerning, apart from the fact 1and1 support have drastically failed to understand my rather basic issue, is that the replies are clearly written without appreciation for none technical people &#8211; everyone doesn&#8217;t know (read: probably doesn&#8217;t <em>want</em> to know) about the technical aspects of PHP settings and htaccess files.</p>
<p>I digres, all that is done now and the site has been uploaded to some quality web hosting where I can use a htaccess file. When I compare the poor level of customer service, the poor technical knowledge they demonstrated and the fact that a simple issue went on for much longer than it should have, to my current web host, the difference is night and day. With my preferred host, everything is so easy, if I need support I can get answered within a few minutes maximum.</p>
<p>At times like these and as a web developer, you really appreciate a good web host and things &#8220;just working&#8221;. However, the major difference between webhosts in my opinion, is flexibility and basic reason in my experience. Support teams/staff who take the time to understand your issue and have flexibility in solving your issue are easier to deal with. For instance, on my preferred hosts I was having a small issue with a php hashing framework, casuing my site to not work correctly. All that was required was quick email stating the problem and a response saying that they have added in a few commands to a custom php.ini file &#8211; the issue was essentially turned into a none issue &#8211; all sorted within 10 minutes (even though this issue was potentially more complicated than my little htaccess problem).</p>
<p>No drama, no drawn out telephone conversations to offshore locations &#8211; just my issue being solved within good time (thanks to Darren from tsohost for this by the way!). Another big benefit highlighted here is having knowledgeable people &#8211; when I stated my issue, they clearly know what they are talking about and clearly are not reading from prompt sheets &#8211; this alone, speeds up support requests significantly. I have personally come to the conclusion that the staff I was speaking to were using prompt sheets &#8211; purely due to the level of answer (or lack of answer) I was provided with.</p>
<p>Honestly, before you ever choose a webhost do yourself a huge favour. Do not look for the cheapest price. Do your research and test out your potential host first. Pay particular attention to quality and speed of support you receive. I couldn&#8217;t go through the above every time I needed a basic support question answering.</p>
<p>The above represent&#8217;s my own, personal opinion and is in accordance with my <a href="http://www.web-design-talk.co.uk/disclaimer/" rel="nofollow">blog disclaimer</a>. It does not represent any company I have ever or currently work for.</p>
<p>&nbsp;</p>
<p>LATE NIGHT UPDATE! I was just about to go to bed and the following email came through, very unhelpful (although very polite) &#8211; I&#8217;m not sure why this issue is such a huge deal? How is a server error out of the scope of a technical support department????? Anyway: the email (copy and pasted again):</p>
<blockquote><p>We deeply apologize for this inconvenience. Error 500 is misconfiguration of script in the .htaccess file. Please check it and we are no longer able to extend our help as this is already out of our scope of support. Again, we understand your frustration and we deeply apologize for the inconvenience.</p></blockquote>
<p><em>(email sent 15 October 2011 21:14:00 GMT, from support@1and1.co.uk)</em></p>
<p>If anyone is interested, I can post by email response to the latter email. But as you&#8217;d imagine, I was less than pleased at the exceptionally poor level of service from 1and1 <img src='http://www.web-design-talk.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.web-design-talk.co.uk/410/appreciating-your-web-host/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>SEO Indexing Services and Why You Don&#8217;t Need Them</title>
		<link>http://www.web-design-talk.co.uk/393/seo-indexing-service-why-you-dont-need-it/</link>
		<comments>http://www.web-design-talk.co.uk/393/seo-indexing-service-why-you-dont-need-it/#comments</comments>
		<pubDate>Sat, 01 Oct 2011 09:15:52 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://www.web-design-talk.co.uk/?p=393</guid>
		<description><![CDATA[SEO indexing is the idea of getting a new site indexed, or included within Google as quickly as possible. However, there are companies who prey on people not in the know, and sell seo indexing as a much bigger service. In reality getting your site indexed is something you can do yourself, if you have [...]]]></description>
			<content:encoded><![CDATA[<p>SEO indexing is the idea of getting a new site indexed, or included within Google as quickly as possible. However, there are companies who prey on people not in the know, and sell seo indexing as a much bigger service. In reality getting your site indexed is something you can do yourself, if you have a spare 15 minutes. Worse still, some companies are changing hundreds of pounds for seo indexing &#8211; it makes my eyes water.</p>
<p><span id="more-393"></span></p>
<h2>SEO indexing &#8211; The (very simple) Process</h2>
<p>To get your new site indexed you&#8217;ll need to do a couple of things:</p>
<ul>
<li>Create a sitemap (or big list of your webpages) at <a href="http://www.xml-sitemaps.com/">XML Sitemaps</a>, name it sitemap.xml and upload to your web server</li>
<li>View the list of ping URLs &#8211; or list of website addresses you can visit directly to notify search engines about your website &#8211; see <a href="http://www.seroundtable.com/archives/013113.html">SEO Ping URLs</a> E.g. for Google, visit http://www.google.com/webmasters/sitemaps/ping?sitemap=http:%3A//www.YOURWEBSITE.co.uk/sitemap.xml</li>
<li>If you get time, create a <a href="http://www.google.com/webmasters/">Google Webmaster Account</a> and add your site there too &#8211; not essential to get your indexed, but very useful in the long run</li>
</ul>
<p>However, you can ignore the above and get your site indexed even easier. In short, get a backlink from a site already included within Google. So if you have a friend who has a website, ask them to link back to you. In all honestly, if you site is simple and is doesn&#8217;t have a huge complicated nested structure, you probably won&#8217;t need a sitemap at all -  a simple backlink will do. Or even easier, simply mention the site within twitter. I experimented the latter using a new ecommerce site with ~300 pages. The single mention of the web address in a tweet got the site fully indexed with 2 days. You can speed things up even further if you get mentioned on a very popular or authoritative site.</p>
<p>That&#8217;s it in a nutshell &#8211; some questionable companies are charging £500 for this! For an easy life, I&#8217;m not going to mention the company name here.</p>
<p>I&#8217;ll go through some of the items included on the list of &#8220;seo indexing services&#8221; that are typically offered:</p>
<ul>
<li>Yahoo.co.uk submission (1-2 minutes)</li>
<li>Submit to Google.co.uk (1-2 minutes)</li>
<li>Create robots.txt &#8211; you don&#8217;t need a robots.txt file to get your site indexed in Google or any other search engine</li>
<li>Create sitemap (couple of minutes at most using <a href="http://www.xml-sitemaps.com/">XML Sitemaps</a></li>
<li>Submission to bing (1-2 minutes, Bing is MIcrosoft&#8217;s own search engine)</li>
<li>Upload sitemap to the latter 3 sites (bit of overlap here, but still, no more than 5 or 6 minutes for all 3)</li>
<li>Verify sitemap in the latter 3 sites. This is a common phrase a lot of the sites I looked at made. I&#8217;m not sure if this means checking the correctness of the actual generated sitemap (which you won&#8217;t need to do if using that online generator) or checking a few days later if your site is included within say, Google (go to Google and search for site:www.YOURSITE.co.uk to check) &#8211; 5 minutes work at most.</li>
</ul>
<h2>Repeat Submissions &#8211; &#8220;The Ultimate Con&#8221;</h2>
<p>There are companies out there who charge hundreds of pounds for this service AND charge for the service on a yearly basis. Yes &#8211; there is a further charge again the following year. You simply do not need this. If you site is relatively small you don&#8217;t need this at all &#8211; maybe get the odd backlink from twitter or facebook to keep Google interested. Or even easier, go to the official <a href="http://www.google.com/addurl/?continue=/addurl%20">Google Add URL</a> site &#8211; that allows you submit your site within in seconds. Additionally, after a year it&#8217;s a very plausable assumption to make that you will have naturally built up a few backlinks and Google will automatically revisiting your site.</p>
<h2>An Example &#8211; web-design-talk.co.uk</h2>
<p>To illustrate how easy it is to get new content included, yourself,  I&#8217;ll use this very blog as example. Whenever I publish a new entry on this site I do the following:</p>
<ul>
<li>Ping my XML Sitemap with Google (see above how to do this)</li>
<li>Post a link to the post from Twitter</li>
<li>Submit the post to digg</li>
<li>Mention the post on my status updates profile on the web designer forum</li>
</ul>
<p>This all takes roughly 5 minutes and gets my site included in Google within a couple of hours &#8211; sometimes faster.</p>
<p>Whenever you see an SEO or Web Company offering something as shady as &#8220;SEO Indexing&#8221; take a big step back and question it. As them why is it needed regularly, why does it cost so much and why a site will backlinks will not suffice &#8211; basically, ask questions about specifically thr steps they will be taking. It&#8217;s one of those grey areas of SEO that companies are only to happy to aggresively market. Worse still, it is aimed highly at people not in the know and therefore marketed to them. E.g. when the sales person asks if you would like your site to be included in Google the customer will instinctively say yes. It&#8217;s highly questionable in my opinion and should be questioned. If you&#8217;re ever unsure, ask on a forum.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.web-design-talk.co.uk/393/seo-indexing-service-why-you-dont-need-it/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>ECommerce Content Source Ordering for Product Detail Pages</title>
		<link>http://www.web-design-talk.co.uk/326/ecommerce-content-source-ordering-for-product-detail-pages/</link>
		<comments>http://www.web-design-talk.co.uk/326/ecommerce-content-source-ordering-for-product-detail-pages/#comments</comments>
		<pubDate>Sat, 03 Sep 2011 19:07:37 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[CRO]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[google analytics]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[web design]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[xHTML]]></category>

		<guid isPermaLink="false">http://www.web-design-talk.co.uk/?p=326</guid>
		<description><![CDATA[Content source ordering or SOC (source ordered content) is the idea that content nearer the top of the raw  HTML source code has greater weight and meaning for search engines. For instance, a paragraph of text right at the top of the HTML source has more meaning than the same passage that may appear in [...]]]></description>
			<content:encoded><![CDATA[<p>Content source ordering or SOC (source ordered content) is the idea that content nearer the top of the raw  HTML source code has greater weight and meaning for search engines. For instance, a paragraph of text right at the top of the HTML source has more meaning than the same passage that may appear in the footer. It is very useful for those all too common generic menus (home, about, contact etc.) that has no SEO benefit at all, yet appears at the top of every page of your site. With SOC and absolute positioning of DOM elements, it is possible to position this HTML at the very bottom of the source code, thus gicing greater weight to your page content.</p>
<p>The latter is not a new idea by any means, but is generally considored to be a positive practice to implement on any site.</p>
<p><span id="more-326"></span></p>
<h2>SOC and Ecommerce</h2>
<p>The effect is compounded on ecommerce sites &#8211; sites that usually have a heavy template footprint. For example, a typical ecommerce site may contain a category listing with child categories in the form of a &#8220;mega drop down menu&#8221;, as they seem to to be coined. This is fine, as such menus do contain a lot of good keyword rich material that will be relevant to your site.</p>
<p>However, I have recently been experimenting a little on an ecommerce site I regularly perform SEO on, that does have a fairly beefy drop down menu. I have been focusing on product pages &#8211; I like to think of these as your most important pages and pages you&#8217;d want people to land on, as it tends to help conversions. In my eyes, any white hat technique to give greater weight and meaning to such pages is a good thing.</p>
<p>For the site in question I edited the source to force the top menu to the very bottom of the page and used absolute positioniong to force the top menu to the top of the screen for the user, when the page is rendered. I performed a similar action for the product description. As a result the important content i.e. the product title and description are now very close to the top of the page within the HTML.</p>
<h2>Further Product Page Optimisations for SEO</h2>
<p>Additionally I made a couple of other minor optimisations that I&#8217;ve noticed some bigger sites are using. At the top of the site in question, there is a company logo &#8211; a link, styled with a background using css. For the product page I amended this to a h1 tag with the product title within the header tag. I then used text-indent to hide this. Further down the page, I replaced the old header one tag (was further down the page previously, next to the product description) with a h2 tag and placed the product strapline within a h3 tag. So, the HTML for my company logo, for a product page is as follows:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;h1&gt;
&lt;a href=&quot;/product-url.html&quot;&gt;My Product Name Here&lt;/a&gt;
&lt;/h1&gt;
</pre>
<p>I&#8217;ve been runing the above for a month now and have noticed the following trends in Google Analytics &#8211; I can&#8217;t be 100% sure this is directly down to the above though:</p>
<ul>
<li>Increased traffic to product detail pages from Google</li>
<li>1.2% increase in sales conversions</li>
</ul>
<p>Over the next month I&#8217;ll be experimenting with replacing the logo with the category name, on my category listing pages too. I&#8217;ll update this post with my findings.</p>
<p>Have you had any similar experiences using the above, or similar?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.web-design-talk.co.uk/326/ecommerce-content-source-ordering-for-product-detail-pages/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Passing Arguments as an Associative Array to a Function</title>
		<link>http://www.web-design-talk.co.uk/266/passing-associative-arrays-functions/</link>
		<comments>http://www.web-design-talk.co.uk/266/passing-associative-arrays-functions/#comments</comments>
		<pubDate>Tue, 04 Jan 2011 20:49:53 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.web-design-talk.co.uk/?p=266</guid>
		<description><![CDATA[Sometimes is it useful and slightlycleaner to pass arguements to a function via an associative array as opposed to a list of variables. There are a variety of methods to achieve this, such as using PHP&#8217;s extract function &#8211; but the below is cleaner in my opinion. Take a sample PHP class: In lines 3 [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes is it useful and slightlycleaner to pass arguements to a function via an <strong>associative array </strong>as opposed to a list of variables. There are a variety of methods to achieve this, such as using PHP&#8217;s <a href="http://uk3.php.net/manual/en/function.extract.php" target="_blank">extract function</a> &#8211; but the below is cleaner in my opinion. Take a sample PHP class:</p>
<pre class="brush: php; title: ; notranslate">
class setOptions {

    var $temp = '/default_temp/';
    var $upload = '/default_upload/';
    var $cache_time = '0';
    var $cache_status = '0';
    var $cache_file = 'users.txt';

    function __construct($user_settings)
    {
        if (is_array($user_settings)) {
            foreach($user_settings as $k=&gt;$v)  {
                $this-&gt;assignSetting($k, $v);
            }
        } else {
            die('Config Error!');
        }
    }

    function assignSetting($name, $value)
    {
        $whitelist = array('temp', 'upload', 'cache_time', 'cache_status', 'cache_file');

        if (in_array($name, $whitelist)) {
            $property = $name;
            $this-&gt;$property = $value;
        }
    }

}
</pre>
<p>In lines 3 &#8211; 6 we set the default values of our settings that are used an our class. We can choose to leave these as they are, or pass the class an array of new setting, to overwrite them.</p>
<p>In line 8 the settings array, as an associative array, is passed to the magic <a href="http://php.net/manual/en/language.oop5.decon.php" target="_blank">construct function</a> so all the settings are available when the class is called. On line 10, we check to ensure that the data passed to the function is actually an array and on line 11 we simply through each key/value of the array.</p>
<p>On each iteration, the assignSetting function is called (line 17). The function takes a setting name and value as it&#8217;s arguements. On line 19 a whitelist of allowed settings is created as an array. Line 20 checks to ensure the setting we are attempting to add is within this whitelist.</p>
<p><span id="more-266"></span></p>
<p>On line 21 we assign the value of the setting &#8211; it is here that the default setting is overwritten. The class would be used as follows:</p>
<pre class="brush: php; title: ; notranslate">
include 'classes/setOptions.php';

/*
Choose the settings to overwrite. You
could overwite a single setting if required
*/
$settings = array(
    'temp' =&gt; '/temp/',
    'upload' =&gt; '/user/upload/',
    'cache_time' =&gt; '432000',
    'cache_file' =&gt; 'my_users.txt',
    'cache_status' =&gt; 5
);

/*
Create new instance of our class
and pass the array of setting(s) in the
constructor
*/
$myObj = new setOptions($settings);
</pre>
<p>It is now possible to use any of the class variables we have just overwritten using the follow method, in any of our functions:</p>
<pre class="brush: php; title: ; notranslate">
function cacheUsers() {
 $cachefile = $this-&gt;temp . $this-&gt;cache_file
 $cachetime = $this-&gt;cache_time;
 if (file_exists($cachefile) &amp;&amp; (time() - $cachetime &lt; filemtime($cachefile)))  {
  // Do something!
 }
}
</pre>
<p>With a little modification, you could make your own classes extend the setOptions class:</p>
<pre class="brush: php; title: ; notranslate">
class myCustomClass extends setOptions {

    function ___constrct($options = array())
    {
       parent::__construct($options);
    }

   function myDebuggingStuff() {
        echo $this-&gt;cache_time;
    }

}
</pre>
<p>and in the controller file:</p>
<pre class="brush: php; title: ; notranslate">
include 'model/setOptions.php';
include 'model/myCustomClass.php';

$settings = array(
    'temp' =&gt; '/temp/',
    'upload' =&gt; '/user/uploads_custom_location_overwritten/',
    'cache_time' =&gt; '4320004534',
    'cache_status' =&gt; 5
);

$myObj = new myCustomClass($settings);
$myObj-&gt;myDebuggingStuff();
// prints '/user/uploads_custom_location_overwritten/'
</pre>
<p>All the source files (with further source code commenting) can be downloaded from &#8211; <a href="http://www.web-design-talk.co.uk/examples/array-settings-blog-post.zip">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.web-design-talk.co.uk/266/passing-associative-arrays-functions/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Detect AJAX Requests using the x-requested-with header and xmlhttprequest</title>
		<link>http://www.web-design-talk.co.uk/197/detect-ajax-requests-using-the-x-requested-with-header-and-xmlhttprequest/</link>
		<comments>http://www.web-design-talk.co.uk/197/detect-ajax-requests-using-the-x-requested-with-header-and-xmlhttprequest/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 15:32:47 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[XAMPP]]></category>

		<guid isPermaLink="false">http://www.web-design-talk.co.uk/?p=197</guid>
		<description><![CDATA[This is a small snippet of code I came across today, it allows a script to display different content based on how it was requested. This method allows your scripts to remain in a single file, handing both AJAX and normal requests &#8211; it avoids ending up with lots of small PHP files in your [...]]]></description>
			<content:encoded><![CDATA[<p>This is a small snippet of code I came across today, it allows a script to display different content based on how it was requested. This method allows your scripts to remain in a single file, handing both AJAX and normal requests &#8211; it avoids ending up with lots of small PHP files in your AJAX folder, that deals with <strong>ajax requests</strong>.Another use would be a page that has 2 web forms, one AJAX and one normal. You could keep the code for this page in a single file. This method is also useful for security purposes, as it would ensure that requests to your AJAX scripts are via AJAX only. It also has uses for writing unobtrusive JavaScript &#8211; maybe ensuring that an AJAX enabled web form would work when javascript is disbaled.</p>
<p>For example, the below code would display different code depending on if the request for the page was made via AJAX or directly via a browser.</p>
<pre class="brush: php; title: ; notranslate">
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) &amp;&amp; strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
    //This is an AJAX request, do AJAX specific stuff
}
else {
    //This is not an AJAX request E.g. display normal page content.
}
</pre>
<p>In some code I was working on today, I saw a neater way of achieving the above, this would be included in your common config file:</p>
<pre class="brush: php; title: ; notranslate">
define('IS_AJAX_REQUEST', isset($_SERVER['HTTP_X_REQUESTED_WITH']) &amp;&amp; strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest');

if(IS_AJAX_REQUEST) {
    //This is an AJAX request, do AJAX specific stuff
}
else {
    //This is not an AJAX request E.g. display normal page content.
}
</pre>
<p>There&#8217;s an HTTP variable set called <strong>HTTP_X_REQUESTED_WITH</strong>, which will is set to &#8216;<strong>XMLHttpRequest</strong>&#8216; if the request method is via AJAX. This is method is untested with JavaScript frameworks other than JQuery, so may not work (but I don&#8217;t see any reason at all why it wouldn&#8217;t!).</p>
<p>It&#8217;s also worth noting that not all web servers include this variable and sometimes omit this specific $_SERVER paramter. Use vardump($_SERVER) to check that the <strong>HTTP_X_REQUESTED_WITH</strong> is present.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.web-design-talk.co.uk/197/detect-ajax-requests-using-the-x-requested-with-header-and-xmlhttprequest/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Prevent Duplicate Content using the Canonical Url Tag</title>
		<link>http://www.web-design-talk.co.uk/164/prevent-duplicate-content-using-the-canonical-url-tag/</link>
		<comments>http://www.web-design-talk.co.uk/164/prevent-duplicate-content-using-the-canonical-url-tag/#comments</comments>
		<pubDate>Sat, 19 Dec 2009 14:34:39 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.web-design-talk.co.uk/?p=164</guid>
		<description><![CDATA[I was recently doing an seo audit of a small ecommerce website. One of the first things I did was to do a &#8216;site:www.domain.com&#8217; in Google. Amazingly, the site in question has approximately 8200 pages indexed in Google. This was quite surprising when the store only sold less than 1500 unique products. The site used [...]]]></description>
			<content:encoded><![CDATA[<p>I was recently doing an seo audit of a small ecommerce website. One of the first things I did was to do a &#8216;site:www.domain.com&#8217; in Google. Amazingly, the site in question has approximately 8200 pages indexed in Google. This was quite surprising when the store only sold less than 1500 unique products. The site used a horrible ecommerce module bolted onto phpnuke and has a horrible url structure, appending lots on unecessary querystring data onto the url.</p>
<p>Whilst looking through the Google results for this site the majority of pages were as follows:</p>
<pre class="brush: xml; title: ; notranslate">
/index.php?tab=123&amp;txtSearch=ALL&amp;List=oasc&amp;Sort=PName%2CPName&amp;CreatedUserID=1&amp;pageindex=40&amp;Language=en-GB
</pre>
<p>The site has an advanced search page, whereby you can sort products using a variety of options such as ascending order, descending order, size, price etc. This is bad for a number reasons, but mainly due to duplicate content (not to mention lower serps ranking, traffic loss and decreased page relevancy) . A page of results in ascending and descending order is essentially the same page, simply a different view of your data &#8211; you can help search engines via using the relatively new <strong>canonical url link tag. </strong></p>
<p>To illustrate I&#8217;ll use an example of a typical category page, whereby you can sort a list of products in ascending and descending order, leaving you with a number of urls as follows:</p>
<pre class="brush: xml; title: ; notranslate">

http://www.shop.com/category.php?catName=Shirts&#038;sortOrder=ASC
</pre>
<p>In this example the part of the querystring creating the duplicate content would be the sortOrder parameter &#8211; as you would want your seperate categories indexed.</p>
<p>The solution is quite simple. In your head tag add the following:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;link rel=&quot;canonical&quot; href=&quot;http://www.shop.com/category.php?catName=Shirts&quot; /&gt;
</pre>
<p>By adding this to your category page you are telling search engines (currently Google, Yahoo, Ask and Bing use this tag) that this page is a copy of http://www.shop.com/category.php?catName=Shirts. Indicators such as Google Pagerank are also transferred to your preferred url.</p>
<p>The <strong>canonical url tag</strong> has many uses and can be used to help with the following issues:</p>
<ul>
<li>Pages that contain session IDs appended to the querystring</li>
<li>Search results pages that append search data to the querystring</li>
<li>Print versions of page</li>
<li>Duplicate content for www. and non-www. pages 0 in your canonical tag you would include your preferred url</li>
<li>Same content contained in multiple categories &#8211; E.g. a product contained in multiple categories on an online store</li>
<li>Removing affiliate ids in the url</li>
<li>Preventing multiple pages of a discussion topic with comments from being indexed E.g. shop.com/post.php?id=123&amp;page=1</li>
</ul>
<p>You can read more about the canonical tag at the official <a title="Specify Your Canonical" href="http://googlewebmastercentral.blogspot.com/2009/02/specify-your-canonical.html" target="_blank">Google Webmaster Blog.</a> <a title="Canonical Link Tag" href="http://www.mattcutts.com/blog/canonical-link-tag/" target="_blank">Matt Cutt&#8217;s also has a 20 minute video</a> explaing the canonical tag in more depth.</p>
<p>The main point to consider is that the canonical tag is simply a hint and not a directive. It is another method to give search engines help in indexing your content. This is very useful when working on existing sites already indexed by Google. However, on new sites bit more planning can help. For instance, in a  previous article I covered <a title="301 redirects for seo using htaccess" href="http://www.web-design-talk.co.uk/20/301-redirects-for-seo-using-htaccess/" target="_blank">301 redirects for seo using htaccess</a> &#8211; how to set a prefferred version of your site via htaccess. On an ecommerce store you could avoid appending search data to the querystring.</p>
<p>EDIT: wordpress and all in one seo plugin generate canonical link tags for blog posts. For example, comments are seperated into multiple pages E.g</p>
<pre class="brush: xml; title: ; notranslate">

http://www.web-design-talk.co.uk/157/how-to-deal-with-difficult-clients-using-split-testing/comment-page-1/#comment-344
</pre>
<p>With the actual content being at:</p>
<pre class="brush: xml; title: ; notranslate">

http://www.web-design-talk.co.uk/157/how-to-deal-with-difficult-clients-using-split-testing
</pre>
<p>If you have a quick look at the source code to the comments page you&#8217;ll see the following has been added:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;pre id=&quot;line34&quot;&gt;&lt;link rel=&quot;canonical&quot; href=&quot;http://www.web-design-talk.co.uk/157/how-to-deal-with-difficult-clients-using-split-testing/&quot; /&gt;
</pre>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.web-design-talk.co.uk/164/prevent-duplicate-content-using-the-canonical-url-tag/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>How to Deal With Difficult Clients Using Split Testing</title>
		<link>http://www.web-design-talk.co.uk/157/how-to-deal-with-difficult-clients-using-split-testing/</link>
		<comments>http://www.web-design-talk.co.uk/157/how-to-deal-with-difficult-clients-using-split-testing/#comments</comments>
		<pubDate>Sat, 12 Dec 2009 20:23:28 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[google analytics]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://www.web-design-talk.co.uk/?p=157</guid>
		<description><![CDATA[Dealing with awkward clients using split testing]]></description>
			<content:encoded><![CDATA[<p>Sometimes you can be in the process of trying to tell a client that their idea simply won&#8217;t work. Be it a flimsey campaign idea of extra design element that you know through experience will not work and produce the desired KPIs for a client project. You can even show the client links, articles and examples of why their idea will fail to deliver results. However, if this is potential or existing client they are likely to go elsewhere, to a company willing to follow their every word without consideration &#8211; I have come across web companies who will do this.</p>
<p>Recently an existing client came to me asking why his site isn&#8217;t showing up when people search for a particular long tail search term. Now, his existing site used a pretty awful content management system that didn&#8217;t even allow him to set his own pages titles or meta descriptions. Furthermore, he was lacking inbound links, which people ranked above him did have. This all sounds simple and straightforward but even after I had explained (in quite clear and non technical langauge may I add) the merits of good SEO and one page content the client simply wouldn&#8217;t accept this as a solution. He had his own short term and less costly solutions &#8211; basically revolving around the the idea me resubmitting his sitemap page to all the major search engines each day. I&#8217;m not debating that submitting a sitemap isn&#8217;t a good idea, because it is. However, the client&#8217;s main KPI for this project was increased site enquiries.</p>
<p>After much discussing this we had both come to a bit of an awkward silence &#8211; not a good thing if you&#8217;ve ever experinced this in client meetings. For some reason I remebered back to my unoversity days where I had read something about <a title="Split Testing " href="http://en.wikipedia.org/wiki/A/B_testing" target="_blank">split testing (or A/B testing)</a> &#8211; where you can turn a negative situation into a positive one.This is quite a delicate situation to be in as it can damage your client relationship quite quickly.</p>
<p>The idea was to use the client&#8217;s idea for a period of time and my idea for a period of time. At the start of this I would install Google Analytics (I was tempted to use Google&#8217;s website optimizer, but decided against it) and let the statisitics do the talking &#8211; as a no one can argue with statistics.</p>
<p>This method has been very useful previously when demonstrating the merits of creating a dedicated landing page for Google Adword campaigns, but can be used anywhere if you&#8217;re willing to a little bit extra.</p>
<p>This method is beneficial for the following reasons:</p>
<ul>
<li>The client&#8217;s idea are being dismissed as wrong (however right you think you are)</li>
<li>You are showing the client that you care enough to demonstrate your ideas</li>
<li>Occassionaly the client will back down as soon as you explain your plan of attack</li>
<li>It prevents those awful awkward silences</li>
<li>You have a real world example to use in your other client meetings</li>
<li>You are speaking the clients language in that you are demonstrating how your actions lead to increased conversions</li>
<li>You are being direct, which I personally think is alwasy a good thing &#8211; as such statistics are often a huge eye opener for clients</li>
<li>If and when the client comes to the same conslusion as you, they won&#8217;t blame you</li>
</ul>
<p>There is always the arguement that the client is the client and that it&#8217;s all business at the end of the day. However, I personally pride myself on doing things properly. Others will say just get on with, do what the client wants and forget about it &#8211; you can only offer your opinion. This is a good point but can still damage your client relationships when they return later on and you need to charge them again. It all depends if you require long or short term client relationships &#8211; as they are definately an investment.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.web-design-talk.co.uk/157/how-to-deal-with-difficult-clients-using-split-testing/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Tracking Twitter Performance Using Google Analytics</title>
		<link>http://www.web-design-talk.co.uk/138/tracking-twitter-performance-using-google-analytics/</link>
		<comments>http://www.web-design-talk.co.uk/138/tracking-twitter-performance-using-google-analytics/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 20:47:38 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[google analytics]]></category>
		<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://www.web-design-talk.co.uk/?p=138</guid>
		<description><![CDATA[If you use the ever popular twitter there&#8217;s a high chance you&#8217;ll be linking to your company webiste or personal blog in your tweets or profile link. As the aim is use twitter as a marketing tool to drive traffic, you can use Google Analytics to track the link you placed the twitter profile &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p>If you use the ever popular <a href="http://www.twitter.com" target="_blank">twitter</a> there&#8217;s a high chance you&#8217;ll be linking to your company webiste or personal blog in your tweets or profile link. As the aim is use twitter as a marketing tool to drive traffic, you can use Google Analytics to track the link you placed the twitter profile &#8211; just like an email campiagn or PPC advert</p>
<p>If you use Twitter as a marketing tool to drive traffic to your site then you should treat it in exactly the same way as you would a newsletter, a <acronym title="Pay Per Click">PPC</acronym> advert or a banner and track each Tweet’s performance beyond simple click data. How many visits do you get, how long do they stay on your site, how deep do they go, what is the bounce rate like and how much revenue do they generate?</p>
<p>The benefit to &#8216;tagging&#8217; this link is that Google Analytics will record more than use basic click data &#8211; you can record a whole host of advanced user data such as how they navigate your site and length of visit. By default Google will track such links, but traffic from services such as bit.ly will be dumped into the direct traffic area of Google Analytics. The steps to get the latter up and running are quite simple:</p>
<p>1: Go to <a title="URL Builder" href="http://www.google.com/support/googleanalytics/bin/answer.py?hl=en&amp;answer=55578" target="_blank">Google&#8217;s URL builder</a> to generate an url . Enter the following information:</p>
<p><strong>Website URL</strong>: your website address<strong> </strong></p>
<p><strong>Campaign Source: </strong>enter a relevant source here to identify your campaign E.g. twitter</p>
<p><strong>Campaign Name: </strong>enter a name used to identify the campaign, this is used to identify the campaign in Google Anlytics E.g. twittertracking</p>
<p>2: Click generate URL and something similar to the following will be created: http://www.web-design-talk.co.uk/<strong>?utm_source=twitter&amp;utm_medium=social&amp;utm_campaign=twittertrack</strong></p>
<p><strong><br />
</strong></p>
<p>3: If posting to twitter you can paste this URL directly in the tweet box, as twitter will automatically shorten this url.</p>
<p>4: After approximately 24 hours data will appear in your analytics account. Simply navigate to Traffic Sources. If you&#8217;ve used the same terms to build the url as above you&#8217;ll see an entry called &#8216;twitter / social&#8217;. You can also view information by navigating to Traffic Sources &gt; Campaigns where you can click the campiagn name (&#8216;twittertrack&#8217; was used in he example above).</p>
<div id="attachment_139" class="wp-caption alignnone" style="width: 766px"><img class="size-full wp-image-139" title="tracking-twitter-traffic" src="http://www.web-design-talk.co.uk/wp-content/uploads/2009/11/tracking-twitter-traffic.jpg" alt="Google Analytics Once Tracking is Installed" width="756" height="507" /><p class="wp-caption-text">Google Analytics Once Tracking is Installed</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.web-design-talk.co.uk/138/tracking-twitter-performance-using-google-analytics/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Getting htaccess Mod-rewrite rules working locally with XAMPP</title>
		<link>http://www.web-design-talk.co.uk/126/getting-htaccess-mod-rewrite-working-locally-with-xampp/</link>
		<comments>http://www.web-design-talk.co.uk/126/getting-htaccess-mod-rewrite-working-locally-with-xampp/#comments</comments>
		<pubDate>Tue, 15 Sep 2009 00:28:46 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[LAMP]]></category>
		<category><![CDATA[XAMPP]]></category>
		<category><![CDATA[htaccess file]]></category>
		<category><![CDATA[relative path]]></category>
		<category><![CDATA[rewrite rule]]></category>

		<guid isPermaLink="false">http://www.web-design-talk.co.uk/?p=126</guid>
		<description><![CDATA[After spending a whole 2 hours of my life trying to get Apache mod-rewrite rules working with XAMPP on a local computer, I thought I&#8217;d share my results as I seemingly tried everything. The problem, I have a simple mod-rewrite rule in my htaccess file. When I upload this to my online web host everything [...]]]></description>
			<content:encoded><![CDATA[<p>After spending a whole 2 hours of my life trying to get Apache mod-rewrite rules working with <a href="http://www.apachefriends.org/en/xampp.html" target="_blank">XAMPP</a> on a local computer, I thought I&#8217;d share my results as I seemingly tried everything. The problem, I have a simple mod-rewrite rule in my htaccess file. When I upload this to my online web host everything is fine &#8211; the working htaccess file  for my online host:</p>
<pre class="brush: jscript; title: ; notranslate">
RewriteBase /
RewriteEngine on
RewriteRule amnesia/resetpass(.*) recover-password.php$1 [PT]
</pre>
<p>So typing in <code>www.domain.com/amnesia/resetpass</code> does a simple re-write to <code>www.domain.com/recover-password.php</code>, without the user ever knowing. All is fine. However, when I treid to get this seemingly simple rule to work with XAMPP I ran into problems, getting 404 and 500 responses from the server &#8211; obviously quite a pain as this essentially means I can&#8217;t test the site using my own web server (E.g. localhost). The site hosted from my computer via the normal setup E.g. xampp/htdocs/mysite. I&#8217;ll jump straight to the solution and then explain exactly what things were changed &#8211; the working htaccess file is below:</p>
<pre class="brush: jscript; title: ; notranslate">
RewriteEngine on
RewriteBase /mysite
options +FollowSymLinks
RewriteRule amnesia/resetpass(.*) recover-password.php$1 [PT]
</pre>
<p>Firstly, the extra line that uses the <code>+FollowSymLinks</code> directive was added. To explain this I&#8217;ll quote straught from the <a href="http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html" target="_blank">Apache documentation</a>:</p>
<blockquote><p>To enable the rewriting engine           for per-directory configuration files, you need to set           &#8220;<code>RewriteEngine On</code>&#8221; in these files           <strong>and</strong> &#8220;<code>Options           FollowSymLinks</code>&#8221; must be enabled. If your           administrator has disabled override of           <code>FollowSymLinks</code> for a user&#8217;s directory, then           you cannot use the rewriting engine. This restriction is           needed for security reasons.</p></blockquote>
<p>The re-write base has been changed to the relative path of the website directory. To finish up, open the http.conf file (the default settings for XAMPP, that get overwritten with you .htaccess file rules on a directory basis), located by default at C:\xampp\apache\conf\http.conf. Find all occurances of <code>AllowOverride None</code> and change it to <code>AllowOverride All</code>. After restarting XAMPP everythign should work. In a nutshell changing the AllowOverride directive in the http.conf file decalres which directives in .htaccess files can override directives from httpd.conf, this is <a href="http://vr-zone.com/manual/en/mod/core.html#allowoverride" target="_self">discussed in more dept over here</a>, but basically by having this directive set to None, you&#8217;re stopping individual htaccess files from working locally.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.web-design-talk.co.uk/126/getting-htaccess-mod-rewrite-working-locally-with-xampp/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

