<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>Robin Parduez | Blog » wordpress</title>
	
	<link>http://rpardz.com/blog</link>
	<description>Front-end Development Tips &amp; Ramblings</description>
	<lastBuildDate>Wed, 30 Nov 2011 19:12:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		
<cloud domain="rpardz.com" port="80" path="/blog/?rsscloud=notify" registerProcedure="" protocol="http-post" />
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/robinparduez/blog/wordpress" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="robinparduez/blog/wordpress" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://rpardz.com/blog/?pushpress=hub" /><item>
		<title>Load Social Sharing Buttons via Ajax &amp; jQuery</title>
		<link>http://rpardz.com/blog/load-social-buttons-ajax-jquery/</link>
		<comments>http://rpardz.com/blog/load-social-buttons-ajax-jquery/#comments</comments>
		<pubDate>Wed, 19 Oct 2011 13:10:22 +0000</pubDate>
		<dc:creator>Robin Parduez</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[web design]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://rpardz.com/blog/?p=1360</guid>
		<description><![CDATA[I&#8217;ve recently been doing a lot of testing to improve page load times using various different techniques. However, I&#8217;ve been finding on my own sites and when I visit others, that social media buttons often cause a lot latency on page loading. When it first launched, there were a lot of complaints about the Google+ [...]<p><hr />
<a href="http://rpardz.com/blog/load-social-buttons-ajax-jquery/">Load Social Sharing Buttons via Ajax &#038; jQuery</a> &#124; Robin Parduez. All Rights Reserved. &copy; 2010 &#8211; 2011.</p>
]]></description>
			<content:encoded><![CDATA[<div class="cols cols2">
<div class="col">
<p>I&#8217;ve recently been doing a lot of testing to improve page load times using various different techniques. However, I&#8217;ve been finding on my own sites and when I visit others, that social media buttons often cause a lot latency on page loading. When it first launched, there were <a href="http://www.seroundtable.com/google-plus-one-slow-13758.html" rel="external">a lot of complaints</a> about the Google+ button slowing down pages significantly. Some SEOs even claimed a drop in rankings, although it&#8217;s difficult to verify this. <em>It&#8217;s worth noting that Google released an updated version of the button which does load faster</em>.</p>
<p>In the past I&#8217;ve covered Google&#8217;s take on <a href="http://rpardz.com/blog/gzip-compression-techniques-better-page-speeds/" rel="external">Page Speed and search rankings</a>, and whether it is becoming a more important feature of the algorithm remains to be seen. Speeding up page load times is good for users, and with rich-media and other bandwidth intensive features on websites continuing to increase, any <em>SEO-friendly</em> way to speed up your pages is a good thing.</p>
</div>
<div class="col">
<p>Like many other website owners, I have added social interaction buttons to my blog posts, but I have never been happy with the extra lag this causes on page loads.</p>
<p>There are several methods being used by various sites that delay the loading of the social buttons until needed. This can be via the lazy loading technique or by using Ajax to call in the buttons when needed. With this in mind, I have worked on my own solution which I&#8217;m going to share with you today.</p>
<p>The following method uses the jQuery framework, and loads the social buttons using an Ajax request when a user hovers over the buttons with their mouse. I have also added a click function for tablets and smartphones, as a mouse hover event is pretty useless on such devices.</p>
</div>
</div>
<p><strong><a href="http://rpardz.com/demos/ajax-social-buttons/" rel="external">View Demo &rarr;</a></strong> <strong><a href="http://rpardz.com/demos/ajax-social-buttons/ajax-social-buttons.zip">Download Source Code &rarr;</a></strong></p>
<h2>How To Guide</h2>
<p><strong>New Improved Code based on feedback in the comments: 30th November 2011</strong></p>
<ol>
<li>Add the following JavaScript code to the HEAD section of your page:
<pre>&lt;script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"&gt;&lt;/script&gt;
&lt;script&gt;
$(document).ready(function(){
&nbsp;&nbsp;$('#share').bind('click mouseover', function(){
&nbsp;&nbsp;$('#share').html('&lt;img src="http://www.example.com/ajax-share-loader.gif"&gt;');
&nbsp;&nbsp;$('#share').load("http://www.example.com/social-button-loading.html");
&nbsp;&nbsp;$('#share').unbind('click mouseover');
&nbsp;});
});
&lt;/script&gt;</pre>
</li>
<li>In your page, add a DIV that contains images of the social buttons as follows (this block will be replaced with the live social buttons when the user hovers over the buttons or clicks for touch devices):
<pre>&lt;div id="share"&gt;
&lt;ul&gt;
&nbsp;&nbsp;&lt;li&gt;&lt;img src="http://www.example.com/tweet-share-button.png" alt=""&gt;&amp;nbsp;&lt;/li&gt;
&nbsp;&nbsp;&lt;li&gt;&lt;img src="http://www.example.com/gplus-share-button.png" alt=""&gt;&amp;nbsp;&lt;/li&gt;
&nbsp;&nbsp;&lt;li&gt;&lt;img src="http://www.example.com/linkedin-share-button.png" alt=""&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</pre>
</li>
<li>Finally, create an external file that contains the live social buttons that will replace the above button images. Save the file as <code>social-button-loading.html</code> and save it in the root for your site, I.e. <code>www.example.com/social-button-loading.html</code>. This external file should look as follows:
<pre>&lt;ul&gt;
&nbsp;&nbsp;&lt;li&gt;&lt;script src="http://platform.twitter.com/widgets.js"&gt;&lt;/script&gt;&lt;a href="https://twitter.com/share" class="twitter-share-button" data-count="horizontal"&gt; &lt;/a&gt;&lt;/li&gt;
&nbsp;&nbsp;&lt;li&gt;&lt;script src="https://apis.google.com/js/plusone.js"&gt;&lt;/script&gt;&lt;g:plusone size="medium"&gt;&lt;/g:plusone&gt;&lt;/li&gt;
&nbsp;&nbsp;&lt;li&gt;&lt;script src="http://platform.linkedin.com/in.js"&gt;&lt;/script&gt;&lt;script type="IN/Share" data-counter="right"&gt;&lt;/script&gt;&lt;/li&gt;
&lt;/ul&gt;</pre>
</li>
</ol>
<div class="cols cols2">
<div class="col">
<p>I hope you find this useful, and I&#8217;d love to hear what impact this has on page load times for you, so please drop me some feedback in the comments below.</p>
</div>
<div class="col">
<p>Feel free to tweak the code and extend the functionality if you find other uses for it. I&#8217;m keenly interested in how this impacts on load times and overall SEO health for websites, so please share your results.</p>
</div>
</div>
<p><hr />
<a href="http://rpardz.com/blog/load-social-buttons-ajax-jquery/">Load Social Sharing Buttons via Ajax &#038; jQuery</a> &#124; Robin Parduez. All Rights Reserved. &copy; 2010 &#8211; 2011.</p>
]]></content:encoded>
			<wfw:commentRss>http://rpardz.com/blog/load-social-buttons-ajax-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SimplePie &amp; jQuery Flickr Photostream</title>
		<link>http://rpardz.com/blog/simplepie-jquery-flickr-photostream/</link>
		<comments>http://rpardz.com/blog/simplepie-jquery-flickr-photostream/#comments</comments>
		<pubDate>Mon, 05 Sep 2011 14:10:29 +0000</pubDate>
		<dc:creator>Robin Parduez</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[web design]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://rpardz.com/blog/?p=1173</guid>
		<description><![CDATA[If you want to display a number of photos on your website, jQuery Infinite Carousel is a very good option. This carousel works really well when you have a list of images on your page, but it threw up a number of problems when calling images dynamically on page load (I.e. your latest Flickr Photostream). [...]<p><hr />
<a href="http://rpardz.com/blog/simplepie-jquery-flickr-photostream/">SimplePie &amp; jQuery Flickr Photostream</a> &#124; Robin Parduez. All Rights Reserved. &copy; 2010 &#8211; 2011.</p>
]]></description>
			<content:encoded><![CDATA[<div class="cols cols2">
<div class="col first">
<p>If you want to display a number of photos on your website, <a href="http://jqueryfordesigners.com/jquery-infinite-carousel/" rel="external">jQuery Infinite Carousel</a> is a very good option. This carousel works really well when you have a list of images on your page, but it threw up a number of problems when calling images dynamically on page load (I.e. your latest Flickr Photostream).</p>
<p>After making some of my own tweaks, and combining the carousel with SimplePie RSS feed parsing, I&#8217;ve now got a very nice carousel slider that works well across most (modern) browsers.</p>
<p>The following code uses SimplePie to parse the Flickr feed, cache the images into a folder, and then dynamically pull the images into the HTML on page load.</p>
</div>
<div class="col">
<p>I also setup a <a href="http://brightscape.net/blog/cronjob-auto-update-rss-cache/">cronjob</a> to automatically update the cache on a weekly basis (I don&#8217;t update my Flickr account anymore than that).</p>
<p>This fixed the issue with the carousel and sped up page loads because the images are called from a cache folder rather than being downloaded each time from the Flickr API.</p>
<p>It&#8217;s important that the cronjob is in place; otherwise SimplePie will parse the Flickr feed on each load (or however often you set the cache to expire). I covered this in a previous post regarding <a href="http://brightscape.net/blog/simplepie-parse-rss-atom-feeds/">parsing of Google Reader shared items</a>.</p>
<p><img src="http://rpardz.com/blog/wp-content/uploads/2011/09/carousel-image-05-09-2011-300x81.jpg" alt="jQuery Carousel" title="jQuery Carousel" width="300" height="81" class="imgright" /><br />
<a href="http://rpardz.com/about/">See demo here &rarr;</a></p>
</div>
</div>
<h3>How to do it</h3>
<p>1. Download carousel.js from <a href="http://rpardz.com/downloads/carousel.js">here</a> and upload to a folder on your server (I.e. www.example.com/js/carousel.js)</p>
<p>2. Download SimplePie <a href="http://simplepie.org/downloads/?download" rel="external">here</a> and follow the instructions for installing SimplePie on your server.</p>
<p>3. Create a PHP page made up of the following elements (I&#8217;ve commented within the code with some specific instructions) and upload it to your server:</p>
<h4>PHP: Place this code at start of HTML page</h4>
<pre>&lt;?php
// Change the path below to the location of simplepie.inc on your server
require '/home/username/public_html/simplepie.inc';

// Change the URL below to the feed URL for your Flickr Photostream or a specific set
$url = 'http://api.flickr.com/services/feeds/photoset.gne?set=72157621912224879&amp;nsid=39505387@N02&amp;lang=en-us';
$feed = new SimplePie();
$feed-&gt;set_feed_url($url);

// This allows the cronjob to handle image caching rather than slow page loads as SimplePie parses the feed each time
$feed-&gt;set_cache_duration(999999999);
$feed-&gt;set_timeout(-1);

// Change the location below to where you have placed your cache folder and CHMOD the cache folder to 755 or 777
$feed-&gt;set_cache_location($_SERVER['DOCUMENT_ROOT'] . '/folder/cache');
$feed-&gt;init();

$feed-&gt;handle_content_type();

function image_from_description($data) {
  preg_match_all('/&lt;img src="([^"]*)"([^&gt;]*)&gt;/i', $data, $matches);
  return $matches[1][0];
  }

  function select_image($img, $size) {
    $img = explode('/', $img);
    $filename = array_pop($img);

    $s = array(
    '_s.', // square
    '_t.', // thumb
    '_m.', // small
    '.',   // medium
    '_b.'  // large
    );

 $img[] = preg_replace('/(_(s|t|m|b))?\./i', $s[$size], $filename);
 return implode('/', $img);
 }
?&gt;</pre>
<h4>HTML/PHP: The rest of the HTML page looks like this</h4>
<pre>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"&gt;
&lt;head&gt;
  &lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /&gt;
  &lt;title&gt;SimplePie and Infinite Carousel Example&lt;/title&gt;
  &lt;script src="http://www.example.com/css/style.css" type="text/css"&gt;&lt;/script&gt;
  &lt;script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"&gt;&lt;/script&gt;
  &lt;script src="http://www.example.com/js/carousel.js" type="text/javascript"&gt;&lt;/script&gt;
  &lt;script type="text/javascript"&gt;
  $(document).ready(function(){$('.infiniteCarousel').infiniteCarousel();});
  &lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;h1&gt;SimplePie and Infinite Carousel Example&lt;/h1&gt;
  &lt;div class="infiniteCarousel"&gt;
  &lt;div id="flickrgallery"&gt;
  &lt;ul&gt;
  &lt;?php foreach ($feed-&gt;get_items() as $item): ?&gt;
  &lt;li&gt;&lt;?php
    if ($enclosure = $item-&gt;get_enclosure()) {
    $img = image_from_description($item-&gt;get_description());

/* Choose image size you want to link to (full_url) and display in carousel (thumb_url)
    $full_url = select_image($img, 3);
    $thumb_url = select_image($img, 0);
      echo '&lt;a href="' . $full_url . '" title="' . $enclosure-&gt;get_title() . '"&gt;&lt;img src="' . $thumb_url . '" alt=" " /&gt;&lt;/a&gt;'."\n";
    }
  ?&gt;&lt;/li&gt;
  &lt;?php endforeach; ?&gt;
  &lt;/ul&gt;
  &lt;/div&gt;
  &lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<h4>CSS: Create an external stylesheet like this</h4>
<pre>.infiniteCarousel {
	width:533px;
	position:relative
}
.infiniteCarousel #flickrgallery {
  /* .infiniteCarousel width - (.wrapper margin-left +
  .wrapper margin-right) */
  width:465px;
  overflow:auto;
  height:110px;
  margin:0 34px;
  position:absolute;
  top:0
}
.infiniteCarousel ul a img {
  border:5px solid #fff;
  -moz-border-radius:5px;
  -webkit-border-radius:5px;
  border-radius:5px
}
.infiniteCarousel #flickrgallery ul {
  width:840px;
  list-style-image:none;
  list-style-position:outside;
  list-style-type:none;
  margin:0;
  padding:0;
  position:absolute;
  top:0
}
.infiniteCarousel ul li {
  display:block;
  float:left;
  padding:0 10px 0 0;
  height:85px;
  width:85px
}
.infiniteCarousel ul li img {
  -moz-transition:border-color 400ms;
  -webkit-transition:border-color 400ms;
  transition:border-color 400ms;
}
.infiniteCarousel ul:hover li img {
  border-color:#fff
}
.infiniteCarousel ul:hover li:hover img {
  border-color:#fff
}
.infiniteCarousel ul li a img {
  display:block
}
.infiniteCarousel .arrowflickr {
  display:block;
  height:85px;
  width:30px;
  /* Add images for forward/back arrows &amp; use negative text-indent 
  to hide arrow characters - uncomment CSS below as necessary */
  /*background:url("http://www.yourwebsite.com/images/arrows.png") no-repeat;
  text-indent:-9999px;*/
  position:absolute;
  top:0;
  cursor:pointer;
  outline:0;
  border:0
}
.infiniteCarousel .forward {
  background-position:-830px -1020px;
  right:0
}
.infiniteCarousel .back {
  background-position:-830px -1128px;
  left:0
}
.infiniteCarousel .forward:hover, 
.infiniteCarousel .back:hover {
  background-color:#fff
}</pre>
<p>4. Create the following cronjob PHP file which will tell SimplePie to parse the feed at the time(s) you specify (<a href="http://brightscape.net/blog/cronjob-auto-update-rss-cache/">For a discussion of cronjob see previous post</a>):</p>
<pre>&lt;?php
	// Change the path below to the location of simplepie.inc on your server
	require '/home/folder/public_html/simplepie.inc';

	// Change the URL below to the feed URL for your Flickr Photostream or a specific set
	$url = 'http://api.flickr.com/services/feeds/photoset.gne?set=72157621912224879&amp;nsid=39505387@N02&amp;lang=en-us';
	$feed = new SimplePie();
	$feed-&gt;set_feed_url($url);

	// Tells SimplePie to update cache every time PHP file is loaded. Cronjob handles specific times that this page is loaded
	$feed-&gt;set_cache_duration(0);
	$feed-&gt;set_timeout(5);

	// Change the location below to where you have placed your cache folder and CHMOD the cache folder to 755 or 777
	$feed-&gt;set_cache_location($_SERVER['DOCUMENT_ROOT'] . '/folder/cache');
	$feed-&gt;init();
	$feed-&gt;handle_content_type();
	function image_from_description($data) {
    preg_match_all('/&lt;img src="([^"]*)"([^&gt;]*)&gt;/i', $data, $matches);
    return $matches[1][0];
	}
	function select_image($img, $size) {
    $img = explode('/', $img);
    $filename = array_pop($img); 
    $s = array(
        '_s.', // square
        '_t.', // thumb
        '_m.', // small
        '.',   // medium
        '_b.'  // large
    );
    $img[] = preg_replace('/(_(s|t|m|b))?\./i', $s[$size], $filename);
    return implode('/', $img);
	}
?&gt;</pre>
<p>5. Upload PHP file to your server and setup a cronjob to automatically load the file at set time(s).</p>
<p><hr />
<a href="http://rpardz.com/blog/simplepie-jquery-flickr-photostream/">SimplePie &amp; jQuery Flickr Photostream</a> &#124; Robin Parduez. All Rights Reserved. &copy; 2010 &#8211; 2011.</p>
]]></content:encoded>
			<wfw:commentRss>http://rpardz.com/blog/simplepie-jquery-flickr-photostream/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress SEO Tweaks Without Plugins</title>
		<link>http://rpardz.com/blog/wordpress-seo-tweaks-without-plugins/</link>
		<comments>http://rpardz.com/blog/wordpress-seo-tweaks-without-plugins/#comments</comments>
		<pubDate>Fri, 19 Aug 2011 15:00:38 +0000</pubDate>
		<dc:creator>Robin Parduez</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[web design]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://rpardz.com/blog/?p=1063</guid>
		<description><![CDATA[If possible I like to tweak WordPress installs and avoid adding extraneous plugins. Generally the more plugins you have, the slower your WordPress site loads, and you can have compatibility issues when you upgrade. One area for consideration is duplicate content, and there are a number of excellent plugins available for handling duplicate content issues. [...]<p><hr />
<a href="http://rpardz.com/blog/wordpress-seo-tweaks-without-plugins/">WordPress SEO Tweaks Without Plugins</a> &#124; Robin Parduez. All Rights Reserved. &copy; 2010 &#8211; 2011.</p>
]]></description>
			<content:encoded><![CDATA[<div class="cols2 cols">
<div class="col">
<p>If possible I like to tweak WordPress installs and avoid adding extraneous plugins. Generally the more plugins you have, the slower your WordPress site loads, and you can have compatibility issues when you upgrade.</p>
<p>One area for consideration is duplicate content, and there are a number of excellent plugins available for handling duplicate content issues. <a href="https://wordpress.org/extend/plugins/all-in-one-seo-pack/" rel="external">All in One SEO Pack</a> and <a href="http://yoast.com/wordpress/seo/" rel="external">Joost de Valk&#8217;s WordPress SEO Plugin</a> are very good, however, for my personal requirements both these plugins add a lot of unnecessary functionality.</p>
<p>If you prefer full control over your WordPress source code, by making a few slight tweaks you can handle an SEO duplicate content issue using the Meta Robots tag and have more control over page titles. If you are new to SEO or the Meta Robots tag, you can read more about this element <a href="http://googlewebmastercentral.blogspot.com/2007/03/using-robots-meta-tag.html" rel="external">here</a>.</p>
<p>Basically, I prefer to <code>noindex,follow</code> category (<code>is_archive()</code>), tag (<code>is_tag()</code>), search (<code>is_search()</code>) and pagination pages (<code>is_paged()</code>). This enables search engines to crawl the pages for links which are subsequently followed. Therefore, the blog homepage and individual posts are indexed as normal, but duplicate content issues with category and tag pages are avoided. Also other unnecessary pages that you wouldn&#8217;t want indexed and returned in search results are <code>noindex,follow</code>.</p>
<h2>Meta Robots Tag</h2>
<p>The code for enabling this feature is as follows, and needs to be included in your header.php file which can be found in your WordPress admin panel under <strong>Appearance &gt; Editor &gt; header.php</strong>.</p>
<pre>
&lt;?php if ( is_tag() ) {
    echo "&lt;meta name=\"robots\" content=\"noindex,follow\"&gt;";
    } elseif ( is_archive() ) {
    echo "&lt;meta name=\"robots\" content=\"noindex,follow\"&gt;";
    } elseif ( is_search() ) {
    echo "&lt;meta name=\"robots\" content=\"noindex,follow\"&gt;";
    } elseif ( is_paged() ) {
    echo "&lt;meta name=\"robots\" content=\"noindex,follow\"&gt;";
    } else {
    echo "&lt;meta name=\"robots\" content=\"index,follow\"&gt;";
    }
?&gt;
</pre>
<p>You may choose to tweak the above code to enable indexing of category pages (<code>is_archive()</code>) for example. To do this, you would simply delete the line:</p>
<pre>
elseif ( is_archive() ) {
    echo "&lt;meta name=\"robots\" content=\"noindex,follow\"&gt;";
    }
</pre>
</div>
<div class="col">
<h2>Title Tag</h2>
<p>Another area for consideration is the page title. Again, there are a lot of plugins that make it easy to control titles for different pages. However, if you prefer manual control, you can add the following code to your header.php file which can be found in your WordPress admin panel under <strong>Appearance &gt; Editor &gt; header.php</strong>.</p>
<pre>
&lt;title&gt;
    &lt;?php wp_title(''); ?&gt;&lt;?php if(wp_title('', false)) {
      echo ' | '; } ?&gt;&lt;?php bloginfo('name'); if(is_home()) {
      echo ' | '; bloginfo('description'); }
    ?&gt;
&lt;/title&gt;
</pre>
<p>The above code basically includes the blog homepage title at the beginning of the title tag on the homepage, and includes the description taken from <strong>Settings &gt; General &gt; Tagline</strong>. On individual blog post pages, the post title is included on the left&#8211;hand side of the title tag, and the blog name is moved to the right&#8211;side of the title.</p>
<h3>Title Examples</h3>
<p>Homepage:<br />
<strong>Robin Parduez | Blog | Front-end Development Tips &amp; Ramblings</strong></p>
<p>Blog post:<br />
<strong>WordPress SEO Tweaks Without Plugins | Robin Parduez | Blog</strong></p>
<h3>Disclaimer</h3>
<p><strong>Please test any code changes that you make to your WordPress installation.</strong> Test your blog to ensure the meta robots <code>noindex,follow</code> tag is <strong>only</strong> applied to category, tag, search, pagination pages and <code>index,follow</code> is applied to the blog homepage and individual post pages. Be sure to test your page titles as well, they should follow the pattern shown in the examples above.</p>
<p>There are of course many more features available if you use an SEO plugin, and for some users a plugin will be suitable. You may also wish to tweak the code examples above to meet your needs.</p>
<p>If you have any comments or suggestions please feel free to give some feedback in the comments section below.</p>
</div>
</div>
<p><hr />
<a href="http://rpardz.com/blog/wordpress-seo-tweaks-without-plugins/">WordPress SEO Tweaks Without Plugins</a> &#124; Robin Parduez. All Rights Reserved. &copy; 2010 &#8211; 2011.</p>
]]></content:encoded>
			<wfw:commentRss>http://rpardz.com/blog/wordpress-seo-tweaks-without-plugins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GZIP HTML Content on Shared Hosting</title>
		<link>http://rpardz.com/blog/gzip-html-content-shared-hosting/</link>
		<comments>http://rpardz.com/blog/gzip-html-content-shared-hosting/#comments</comments>
		<pubDate>Fri, 24 Jun 2011 12:45:22 +0000</pubDate>
		<dc:creator>Robin Parduez</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[web design]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://rpardz.com/blog/?p=983</guid>
		<description><![CDATA[If you host your website on a shared Apache hosting account, it&#8217;s highly unlikely that you will have access to the httpd.conf file to set default GZIP compression for your website files. A quick and simple alternative is to set GZIP compression on each page so that you can effectively compress the HTML output content [...]<p><hr />
<a href="http://rpardz.com/blog/gzip-html-content-shared-hosting/">GZIP HTML Content on Shared Hosting</a> &#124; Robin Parduez. All Rights Reserved. &copy; 2010 &#8211; 2011.</p>
]]></description>
			<content:encoded><![CDATA[<div class="cols cols2">
<div class="col first">
<p>If you host your website on a shared Apache hosting account, it&#8217;s highly unlikely that you will have access to the httpd.conf file to set default GZIP compression for your website files. A quick and simple alternative is to set GZIP compression on each page so that you can effectively compress the HTML output content on page load. <strong>Note: This only works for pages with the .php file extension and only GZIPs the HTML.</strong></p>
<p>The PHP code is placed at the very top of your page, I.e. the very first piece of code to be executed on the page. It is also recommended that the closing PHP tag is on the same line as the HTML doctype for optimal backward compatibility.</p>
<pre>
&lt;?php
   // GZIP Compression
   ob_start( 'ob_gzhandler' );
?&gt;
</pre>
</div>
<div class="col">
<p>The following example shows how to place the PHP GZIP code at the top of your pages. It is always advisable to test this on a non&#8211;important page before rolling out across all pages on your site.</p>
<pre>
&lt;?php
   // GZIP Compression
   ob_start( 'ob_gzhandler' );
?&gt;&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
&lt;!-- head content goes here --&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;!-- body content goes here --&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
</div>
</div>
<p><hr />
<a href="http://rpardz.com/blog/gzip-html-content-shared-hosting/">GZIP HTML Content on Shared Hosting</a> &#124; Robin Parduez. All Rights Reserved. &copy; 2010 &#8211; 2011.</p>
]]></content:encoded>
			<wfw:commentRss>http://rpardz.com/blog/gzip-html-content-shared-hosting/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Redirect SSL with .htaccess</title>
		<link>http://rpardz.com/blog/redirect-ssl-htaccess/</link>
		<comments>http://rpardz.com/blog/redirect-ssl-htaccess/#comments</comments>
		<pubDate>Wed, 16 Feb 2011 12:15:36 +0000</pubDate>
		<dc:creator>Robin Parduez</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[web design]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://rpardz.com/blog/?p=899</guid>
		<description><![CDATA[If you use an SSL certificate to secure pages on your website, you may want to setup your server to always display non-secure pages using &#8216;http&#8217; instead of &#8216;https&#8217;. In terms of search engine optimisation it is advisable that your server is setup to display a single version of a page to avoid duplication. In [...]<p><hr />
<a href="http://rpardz.com/blog/redirect-ssl-htaccess/">Redirect SSL with .htaccess</a> &#124; Robin Parduez. All Rights Reserved. &copy; 2010 &#8211; 2011.</p>
]]></description>
			<content:encoded><![CDATA[<div class="cols cols">
<div class="col first">
<p>If you use an SSL certificate to secure pages on your website, you may want to setup your server to always display non-secure pages using &#8216;http&#8217; instead of &#8216;https&#8217;.</p>
<p>In terms of search engine optimisation it is advisable that your server is setup to display a single version of a page to avoid duplication.</p>
<p>In other words, when an SSL certificate is setup, it generally means that every page on the site is available at <code><strong>http</strong>://www.yoursitedomain.com</code> and <code><strong>https</strong>://www.yoursitedomain.com</code>.</p>
</div>
<div class="col">
<p>Other than duplicate content, this can also cause the splitting of link equity between two versions of the same page.</p>
<p>This can happen when a user navigates to a secure page on your site (&#8216;https&#8217;) and then navigates to other areas of the site whilst still remaining on the secure version of the site (which is the default behaviour on most Apache servers with SSL installed).</p>
<p>The rest of this blog psot explains how to handle SSL redirection using at .htaccess file installed on your server.</p>
</div>
</div>
<h3 class="toppad">How to Create .htaccess Files</h3>
<p>To create <code>.htaccess</code> files you will need to use a simple text editor such as Notepad on Windows or TextEdit on an Apple Mac. The <code>.htaccess</code> file should be saved with <strong>no file extension</strong> and it is important to include the full stop &#8216;.&#8217; at the beginning of the filename. To do this, click <strong>Save As</strong>, and name the file <code><strong>.htaccess</strong></code>. If the program tries to save the file as <code>.rtf</code> or <code>.txt</code>, change this option to <strong>All Files</strong>.</p>
<h3 class="toppad">Redirect Folder to HTTPS</h3>
<p>Create the following <code>.htaccess</code> file and place it within the folder that you want to serve using SSL. Change the domain name and folder name to match your sites requirements. The <code>.htaccess</code> file will redirect <code><strong>http</strong>://www.yousitedomain.com/foldername/</code> to <code><strong>https</strong>://www.yoursitedomain.com/foldername/</code>, it will also redirect any other pages within the folder to the &#8216;https&#8217; version.</p>
<pre>
RewriteEngine On 
RewriteCond %{SERVER_PORT} !=443
RewriteCond %{REQUEST_URI} foldername 
RewriteRule ^(.*)$ https://www.yoursitedomain.com/foldername/$1 [R=301,L]
</pre>
<h3 class="toppad">Redirect Non-Secure Pages to HTTP</h3>
<p>The following .htaccess file needs to be placed in the websites root folder. Change the domain name to match your sites requirements.</p>
<pre>
RewriteEngine On
RewriteCond %{SERVER_PORT} ^443$
RewriteRule ^(.*)$ http://www.yousitedomain.com/$1 [R=301,L]
</pre>
<p><strong>Please Note:</strong> When making adjustments to your server settings, please test the above method thorougly to check that it works correctly in all situations. Server&#8217;s can be setup with various different configurations. If this is the case the above <code>.htaccess</code> files may not work in their current format. It may be a simple case of changing the port settings in the <code>.htaccess</code> files or you may need to contact your website host for more information.</p>
<p><hr />
<a href="http://rpardz.com/blog/redirect-ssl-htaccess/">Redirect SSL with .htaccess</a> &#124; Robin Parduez. All Rights Reserved. &copy; 2010 &#8211; 2011.</p>
]]></content:encoded>
			<wfw:commentRss>http://rpardz.com/blog/redirect-ssl-htaccess/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
	</channel>
</rss>

