Ok 1st of all your parser alias is picking the wrong token, it should be $gettok($gettok($1,-4,60),2,62)

Secondly the rank is actually on the line AFTER the matched "Rank:" text. Just set a variable when the match is made, allowing triggering the parser on the next line.
Code:
alias parser { return $gettok($gettok($1,-4,60),2,62) }

alias mpuktf2 {
  if ($sock(mpuktf2)) { sockclose mpuktf2 }
  set %mpuktf2.chan $chan
  set %mpuktf2.playerid $1
  set %mpuktf2.host_url /hlstats/hlstats.php?mode=playerinfo&player= $+ %mpuktf2.playerid
  sockopen mpuktf2 tf2.multiplay.co.uk 80
}

on *:SOCKOPEN:mpuktf2: {
  sockwrite -n $sockname GET %mpuktf2.host_url HTTP/1.1
  sockwrite $sockname Host: tf2.multiplay.co.uk $+ $str($lf,2)
}

on *:sockread:mpuktf2: {
  if ($sockerr > 0) return
  var %x
  sockread %x
  if (%mpukt.rank) { echo -a %mpuktf2.chan Rank: $parser(%x) | sockclose mpuktf2 | unset %mpukt.* }
  if (*Rank:* iswm %x) { inc -u3 %mpukt.rank }
}

P.S. Don't send a "Keep-Alive" header if you do not want to keep the connection alive. wink