<?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, SEO and other Hobbies &#187; Web Development</title>
	<atom:link href="http://www.gwdesign.net/blog/tag/web-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.gwdesign.net/blog</link>
	<description>Graham Wöbcke : Sydney, Australia - Web and Design Tips plus any opinions I feel I need to express</description>
	<lastBuildDate>Fri, 16 Jul 2010 03:00:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>More ASP Tips</title>
		<link>http://www.gwdesign.net/blog/web/more-asp-tips/</link>
		<comments>http://www.gwdesign.net/blog/web/more-asp-tips/#comments</comments>
		<pubDate>Mon, 10 Sep 2007 02:35:29 +0000</pubDate>
		<dc:creator>Graham</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Classic ASP Code]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.gwdesign.net/blog/?p=490</guid>
		<description><![CDATA[Lately I have needed to perform a lot of redirects from old pages to new pages. Some of these old pages have decent rankings in search engines, so how do I make sure these new pages retain this ranking? By using a HTTP 301 Redirect (HTTP Moved Permanently). Here is how you code a 301 [...]]]></description>
			<content:encoded><![CDATA[<p>Lately I have needed to perform a lot of redirects from old pages to new pages. Some of these old pages have decent rankings in search engines, so how do I make sure these new pages retain this ranking? By using a HTTP 301 Redirect (HTTP Moved Permanently). Here is how you code a 301 redirect in ASP:</p>
<pre><code>
&lt;%
Response.Status="301 Moved Permanently"
Response.AddHeader "Location", "/newer-page.asp"
%&gt;
</code></pre>
</p>
<p>
If you are wanting to redirect to your default page name (index.asp,default.asp etc.), it is a good idea to redirect only to the folder name and leave off the name of the page like:</p>
<pre><code>
&lt;%
Response.Status="301 Moved Permanently"
Response.AddHeader "Location", "/subfolder/"
%&gt;
</code></pre></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gwdesign.net/blog/web/more-asp-tips/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More ASP String Functions</title>
		<link>http://www.gwdesign.net/blog/web/more-asp-string-functions/</link>
		<comments>http://www.gwdesign.net/blog/web/more-asp-string-functions/#comments</comments>
		<pubDate>Sat, 10 Feb 2007 12:13:07 +0000</pubDate>
		<dc:creator>Graham</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Classic ASP Code]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.gwdesign.net/blog/?p=439</guid>
		<description><![CDATA[Continuing my previous post with ASP string functions, here are a few more code snippets The first code snippet is a little function that strips out specified special characters. It basically seeks out any of the characters that exist in the array and removes them all. &#60;% Function StripSpecialChar(inStr) dim sOut,outStr,arrSpecialChar,intCounter arrSpecialChar = Array("%20","&#38;amp;","&#38;","#","+","@") outStr [...]]]></description>
			<content:encoded><![CDATA[<p>Continuing my previous post with ASP string functions, here are a few more code snippets
</p>
<p>The first code snippet is a little function that strips out specified special characters. It basically seeks out any of the characters that exist in the array and removes them all. </p>
<p><pre><code>&lt;%
Function StripSpecialChar(inStr)
	dim sOut,outStr,arrSpecialChar,intCounter
	 arrSpecialChar  = Array("%20","&amp;amp;","&amp;","#","+","@")
	 outStr = inStr
	 intCounter = 0

	 Do Until intCounter = UBOUND(arrSpecialChar)+1
	  sOut = replace(outStr,arrSpecialChar(intCounter)  ,"")
	  intCounter = intCounter + 1
	  outStr = sOut
	 Loop
	 StripSpecialChar = outStr
end Function
%&gt;</code></pre>
</p>
<p>The final snippet is a simple function that will check an array for any occurances of a particular string.</p>
<p><pre><code>&lt;%
Function in_array(element, arr)
  For i=0 To Ubound(arr)
     If Trim(arr(i)) = Trim(element) Then
        in_array = True
        Exit Function
     Else
        in_array = False
     End If 
  Next
End Function

str = "Apple"
colors = Array("Banana","Apple","Orange")

If in_array(str,colors) Then Response.Write str &amp; " is in the array"
Else Response.Write str &amp; " is not in the array"
End If
%&gt;</code></pre>
</p>
<p>I hope you find these functions as useful as I do.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gwdesign.net/blog/web/more-asp-string-functions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Two Useful WordPress Tips With Comments</title>
		<link>http://www.gwdesign.net/blog/web/two-useful-wordpress-tips-with-comments/</link>
		<comments>http://www.gwdesign.net/blog/web/two-useful-wordpress-tips-with-comments/#comments</comments>
		<pubDate>Mon, 11 Dec 2006 12:02:19 +0000</pubDate>
		<dc:creator>Graham</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.gwdesign.net/blog/?p=432</guid>
		<description><![CDATA[If you like to use WordPress, here are three tips for handling your comments in a more effective manner. I strongly recommend you use the tips in conjunction with SpamKarma2, a very effective WordPress plugin for stopping 99% of spam posts. Tip 1: Control The Order Of Your Comments By default, WordPress will display your [...]]]></description>
			<content:encoded><![CDATA[<p>If you like to use WordPress, here are three tips for handling your comments in a more effective manner. I strongly recommend you use the tips in conjunction with SpamKarma2, a very effective WordPress plugin for stopping 99% of spam posts.</p>
<p>
<strong>Tip 1: Control The Order Of Your Comments</strong>
</p>
<p>
By default, WordPress will display your comments in ascending date order. However, if you would like your comments to appear with the most recent first, you will need to make a small but easy change to your theme&#8217;s comments.php file. Here is how to do it:</p>
<ol>
<li>Connect to your webserver and inside the theme&#8217;s folder, search for the file named comments.php and open/edit it</li>
<li>Find this line:
<pre><code>&lt;?php foreach ($comments as $comment) : ?&gt;</code></pre>
</li>
<li>Above that line, add this code:
<pre><code>&lt;?php $comments = array_reverse($comments, true); ?&gt;</code></pre>
</li>
</ol>
<p>
Now your comments will be in descending date order. To revert back to ascending date order, either remove or comment this new line of code.
</p>
<p>
<strong>Tip 2: Prefix Your Comment With A Comment Order Number</strong>
</p>
<p>
Some people like to prefix the comments shown with a comment number. Some themes do this automatically, but if you would like to add this feature to a theme, here are the steps required to do this:</p>
<ol>
<li>Connect to your webserver and inside the theme&#8217;s folder, search for the file named comments.php and open/edit it</li>
<li>Find this line:
<pre><code>&lt;ol class="commentlist"&gt;</code></pre>
</li>
<li>Above that line, add this code:
<pre><code>&lt;?php $count = count($comments); ?&gt;</code></pre>
</li>
<li>Now find this line:
<pre><code>&lt;?php endforeach; /* end for each comment */ ?&gt;</code></pre>
</li>
<li>Above that line, add this code:
<pre><code>&lt;?php $count--; ?&gt;</code></pre>
</li>
<li>Finally, find this line:
<pre><code>&lt;cite&gt;&lt;?php comment_author_link() ?&gt;&lt;/cite&gt; Says:</code></pre>
</li>
<li>Above that line, add this code:
<pre><code>&lt;?php echo $count; ?&gt;)</code></pre>
</li>
</ol>
<p>Now your comments will be prefixed with a number and a bracket eg. 9) &#8212; you can change the ) to any character you like or remove it all together, it&#8217;s your choice.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gwdesign.net/blog/web/two-useful-wordpress-tips-with-comments/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SEO Bootcamp</title>
		<link>http://www.gwdesign.net/blog/seo/seo-bootcamp/</link>
		<comments>http://www.gwdesign.net/blog/seo/seo-bootcamp/#comments</comments>
		<pubDate>Fri, 01 Dec 2006 10:22:51 +0000</pubDate>
		<dc:creator>Graham</dc:creator>
				<category><![CDATA[SEO]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.gwdesign.net/blog/?p=431</guid>
		<description><![CDATA[A quick post. Yesterday, I attended SEO Bootcamp at the Vibe Hotel Conference Rooms in Milsons Point, Sydney. This was a great presentation and I recommend people interested in SEO who live in Sydney attend one of these conferences. A brief summary of the topics covered: Keyword research, hierarchy and selection Copy writing for search [...]]]></description>
			<content:encoded><![CDATA[<p>A quick post. Yesterday, I attended SEO Bootcamp at the Vibe Hotel Conference Rooms in Milsons Point, Sydney. This was a great  presentation and I recommend people interested in SEO who live in Sydney attend one of these conferences.</p>
<p>A brief summary of the topics covered:</p>
<ul>
<li>Keyword research, hierarchy and selection</li>
<li>Copy writing for search engines and content development</li>
<li>Landing pages &#8211; optimisation and management</li>
<li>Tools for tracking and reporting your search activity + success</li>
<li>How to improve your page rank</li>
<li>Linking strategies</li>
</ul>
<p>You can read the <a href="http://www.searchenginebootcamp.com.au/wordpress/index.php/search-engine-bootcamp-2006/12/">SEO Bootcamp Ageneda</a> and see how many useful topics were covered.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gwdesign.net/blog/seo/seo-bootcamp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Basic SEO Part 3 &#8211; Six Quick Tips For Web Developers</title>
		<link>http://www.gwdesign.net/blog/seo/basic-seo-part-3-six-quick-tips-for-web-developers/</link>
		<comments>http://www.gwdesign.net/blog/seo/basic-seo-part-3-six-quick-tips-for-web-developers/#comments</comments>
		<pubDate>Sun, 19 Nov 2006 00:53:56 +0000</pubDate>
		<dc:creator>Graham</dc:creator>
				<category><![CDATA[SEO]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.gwdesign.net/blog/?p=426</guid>
		<description><![CDATA[Let’s continue with Part 3 of basic SEO. In previous posts, I have talked about the top of your HTML page and Google site maps. In this post, I will offer six quick tips on general web development to assist your SEO goals. 1. Always use the standard HTML tags for headings, bold text and [...]]]></description>
			<content:encoded><![CDATA[<p>Let’s continue with Part 3 of basic SEO. In previous posts, I have talked about the top of your HTML page and Google site maps.  In this post, I will offer six quick tips on general web development to assist your SEO goals.</p>
<p><strong>1. Always use the standard HTML tags for headings, bold text and lists.</strong></p>
<p>The HTML has tags for headings, bold text and and ordered/unordered lists and you should always use them. By using CSS, you can practically style them anyway you like.  By using a H1 heading tag for your headings, strong tags for important text and ul, ol and li tags to create lists will help search engines understand what text on that page is a heading or what are the more important terms on that page.</p>
<p>Using our lawn mowing example from the previous post, here is an example of NOT making a heading in a good way for SEO:</p>
<pre><code>
&lt;p style='font-size:16pt; font-weight:bold'&gt;Garden Maintainence Services&lt;/p&gt;
</code></pre>
<p>By applying a CSS style to a paragraph tag that makes text larger and bold doesn&#8217;t tell search engines it is a heading, but rather, it will treat it as though it is a paragraph of normal text because it is a paragraph tag. A much better way would be to define a style for your heading tags (H1, H2, H3, H4, H5 and H6) in your CSS file. The better way to make a heading is this:</p>
<pre><code>
&lt;h1&gt;Garden Maintainence Services&lt;/h1&gt;
</code></pre>
<p><strong>2. Always use ALT text when adding an image.</strong></p>
<p>As search engines can&#8217;t read text inside an image, by adding ALT text to your image tag helps the engines understand more about that image. You can use it to place more keywords and phrases into your page but don&#8217;t keyword stuff the ALT tags as this is frowned upon and can get you blacklisted.</p>
<p>Here is an example of using ALT text inside an image:</p>
<pre><code>
&lt;img src='/images/gardens.gif' width=400 height=300 alt='Garden Maintainence Services'&gt;
</code></pre>
<p><strong>3. Avoid Canonical URL issues and never place session IDs on the URL.</strong></p>
<p>Search engines see http://thelawnman.com.au, http://www.thelawnman.com.au, and http://www.thelawnman.com.au/index.html as three different pages. To correct this, you should always link to the preferred domain and at the root level ie. http://www.thelawnman.com.au/.  You may also wish to use a redirect to point all of your pages to this preferred option. If you have signed up at Google and are using Google Sitemaps and the Webmaster Tools, you can also select your preferred domain that Google uses. We love Google! How good is that.</p>
<p>If you are using sessions, make sure your Session ID (especially if you have a PHP site) is not added as a parameter PHPSESSID to the end a URL on your PHP page eg. PHPSESSID=34467908. This can be extremely problematic for your site&#8217;s search engine ranking. Search engines will see a unique PHPSESSID in the URL every time they visit a page on your site, and in turn think it is a different page each time and even worse, it could be viewed as lots of duplicate content and your site may become banned. Turn off this setting in your PHP.ini file or ask your server administrator to do this for you.</p>
<p><strong>4. Have a unique, meaningful TITLE tag on each and every page.</strong></p>
<p>Unfortunately, this is an area HUGELY NEGLECTED by many web developers. By not having a meaningful title tag, you are reducing the amount of traffic to your site greatly. Each and every page has different text, content and images so why would it not also have a different title? Why use a title of &#8220;untitled-1&#8243; when you can put meaningful words about your page in the title. It is also a bad idea to use one generic title across all of the pages on your site.</p>
<p>So, using our dummy site map from the <a href="http://www.gwdesign.net/blog/?p=277">first SEO article</a>, here are three titles for those three pages on our site:</p>
<p><strong>http://www.thelawnman.com.au/</strong></p>
<pre><code>
&lt;title&gt;Lawn Mowing, Tree Lopping and Garden Maintainence Services in Sydney :: thelawnman.com.au&lt;/title&gt;
</code></pre>
<p><strong>http://www.thelawnman.com.au/work-request.html</strong></p>
<pre><code>
&lt;title&gt;Work Request for Lawn Mowing and Garden Maintainence Services in Sydney :: thelawnman.com.au&lt;/title&gt;
</code></pre>
<p><strong>http://www.thelawnman.com.au/current-work.html</strong></p>
<pre><code>
&lt;title&gt;Current Work Schedule of The Lawn Man's Garden Maintainence Services in Sydney :: thelawnman.com.au&lt;/title&gt;
</code></pre>
<p><strong>5. Do not use &#8220;click here&#8221; or &#8220;read more&#8221; text links unless absolutely necessary.</strong></p>
<p>Unfortunately, this is also an area HUGELY NEGLECTED by many web developers. By not using meaningful text inside links, search engines cannot establish whether the link actually links correctly to the same subject as mentioned the link text.</p>
<p>An example of this is to search for &#8220;click here&#8221; inside Google. You will find the top result is actually for Adobe Acrobat Reader. This is because millions of pages use something similar to this:</p>
<pre><code>
To install the latest version of Acrobat Reader &lt;a href="www.adobe.com/products/acrobat/readstep2.html "&gt;click here&lt;/a&gt;.
</code></pre>
<p>So, it is important to have meaningful text inside your links as well. Let&#8217;s say we wanted to link from the homepage of our lawnman site to the work request page. The best way in which to do this would be:</p>
<pre><code>
If you would like The Lawn Man to work for you, please fill out the &lt;a href="http://www.thelawnman.com.au/work-request.html"&gt;Work Request for Lawn Mowing and Garden Maintainence Services&lt;/a&gt;.
</code></pre>
<p>The link text contains many of the same keywords in the TITLE tag and META data used of the work request page, so the search engines can determine that the link pointing to that page is one they can trust.</p>
<p><strong>6. Where possible, use the W3 Validators on your site.</strong></p>
<p>Your site does not need to be technically perfectly to rank high in the search engines but having a validated HTML page will help ensure that search engines (and browsers) will accurately see your page. Try using the official <A href="http://validator.w3.org/" target="_newWin">W3C Validator</a>. Validating generally identifies areas of your HTML code that is redundant, unnecessary, or not accepted across all browsers. All of which will help make your site more search engine friendly.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gwdesign.net/blog/seo/basic-seo-part-3-six-quick-tips-for-web-developers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
