Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

nice working now

  • Loading branch information...
commit 3dc5eecd80569d4d04a7e2839e375fdc2b7477c6 0 parents
@eadz authored
Showing with 7,553 additions and 0 deletions.
  1. +2 −0  .gitignore
  2. +17 −0 .htaccess
  3. +3 −0  _config.yml
  4. +529 −0 _db/seo-on-rails.sql
  5. +213 −0 _layouts/default.html
  6. +47 −0 _layouts/post.html
  7. +9 −0 _posts/2007-1-23-welcome-to-seo-on-rails.textile
  8. +70 −0 _posts/2007-1-24-even-better-looking-urls-with-permalink_fu.textile
  9. +38 −0 _posts/2007-1-24-to_param-for-better-looking-urls.textile
  10. +29 −0 _posts/2007-1-24-urls-ending-in-html.textile
  11. +32 −0 _posts/2007-2-1-mephisto-google-sitemap.textile
  12. +12 −0 _posts/2007-2-1-screen-scraping-ruby.textile
  13. +44 −0 _posts/2007-2-3-getting-your-meta-tags-on-track.textile
  14. +24 −0 _posts/2007-2-3-rails-image-tag.textile
  15. +15 −0 _posts/2007-2-5-301-redirects-in-rails.textile
  16. +6 −0 _posts/2007-2-8-scrubyt-screen-scraping.textile
  17. +36 −0 _posts/2008-6-15-title_tag_helper.textile
  18. +160 −0 _posts/2008-9-1-seo-friendly-ajax.textile
  19. +26 −0 _posts/2008-9-4-rails-seo-around-the-web.textile
  20. +11 −0 _posts/2009-6-7-rails-seo-starter-guide.textile
  21. +9 −0 _posts/2010-2-24-seo-impact-of-rails-3.html
  22. +258 −0 _site/301-redirects-in-rails.html
  23. +260 −0 _site/archives.html
  24. +303 −0 _site/even-better-looking-urls-with-permalink_fu.html
  25. +426 −0 _site/feed/atom.xml
  26. +281 −0 _site/getting-your-meta-tags-on-track.html
  27. BIN  _site/images/Thumbs.db
  28. BIN  _site/images/about.jpg
  29. BIN  _site/images/ad.jpg
  30. BIN  _site/images/bg.jpg
  31. BIN  _site/images/comment-arrow.jpg
  32. BIN  _site/images/content-sep.jpg
  33. BIN  _site/images/content_bg.jpg
  34. BIN  _site/images/content_top.jpg
  35. BIN  _site/images/date.jpg
  36. BIN  _site/images/footer_bg.jpg
  37. BIN  _site/images/footer_l.jpg
  38. BIN  _site/images/footer_r.jpg
  39. BIN  _site/images/header_bg.jpg
  40. BIN  _site/images/icon-author.jpg
  41. BIN  _site/images/icon-category.jpg
  42. BIN  _site/images/icon-comment.jpg
  43. BIN  _site/images/icon-edit.jpg
  44. BIN  _site/images/icon-tag.jpg
  45. BIN  _site/images/left-sidebar-sep.jpg
  46. BIN  _site/images/logo.jpg
  47. BIN  _site/images/logo_bg.jpg
  48. BIN  _site/images/rss_bg.jpg
  49. BIN  _site/images/search-bar.jpg
  50. BIN  _site/images/sidebar_sep.jpg
  51. BIN  _site/images/top.jpg
  52. BIN  _site/images/ul-post-arrow.jpg
  53. BIN  _site/images/ul-sidebar-arrow.jpg
  54. +809 −0 _site/index.html
  55. +271 −0 _site/mephisto-google-sitemap.html
  56. +264 −0 _site/rails-image-tag.html
  57. +268 −0 _site/rails-seo-around-the-web.html
  58. +253 −0 _site/rails-seo-starter-guide.html
  59. +3 −0  _site/robots.txt
  60. +255 −0 _site/screen-scraping-ruby.html
  61. +252 −0 _site/scrubyt-screen-scraping.html
  62. +339 −0 _site/seo-friendly-ajax.html
  63. +254 −0 _site/seo-impact-of-rails-3.html
  64. +18 −0 _site/sitemap.txt
  65. +217 −0 _site/style.css
  66. +274 −0 _site/title_tag_helper.html
  67. +276 −0 _site/to_param-for-better-looking-urls.html
  68. +268 −0 _site/urls-ending-in-html.html
  69. +254 −0 _site/welcome-to-seo-on-rails.html
  70. +53 −0 _tools/export.rb
  71. +25 −0 archives.html
  72. +27 −0 feed/atom.xml
  73. BIN  images/Thumbs.db
  74. BIN  images/about.jpg
  75. BIN  images/ad.jpg
  76. BIN  images/bg.jpg
  77. BIN  images/comment-arrow.jpg
  78. BIN  images/content-sep.jpg
  79. BIN  images/content_bg.jpg
  80. BIN  images/content_top.jpg
  81. BIN  images/date.jpg
  82. BIN  images/footer_bg.jpg
  83. BIN  images/footer_l.jpg
  84. BIN  images/footer_r.jpg
  85. BIN  images/header_bg.jpg
  86. BIN  images/icon-author.jpg
  87. BIN  images/icon-category.jpg
  88. BIN  images/icon-comment.jpg
  89. BIN  images/icon-edit.jpg
  90. BIN  images/icon-tag.jpg
  91. BIN  images/left-sidebar-sep.jpg
  92. BIN  images/logo.jpg
  93. BIN  images/logo_bg.jpg
  94. BIN  images/rss_bg.jpg
  95. BIN  images/search-bar.jpg
  96. BIN  images/sidebar_sep.jpg
  97. BIN  images/top.jpg
  98. BIN  images/ul-post-arrow.jpg
  99. BIN  images/ul-sidebar-arrow.jpg
  100. +63 −0 index.html
  101. +22 −0 rewrite.rb
  102. +3 −0  robots.txt
  103. +8 −0 sitemap.txt
  104. +217 −0 style.css
2  .gitignore
@@ -0,0 +1,2 @@
+_drafts/
+images/.DS_Store
17 .htaccess
@@ -0,0 +1,17 @@
+RewriteEngine on
+
+RewriteRule welcome-to-seo-on-rails$ http://www.seoonrails.com/welcome-to-seo-on-rails.html [L,R=301]
+RewriteRule even-better-looking-urls-with-permalink_fu$ http://www.seoonrails.com/even-better-looking-urls-with-permalink_fu.html [L,R=301]
+RewriteRule to_param-for-better-looking-urls$ http://www.seoonrails.com/to_param-for-better-looking-urls.html [L,R=301]
+RewriteRule urls-ending-in-html$ http://www.seoonrails.com/urls-ending-in-html.html [L,R=301]
+RewriteRule mephisto-google-sitemap$ http://www.seoonrails.com/mephisto-google-sitemap.html [L,R=301]
+RewriteRule screen-scraping-ruby$ http://www.seoonrails.com/screen-scraping-ruby.html [L,R=301]
+RewriteRule getting-your-meta-tags-on-track$ http://www.seoonrails.com/getting-your-meta-tags-on-track.html [L,R=301]
+RewriteRule rails-image-tag$ http://www.seoonrails.com/rails-image-tag.html [L,R=301]
+RewriteRule 301-redirects-in-rails$ http://www.seoonrails.com/301-redirects-in-rails.html [L,R=301]
+RewriteRule scrubyt-screen-scraping$ http://www.seoonrails.com/scrubyt-screen-scraping.html [L,R=301]
+RewriteRule title_tag_helper$ http://www.seoonrails.com/title_tag_helper.html [L,R=301]
+RewriteRule seo-friendly-ajax$ http://www.seoonrails.com/seo-friendly-ajax.html [L,R=301]
+RewriteRule rails-seo-around-the-web$ http://www.seoonrails.com/rails-seo-around-the-web.html [L,R=301]
+RewriteRule rails-seo-starter-guide$ http://www.seoonrails.com/rails-seo-starter-guide.html [L,R=301]
+RewriteRule seo-impact-of-rails-3$ http://www.seoonrails.com/seo-impact-of-rails-3.html [L,R=301]
3  _config.yml
@@ -0,0 +1,3 @@
+markdown: rdiscount
+#pygments: true
+permalink: /:title.html
529 _db/seo-on-rails.sql
529 additions, 0 deletions not shown
213 _layouts/default.html
@@ -0,0 +1,213 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US">
+
+<head profile="http://gmpg.org/xfn/11">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+
+<title>{{ page.title }} - SEO on Rails</title>
+
+<link rel="stylesheet" href="style.css" type="text/css" media="screen" />
+<link rel="alternate" type="application/atom+xml" title="SEO on Rails feed" href="http://feeds.feedburner.com/seo-rails"/>
+
+
+<!--[if IE 6]>
+<style type="text/css">
+.comment-form{margin-bottom: -3px}
+</style>
+<![endif]-->
+
+</head>
+<body id="top">
+<div id="container">
+ <div id="wrapper">
+
+ <div id="header">
+ <div id="logo">
+
+ <!-- Your Logo image - max-width: 200px -->
+ <!-- USAGE:
+ 1-create your own logo and save it as logo.jpg in the folder "images" in your theme folder.
+ 2-uncomment code below:-->
+ <!-- <a class="logo" href="http://web-kreation.com/demos/oneroom/" title="Back Home"></a>
+ -->
+ <h1><a href="http://www.seoonrails.com/">SEO on Rails</a></h1>
+ </div>
+
+ <!-- ADMIN NAVIGATION -->
+ <!--<ul id="navAdmin">
+ <li><a href="http://web-kreation.com/demos/oneroom/wp-login.php">Log in</a></li>
+
+ </ul>
+
+ <!-- MAIN NAVIGATION
+ <div class="menu"><ul><li class="current_page_item"><a href="http://web-kreation.com/demos/oneroom" title="Home">Home</a></li><li class="page_item page-item-57"><a href="http://web-kreation.com/demos/oneroom/index.php/typography/" title="Typography">Typography</a></li><li class="page_item page-item-2"><a href="http://web-kreation.com/demos/oneroom/index.php/usage/" title="Usage">Usage</a></li><li class="page_item page-item-51"><a href="http://web-kreation.com/demos/oneroom/index.php/license/" title="License">License</a></li><li class="page_item page-item-61"><a href="http://web-kreation.com/demos/oneroom/index.php/contact/" title="Contact">Contact</a></li></ul></div> -->
+
+ <!-- Alternative navigation
+ <ul class="menu">
+ <li class="current_page_item"><a href="http://web-kreation.com/demos/oneroom/">Home</a></li>
+ <li class="page_item page-item-57"><a href="http://web-kreation.com/demos/oneroom/index.php/typography/" title="Typography">Typography</a></li>
+<li class="page_item page-item-2"><a href="http://web-kreation.com/demos/oneroom/index.php/usage/" title="Usage">Usage</a></li>
+<li class="page_item page-item-51"><a href="http://web-kreation.com/demos/oneroom/index.php/license/" title="License">License</a></li>
+<li class="page_item page-item-61"><a href="http://web-kreation.com/demos/oneroom/index.php/contact/" title="Contact">Contact</a></li>
+ <li><a href="http://yourExternalLinkHere.com">External Link</a></li>
+ </ul> -->
+
+ <!-- / END MAIN NAVIGATION -->
+
+
+ <!-- FEED -->
+
+ <a id="rss" href="http://feeds.feedburner.com/seo-rails" title="Syndicate this site using RSS">SUBSCRIBE TO <b>RSS</b></a>
+
+ </div>
+
+ <div id="pageWrapper">
+
+<div id="content">
+
+ {{ content }}
+
+
+
+
+ <div class="nav nav-border-bottom">
+ <div class="alignleft"><a href="/archives.html" >&laquo; Older Entries</a>&nbsp;</div>
+
+ <div class="alignright">&nbsp;</div>
+ </div>
+
+
+</div> <!-- / content -->
+
+ <div id="sidebar">
+
+ <ul>
+ <!--
+ <li class="nobackground">
+ <form method="get" id="searchform" action="http://web-kreation.com/demos/oneroom/">
+
+ <div>
+ <input class="search-field" type="text" onfocus="this.value=''" onblur="this.value='Search...'" value="Search..." name="s" id="s" />
+ <input class="search-submit" type="submit" value="" />
+ </div>
+ </form>
+ </li>
+ -->
+ <!-- Author information is disabled per default. Uncomment and fill in your details if you want to use it. -->
+ <li><h2>About SEO on Rails</h2>
+
+ <p>This website provides tips, tricks and code to help you to make your Ruby on Rails powered sites more search engine friendly and optimized.
+</p><p>
+ If you have any Rails related SEO questions, feel free to drop me a line at questions @ this domain .com</p>
+ </li>
+
+ <!-- Banners / OPTIONAL -->
+ <!-- Banners' size must be 125x125 -->
+ <li class="ads clearfix"><h2>Our Sponsors</h2>
+ <!-- First Row -->
+ <a class="ad-left" href="mailto:info@seoonrails.com?subject=seoonrails.com-ads"><img src="images/ad.jpg" alt="" /></a>
+
+ <a class="ad-right" href="mailto:info@seoonrails.com?subject=ads"><img src="images/ad.jpg" alt="" /></a>
+ </li>
+
+<!--
+
+ <li class="pagenav"><h2>Pages</h2><ul><li class="page_item page-item-57"><a href="http://web-kreation.com/demos/oneroom/index.php/typography/" title="Typography">Typography</a></li>
+<li class="page_item page-item-2"><a href="http://web-kreation.com/demos/oneroom/index.php/usage/" title="Usage">Usage</a></li>
+<li class="page_item page-item-51"><a href="http://web-kreation.com/demos/oneroom/index.php/license/" title="License">License</a></li>
+<li class="page_item page-item-61"><a href="http://web-kreation.com/demos/oneroom/index.php/contact/" title="Contact">Contact</a></li>
+</ul></li>
+
+ <!-- Optional - Latest Posts
+ <li><h2>Latest Posts</h2>
+ <ul>
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/animals/oneroom-free-wordpress-theme-by-web-kreation/' title='OneRoom &#8211; Free WP Theme by Web-Kreation'>OneRoom &#8211; Free WP Theme by Web-Kreation</a></li>
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/animals/at-vero-eos-et-accusamus-et-iusto/' title='At vero eos et accusamus et iusto'>At vero eos et accusamus et iusto</a></li>
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/animals/et-quas-molestias-excepturi-sint-occaecati-cupiditate/' title='Et quas molestias excepturi sint occaecati cupiditate'>Et quas molestias excepturi sint occaecati cupiditate</a></li>
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/animals/et-harum-quidem-rerum-facilis-est-et-expedita-distinctio/' title='Et harum quidem rerum facilis est et expedita distinctio.'>Et harum quidem rerum facilis est et expedita distinctio.</a></li>
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/animals/excepteur-sint-occaecat-cupidatat-non-proident/' title='Excepteur sint occaecat cupidatat non proident'>Excepteur sint occaecat cupidatat non proident</a></li>
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/travel/ut-enim-ad-minim-veniam/' title='Ut enim ad minim veniam,'>Ut enim ad minim veniam,</a></li>
+ </ul>
+ </li>-->
+<!--
+ <li><h2>Archives</h2>
+ <ul>
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/2009/02/' title='February 2009'>February 2009</a></li>
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/2009/01/' title='January 2009'>January 2009</a></li>
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/2008/12/' title='December 2008'>December 2008</a></li>
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/2008/10/' title='October 2008'>October 2008</a></li>
+
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/2008/09/' title='September 2008'>September 2008</a></li>
+ </ul>
+ </li>
+
+ <li class="categories"><h2>Categories</h2><ul> <li class="cat-item cat-item-25"><a href="http://web-kreation.com/demos/oneroom/index.php/category/animals/" title="View all posts filed under Animals">Animals</a> (6)
+</li>
+ <li class="cat-item cat-item-29"><a href="http://web-kreation.com/demos/oneroom/index.php/category/insects/" title="View all posts filed under Insects">Insects</a> (2)
+
+</li>
+ <li class="cat-item cat-item-26"><a href="http://web-kreation.com/demos/oneroom/index.php/category/nature/" title="View all posts filed under Nature">Nature</a> (6)
+</li>
+ <li class="cat-item cat-item-13"><a href="http://web-kreation.com/demos/oneroom/index.php/category/travel/" title="View all posts filed under Travel">Travel</a> (1)
+</li>
+</ul></li>
+
+-->
+ <li id="linkcat-2" class="linkcat"><h2>Reccomended</h2>
+ <ul class='xoxo blogroll'>
+
+<li><a href="http://www.therailsway.com">The Rails Way</a></li>
+<li><a href="http://www.seobook.com/">SEO Book</a></li>
+<li><a href="http://www.railscasts.com/">Railscasts</a></li>
+<li><a href="http://www.rubyserve.com/">Hosted by Rubyserve</a></li>
+
+ </ul>
+
+</li>
+
+
+ </div>
+
+
+
+ <div class="clear"></div>
+ </div><!-- / pageWrapper -->
+
+ <div id="footer">
+ <div class="foot_l">&nbsp;</div>
+ <div class="foot_content">
+ <div class=""></div>
+
+ <p>
+ All contents copyright &copy;Seo on Rails. All rights reserved. |
+
+ <!-- PLEASE DO NOT EDIT OR DELETE THE CODE BELOW THIS LINE -->
+ <!-- License: http://web-kreation.com/demos/oneroom/index.php/license/ -->
+ <!-- If you want to remove this copyright notice, please contact me at info {at} web-kreation {dot} com -->
+ Theme design by <a href="http://web-kreation.com">Web-Kreation</a>.
+ <!-- / END -->
+
+ </p>
+ </div>
+ <div class="foot_r">&nbsp;</div>
+ <a href="#top" id="toTop">&nbsp;</a>
+ </div><!-- / footer -->
+
+ </div><!-- / Wrapper -->
+
+ <!-- Stunning design by Jeeremie - http://web-kreation.com -->
+
+
+
+</div><!-- / container -->
+<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+_uacct = "UA-32073-10";
+urchinTracker();
+</script>
+<script type='text/javascript' src='http://track3.mybloglog.com/js/jsserv.php?mblID=2007012908320762'></script>
+
+</body>
+</html>
+
47 _layouts/post.html
@@ -0,0 +1,47 @@
+---
+layout: default
+---
+
+
+
+
+
+ <div class="postWrapper">
+
+
+
+
+ <div class="postmetadata">
+ <p class="meta-date">
+ <span class="date-day">{{ page.date | date: "%d"}}</span>
+ <span class="date-month">{{page.date| date: "%b"}}</span>
+
+ <span class="date-year">{{page.date|date: "%Y"}}</span>
+ </p>
+ <p class="meta-author">by Eaden McKee</p>
+ <!--<a href="link to comments" class="meta-comments" title=""></a>-->
+
+
+ <p class="meta-tags">
+ {{page.tags }} </div>
+
+<div class="post" id="post-3">
+ <h1><a href="{{ post.url }}" rel="bookmark" >{{ page.title }}</a></h1>
+
+ <div class="entry">
+
+ {{ content }}
+ <!-- <div id="attachment_138" class="wp-caption aligncenter" style="width: 480px"><img src="http://web-kreation.com/demos/oneroom/wp-content/uploads/2009/02/nature-1.jpg" alt="Lorem ipsum dolor sit amet" title="nature-1" width="470" height="180" class="size-full wp-image-138" /><p class="wp-caption-text">Lorem ipsum dolor sit amet</p></div>
+<h2>About this Theme</h2>
+<p><a href="http://web-kreation.com/index.php/wordpress/oneroom-another-free-wordpress-theme-by-web-kreation" title="Go back to the article"><strong>OneRoom</strong></a> is a free Wordpress theme designed by <a href="http://web-kreation.com">Web-Kreation</a> whose blog you will find at <a href="http://web-kreation.com/index.php/blog/">http://web-kreation.com/index.php/blog/</a>. This theme is valid <a href="http://validator.w3.org/check?uri=http%3A%2F%2Fweb-kreation.com%2Fdemos%2Foneroom&#038;charset=(detect+automatically)&#038;doctype=Inline&#038;group=0" target="_blank" rel="nofollow">(X)HTML</a> &#038; <a href="http://jigsaw.w3.org/css-validator/validator?uri=http%3A%2F%2Fweb-kreation.com%2Fdemos%2Foneroom&#038;profile=css21&#038;usermedium=all&#038;warning=1&#038;lang=es" target="_blank" rel="nofollow">CSS</a>.</p> -->
+
+
+
+
+ </div>
+ </div>
+ </div>
+
+
+
+
9 _posts/2007-1-23-welcome-to-seo-on-rails.textile
@@ -0,0 +1,9 @@
+---
+layout: post
+title: Welcome to SEO on Rails
+---
+First Post!
+
+Welcome to SEO on Rails. I hope to bring you lots of tips, code and ideas to help your Ruby on Rails powered site more search engine friendly and optimized.
+
+If you have any rails related SEO questions, please email me - questions @ this domain.
70 _posts/2007-1-24-even-better-looking-urls-with-permalink_fu.textile
@@ -0,0 +1,70 @@
+---
+layout: post
+title: Even better looking URLs with permalink_fu
+tags: urls,rails,routes,permalinks,plugins
+---
+Extracted from "Mephisto":http://www.mephistoblog.com/ is the handy plugin called "permalink_fu":http://svn.techno-weenie.net/projects/plugins/permalink_fu/.
+This plugin allows you to use ID-less permalinks, much like that in this blog.
+
+I wrote earlier about how to use "to_param":http://www.seoonrails.com/to_param-for-better-looking-urls for nicer URLs, but these are even better. The plugin automatically turns a field in your model into something that could be a permalink, by stripping out all non english and non alphanumeric letters. It then saves this in a field in your database for future use.
+
+So, onto the HowTo:
+
+
+First, install the plugin in your rails app.
+
+<pre><code>
+./script/plugin install http://svn.techno-weenie.net/projects/plugins/permalink_fu/
+</code></pre>
+
+Now you need to add a field to your database to store the permalink.
+
+<pre><code>
+./script/generate migration add_permalink_to_article
+</code></pre>
+
+In the migration we add the field called permalink.
+
+<pre><code>
+add_column :designers, :permalink, :string
+</code></pre>
+
+Now for the model code
+<pre><code>
+class Article < ActiveRecord::Base
+ # title is the field name you want to convert to a permalink
+ has_permalink :title
+ # you can also specifiy a different permalink field in your database by giving a second paramater
+ # has_permalink :title, :my_permalink_field
+
+ # we now add the to_param method which Rails's routing uses
+ def to_param
+ permalink
+ end
+end
+</code></pre>
+
+The permalink field is only populated after the record is validated, so if you have a bunch of records already in your database you can get the permalink field to populate with
+
+<pre><code>
+Article.find(:all).each(&:save)
+</code></pre>
+
+If you already have lots of view code written then this is the easy way to get these routes working - in your controller :
+<pre><code>
+@article = Article.find_by_permalink(params[:id])
+</code></pre>
+
+However that doesn't seem to pass the smell test using :id rather than :permalink, but will work fine.
+To use :permalink you will have to change your routing code and your view code :
+
+<pre><code>
+# in your route file
+map.connect 'article/:permalink', :controller => 'article', :action => 'view'
+# in your views when linking
+link_to "View #{article.title}", {:controller => 'designer', :action => 'view', :permalink => article.permalink}
+# then in your controller you can use
+@article = Article.find_by_permalink(params[:permalink])
+</code></pre>
+
+Thats all! I'm always on the lookout for SEO related Rails topics to talk about so drop me a line @ questions -at- this domain .com.
38 _posts/2007-1-24-to_param-for-better-looking-urls.textile
@@ -0,0 +1,38 @@
+---
+layout: post
+title: Better looking URLs with to_param
+tags: urls,rails,routes
+---
+Nice URLs aren't just for search engines, but for us mortals too. By default rails URLs look like /controller/action/1.
+Rails has built in support for URLs that look like /controller/action/1-my-article. This is achieved by implementing to_param in your model.
+
+This code will turn an Article with ID 22 and title 'Nice URLs' into 22-Nice-URLs
+<pre><code>
+class Article < ActiveRecord::Base
+ def to_param
+ "#{id}-#{title}"
+ end
+end
+</code></pre>
+
+
+These URLs will work automatically, providing you have the ID in the first part of the URL. This works because Ruby will convert '123-hello-world' into 123 when to_i is called on the string :
+
+<pre><code>
+>> "123-hello-world-1".to_i
+=> 123
+</code></pre>
+
+However you may have some funny characters in your title so you want to strip them out and convert them to hyphens. You might also want to make your urls lower case. This code does just that.
+
+<pre><code>
+class Article < ActiveRecord::Base
+ def to_param
+ "#{id}-#{title.downcase.gsub(/[^[:alnum:]]/,'-')}".gsub(/-{2,}/,'-')
+ end
+end
+</code></pre>
+
+Some explanation is required; .downcase converts the title to lower case, the 1st .gsub strips out anything not alphanumeric and turns it into a hyphen, and the 2nd .gsub changes any multiple hyphens into a single hyphen.
+
+It is possible to have URLs without the ID in them, but you will have to work out what model object you need yourself in the controller. I hope to cover this in a later blog post.
29 _posts/2007-1-24-urls-ending-in-html.textile
@@ -0,0 +1,29 @@
+---
+layout: post
+title: URLs ending in .html
+tags: urls,routes
+---
+This is just a personal preference of mine, but I like to have URLs end in .html. Fortunately rails makes this easy:
+
+In your routes file:
+
+<pre><code>
+map.connect ':controller/:action/:id.html', :format => 'html'
+</code></pre>
+
+For your other custom routes you will need to also add :format => 'html' and the .html at the end of the route line like above.
+
+*Update*
+
+Another (better?) way to achieve nice URLs in rails, with .html suffixes is to add the following to your ApplicationController:
+<pre><code>
+ def default_url_options(options)
+ { :format => 'html' }
+ end
+</code></pre>
+
+This means your routing line is much cleaner. In fact it's the default!
+
+<pre><code>
+ map.connect ':controller/:action/:id.:format'
+</code></pre>
32 _posts/2007-2-1-mephisto-google-sitemap.textile
@@ -0,0 +1,32 @@
+---
+layout: post
+title: Google Sitemaps in Mephisto
+tags: sitemaps,xml,mephisto
+---
+Well we call them Google Sitemaps, but MSN and Yahoo are also "on board":http://blogs.msdn.com/livesearch/archive/2006/11/15/microsoft-google-yahoo-unite-to-support-sitemaps.aspx and have formed "sitemaps.org":http://www.sitemaps.org. So I guess we just call them XML sitemaps?
+
+The 3 search engines currently don't support the full sitemaps protocol, which is shame, hopefully by later this year they will.
+
+First off : Mephisto, the Ruby on Rails blogging software that powers this site.
+
+Creating a sitemap is no trouble at all with the "Mephisto sitemap plugin":http://exdolo.com/2006/9/2/mephisto-google-sitemap-plugin. Although to get it working on this blog, I had to change the following in
+ vendor/plugins/mephisto_google_sitemap/lib/mephisto_google_site_map.rb from:
+
+<pre><code>
+ def lastmod(article)
+ time_zone = TimeZone.new(article.site.timezone.current_period.utc_offset)
+ latest_comment = article.comments_count.zero? ? nil : article.comments.calculate(:max, :updated_at)
+ (latest_comment.nil? ? article.updated_at : latest_comment).strftime("%Y-%m-%dT%H:%M:%S#{time_zone.formatted_offset}")
+ end
+</code></pre>
+
+to:
+
+<pre><code>
+ def lastmod(article)
+ latest_comment = article.comments_count.zero? ? nil : article.comments.calculate(:max, :updated_at)
+ (latest_comment.nil? ? article.updated_at : latest_comment).strftime("%Y-%m-%dT%H:%M:%S+00:00")
+ end
+</code></pre>
+
+Change +00:00 to what ever your timezone offset from UTC is. Hopefully this will be fixed in a later version of the sitemap plugin.
12 _posts/2007-2-1-screen-scraping-ruby.textile
@@ -0,0 +1,12 @@
+---
+layout: post
+title: Screen Scraping in Ruby
+tags: ruby,screen scraping
+---
+I'm not going to make a full post on this because over on Rubyrailways.com they have an "excellent post":http://www.rubyrailways.com/data-extraction-for-web-20-screen-scraping-in-rubyrails covering the main libraries for screen scraping in ruby.
+
+However it is a bit out of date being 7 months old, and since then 2 more excellent libraries have emerged.
+
+"Hpricot":http://code.whytheluckystiff.net/hpricot/ from the Ruby Superstar "_why":http://redhanded.hobix.com/ which has just been updated to version 0.5 *today*!
+
+And "Scrapi":http://rubyforge.org/projects/scrapi which is also excellent.
44 _posts/2007-2-3-getting-your-meta-tags-on-track.textile
@@ -0,0 +1,44 @@
+---
+layout: post
+title: Getting your meta tags on track
+tags: rails,meta tags
+---
+Sick of the lame Rails puns in the headlines yet? Great!
+
+Ok, so this post is a kind of 'Ask the community' post. How do you deal with meta tags including page titles? We should all know the ideal for titles is to be unique for each page on the site , but how do you go about this the rails way?
+
+Here's what I do (and it's just one way of many) :
+
+In my layout/application.rhtml
+<pre><code>
+<title><%= @meta_title %> My Site Name</title>
+<meta name="keywords" content="<%= @meta_keywords %>" />
+<meta name="description" content="<%= @meta_description %>" />
+</code></pre>
+
+In my application controller:
+
+<pre><code>
+ before_filter :meta_defaults
+ private
+
+ def meta_defaults
+ @meta_title = "Welcome to"
+ @meta_keywords = "my keywords"
+ @meta_description = "my meta description"
+ end
+</code></pre>
+
+and then in individual actions in my controllers I override the defaults
+<pre><code>
+def view
+ @article = Article.find(params[:id])
+ @meta_title = "#{@article.name} - "
+ @meta_description = @article.short_description
+end
+</code></pre>
+
+I've also seen suggestions for using yield and content_for, but to me that is a bit heavy-weight for simple strings.
+So, what do you do?
+
+
24 _posts/2007-2-3-rails-image-tag.textile
@@ -0,0 +1,24 @@
+---
+layout: post
+title: RoR image_tag harmful for SEO?
+tags: image,alt,seo,google
+---
+We all know image_tag, but is it harmful for SEO? By default, it will add an *alt* tag consisting of the filename, without the extension, and capitalised.
+
+How could this be bad? Well, the question comes down to : is an irelevent *alt* tag worse than a blank one?
+
+The code in question is one line of the image_tag method in asset_tag_helper.rb.
+
+<pre><code>
+ options[:alt] ||= File.basename(options[:src], '.*').split('.').first.capitalize
+</code></pre>
+
+To answer this question, it depends. If your image names are not related to your content then it could be.
+
+To be safe, always pass :alt => with your image_tag.
+
+*Update:*
+I asked "Matt Cutts":http://www.mattcutts.com/blog/ his thoughts about this and here is the reply
+
+bq. If you have a picture of a monkey with filename like apple.jpg or dsc00001.jpg, you shouldn't have any issues if the alt title is "apple" or "dsc00001". However, if the image filename is cheap-viagra-debt-mortgages.jpg, then you could run into problems for sure. I'd look at image filenames to make sure that they couldn't be viewed as keyword-stuffing or spammy. And it doesn't hurt to preserve the extension (.jpg) in the alt title just so that people realize that the alt title comes from the image filename.
+
15 _posts/2007-2-5-301-redirects-in-rails.textile
@@ -0,0 +1,15 @@
+---
+layout: post
+title: 301 Redirects in Rails
+tags: urls,301 redirect
+---
+A 301 redirect is a permanent redirect, which tells the search engines to index the redirected to URL rather than the current URL.
+
+You can use this when migrating from legacy content management systems, or to make sure that you only have 1 URL per page.
+
+With the folloing code in your controller, Rails makes it easy :
+
+<pre><code>
+ headers["Status"] = "301 Moved Permanently"
+ redirect_to "http://someurl/"
+</code></pre>
6 _posts/2007-2-8-scrubyt-screen-scraping.textile
@@ -0,0 +1,6 @@
+---
+layout: post
+title: Screen scraping update ( Already! )
+tags: screen scraping,scrubyt,hpricot
+---
+Wow the ruby/rails community works fast. Igvita has an "article":http://www.igvita.com/blog/2007/02/04/ruby-screen-scraper-in-60-seconds/ explaining how to use hpricot with the magic of firefox's firebug pluign. And "scRUBYt":http://scrubyt.org/ has been released, which is a billed as *WWW::Mechanize and Hpricot on Steroids*
36 _posts/2008-6-15-title_tag_helper.textile
@@ -0,0 +1,36 @@
+---
+layout: post
+title: SEO friendly title tag plugin
+tags: plugins,seo,views,SEO
+---
+I've come across a small, but very useful plugin for Ruby on Rails applications.
+It was designed with SEO in mind, and it makes keeping your meta title tags, and your &lt;h1> tags in sync easy.
+
+The plugin is hosted at (the very awesome) GitHub : "http://github.com/DefV/title_helper/tree/master":http://github.com/DefV/title_helper/tree/master
+
+Here's how it works.
+
+In your application layout you call the plugin, passing in your overall site title.
+
+<pre><code>
+<title><%= title :site_name => "The SEO on Rails Blog" %></title>
+</code></pre>
+
+If you do nothing else, all pages on your site will have the title "Seo on Rails".
+
+In your view templates, say app/views/blogpost/view.html.erb you could have this:
+<pre><code>
+<%= title "SEO plugins for Ruby on Rails" %>
+</code></pre>
+
+This will print out a H1 tag:
+<macro:code lang="html">
+<h1>SEO plugins for Ruby on Rails</h1>
+</code></pre>
+At the same time, the plugin will remember the title and insert it into the layout's &lt;title> tag before your :site_name.
+In our example that would result in :
+<macro:code lang="html">
+<tiitle>SEO plugins for Ruby on Rails - The SEO on Rails Blog</title>
+</code></pre>
+
+Keeping your &lt;H1> tags and your &lt;title> tags in sync is a *good thing*, and this plugin helps make it very easy.
160 _posts/2008-9-1-seo-friendly-ajax.textile
@@ -0,0 +1,160 @@
+---
+layout: post
+title: SEO friendly Ajax
+tags: seo,SEO,ajax,rjs,analytics
+---
+Ajax, one of Web2.0's core technologies, is based on Javascript which can pose a problem if you want your website to be search engine friendly. Fortunately with Ruby on Rails it's not too hard to make your Ajax SEO friendly.
+
+
+
+I will walk you through the process of making a page with Ajax search engine friendly, using my "web design company's portfolio page":http://www.webforce.co.nz/portfolio.html as an example.
+
+
+
+The basic idea with the page is for portfolio items to display below the list using ajax, and to view on their own page if javascript is disabled.
+
+
+
+I will walk you through how I created my SEO friendly portfolio page in 4 easy steps:
+
+
+
+* Creating the content using partials
+
+* Linking to RJS(Remote Javascript) files using link_to_remote in a search engine optimised way
+
+* The RJS file
+
+* Tracking Ajax calls with google analytics
+
+
+
+h4. Creating the content using partials
+
+
+
+For each portfolio item, I have a partial, app/view/portfolio/_portfolio.html.erb
+
+This partial has all the information I want to display about each portfolio item, and is what will be used in the ajax calls to update the page.
+
+
+
+The view file for a single portfolio item, only used when javascript is not available simply renders the _portfolio partial and adds a "back" link. The back link isn't needed for the javascript-called page so is left out of the partial.
+
+
+
+<pre><code>
+
+<%= render :partial => 'portfolio', :locals => {:portfolio => @portfolio} %>
+
+<p><%= link_to "&laquo; Back to Portfolio", :action => 'index' %></p>
+
+</code></pre>
+
+
+
+h4. Linking to RJS(Remote Javascript) files using link_to_remote in a search engine optimised way
+
+
+
+In the index action ( app/views/portfolio/index.html.erb ) I need to link to each portfolio item.
+
+Usually you would use link_to, but because we're doing ajax, we use "link_to_remote":http://apidock.com/rails/ActionView/Helpers/PrototypeHelper/link_to_remote
+
+
+
+Usually when using link_to_remote, the link is to #, as in a href="#". But we can specify a url, and that url is used when javascript is disabled.
+
+
+
+<pre><code>
+
+<%= link_to_remote "More Info",
+:url => {:action => "view", :id => portfolio.id, :format => 'js'},
+:html => {:href => url_for(:action => "view", :id => portfolio.id)}%>
+
+</code></pre>
+
+
+
+Now the above code includes :format => 'html' and :format => 'js' because I am using "urls ending in .html":http://www.seoonrails.com/urls-ending-in-html, for example, /portfolio/view/xxxx.html rather than /portfolio/view/xxxx. You can probably exclude the format parameters if you are not.
+
+
+
+The first paramater of link_to_remote is the link text, the 2nd is the javascript url, and the 3rd is the html url as you can see in the example above.
+
+
+
+h4. The RJS file.
+
+
+
+Our controller's view action is pretty simple.
+
+
+
+<pre><code>
+
+def view
+
+ @portfolio = Portfolio.find(params[:id])
+
+ respond_to do |format|
+
+ format.html
+
+ format.js
+
+ end
+
+end
+
+</code></pre>
+
+
+
+Rails's "respond_to" function takes care of separating out the html and ajax requests.
+
+
+
+The view.html.erb is already mentioned above, and just renders the _portfolio partial with an added back link.
+
+view.rjs on the other hand contains this:
+
+
+
+<pre><code>
+
+page.replace "portfolio", :partial => 'portfolio', :object => @portfolio
+
+page.visual_effect :highlight, "portfolio", :startcolor => '#333333', :endcolor => '#000000', :duration => 0.5
+
+</code></pre>
+
+
+
+There is a blank div with an id of portfolio in the index page, and this gets replaced with the contents of the partial. The partial also has a div called portfolio, this way when someone clicks on another portfolio item, the old gets replaced with the new.
+
+
+
+h4. Tracking Ajax calls with google analytics
+
+
+
+One final piece of the puzzle is tracking ajax calls with google analytics.
+
+At the bottom of view.rjs is the line
+
+<pre><code>
+
+page << "urchinTracker('#{url_for(:id => @portfolio, :action => 'view')}');"
+
+</code></pre>
+
+
+
+"page <<":http://apidock.com/rails/ActionView/Helpers/PrototypeHelper/JavaScriptGenerator/GeneratorMethods/%3C%3C is the method to send raw javascript in an rjs file. The urchinTracker call tells google to track a page view, and the url given is the non-javascript url of the page.
+
+
+
+I hope this has been a useful tutorial, any questions please post a comment.
26 _posts/2008-9-4-rails-seo-around-the-web.textile
@@ -0,0 +1,26 @@
+---
+layout: post
+title: Rails SEO Around the web
+tags: rails,seo,SEO,links
+---
+While Ruby on Rails specific SEO(Search Engine Optimization) is a pretty small subject, compared to the larger world of SEO, it still requires some thought.
+
+Over at "http://www.bingocardcreator.com/rails-seo-tips.htm":http://www.bingocardcreator.com/rails-seo-tips.htm is a very large article on Rails-specific optimizations you can do to improve search engine rankings.
+
+It includes:
+* The Case Study: Daily Bingo Cards
+* On-page Optimization
+* Sexy URLs, or, Default Routes Considered Harmful
+* Taming Your Title Tags (And Other Metadata)
+* Don't Repeat Yourself... In Your Content
+* Off-page Optimization
+* acts_as_linkbait: making it easy to link to you
+* Bookmarks, Chicklets, and Permalinks, Oh My!
+
+Some of the topics have been covered here at "SEOonRails.com":http://www.seoonrails.com/ but it's always nice to get another angle on it as there is always more than one way to do something when it comes to programming.
+
+On DZONE you can find a "ruby pagerank checker":http://snippets.dzone.com/posts/show/3284
+
+Over at "rubyplus.org":http://www.rubyplus.org are 2 relevant videos. The first is a "video describing how to make Google Sitemaps with rails":http://www.bestechvideos.com/2008/07/04/ruby-plus-71-how-to-create-a-seo-sitemap-for-rails-apps and also on the site is "SEO for Rails app using Acts as Taggable on Steroids and Meta Tags Plugins":http://www.rubyplus.org/episodes/26-SEO-for-Rails-app-using-Acts-as-Taggable-on-Steroids-and-Meta-Tags-Plugins.html **note a free signup is required to view videos
+
+If you have posted about Rails+SEO or have any suggestions for this blog, please email me at questions @ this domain.com
11 _posts/2009-6-7-rails-seo-starter-guide.textile
@@ -0,0 +1,11 @@
+---
+layout: post
+title: Rails SEO starter guide
+tags: rails,seo,google,SEO
+---
+Google has released their official "webmaster SEO starter guide":http://googlewebmastercentral.blogspot.com/2008/11/googles-seo-starter-guide.html (download "pdf":http://www.google.com/webmasters/docs/search-engine-optimization-starter-guide.pdf, which is worth a look.
+
+Some of these reccomentations have been "rails-ified" and are blogged as a "rails seo starter guide":http://www.elctech.com/articles/rails-seo-starter-guide There are some nice tips in the post, so check it out.
+
+
+
9 _posts/2010-2-24-seo-impact-of-rails-3.html
@@ -0,0 +1,9 @@
+---
+layout: post
+title: The SEO impact of Rails 3
+tags: rails,seo
+---
+
+Rails 3 is currently in beta, and I've had a look through the changes to see what impact, if any they will have on SEO. One change is that ajax helpers now work unobtrusively which will help to clean up the code, resulting in smaller page sizes. This probably won't have any effect, but it is an improvement.
+
+The other thing is Rails 3 will be faster. Faster render times means that the google bot can index your site quicker and more often. The google bot detects load on the web server by its page render time. I wonder if it things RoR sites are always overloaded?!
258 _site/301-redirects-in-rails.html
@@ -0,0 +1,258 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US">
+
+<head profile="http://gmpg.org/xfn/11">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+
+<title>301 Redirects in Rails - SEO on Rails</title>
+
+<link rel="stylesheet" href="style.css" type="text/css" media="screen" />
+<link rel="alternate" type="application/atom+xml" title="SEO on Rails feed" href="http://feeds.feedburner.com/seo-rails"/>
+
+
+<!--[if IE 6]>
+<style type="text/css">
+.comment-form{margin-bottom: -3px}
+</style>
+<![endif]-->
+
+</head>
+<body id="top">
+<div id="container">
+ <div id="wrapper">
+
+ <div id="header">
+ <div id="logo">
+
+ <!-- Your Logo image - max-width: 200px -->
+ <!-- USAGE:
+ 1-create your own logo and save it as logo.jpg in the folder "images" in your theme folder.
+ 2-uncomment code below:-->
+ <!-- <a class="logo" href="http://web-kreation.com/demos/oneroom/" title="Back Home"></a>
+ -->
+ <h1><a href="http://www.seoonrails.com/">SEO on Rails</a></h1>
+ </div>
+
+ <!-- ADMIN NAVIGATION -->
+ <!--<ul id="navAdmin">
+ <li><a href="http://web-kreation.com/demos/oneroom/wp-login.php">Log in</a></li>
+
+ </ul>
+
+ <!-- MAIN NAVIGATION
+ <div class="menu"><ul><li class="current_page_item"><a href="http://web-kreation.com/demos/oneroom" title="Home">Home</a></li><li class="page_item page-item-57"><a href="http://web-kreation.com/demos/oneroom/index.php/typography/" title="Typography">Typography</a></li><li class="page_item page-item-2"><a href="http://web-kreation.com/demos/oneroom/index.php/usage/" title="Usage">Usage</a></li><li class="page_item page-item-51"><a href="http://web-kreation.com/demos/oneroom/index.php/license/" title="License">License</a></li><li class="page_item page-item-61"><a href="http://web-kreation.com/demos/oneroom/index.php/contact/" title="Contact">Contact</a></li></ul></div> -->
+
+ <!-- Alternative navigation
+ <ul class="menu">
+ <li class="current_page_item"><a href="http://web-kreation.com/demos/oneroom/">Home</a></li>
+ <li class="page_item page-item-57"><a href="http://web-kreation.com/demos/oneroom/index.php/typography/" title="Typography">Typography</a></li>
+<li class="page_item page-item-2"><a href="http://web-kreation.com/demos/oneroom/index.php/usage/" title="Usage">Usage</a></li>
+<li class="page_item page-item-51"><a href="http://web-kreation.com/demos/oneroom/index.php/license/" title="License">License</a></li>
+<li class="page_item page-item-61"><a href="http://web-kreation.com/demos/oneroom/index.php/contact/" title="Contact">Contact</a></li>
+ <li><a href="http://yourExternalLinkHere.com">External Link</a></li>
+ </ul> -->
+
+ <!-- / END MAIN NAVIGATION -->
+
+
+ <!-- FEED -->
+
+ <a id="rss" href="http://feeds.feedburner.com/seo-rails" title="Syndicate this site using RSS">SUBSCRIBE TO <b>RSS</b></a>
+
+ </div>
+
+ <div id="pageWrapper">
+
+<div id="content">
+
+ <div class="postWrapper">
+
+
+
+
+ <div class="postmetadata">
+ <p class="meta-date">
+ <span class="date-day">05</span>
+ <span class="date-month">Feb</span>
+
+ <span class="date-year">2007</span>
+ </p>
+ <p class="meta-author">by Eaden McKee</p>
+ <!--<a href="link to comments" class="meta-comments" title=""></a>-->
+
+
+ <p class="meta-tags">
+ urls,301 redirect </div>
+
+<div class="post" id="post-3">
+ <h1><a href="" rel="bookmark" >301 Redirects in Rails</a></h1>
+
+ <div class="entry">
+
+ <p>A 301 redirect is a permanent redirect, which tells the search engines to index the redirected to <span class="caps">URL</span> rather than the current <span class="caps">URL</span>.</p>
+<p>You can use this when migrating from legacy content management systems, or to make sure that you only have 1 <span class="caps">URL</span> per page.</p>
+<p>With the folloing code in your controller, Rails makes it easy :</p>
+<pre><code>
+ headers["Status"] = "301 Moved Permanently"
+ redirect_to "http://someurl/"
+</code></pre>
+ <!-- <div id="attachment_138" class="wp-caption aligncenter" style="width: 480px"><img src="http://web-kreation.com/demos/oneroom/wp-content/uploads/2009/02/nature-1.jpg" alt="Lorem ipsum dolor sit amet" title="nature-1" width="470" height="180" class="size-full wp-image-138" /><p class="wp-caption-text">Lorem ipsum dolor sit amet</p></div>
+<h2>About this Theme</h2>
+<p><a href="http://web-kreation.com/index.php/wordpress/oneroom-another-free-wordpress-theme-by-web-kreation" title="Go back to the article"><strong>OneRoom</strong></a> is a free Wordpress theme designed by <a href="http://web-kreation.com">Web-Kreation</a> whose blog you will find at <a href="http://web-kreation.com/index.php/blog/">http://web-kreation.com/index.php/blog/</a>. This theme is valid <a href="http://validator.w3.org/check?uri=http%3A%2F%2Fweb-kreation.com%2Fdemos%2Foneroom&#038;charset=(detect+automatically)&#038;doctype=Inline&#038;group=0" target="_blank" rel="nofollow">(X)HTML</a> &#038; <a href="http://jigsaw.w3.org/css-validator/validator?uri=http%3A%2F%2Fweb-kreation.com%2Fdemos%2Foneroom&#038;profile=css21&#038;usermedium=all&#038;warning=1&#038;lang=es" target="_blank" rel="nofollow">CSS</a>.</p> -->
+
+
+
+
+ </div>
+ </div>
+ </div>
+
+
+
+
+
+
+
+
+
+ <div class="nav nav-border-bottom">
+ <div class="alignleft"><a href="/archives.html" >&laquo; Older Entries</a>&nbsp;</div>
+
+ <div class="alignright">&nbsp;</div>
+ </div>
+
+
+</div> <!-- / content -->
+
+ <div id="sidebar">
+
+ <ul>
+ <!--
+ <li class="nobackground">
+ <form method="get" id="searchform" action="http://web-kreation.com/demos/oneroom/">
+
+ <div>
+ <input class="search-field" type="text" onfocus="this.value=''" onblur="this.value='Search...'" value="Search..." name="s" id="s" />
+ <input class="search-submit" type="submit" value="" />
+ </div>
+ </form>
+ </li>
+ -->
+ <!-- Author information is disabled per default. Uncomment and fill in your details if you want to use it. -->
+ <li><h2>About SEO on Rails</h2>
+
+ <p>This website provides tips, tricks and code to help you to make your Ruby on Rails powered sites more search engine friendly and optimized.
+</p><p>
+ If you have any Rails related SEO questions, feel free to drop me a line at questions @ this domain .com</p>
+ </li>
+
+ <!-- Banners / OPTIONAL -->
+ <!-- Banners' size must be 125x125 -->
+ <li class="ads clearfix"><h2>Our Sponsors</h2>
+ <!-- First Row -->
+ <a class="ad-left" href="mailto:info@seoonrails.com?subject=seoonrails.com-ads"><img src="images/ad.jpg" alt="" /></a>
+
+ <a class="ad-right" href="mailto:info@seoonrails.com?subject=ads"><img src="images/ad.jpg" alt="" /></a>
+ </li>
+
+<!--
+
+ <li class="pagenav"><h2>Pages</h2><ul><li class="page_item page-item-57"><a href="http://web-kreation.com/demos/oneroom/index.php/typography/" title="Typography">Typography</a></li>
+<li class="page_item page-item-2"><a href="http://web-kreation.com/demos/oneroom/index.php/usage/" title="Usage">Usage</a></li>
+<li class="page_item page-item-51"><a href="http://web-kreation.com/demos/oneroom/index.php/license/" title="License">License</a></li>
+<li class="page_item page-item-61"><a href="http://web-kreation.com/demos/oneroom/index.php/contact/" title="Contact">Contact</a></li>
+</ul></li>
+
+ <!-- Optional - Latest Posts
+ <li><h2>Latest Posts</h2>
+ <ul>
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/animals/oneroom-free-wordpress-theme-by-web-kreation/' title='OneRoom &#8211; Free WP Theme by Web-Kreation'>OneRoom &#8211; Free WP Theme by Web-Kreation</a></li>
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/animals/at-vero-eos-et-accusamus-et-iusto/' title='At vero eos et accusamus et iusto'>At vero eos et accusamus et iusto</a></li>
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/animals/et-quas-molestias-excepturi-sint-occaecati-cupiditate/' title='Et quas molestias excepturi sint occaecati cupiditate'>Et quas molestias excepturi sint occaecati cupiditate</a></li>
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/animals/et-harum-quidem-rerum-facilis-est-et-expedita-distinctio/' title='Et harum quidem rerum facilis est et expedita distinctio.'>Et harum quidem rerum facilis est et expedita distinctio.</a></li>
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/animals/excepteur-sint-occaecat-cupidatat-non-proident/' title='Excepteur sint occaecat cupidatat non proident'>Excepteur sint occaecat cupidatat non proident</a></li>
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/travel/ut-enim-ad-minim-veniam/' title='Ut enim ad minim veniam,'>Ut enim ad minim veniam,</a></li>
+ </ul>
+ </li>-->
+<!--
+ <li><h2>Archives</h2>
+ <ul>
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/2009/02/' title='February 2009'>February 2009</a></li>
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/2009/01/' title='January 2009'>January 2009</a></li>
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/2008/12/' title='December 2008'>December 2008</a></li>
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/2008/10/' title='October 2008'>October 2008</a></li>
+
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/2008/09/' title='September 2008'>September 2008</a></li>
+ </ul>
+ </li>
+
+ <li class="categories"><h2>Categories</h2><ul> <li class="cat-item cat-item-25"><a href="http://web-kreation.com/demos/oneroom/index.php/category/animals/" title="View all posts filed under Animals">Animals</a> (6)
+</li>
+ <li class="cat-item cat-item-29"><a href="http://web-kreation.com/demos/oneroom/index.php/category/insects/" title="View all posts filed under Insects">Insects</a> (2)
+
+</li>
+ <li class="cat-item cat-item-26"><a href="http://web-kreation.com/demos/oneroom/index.php/category/nature/" title="View all posts filed under Nature">Nature</a> (6)
+</li>
+ <li class="cat-item cat-item-13"><a href="http://web-kreation.com/demos/oneroom/index.php/category/travel/" title="View all posts filed under Travel">Travel</a> (1)
+</li>
+</ul></li>
+
+-->
+ <li id="linkcat-2" class="linkcat"><h2>Reccomended</h2>
+ <ul class='xoxo blogroll'>
+
+<li><a href="http://www.therailsway.com">The Rails Way</a></li>
+<li><a href="http://www.seobook.com/">SEO Book</a></li>
+<li><a href="http://www.railscasts.com/">Railscasts</a></li>
+<li><a href="http://www.rubyserve.com/">Hosted by Rubyserve</a></li>
+
+ </ul>
+
+</li>
+
+
+ </div>
+
+
+
+ <div class="clear"></div>
+ </div><!-- / pageWrapper -->
+
+ <div id="footer">
+ <div class="foot_l">&nbsp;</div>
+ <div class="foot_content">
+ <div class=""></div>
+
+ <p>
+ All contents copyright &copy;Seo on Rails. All rights reserved. |
+
+ <!-- PLEASE DO NOT EDIT OR DELETE THE CODE BELOW THIS LINE -->
+ <!-- License: http://web-kreation.com/demos/oneroom/index.php/license/ -->
+ <!-- If you want to remove this copyright notice, please contact me at info {at} web-kreation {dot} com -->
+ Theme design by <a href="http://web-kreation.com">Web-Kreation</a>.
+ <!-- / END -->
+
+ </p>
+ </div>
+ <div class="foot_r">&nbsp;</div>
+ <a href="#top" id="toTop">&nbsp;</a>
+ </div><!-- / footer -->
+
+ </div><!-- / Wrapper -->
+
+ <!-- Stunning design by Jeeremie - http://web-kreation.com -->
+
+
+
+</div><!-- / container -->
+<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+_uacct = "UA-32073-10";
+urchinTracker();
+</script>
+<script type='text/javascript' src='http://track3.mybloglog.com/js/jsserv.php?mblID=2007012908320762'></script>
+
+</body>
+</html>
+
260 _site/archives.html
@@ -0,0 +1,260 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US">
+
+<head profile="http://gmpg.org/xfn/11">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+
+<title>SEO on Rails Archives - SEO on Rails</title>
+
+<link rel="stylesheet" href="style.css" type="text/css" media="screen" />
+<link rel="alternate" type="application/atom+xml" title="SEO on Rails feed" href="http://feeds.feedburner.com/seo-rails"/>
+
+
+<!--[if IE 6]>
+<style type="text/css">
+.comment-form{margin-bottom: -3px}
+</style>
+<![endif]-->
+
+</head>
+<body id="top">
+<div id="container">
+ <div id="wrapper">
+
+ <div id="header">
+ <div id="logo">
+
+ <!-- Your Logo image - max-width: 200px -->
+ <!-- USAGE:
+ 1-create your own logo and save it as logo.jpg in the folder "images" in your theme folder.
+ 2-uncomment code below:-->
+ <!-- <a class="logo" href="http://web-kreation.com/demos/oneroom/" title="Back Home"></a>
+ -->
+ <h1><a href="http://www.seoonrails.com/">SEO on Rails</a></h1>
+ </div>
+
+ <!-- ADMIN NAVIGATION -->
+ <!--<ul id="navAdmin">
+ <li><a href="http://web-kreation.com/demos/oneroom/wp-login.php">Log in</a></li>
+
+ </ul>
+
+ <!-- MAIN NAVIGATION
+ <div class="menu"><ul><li class="current_page_item"><a href="http://web-kreation.com/demos/oneroom" title="Home">Home</a></li><li class="page_item page-item-57"><a href="http://web-kreation.com/demos/oneroom/index.php/typography/" title="Typography">Typography</a></li><li class="page_item page-item-2"><a href="http://web-kreation.com/demos/oneroom/index.php/usage/" title="Usage">Usage</a></li><li class="page_item page-item-51"><a href="http://web-kreation.com/demos/oneroom/index.php/license/" title="License">License</a></li><li class="page_item page-item-61"><a href="http://web-kreation.com/demos/oneroom/index.php/contact/" title="Contact">Contact</a></li></ul></div> -->
+
+ <!-- Alternative navigation
+ <ul class="menu">
+ <li class="current_page_item"><a href="http://web-kreation.com/demos/oneroom/">Home</a></li>
+ <li class="page_item page-item-57"><a href="http://web-kreation.com/demos/oneroom/index.php/typography/" title="Typography">Typography</a></li>
+<li class="page_item page-item-2"><a href="http://web-kreation.com/demos/oneroom/index.php/usage/" title="Usage">Usage</a></li>
+<li class="page_item page-item-51"><a href="http://web-kreation.com/demos/oneroom/index.php/license/" title="License">License</a></li>
+<li class="page_item page-item-61"><a href="http://web-kreation.com/demos/oneroom/index.php/contact/" title="Contact">Contact</a></li>
+ <li><a href="http://yourExternalLinkHere.com">External Link</a></li>
+ </ul> -->
+
+ <!-- / END MAIN NAVIGATION -->
+
+
+ <!-- FEED -->
+
+ <a id="rss" href="http://feeds.feedburner.com/seo-rails" title="Syndicate this site using RSS">SUBSCRIBE TO <b>RSS</b></a>
+
+ </div>
+
+ <div id="pageWrapper">
+
+<div id="content">
+
+ <div class="postWrapper">
+
+
+ <div class="post">
+ <h1>Older Posts</h1>
+
+ <div class="entry">
+
+
+ <ul>
+
+ <li><span>24 Feb 2010</span> &raquo; <a href="/seo-impact-of-rails-3.html">The SEO impact of Rails 3</a></li>
+
+ <li><span>07 Jun 2009</span> &raquo; <a href="/rails-seo-starter-guide.html">Rails SEO starter guide</a></li>
+
+ <li><span>04 Sep 2008</span> &raquo; <a href="/rails-seo-around-the-web.html">Rails SEO Around the web</a></li>
+
+ <li><span>01 Sep 2008</span> &raquo; <a href="/seo-friendly-ajax.html">SEO friendly Ajax</a></li>
+
+ <li><span>15 Jun 2008</span> &raquo; <a href="/title_tag_helper.html">SEO friendly title tag plugin</a></li>
+
+ <li><span>08 Feb 2007</span> &raquo; <a href="/scrubyt-screen-scraping.html">Screen scraping update ( Already! )</a></li>
+
+ <li><span>05 Feb 2007</span> &raquo; <a href="/301-redirects-in-rails.html">301 Redirects in Rails</a></li>
+
+ <li><span>03 Feb 2007</span> &raquo; <a href="/rails-image-tag.html">RoR image_tag harmful for SEO?</a></li>
+
+ <li><span>03 Feb 2007</span> &raquo; <a href="/getting-your-meta-tags-on-track.html">Getting your meta tags on track</a></li>
+
+ <li><span>01 Feb 2007</span> &raquo; <a href="/screen-scraping-ruby.html">Screen Scraping in Ruby</a></li>
+
+ <li><span>01 Feb 2007</span> &raquo; <a href="/mephisto-google-sitemap.html">Google Sitemaps in Mephisto</a></li>
+
+ <li><span>24 Jan 2007</span> &raquo; <a href="/urls-ending-in-html.html">URLs ending in .html</a></li>
+
+ <li><span>24 Jan 2007</span> &raquo; <a href="/to_param-for-better-looking-urls.html">Better looking URLs with to_param</a></li>
+
+ <li><span>24 Jan 2007</span> &raquo; <a href="/even-better-looking-urls-with-permalink_fu.html">Even better looking URLs with permalink_fu</a></li>
+
+ <li><span>23 Jan 2007</span> &raquo; <a href="/welcome-to-seo-on-rails.html">Welcome to SEO on Rails</a></li>
+
+ </ul>
+
+ </div>
+
+ </div>
+ </div>
+
+
+
+
+
+ <div class="nav nav-border-bottom">
+ <div class="alignleft"><a href="/archives.html" >&laquo; Older Entries</a>&nbsp;</div>
+
+ <div class="alignright">&nbsp;</div>
+ </div>
+
+
+</div> <!-- / content -->
+
+ <div id="sidebar">
+
+ <ul>
+ <!--
+ <li class="nobackground">
+ <form method="get" id="searchform" action="http://web-kreation.com/demos/oneroom/">
+
+ <div>
+ <input class="search-field" type="text" onfocus="this.value=''" onblur="this.value='Search...'" value="Search..." name="s" id="s" />
+ <input class="search-submit" type="submit" value="" />
+ </div>
+ </form>
+ </li>
+ -->
+ <!-- Author information is disabled per default. Uncomment and fill in your details if you want to use it. -->
+ <li><h2>About SEO on Rails</h2>
+
+ <p>This website provides tips, tricks and code to help you to make your Ruby on Rails powered sites more search engine friendly and optimized.
+</p><p>
+ If you have any Rails related SEO questions, feel free to drop me a line at questions @ this domain .com</p>
+ </li>
+
+ <!-- Banners / OPTIONAL -->
+ <!-- Banners' size must be 125x125 -->
+ <li class="ads clearfix"><h2>Our Sponsors</h2>
+ <!-- First Row -->
+ <a class="ad-left" href="mailto:info@seoonrails.com?subject=seoonrails.com-ads"><img src="images/ad.jpg" alt="" /></a>
+
+ <a class="ad-right" href="mailto:info@seoonrails.com?subject=ads"><img src="images/ad.jpg" alt="" /></a>
+ </li>
+
+<!--
+
+ <li class="pagenav"><h2>Pages</h2><ul><li class="page_item page-item-57"><a href="http://web-kreation.com/demos/oneroom/index.php/typography/" title="Typography">Typography</a></li>
+<li class="page_item page-item-2"><a href="http://web-kreation.com/demos/oneroom/index.php/usage/" title="Usage">Usage</a></li>
+<li class="page_item page-item-51"><a href="http://web-kreation.com/demos/oneroom/index.php/license/" title="License">License</a></li>
+<li class="page_item page-item-61"><a href="http://web-kreation.com/demos/oneroom/index.php/contact/" title="Contact">Contact</a></li>
+</ul></li>
+
+ <!-- Optional - Latest Posts
+ <li><h2>Latest Posts</h2>
+ <ul>
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/animals/oneroom-free-wordpress-theme-by-web-kreation/' title='OneRoom &#8211; Free WP Theme by Web-Kreation'>OneRoom &#8211; Free WP Theme by Web-Kreation</a></li>
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/animals/at-vero-eos-et-accusamus-et-iusto/' title='At vero eos et accusamus et iusto'>At vero eos et accusamus et iusto</a></li>
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/animals/et-quas-molestias-excepturi-sint-occaecati-cupiditate/' title='Et quas molestias excepturi sint occaecati cupiditate'>Et quas molestias excepturi sint occaecati cupiditate</a></li>
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/animals/et-harum-quidem-rerum-facilis-est-et-expedita-distinctio/' title='Et harum quidem rerum facilis est et expedita distinctio.'>Et harum quidem rerum facilis est et expedita distinctio.</a></li>
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/animals/excepteur-sint-occaecat-cupidatat-non-proident/' title='Excepteur sint occaecat cupidatat non proident'>Excepteur sint occaecat cupidatat non proident</a></li>
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/travel/ut-enim-ad-minim-veniam/' title='Ut enim ad minim veniam,'>Ut enim ad minim veniam,</a></li>
+ </ul>
+ </li>-->
+<!--
+ <li><h2>Archives</h2>
+ <ul>
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/2009/02/' title='February 2009'>February 2009</a></li>
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/2009/01/' title='January 2009'>January 2009</a></li>
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/2008/12/' title='December 2008'>December 2008</a></li>
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/2008/10/' title='October 2008'>October 2008</a></li>
+
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/2008/09/' title='September 2008'>September 2008</a></li>
+ </ul>
+ </li>
+
+ <li class="categories"><h2>Categories</h2><ul> <li class="cat-item cat-item-25"><a href="http://web-kreation.com/demos/oneroom/index.php/category/animals/" title="View all posts filed under Animals">Animals</a> (6)
+</li>
+ <li class="cat-item cat-item-29"><a href="http://web-kreation.com/demos/oneroom/index.php/category/insects/" title="View all posts filed under Insects">Insects</a> (2)
+
+</li>
+ <li class="cat-item cat-item-26"><a href="http://web-kreation.com/demos/oneroom/index.php/category/nature/" title="View all posts filed under Nature">Nature</a> (6)
+</li>
+ <li class="cat-item cat-item-13"><a href="http://web-kreation.com/demos/oneroom/index.php/category/travel/" title="View all posts filed under Travel">Travel</a> (1)
+</li>
+</ul></li>
+
+-->
+ <li id="linkcat-2" class="linkcat"><h2>Reccomended</h2>
+ <ul class='xoxo blogroll'>
+
+<li><a href="http://www.therailsway.com">The Rails Way</a></li>
+<li><a href="http://www.seobook.com/">SEO Book</a></li>
+<li><a href="http://www.railscasts.com/">Railscasts</a></li>
+<li><a href="http://www.rubyserve.com/">Hosted by Rubyserve</a></li>
+
+ </ul>
+
+</li>
+
+
+ </div>
+
+
+
+ <div class="clear"></div>
+ </div><!-- / pageWrapper -->
+
+ <div id="footer">
+ <div class="foot_l">&nbsp;</div>
+ <div class="foot_content">
+ <div class=""></div>
+
+ <p>
+ All contents copyright &copy;Seo on Rails. All rights reserved. |
+
+ <!-- PLEASE DO NOT EDIT OR DELETE THE CODE BELOW THIS LINE -->
+ <!-- License: http://web-kreation.com/demos/oneroom/index.php/license/ -->
+ <!-- If you want to remove this copyright notice, please contact me at info {at} web-kreation {dot} com -->
+ Theme design by <a href="http://web-kreation.com">Web-Kreation</a>.
+ <!-- / END -->
+
+ </p>
+ </div>
+ <div class="foot_r">&nbsp;</div>
+ <a href="#top" id="toTop">&nbsp;</a>
+ </div><!-- / footer -->
+
+ </div><!-- / Wrapper -->
+
+ <!-- Stunning design by Jeeremie - http://web-kreation.com -->
+
+
+
+</div><!-- / container -->
+<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+_uacct = "UA-32073-10";
+urchinTracker();
+</script>
+<script type='text/javascript' src='http://track3.mybloglog.com/js/jsserv.php?mblID=2007012908320762'></script>
+
+</body>
+</html>
+
303 _site/even-better-looking-urls-with-permalink_fu.html
@@ -0,0 +1,303 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US">
+
+<head profile="http://gmpg.org/xfn/11">
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+
+<title>Even better looking URLs with permalink_fu - SEO on Rails</title>
+
+<link rel="stylesheet" href="style.css" type="text/css" media="screen" />
+<link rel="alternate" type="application/atom+xml" title="SEO on Rails feed" href="http://feeds.feedburner.com/seo-rails"/>
+
+
+<!--[if IE 6]>
+<style type="text/css">
+.comment-form{margin-bottom: -3px}
+</style>
+<![endif]-->
+
+</head>
+<body id="top">
+<div id="container">
+ <div id="wrapper">
+
+ <div id="header">
+ <div id="logo">
+
+ <!-- Your Logo image - max-width: 200px -->
+ <!-- USAGE:
+ 1-create your own logo and save it as logo.jpg in the folder "images" in your theme folder.
+ 2-uncomment code below:-->
+ <!-- <a class="logo" href="http://web-kreation.com/demos/oneroom/" title="Back Home"></a>
+ -->
+ <h1><a href="http://www.seoonrails.com/">SEO on Rails</a></h1>
+ </div>
+
+ <!-- ADMIN NAVIGATION -->
+ <!--<ul id="navAdmin">
+ <li><a href="http://web-kreation.com/demos/oneroom/wp-login.php">Log in</a></li>
+
+ </ul>
+
+ <!-- MAIN NAVIGATION
+ <div class="menu"><ul><li class="current_page_item"><a href="http://web-kreation.com/demos/oneroom" title="Home">Home</a></li><li class="page_item page-item-57"><a href="http://web-kreation.com/demos/oneroom/index.php/typography/" title="Typography">Typography</a></li><li class="page_item page-item-2"><a href="http://web-kreation.com/demos/oneroom/index.php/usage/" title="Usage">Usage</a></li><li class="page_item page-item-51"><a href="http://web-kreation.com/demos/oneroom/index.php/license/" title="License">License</a></li><li class="page_item page-item-61"><a href="http://web-kreation.com/demos/oneroom/index.php/contact/" title="Contact">Contact</a></li></ul></div> -->
+
+ <!-- Alternative navigation
+ <ul class="menu">
+ <li class="current_page_item"><a href="http://web-kreation.com/demos/oneroom/">Home</a></li>
+ <li class="page_item page-item-57"><a href="http://web-kreation.com/demos/oneroom/index.php/typography/" title="Typography">Typography</a></li>
+<li class="page_item page-item-2"><a href="http://web-kreation.com/demos/oneroom/index.php/usage/" title="Usage">Usage</a></li>
+<li class="page_item page-item-51"><a href="http://web-kreation.com/demos/oneroom/index.php/license/" title="License">License</a></li>
+<li class="page_item page-item-61"><a href="http://web-kreation.com/demos/oneroom/index.php/contact/" title="Contact">Contact</a></li>
+ <li><a href="http://yourExternalLinkHere.com">External Link</a></li>
+ </ul> -->
+
+ <!-- / END MAIN NAVIGATION -->
+
+
+ <!-- FEED -->
+
+ <a id="rss" href="http://feeds.feedburner.com/seo-rails" title="Syndicate this site using RSS">SUBSCRIBE TO <b>RSS</b></a>
+
+ </div>
+
+ <div id="pageWrapper">
+
+<div id="content">
+
+ <div class="postWrapper">
+
+
+
+
+ <div class="postmetadata">
+ <p class="meta-date">
+ <span class="date-day">24</span>
+ <span class="date-month">Jan</span>
+
+ <span class="date-year">2007</span>
+ </p>
+ <p class="meta-author">by Eaden McKee</p>
+ <!--<a href="link to comments" class="meta-comments" title=""></a>-->
+
+
+ <p class="meta-tags">
+ urls,rails,routes,permalinks,plugins </div>
+
+<div class="post" id="post-3">
+ <h1><a href="" rel="bookmark" >Even better looking URLs with permalink_fu</a></h1>
+
+ <div class="entry">
+
+ <p>Extracted from <a href="http://www.mephistoblog.com/">Mephisto</a> is the handy plugin called <a href="http://svn.techno-weenie.net/projects/plugins/permalink_fu/">permalink_fu</a>. <br />
+This plugin allows you to use ID-less permalinks, much like that in this blog.</p>
+<p>I wrote earlier about how to use <a href="http://www.seoonrails.com/to_param-for-better-looking-urls">to_param</a> for nicer URLs, but these are even better. The plugin automatically turns a field in your model into something that could be a permalink, by stripping out all non english and non alphanumeric letters. It then saves this in a field in your database for future use.</p>
+<p>So, onto the HowTo:</p>
+<p>First, install the plugin in your rails app.</p>
+<pre><code>
+./script/plugin install http://svn.techno-weenie.net/projects/plugins/permalink_fu/
+</code></pre>
+<p>Now you need to add a field to your database to store the permalink.</p>
+<pre><code>
+./script/generate migration add_permalink_to_article
+</code></pre>
+<p>In the migration we add the field called permalink.</p>
+<pre><code>
+add_column :designers, :permalink, :string
+</code></pre>
+<p>Now for the model code<br />
+<pre><code>
+class Article &lt; ActiveRecord::Base</p>
+<ol>
+ <li>title is the field name you want to convert to a permalink<br />
+ has_permalink :title</li>
+ <li>you can also specifiy a different permalink field in your database by giving a second paramater</li>
+ <li>has_permalink :title, :my_permalink_field</li>
+</ol>
+<ol>
+ <li>we now add the to_param method which Rails&#8217;s routing uses<br />
+ def to_param<br />
+ permalink<br />
+ end <br />
+end<br />
+</code></pre></li>
+</ol>
+<p>The permalink field is only populated after the record is validated, so if you have a bunch of records already in your database you can get the permalink field to populate with</p>
+<pre><code>
+Article.find(:all).each(&amp;:save)
+</code></pre>
+<p>If you already have lots of view code written then this is the easy way to get these routes working &#8211; in your controller :<br />
+<pre><code>
+@article = Article.find_by_permalink(params[:id])
+</code></pre></p>
+<p>However that doesn&#8217;t seem to pass the smell test using :id rather than :permalink, but will work fine. <br />
+To use :permalink you will have to change your routing code and your view code :</p>
+<pre><code>
+# in your route file
+map.connect 'article/:permalink', :controller =&gt; 'article', :action =&gt; 'view'
+# in your views when linking
+link_to "View #{article.title}", {:controller =&gt; 'designer', :action =&gt; 'view', :permalink =&gt; article.permalink}
+# then in your controller you can use
+@article = Article.find_by_permalink(params[:permalink])
+</code></pre>
+<p>Thats all! I&#8217;m always on the lookout for <span class="caps">SEO</span> related Rails topics to talk about so drop me a line @ questions <del>at</del> this domain .com.</p>
+ <!-- <div id="attachment_138" class="wp-caption aligncenter" style="width: 480px"><img src="http://web-kreation.com/demos/oneroom/wp-content/uploads/2009/02/nature-1.jpg" alt="Lorem ipsum dolor sit amet" title="nature-1" width="470" height="180" class="size-full wp-image-138" /><p class="wp-caption-text">Lorem ipsum dolor sit amet</p></div>
+<h2>About this Theme</h2>
+<p><a href="http://web-kreation.com/index.php/wordpress/oneroom-another-free-wordpress-theme-by-web-kreation" title="Go back to the article"><strong>OneRoom</strong></a> is a free Wordpress theme designed by <a href="http://web-kreation.com">Web-Kreation</a> whose blog you will find at <a href="http://web-kreation.com/index.php/blog/">http://web-kreation.com/index.php/blog/</a>. This theme is valid <a href="http://validator.w3.org/check?uri=http%3A%2F%2Fweb-kreation.com%2Fdemos%2Foneroom&#038;charset=(detect+automatically)&#038;doctype=Inline&#038;group=0" target="_blank" rel="nofollow">(X)HTML</a> &#038; <a href="http://jigsaw.w3.org/css-validator/validator?uri=http%3A%2F%2Fweb-kreation.com%2Fdemos%2Foneroom&#038;profile=css21&#038;usermedium=all&#038;warning=1&#038;lang=es" target="_blank" rel="nofollow">CSS</a>.</p> -->
+
+
+
+
+ </div>
+ </div>
+ </div>
+
+
+
+
+
+
+
+
+
+ <div class="nav nav-border-bottom">
+ <div class="alignleft"><a href="/archives.html" >&laquo; Older Entries</a>&nbsp;</div>
+
+ <div class="alignright">&nbsp;</div>
+ </div>
+
+
+</div> <!-- / content -->
+
+ <div id="sidebar">
+
+ <ul>
+ <!--
+ <li class="nobackground">
+ <form method="get" id="searchform" action="http://web-kreation.com/demos/oneroom/">
+
+ <div>
+ <input class="search-field" type="text" onfocus="this.value=''" onblur="this.value='Search...'" value="Search..." name="s" id="s" />
+ <input class="search-submit" type="submit" value="" />
+ </div>
+ </form>
+ </li>
+ -->
+ <!-- Author information is disabled per default. Uncomment and fill in your details if you want to use it. -->
+ <li><h2>About SEO on Rails</h2>
+
+ <p>This website provides tips, tricks and code to help you to make your Ruby on Rails powered sites more search engine friendly and optimized.
+</p><p>
+ If you have any Rails related SEO questions, feel free to drop me a line at questions @ this domain .com</p>
+ </li>
+
+ <!-- Banners / OPTIONAL -->
+ <!-- Banners' size must be 125x125 -->
+ <li class="ads clearfix"><h2>Our Sponsors</h2>
+ <!-- First Row -->
+ <a class="ad-left" href="mailto:info@seoonrails.com?subject=seoonrails.com-ads"><img src="images/ad.jpg" alt="" /></a>
+
+ <a class="ad-right" href="mailto:info@seoonrails.com?subject=ads"><img src="images/ad.jpg" alt="" /></a>
+ </li>
+
+<!--
+
+ <li class="pagenav"><h2>Pages</h2><ul><li class="page_item page-item-57"><a href="http://web-kreation.com/demos/oneroom/index.php/typography/" title="Typography">Typography</a></li>
+<li class="page_item page-item-2"><a href="http://web-kreation.com/demos/oneroom/index.php/usage/" title="Usage">Usage</a></li>
+<li class="page_item page-item-51"><a href="http://web-kreation.com/demos/oneroom/index.php/license/" title="License">License</a></li>
+<li class="page_item page-item-61"><a href="http://web-kreation.com/demos/oneroom/index.php/contact/" title="Contact">Contact</a></li>
+</ul></li>
+
+ <!-- Optional - Latest Posts
+ <li><h2>Latest Posts</h2>
+ <ul>
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/animals/oneroom-free-wordpress-theme-by-web-kreation/' title='OneRoom &#8211; Free WP Theme by Web-Kreation'>OneRoom &#8211; Free WP Theme by Web-Kreation</a></li>
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/animals/at-vero-eos-et-accusamus-et-iusto/' title='At vero eos et accusamus et iusto'>At vero eos et accusamus et iusto</a></li>
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/animals/et-quas-molestias-excepturi-sint-occaecati-cupiditate/' title='Et quas molestias excepturi sint occaecati cupiditate'>Et quas molestias excepturi sint occaecati cupiditate</a></li>
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/animals/et-harum-quidem-rerum-facilis-est-et-expedita-distinctio/' title='Et harum quidem rerum facilis est et expedita distinctio.'>Et harum quidem rerum facilis est et expedita distinctio.</a></li>
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/animals/excepteur-sint-occaecat-cupidatat-non-proident/' title='Excepteur sint occaecat cupidatat non proident'>Excepteur sint occaecat cupidatat non proident</a></li>
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/travel/ut-enim-ad-minim-veniam/' title='Ut enim ad minim veniam,'>Ut enim ad minim veniam,</a></li>
+ </ul>
+ </li>-->
+<!--
+ <li><h2>Archives</h2>
+ <ul>
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/2009/02/' title='February 2009'>February 2009</a></li>
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/2009/01/' title='January 2009'>January 2009</a></li>
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/2008/12/' title='December 2008'>December 2008</a></li>
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/2008/10/' title='October 2008'>October 2008</a></li>
+
+ <li><a href='http://web-kreation.com/demos/oneroom/index.php/2008/09/' title='September 2008'>September 2008</a></li>
+ </ul>
+ </li>
+
+ <li class="categories"><h2>Categories</h2><ul> <li class="cat-item cat-item-25"><a href="http://web-kreation.com/demos/oneroom/index.php/category/animals/" title="View all posts filed under Animals">Animals</a> (6)
+</li>
+ <li class="cat-item cat-item-29"><a href="http://web-kreation.com/demos/oneroom/index.php/category/insects/" title="View all posts filed under Insects">Insects</a> (2)
+
+</li>
+ <li class="cat-item cat-item-26"><a href="http://web-kreation.com/demos/oneroom/index.php/category/nature/" title="View all posts filed under Nature">Nature</a> (6)
+</li>
+ <li class="cat-item cat-item-13"><a href="http://web-kreation.com/demos/oneroom/index.php/category/travel/" title="View all posts filed under Travel">Travel</a> (1)
+</li>
+</ul></li>
+
+-->
+ <li id="linkcat-2" class="linkcat"><h2>Reccomended</h2>
+ <ul class='xoxo blogroll'>
+
+<li><a href="http://www.therailsway.com">The Rails Way</a></li>
+<li><a href="http://www.seobook.com/">SEO Book</a></li>
+<li><a href="http://www.railscasts.com/">Railscasts</a></li>
+<li><a href="http://www.rubyserve.com/">Hosted by Rubyserve</a></li>
+
+ </ul>
+
+</li>
+
+
+ </div>
+
+
+
+ <div class="clear"></div>
+ </div><!-- / pageWrapper -->
+
+ <div id="footer">
+ <div class="foot_l">&nbsp;</div>
+ <div class="foot_content">
+ <div class=""></div>
+
+ <p>
+ All contents copyright &copy;Seo on Rails. All rights reserved. |
+
+ <!-- PLEASE DO NOT EDIT OR DELETE THE CODE BELOW THIS LINE -->
+ <!-- License: http://web-kreation.com/demos/oneroom/index.php/license/ -->
+ <!-- If you want to remove this copyright notice, please contact me at info {at} web-kreation {dot} com -->
+ Theme design by <a href="http://web-kreation.com">Web-Kreation</a>.
+ <!-- / END -->
+
+ </p>
+ </div>
+ <div class="foot_r">&nbsp;</div>
+ <a href="#top" id="toTop">&nbsp;</a>
+ </div><!-- / footer -->
+
+ </div><!-- / Wrapper -->
+
+ <!-- Stunning design by Jeeremie - http://web-kreation.com -->
+
+
+
+</div><!-- / container -->
+<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
+</script>
+<script type="text/javascript">
+_uacct = "UA-32073-10";
+urchinTracker();
+</script>
+<script type='text/javascript' src='http://track3.mybloglog.com/js/jsserv.php?mblID=2007012908320762'></script>
+
+</body>
+</html>
+
426 _site/feed/atom.xml
@@ -0,0 +1,426 @@
+<?xml version="1.0" encoding="utf-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom">
+
+ <title>SEO on Rails</title>
+ <link href="http://www.seoonrails.com/atom.xml" rel="self"/>
+ <link href="http://www.seoonrails.com/"/>
+ <updated>2010-02-24T10:12:19+13:00</updated>
+ <id>http://www.seoonrails.com/</id>
+ <author>
+ <name>Eaden McKee</name>
+ <email>eadz@eadz.co.nz</email>
+ </author>
+
+
+ <entry>
+ <title>The SEO impact of Rails 3</title>
+ <link href="http://www.seoonrails.com/seo-impact-of-rails-3.html"/>
+ <updated>2010-02-24T00:00:00+13:00</updated>
+ <id>http://www.seoonrails.com/seo-impact-of-rails-3</id>
+ <content type="html">Rails 3 is currently in beta, and I've had a look through the changes to see what impact, if any they will have on SEO. One change is that ajax helpers now work unobtrusively which will help to clean up the code, resulting in smaller page sizes. This probably won't have any effect, but it is an improvement.
+
+The other thing is Rails 3 will be faster. Faster render times means that the google bot can index your site quicker and more often. The google bot detects load on the web server by its page render time. I wonder if it things RoR sites are always overloaded?!</content>
+ </entry>
+
+ <entry>
+ <title>Rails SEO starter guide</title>
+ <link href="http://www.seoonrails.com/rails-seo-starter-guide.html"/>
+ <updated>2009-06-07T00:00:00+12:00</updated>
+ <id>http://www.seoonrails.com/rails-seo-starter-guide</id>
+ <content type="html">&lt;p&gt;Google has released their official &lt;a href=&quot;http://googlewebmastercentral.blogspot.com/2008/11/googles-seo-starter-guide.html&quot;&gt;webmaster &lt;span class=&quot;caps&quot;&gt;SEO&lt;/span&gt; starter guide&lt;/a&gt; (download &lt;a href=&quot;http://www.google.com/webmasters/docs/search-engine-optimization-starter-guide.pdf&quot;&gt;pdf&lt;/a&gt;, which is worth a look.&lt;/p&gt;
+&lt;p&gt;Some of these reccomentations have been &amp;#8220;rails-ified&amp;#8221; and are blogged as a &lt;a href=&quot;http://www.elctech.com/articles/rails-seo-starter-guide&quot;&gt;rails seo starter guide&lt;/a&gt; There are some nice tips in the post, so check it out.&lt;/p&gt;</content>
+ </entry>
+
+ <entry>
+ <title>Rails SEO Around the web</title>
+ <link href="http://www.seoonrails.com/rails-seo-around-the-web.html"/>
+ <updated>2008-09-04T00:00:00+12:00</updated>
+ <id>http://www.seoonrails.com/rails-seo-around-the-web</id>
+ <content type="html">&lt;p&gt;While Ruby on Rails specific &lt;acronym title=&quot;Search Engine Optimization&quot;&gt;&lt;span class=&quot;caps&quot;&gt;SEO&lt;/span&gt;&lt;/acronym&gt; is a pretty small subject, compared to the larger world of &lt;span class=&quot;caps&quot;&gt;SEO&lt;/span&gt;, it still requires some thought.&lt;/p&gt;
+&lt;p&gt;Over at &lt;a href=&quot;http://www.bingocardcreator.com/rails-seo-tips.htm&quot;&gt;http://www.bingocardcreator.com/rails-seo-tips.htm&lt;/a&gt; is a very large article on Rails-specific optimizations you can do to improve search engine rankings.&lt;/p&gt;
+&lt;p&gt;It includes:&lt;/p&gt;
+&lt;ul&gt;
+ &lt;li&gt;The Case Study: Daily Bingo Cards&lt;/li&gt;
+ &lt;li&gt;On-page Optimization&lt;/li&gt;
+ &lt;li&gt;Sexy URLs, or, Default Routes Considered Harmful&lt;/li&gt;
+ &lt;li&gt;Taming Your Title Tags (And Other Metadata)&lt;/li&gt;
+ &lt;li&gt;Don&amp;#8217;t Repeat Yourself&amp;#8230; In Your Content&lt;/li&gt;
+ &lt;li&gt;Off-page Optimization&lt;/li&gt;
+ &lt;li&gt;acts_as_linkbait: making it easy to link to you&lt;/li&gt;
+ &lt;li&gt;Bookmarks, Chicklets, and Permalinks, Oh My!&lt;/li&gt;
+&lt;/ul&gt;
+&lt;p&gt;Some of the topics have been covered here at &lt;a href=&quot;http://www.seoonrails.com/&quot;&gt;SEOonRails.com&lt;/a&gt; but it&amp;#8217;s always nice to get another angle on it as there is always more than one way to do something when it comes to programming.&lt;/p&gt;
+&lt;p&gt;On &lt;span class=&quot;caps&quot;&gt;DZONE&lt;/span&gt; you can find a &lt;a href=&quot;http://snippets.dzone.com/posts/show/3284&quot;&gt;ruby pagerank checker&lt;/a&gt;&lt;/p&gt;
+&lt;p&gt;Over at &lt;a href=&quot;http://www.rubyplus.org&quot;&gt;rubyplus.org&lt;/a&gt; are 2 relevant videos. The first is a &lt;a href=&quot;http://www.bestechvideos.com/2008/07/04/ruby-plus-71-how-to-create-a-seo-sitemap-for-rails-apps&quot;&gt;video describing how to make Google Sitemaps with rails&lt;/a&gt; and also on the site is &lt;a href=&quot;http://www.rubyplus.org/episodes/26-SEO-for-Rails-app-using-Acts-as-Taggable-on-Steroids-and-Meta-Tags-Plugins.html&quot;&gt;&lt;span class=&quot;caps&quot;&gt;SEO&lt;/span&gt; for Rails app using Acts as Taggable on Steroids and Meta Tags Plugins&lt;/a&gt; **note a free signup is required to view videos&lt;/p&gt;
+&lt;p&gt;If you have posted about Rails+SEO or have any suggestions for this blog, please email me at questions @ this domain.com&lt;/p&gt;</content>
+ </entry>
+
+ <entry>
+ <title>SEO friendly Ajax</title>
+ <link href="http://www.seoonrails.com/seo-friendly-ajax.html"/>
+ <updated>2008-09-01T00:00:00+12:00</updated>
+ <id>http://www.seoonrails.com/seo-friendly-ajax</id>
+ <content type="html">&lt;p&gt;Ajax, one of Web2.0&amp;#8217;s core technologies, is based on Javascript which can pose a problem if you want your website to be search engine friendly. Fortunately with Ruby on Rails it&amp;#8217;s not too hard to make your Ajax &lt;span class=&quot;caps&quot;&gt;SEO&lt;/span&gt; friendly.&lt;/p&gt;
+&lt;p&gt;I will walk you through the process of making a page with Ajax search engine friendly, using my &lt;a href=&quot;http://www.webforce.co.nz/portfolio.html&quot;&gt;web design company&amp;#8217;s portfolio page&lt;/a&gt; as an example.&lt;/p&gt;
+&lt;p&gt;The basic idea with the page is for portfolio items to display below the list using ajax, and to view on their own page if javascript is disabled.&lt;/p&gt;
+&lt;p&gt;I will walk you through how I created my &lt;span class=&quot;caps&quot;&gt;SEO&lt;/span&gt; friendly portfolio page in 4 easy steps:&lt;/p&gt;
+&lt;ul&gt;
+ &lt;li&gt;Creating the content using partials&lt;/li&gt;
+&lt;/ul&gt;
+&lt;ul&gt;
+ &lt;li&gt;Linking to &lt;acronym title=&quot;Remote Javascript&quot;&gt;&lt;span class=&quot;caps&quot;&gt;RJS&lt;/span&gt;&lt;/acronym&gt; files using link_to_remote in a search engine optimised way&lt;/li&gt;
+&lt;/ul&gt;
+&lt;ul&gt;
+ &lt;li&gt;The &lt;span class=&quot;caps&quot;&gt;RJS&lt;/span&gt; file&lt;/li&gt;
+&lt;/ul&gt;
+&lt;ul&gt;
+ &lt;li&gt;Tracking Ajax calls with google analytics&lt;/li&gt;
+&lt;/ul&gt;
+&lt;h4&gt;Creating the content using partials&lt;/h4&gt;
+&lt;p&gt;For each portfolio item, I have a partial, app/view/portfolio/_portfolio.html.erb&lt;/p&gt;
+&lt;p&gt;This partial has all the information I want to display about each portfolio item, and is what will be used in the ajax calls to update the page.&lt;/p&gt;
+&lt;p&gt;The view file for a single portfolio item, only used when javascript is not available simply renders the _portfolio partial and adds a &amp;#8220;back&amp;#8221; link. The back link isn&amp;#8217;t needed for the javascript-called page so is left out of the partial.&lt;/p&gt;
+
+
+&lt;pre&gt;&lt;code&gt;
+
+&amp;lt;%= render :partial =&amp;gt; 'portfolio', :locals =&amp;gt; {:portfolio =&amp;gt; @portfolio} %&amp;gt;
+
+&amp;lt;p&amp;gt;&amp;lt;%= link_to &quot;&amp;amp;laquo; Back to Portfolio&quot;, :action =&amp;gt; 'index' %&amp;gt;&amp;lt;/p&amp;gt;
+
+&lt;/code&gt;&lt;/pre&gt;
+&lt;h4&gt;Linking to &lt;acronym title=&quot;Remote Javascript&quot;&gt;&lt;span class=&quot;caps&quot;&gt;RJS&lt;/span&gt;&lt;/acronym&gt; files using link_to_remote in a search engine optimised way&lt;/h4&gt;
+&lt;p&gt;In the index action ( app/views/portfolio/index.html.erb ) I need to link to each portfolio item.&lt;/p&gt;
+&lt;p&gt;Usually you would use link_to, but because we&amp;#8217;re doing ajax, we use &lt;a href=&quot;http://apidock.com/rails/ActionView/Helpers/PrototypeHelper/link_to_remote&quot;&gt;link_to_remote&lt;/a&gt;&lt;/p&gt;
+&lt;p&gt;Usually when using link_to_remote, the link is to #, as in a href=&amp;#8220;#&amp;#8221;. But we can specify a url, and that url is used when javascript is disabled.&lt;/p&gt;
+
+
+&lt;pre&gt;&lt;code&gt;
+
+&amp;lt;%= link_to_remote &quot;More Info&quot;,
+:url =&amp;gt; {:action =&amp;gt; &quot;view&quot;, :id =&amp;gt; portfolio.id, :format =&amp;gt; 'js'},
+:html =&amp;gt; {:href =&amp;gt; url_for(:action =&amp;gt; &quot;view&quot;, :id =&amp;gt; portfolio.id)}%&amp;gt;
+
+&lt;/code&gt;&lt;/pre&gt;
+&lt;p&gt;Now the above code includes :format =&amp;gt; &amp;#8216;html&amp;#8217; and :format =&amp;gt; &amp;#8216;js&amp;#8217; because I am using &lt;a href=&quot;http://www.seoonrails.com/urls-ending-in-html&quot;&gt;urls ending in .html&lt;/a&gt;, for example, /portfolio/view/xxxx.html rather than /portfolio/view/xxxx. You can probably exclude the format parameters if you are not.&lt;/p&gt;
+&lt;p&gt;The first paramater of link_to_remote is the link text, the 2nd is the javascript url, and the 3rd is the html url as you can see in the example above.&lt;/p&gt;
+&lt;h4&gt;The &lt;span class=&quot;caps&quot;&gt;RJS&lt;/span&gt; file.&lt;/h4&gt;
+&lt;p&gt;Our controller&amp;#8217;s view action is pretty simple.&lt;/p&gt;
+
+
+&lt;pre&gt;&lt;code&gt;
+
+def view
+
+ @portfolio = Portfolio.find(params[:id])
+
+ respond_to do |format|
+
+ format.html
+
+ format.js
+
+ end
+
+end
+
+&lt;/code&gt;&lt;/pre&gt;
+&lt;p&gt;Rails&amp;#8217;s &amp;#8220;respond_to&amp;#8221; function takes care of separating out the html and ajax requests.&lt;/p&gt;
+&lt;p&gt;The view.html.erb is already mentioned above, and just renders the _portfolio partial with an added back link.&lt;/p&gt;
+&lt;p&gt;view.rjs on the other hand contains this:&lt;/p&gt;
+
+
+&lt;pre&gt;&lt;code&gt;
+
+page.replace &quot;portfolio&quot;, :partial =&amp;gt; 'portfolio', :object =&amp;gt; @portfolio
+
+page.visual_effect :highlight, &quot;portfolio&quot;, :startcolor =&amp;gt; '#333333', :endcolor =&amp;gt; '#000000', :duration =&amp;gt; 0.5
+
+&lt;/code&gt;&lt;/pre&gt;
+&lt;p&gt;There is a blank div with an id of portfolio in the index page, and this gets replaced with the contents of the partial. The partial also has a div called portfolio, this way when someone clicks on another portfolio item, the old gets replaced with the new.&lt;/p&gt;
+&lt;h4&gt;Tracking Ajax calls with google analytics&lt;/h4&gt;
+&lt;p&gt;One final piece of the puzzle is tracking ajax calls with google analytics.&lt;/p&gt;
+&lt;p&gt;At the bottom of view.rjs is the line&lt;/p&gt;
+&lt;pre&gt;&lt;code&gt;
+
+page &amp;lt;&amp;lt; &quot;urchinTracker('#{url_for(:id =&amp;gt; @portfolio, :action =&amp;gt; 'view')}');&quot;
+
+&lt;/code&gt;&lt;/pre&gt;
+&lt;p&gt;&amp;#8220;page &amp;lt;&amp;lt;&amp;#8221;:http://apidock.com/rails/ActionView/Helpers/PrototypeHelper/JavaScriptGenerator/GeneratorMethods/%3C%3C is the method to send raw javascript in an rjs file. The urchinTracker call tells google to track a page view, and the url given is the non-javascript url of the page.&lt;/p&gt;
+&lt;p&gt;I hope this has been a useful tutorial, any questions please post a comment.&lt;/p&gt;</content>
+ </entry>
+
+ <entry>
+ <title>SEO friendly title tag plugin</title>
+ <link href="http://www.seoonrails.com/title_tag_helper.html"/>
+ <updated>2008-06-15T00:00:00+12:00</updated>
+ <id>http://www.seoonrails.com/title_tag_helper</id>
+ <content type="html">&lt;p&gt;I&amp;#8217;ve come across a small, but very useful plugin for Ruby on Rails applications. &lt;br /&gt;
+It was designed with &lt;span class=&quot;caps&quot;&gt;SEO&lt;/span&gt; in mind, and it makes keeping your meta title tags, and your &amp;lt;h1&amp;gt; tags in sync easy.&lt;/p&gt;
+&lt;p&gt;The plugin is hosted at (the very awesome) GitHub : &lt;a href=&quot;http://github.com/DefV/title_helper/tree/master&quot;&gt;http://github.com/DefV/title_helper/tree/master&lt;/a&gt;&lt;/p&gt;
+&lt;p&gt;Here&amp;#8217;s how it works.&lt;/p&gt;
+&lt;p&gt;In your application layout you call the plugin, passing in your overall site title.&lt;/p&gt;
+&lt;pre&gt;&lt;code&gt;
+&amp;lt;title&amp;gt;&amp;lt;%= title :site_name =&amp;gt; &quot;The SEO on Rails Blog&quot; %&amp;gt;&amp;lt;/title&amp;gt;
+&lt;/code&gt;&lt;/pre&gt;
+&lt;p&gt;If you do nothing else, all pages on your site will have the title &amp;#8220;Seo on Rails&amp;#8221;.&lt;/p&gt;
+&lt;p&gt;In your view templates, say app/views/blogpost/view.html.erb you could have this:&lt;br /&gt;
+&lt;pre&gt;&lt;code&gt;
+&amp;lt;%= title &quot;SEO plugins for Ruby on Rails&quot; %&amp;gt;
+&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;
+&lt;p&gt;This will print out a H1 tag:&lt;br /&gt;
+&lt;macro:code lang=&quot;html&quot;&gt;&lt;br /&gt;
+&lt;h1&gt;&lt;span class=&quot;caps&quot;&gt;SEO&lt;/span&gt; plugins for Ruby on Rails&lt;/h1&gt;&lt;br /&gt;
+&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
+At the same time, the plugin will remember the title and insert it into the layout&amp;#8217;s &amp;lt;title&amp;gt; tag before your :site_name. &lt;br /&gt;
+In our example that would result in :&lt;br /&gt;
+&lt;macro:code lang=&quot;html&quot;&gt;&lt;br /&gt;
+&lt;tiitle&gt;&lt;span class=&quot;caps&quot;&gt;SEO&lt;/span&gt; plugins for Ruby on Rails &amp;#8211; The &lt;span class=&quot;caps&quot;&gt;SEO&lt;/span&gt; on Rails Blog&lt;/title&gt;&lt;br /&gt;
+&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;
+&lt;p&gt;Keeping your &amp;lt;H1&amp;gt; tags and your &amp;lt;title&amp;gt; tags in sync is a &lt;strong&gt;good thing&lt;/strong&gt;, and this plugin helps make it very easy.&lt;/p&gt;</content>
+ </entry>
+
+ <entry>
+ <title>Screen scraping update ( Already! )</title>
+ <link href="http://www.seoonrails.com/scrubyt-screen-scraping.html"/>
+ <updated>2007-02-08T00:00:00+13:00</updated>
+ <id>http://www.seoonrails.com/scrubyt-screen-scraping</id>
+ <content type="html">&lt;p&gt;Wow the ruby/rails community works fast. Igvita has an &lt;a href=&quot;http://www.igvita.com/blog/2007/02/04/ruby-screen-scraper-in-60-seconds/&quot;&gt;article&lt;/a&gt; explaining how to use hpricot with the magic of firefox&amp;#8217;s firebug pluign. And &lt;a href=&quot;http://scrubyt.org/&quot;&gt;scRUBYt&lt;/a&gt; has been released, which is a billed as &lt;strong&gt;&lt;span class=&quot;caps&quot;&gt;WWW&lt;/span&gt;::Mechanize and Hpricot on Steroids&lt;/strong&gt;&lt;/p&gt;</content>
+ </entry>
+
+ <entry>
+ <title>301 Redirects in Rails</title>
+ <link href="http://www.seoonrails.com/301-redirects-in-rails.html"/>
+ <updated>2007-02-05T00:00:00+13:00</updated>
+ <id>http://www.seoonrails.com/301-redirects-in-rails</id>
+ <content type="html">&lt;p&gt;A 301 redirect is a permanent redirect, which tells the search engines to index the redirected to &lt;span class=&quot;caps&quot;&gt;URL&lt;/span&gt; rather than the current &lt;span class=&quot;caps&quot;&gt;URL&lt;/span&gt;.&lt;/p&gt;
+&lt;p&gt;You can use this when migrating from legacy content management systems, or to make sure that you only have 1 &lt;span class=&quot;caps&quot;&gt;URL&lt;/span&gt; per page.&lt;/p&gt;
+&lt;p&gt;With the folloing code in your controller, Rails makes it easy :&lt;/p&gt;
+&lt;pre&gt;&lt;code&gt;
+ headers[&quot;Status&quot;] = &quot;301 Moved Permanently&quot;
+ redirect_to &quot;http://someurl/&quot;
+&lt;/code&gt;&lt;/pre&gt;</content>
+ </entry>
+
+ <entry>
+ <title>RoR image_tag harmful for SEO?</title>
+ <link href="http://www.seoonrails.com/rails-image-tag.html"/>
+ <updated>2007-02-03T00:00:00+13:00</updated>
+ <id>http://www.seoonrails.com/rails-image-tag</id>
+ <content type="html">&lt;p&gt;We all know image_tag, but is it harmful for &lt;span class=&quot;caps&quot;&gt;SEO&lt;/span&gt;? By default, it will add an &lt;strong&gt;alt&lt;/strong&gt; tag consisting of the filename, without the extension, and capitalised.&lt;/p&gt;
+&lt;p&gt;How could this be bad? Well, the question comes down to : is an irelevent &lt;strong&gt;alt&lt;/strong&gt; tag worse than a blank one?&lt;/p&gt;
+&lt;p&gt;The code in question is one line of the image_tag method in asset_tag_helper.rb.&lt;/p&gt;
+&lt;pre&gt;&lt;code&gt;
+ options[:alt] ||= File.basename(options[:src], '.*').split('.').first.capitalize
+&lt;/code&gt;&lt;/pre&gt;
+&lt;p&gt;To answer this question, it depends. If your image names are not related to your content then it could be.&lt;/p&gt;
+&lt;p&gt;To be safe, always pass :alt =&amp;gt; with your image_tag.&lt;/p&gt;
+&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt;&lt;br /&gt;
+I asked &lt;a href=&quot;http://www.mattcutts.com/blog/&quot;&gt;Matt Cutts&lt;/a&gt; his thoughts about this and here is the reply&lt;/p&gt;
+&lt;blockquote&gt;
+&lt;p&gt;If you have a picture of a monkey with filename like apple.jpg or dsc00001.jpg, you shouldn&amp;#8217;t have any issues if the alt title is &amp;#8220;apple&amp;#8221; or &amp;#8220;dsc00001&amp;#8221;. However, if the image filename is cheap-viagra-debt-mortgages.jpg, then you could run into problems for sure. I&amp;#8217;d look at image filenames to make sure that they couldn&amp;#8217;t be viewed as keyword-stuffing or spammy. And it doesn&amp;#8217;t hurt to preserve the extension (.jpg) in the alt title just so that people realize that the alt title comes from the image filename.&lt;/p&gt;
+&lt;/blockquote&gt;</content>
+ </entry>
+
+ <entry>
+ <title>Getting your meta tags on track</title>
+ <link href="http://www.seoonrails.com/getting-your-meta-tags-on-track.html"/>
+ <updated>2007-02-03T00:00:00+13:00</updated>
+ <id>http://www.seoonrails.com/getting-your-meta-tags-on-track</id>
+ <content type="html">&lt;p&gt;Sick of the lame Rails puns in the headlines yet? Great!&lt;/p&gt;
+&lt;p&gt;Ok, so this post is a kind of &amp;#8216;Ask the community&amp;#8217; post. How do you deal with meta tags including page titles? We should all know the ideal for titles is to be unique for each page on the site , but how do you go about this the rails way?&lt;/p&gt;
+&lt;p&gt;Here&amp;#8217;s what I do (and it&amp;#8217;s just one way of many) :&lt;/p&gt;
+&lt;p&gt;In my layout/application.rhtml&lt;br /&gt;
+&lt;pre&gt;&lt;code&gt;
+&amp;lt;title&amp;gt;&amp;lt;%= @meta_title %&amp;gt; My Site Name&amp;lt;/title&amp;gt;
+&amp;lt;meta name=&quot;keywords&quot; content=&quot;&amp;lt;%= @meta_keywords %&amp;gt;&quot; /&amp;gt;
+&amp;lt;meta name=&quot;description&quot; content=&quot;&amp;lt;%= @meta_description %&amp;gt;&quot; /&amp;gt;
+&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;
+&lt;p&gt;In my application controller:&lt;/p&gt;
+&lt;pre&gt;&lt;code&gt;
+ before_filter :meta_defaults
+ private
+
+ def meta_defaults
+ @meta_title = &quot;Welcome to&quot;
+ @meta_keywords = &quot;my keywords&quot;
+ @meta_description = &quot;my meta description&quot;
+ end
+&lt;/code&gt;&lt;/pre&gt;
+&lt;p&gt;and then in individual actions in my controllers I override the defaults&lt;br /&gt;
+&lt;pre&gt;&lt;code&gt;
+def view
+ @article = Article.find(params[:id])
+ @meta_title = &quot;#{@article.name} - &quot;
+ @meta_description = @article.short_description
+end
+&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;
+&lt;p&gt;I&amp;#8217;ve also seen suggestions for using yield and content_for, but to me that is a bit heavy-weight for simple strings.&lt;br /&gt;
+So, what do you do?&lt;/p&gt;</content>
+ </entry>
+
+ <entry>
+ <title>Screen Scraping in Ruby</title>
+ <link href="http://www.seoonrails.com/screen-scraping-ruby.html"/>
+ <updated>2007-02-01T00:00:00+13:00</updated>
+ <id>http://www.seoonrails.com/screen-scraping-ruby</id>
+ <content type="html">&lt;p&gt;I&amp;#8217;m not going to make a full post on this because over on Rubyrailways.com they have an &lt;a href=&quot;http://www.rubyrailways.com/data-extraction-for-web-20-screen-scraping-in-rubyrails&quot;&gt;excellent post&lt;/a&gt; covering the main libraries for screen scraping in ruby.&lt;/p&gt;
+&lt;p&gt;However it is a bit out of date being 7 months old, and since then 2 more excellent libraries have emerged.&lt;/p&gt;
+&lt;p&gt;&lt;a href=&quot;http://code.whytheluckystiff.net/hpricot/&quot;&gt;Hpricot&lt;/a&gt; from the Ruby Superstar &lt;a href=&quot;http://redhanded.hobix.com/&quot;&gt;_why&lt;/a&gt; which has just been updated to version 0.5 &lt;strong&gt;today&lt;/strong&gt;!&lt;/p&gt;
+&lt;p&gt;And &lt;a href=&quot;http://rubyforge.org/projects/scrapi&quot;&gt;Scrapi&lt;/a&gt; which is also excellent.&lt;/p&gt;</content>
+ </entry>
+
+ <entry>
+ <title>Google Sitemaps in Mephisto</title>
+ <link href="http://www.seoonrails.com/mephisto-google-sitemap.html"/>
+ <updated>2007-02-01T00:00:00+13:00</updated>
+ <id>http://www.seoonrails.com/mephisto-google-sitemap</id>
+ <content type="html">&lt;p&gt;Well we call them Google Sitemaps, but &lt;span class=&quot;caps&quot;&gt;MSN&lt;/span&gt; and Yahoo are also &lt;a href=&quot;http://blogs.msdn.com/livesearch/archive/2006/11/15/microsoft-google-yahoo-unite-to-support-sitemaps.aspx&quot;&gt;on board&lt;/a&gt; and have formed &lt;a href=&quot;http://www.sitemaps.org&quot;&gt;sitemaps.org&lt;/a&gt;. So I guess we just call them &lt;span class=&quot;caps&quot;&gt;XML&lt;/span&gt; sitemaps?&lt;/p&gt;
+&lt;p&gt;The 3 search engines currently don&amp;#8217;t support the full sitemaps protocol, which is shame, hopefully by later this year they will.&lt;/p&gt;
+&lt;p&gt;First off : Mephisto, the Ruby on Rails blogging software that powers this site.&lt;/p&gt;
+&lt;p&gt;Creating a sitemap is no trouble at all with the &lt;a href=&quot;http://exdolo.com/2006/9/2/mephisto-google-sitemap-plugin&quot;&gt;Mephisto sitemap plugin&lt;/a&gt;. Although to get it working on this blog, I had to change the following in &lt;br /&gt;
+ vendor/plugins/mephisto_google_sitemap/lib/mephisto_google_site_map.rb from:&lt;/p&gt;
+&lt;pre&gt;&lt;code&gt;
+ def lastmod(article)
+ time_zone = TimeZone.new(article.site.timezone.current_period.utc_offset)
+ latest_comment = article.comments_count.zero? ? nil : article.comments.calculate(:max, :updated_at)
+ (latest_comment.nil? ? article.updated_at : latest_comment).strftime(&quot;%Y-%m-%dT%H:%M:%S#{time_zone.formatted_offset}&quot;)
+ end
+&lt;/code&gt;&lt;/pre&gt;
+&lt;p&gt;to:&lt;/p&gt;
+&lt;pre&gt;&lt;code&gt;
+ def lastmod(article)
+ latest_comment = article.comments_count.zero? ? nil : article.comments.calculate(:max, :updated_at)
+ (latest_comment.nil? ? article.updated_at : latest_comment).strftime(&quot;%Y-%m-%dT%H:%M:%S+00:00&quot;)
+ end
+&lt;/code&gt;&lt;/pre&gt;
+&lt;p&gt;Change +00:00 to what ever your timezone offset from &lt;span class=&quot;caps&quot;&gt;UTC&lt;/span&gt; is. Hopefully this will be fixed in a later version of the sitemap plugin.&lt;/p&gt;</content>
+ </entry>
+
+ <entry>
+ <title>URLs ending in .html</title>
+ <link href="http://www.seoonrails.com/urls-ending-in-html.html"/>
+ <updated>2007-01-24T00:00:00+13:00</updated>
+ <id>http://www.seoonrails.com/urls-ending-in-html</id>
+ <content type="html">&lt;p&gt;This is just a personal preference of mine, but I like to have URLs end in .html. Fortunately rails makes this easy:&lt;/p&gt;
+&lt;p&gt;In your routes file:&lt;/p&gt;
+&lt;pre&gt;&lt;code&gt;
+map.connect ':controller/:action/:id.html', :format =&amp;gt; 'html'
+&lt;/code&gt;&lt;/pre&gt;
+&lt;p&gt;For your other custom routes you will need to also add :format =&amp;gt; &amp;#8216;html&amp;#8217; and the .html at the end of the route line like above.&lt;/p&gt;
+&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;&lt;/p&gt;
+&lt;p&gt;Another (better?) way to achieve nice URLs in rails, with .html suffixes is to add the following to your ApplicationController:&lt;br /&gt;
+&lt;pre&gt;&lt;code&gt;
+ def default_url_options(options)
+ { :format =&amp;gt; 'html' }
+ end
+&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;
+&lt;p&gt;This means your routing line is much cleaner. In fact it&amp;#8217;s the default!&lt;/p&gt;
+&lt;pre&gt;&lt;code&gt;
+ map.connect ':controller/:action/:id.:format'
+&lt;/code&gt;&lt;/pre&gt;</content>
+ </entry>
+
+ <entry>
+ <title>Better looking URLs with to_param</title>
+ <link href="http://www.seoonrails.com/to_param-for-better-looking-urls.html"/>
+ <updated>2007-01-24T00:00:00+13:00</updated>
+ <id>http://www.seoonrails.com/to_param-for-better-looking-urls</id>
+ <content type="html">&lt;p&gt;Nice URLs aren&amp;#8217;t just for search engines, but for us mortals too. By default rails URLs look like /controller/action/1. &lt;br /&gt;
+Rails has built in support for URLs that look like /controller/action/1-my-article. This is achieved by implementing to_param in your model.&lt;/p&gt;
+&lt;p&gt;This code will turn an Article with ID 22 and title &amp;#8216;Nice URLs&amp;#8217; into 22-Nice-URLs&lt;br /&gt;
+&lt;pre&gt;&lt;code&gt;
+class Article &amp;lt; ActiveRecord::Base
+ def to_param
+ &quot;#{id}-#{title}&quot;
+ end
+end
+&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;
+&lt;p&gt;These URLs will work automatically, providing you have the ID in the first part of the &lt;span class=&quot;caps&quot;&gt;URL&lt;/span&gt;. This works because Ruby will convert &amp;#8216;123-hello-world&amp;#8217; into 123 when to_i is called on the string :&lt;/p&gt;
+&lt;pre&gt;&lt;code&gt;
+&amp;gt;&amp;gt; &quot;123-hello-world-1&quot;.to_i
+=&amp;gt; 123
+&lt;/code&gt;&lt;/pre&gt;
+&lt;p&gt;However you may have some funny characters in your title so you want to strip them out and convert them to hyphens. You might also want to make your urls lower case. This code does just that.&lt;/p&gt;
+&lt;pre&gt;&lt;code&gt;
+class Article &amp;lt; ActiveRecord::Base
+ def to_param
+ &quot;#{id}-#{title.downcase.gsub(/[^[:alnum:]]/,'-')}&quot;.gsub(/-{2,}/,'-')
+ end
+end
+&lt;/code&gt;&lt;/pre&gt;
+&lt;p&gt;Some explanation is required; .downcase converts the title to lower case, the 1st .gsub strips out anything not alphanumeric and turns it into a hyphen, and the 2nd .gsub changes any multiple hyphens into a single hyphen.&lt;/p&gt;
+&lt;p&gt;It is possible to have URLs without the ID in them, but you will have to work out what model object you need yourself in the controller. I hope to cover this in a later blog post.&lt;/p&gt;</content>
+ </entry>
+
+ <entry>
+ <title>Even better looking URLs with permalink_fu</title>
+ <link href="http://www.seoonrails.com/even-better-looking-urls-with-permalink_fu.html"/>
+ <updated>2007-01-24T00:00:00+13:00</updated>
+ <id>http://www.seoonrails.com/even-better-looking-urls-with-permalink_fu</id>
+ <content type="html">&lt;p&gt;Extracted from &lt;a href=&quot;http://www.mephistoblog.com/&quot;&gt;Mephisto&lt;/a&gt; is the handy plugin called &lt;a href=&quot;http://svn.techno-weenie.net/projects/plugins/permalink_fu/&quot;&gt;permalink_fu&lt;/a&gt;. &lt;br /&gt;
+This plugin allows you to use ID-less permalinks, much like that in this blog.&lt;/p&gt;
+&lt;p&gt;I wrote earlier about how to use &lt;a href=&quot;http://www.seoonrails.com/to_param-for-better-looking-urls&quot;&gt;to_param&lt;/a&gt; for nicer URLs, but these are even better. The plugin automatically turns a field in your model into something that could be a permalink, by stripping out all non english and non alphanumeric letters. It then saves this in a field in your database for future use.&lt;/p&gt;
+&lt;p&gt;So, onto the HowTo:&lt;/p&gt;
+&lt;p&gt;First, install the plugin in your rails app.&lt;/p&gt;
+&lt;pre&gt;&lt;code&gt;
+./script/plugin install http://svn.techno-weenie.net/projects/plugins/permalink_fu/
+&lt;/code&gt;&lt;/pre&gt;
+&lt;p&gt;Now you need to add a field to your database to store the permalink.&lt;/p&gt;
+&lt;pre&gt;&lt;code&gt;
+./script/generate migration add_permalink_to_article
+&lt;/code&gt;&lt;/pre&gt;
+&lt;p&gt;In the migration we add the field called permalink.&lt;/p&gt;
+&lt;pre&gt;&lt;code&gt;
+add_column :designers, :permalink, :string
+&lt;/code&gt;&lt;/pre&gt;
+&lt;p&gt;Now for the model code&lt;br /&gt;
+&lt;pre&gt;&lt;code&gt;
+class Article &amp;lt; ActiveRecord::Base&lt;/p&gt;
+&lt;ol&gt;
+ &lt;li&gt;title is the field name you want to convert to a permalink&lt;br /&gt;
+ has_permalink :title&lt;/li&gt;
+ &lt;li&gt;you can also specifiy a different permalink field in your database by giving a second paramater&lt;/li&gt;
+ &lt;li&gt;has_permalink :title, :my_permalink_field&lt;/li&gt;
+&lt;/ol&gt;
+&lt;ol&gt;
+ &lt;li&gt;we now add the to_param method which Rails&amp;#8217;s routing uses&lt;br /&gt;
+ def to_param&lt;br /&gt;
+ permalink&lt;br /&gt;
+ end &lt;br /&gt;
+end&lt;br /&gt;
+&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
+&lt;/ol&gt;
+&lt;p&gt;The permalink field is only populated after the record is validated, so if you have a bunch of records already in your database you can get the permalink field to populate with&lt;/p&gt;
+&lt;pre&gt;&lt;code&gt;
+Article.find(:all).each(&amp;amp;:save)
+&lt;/code&gt;&lt;/pre&gt;
+&lt;p&gt;If you already have lots of view code written then this is the easy way to get these routes working &amp;#8211; in your controller :&lt;br /&gt;
+&lt;pre&gt;&lt;code&gt;
+@article = Article.find_by_permalink(params[:id])
+&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;
+&lt;p&gt;However that doesn&amp;#8217;t seem to pass the smell test using :id rather than :permalink, but will work fine. &lt;br /&gt;
+To use :permalink you will have to change your routing code and your view code :&lt;/p&gt;
+&lt;pre&gt;&lt;code&gt;
+# in your route file
+map.connect 'article/:permalink', :controller =&amp;gt; 'article', :action =&amp;gt; 'view'
+# in your views when linking
+link_to &quot;View #{article.title}&quot;, {:controller =&amp;gt; 'designer', :action =&amp;gt; 'view', :permalink =&amp;gt; article.permalink}
+# then in your controller you can use
+@article = Article.find_by_permalink(params[:permalink])
+&lt;/code&gt;&lt;/pre&gt;
+&lt;p&gt;Thats all! I&amp;#8217;m always on the lookout for &lt;span class=&quot;caps&quot;&gt;SEO&lt;/span&gt; related Rails topics to talk about so drop me a line @ questions &lt;del&gt;at&lt;/del&gt; this domain .com.&lt;/p&gt;</content>
+ </entry>
+
+ <entry>
+ <title>Welcome to SEO on Rails</title>
+ <link href="http://www.seoonrails.com/welcome-to-seo-on-rails.html"/>
+ <updated>2007-01-23T00:00:00+13:00</updated>
+ <id>http://www.seoonrails.com/welcome-to-seo-on-rails</id>
+ <content type="html">&lt;p&gt;First Post!&lt;/p&gt;
+&lt;p&gt;Welcome to &