1. Crawling the Web, following links to find pages.
2. Indexing the pages to create an index from every word to every place it occurs.
3. Ranking the pages so the best ones show up first.
4. Displaying the results in a way that is easy for the user to understand.