Entries from June 2010 ↓

Count internal and external links in a page

Today I’ve readed the Webmaster Guidelines, in the “Design and content guidelines” section Google recommends to keep a resonable number of links in the page:

Keep the links on a given page to a reasonable number.

Mat Cutts talks about 100 links/page.

Hmm, how many links do I have in my pages ? I’ve made a simple Ruby script to count links in a page (Nokogiri, Domainatrix and Open-Uri made it trivial):

#!/usr/bin/env ruby
 
require "rubygems"
require "nokogiri"
require "open-uri"
require 'domainatrix'
 
url = ARGV.first
 
raise "*** Use: links_count <url>" unless url
 
domain = Domainatrix.parse(url)
 
int_links = 0
ext_links = 0
 
doc = Nokogiri::HTML(open(url).read)
doc.xpath("//a[@href]").each do |node|
  link = node.get_attribute('href')
 
  if link =~ %r{\Ahttp://}
    l = Domainatrix.parse(link)
    if l.public_suffix == domain.public_suffix and l.domain == domain.domain
      int_links += 1
    else
      ext_links += 1
      puts link
    end
  else
    int_links += 1
  end
end
 
puts ""
puts "*** internal links: #{int_links}"
puts "*** external links: #{ext_links}"
puts "*** total: #{int_links + ext_links}"

Now I can see how many internal/external links contains a page. Example for CNN.com:

[vitalie@silver ~]$ links_count.rb http://www.cnn.com
http://www.cnnmexico.com/
http://www.ireport.com/
http://www.time.com/time/world/article/0,8599,1997325,00.html
http://www.ireport.com/docs/DOC-459640?hpt=Mid
http://www.ireport.com/docs/DOC-459640?hpt=Mid
http://www.ireport.com/?hpt=Sbin
http://twitter.com/worldcupcnn
http://foursquare.com/cnn
http://movie-critics.ew.com/2010/06/16/psycho-turns-50-today/
http://www.cnngo.com/hong-kong/play/beyond-star-ferry-457619
http://www.cnngo.com/bangkok/play/spirited-competition-koh-samui-regatta-706618
http://www.ireport.com/?cnn=yes
http://www.turnerstoreonline.com/
http://www.cnntraveller.com
http://www.cnnchile.com
http://www.cnnmexico.com
http://cnn.joins.com/
http://www.cnn.co.jp/
http://www.cnnturk.com/
http://www.turner.com/
http://www.cnnmediainfo.com/
http://www.turner.com/careers/
 
*** internal links: 263
*** external links: 22
*** total: 285