Você define o que constitui o site e o que constitui links e recursos que não fazem parte do site. O site é essencialmente uma estrutura de dados gráficos. Faça um DFS / BFS através de todos os links marcando-os visitados para garantir que você não faça um loop, capturando e definindo duplicatas com base em sequências de consulta semelhantes, e não seguindo links que você definiu como "não faz parte do site".
Depois de tudo isso, já que você não quer baixar o site, esperamos que ele suporte o método HTTP HEAD e gere cabeçalhos de Content-Length precisos. Solicite cada um deles e some-os.
Fácil, certo?
OTOH, se é o seu site, e você tem acesso ftp ou similar, e você define o site apenas para ser todos os arquivos no diretório raiz do site, então é só pegar o tamanho do diretório recursivo e pronto. Yay!