No, I don't work in NYC, DC, or the valley, and I'm cool with that.
Here’s a quick tip to exert greater control over which parts of your site a search engine should crawl: modify your link_to helper to make links rel="nofollow" by default. It’s easy:
Just add this to your app’s application_helper:
def link_to(*args, &block) unless block_given? html_options = args[2] || {} unless html_options.delete(:follow) if html_options[:rel] html_options[:rel] += ' nofollow' else html_options[:rel] = 'nofollow' end end args[2] = html_options end super(*args) end
Use WillPaginate? You may also want to add the following (adapted from this StackOverflow post):
def will_paginate(*args) options = args.extract_options! options[:renderer] = PaginationNoFollow unless options[:renderer] || options.delete(:follow) super(args.first, options) end
Set PaginationNoFollow up with an initializer:
require 'will_paginate/view_helpers/link_renderer' class PaginationNoFollow < WillPaginate::ViewHelpers::LinkRenderer def rel_value(page) case page when @collection.previous_page; 'prev nofollow' + (page == 1 ? ' start nofollow' : '') when @collection.next_page; 'next nofollow' when 1; 'start nofollow' else 'nofollow' end end end
Now, all of your app’s links will default to rel="nofollow", but obviously you will want some of your links to be crawled. Just add :follow => true to the options hash of either link_to or will_paginate to opt-in specific links for search engine crawling.