This paper provides a comprehensive survey of issues related to PageRank, the algorithm used by Google to rank web pages. It covers the basic PageRank model, solution methods, storage considerations, properties like existence and convergence, possible model alterations, and future research areas. The paper explores suggestions that have been made to modify the basic PageRank model, and presents some new results and extensions. It aims to give insight into the beauty and usefulness of PageRank, and inspire further improvements.