16. A non-transitory computer storage media encoded with one or more computer programs, the one or more computer programs comprising instructions that when executed by data processing apparatus cause the data processing apparatus to perform operations comprising: receiving, from a user device, data representing user input to a virtual keyboard on the user device; identifying a character string based on the data representing the user input; performing a spellcheck on the character string to identify a first and a second candidate for the character string, the first and the second candidates being ranked by the spellcheck according to likelihood that a respective candidate is a correct spelling of a word corresponding to the character string, the first candidate ranked higher than the second candidate; for each of the first and second candidates, determining a popularity of the first and second candidates based on a respective frequency at which the first and second candidates is are used as search queries input to a search engine, the second candidate having a higher popularity than the first candidate; adjusting the ranking of the candidates based on the popularity of the first and the second candidates such than the second candidate is ranked higher than the first candidate; and outputting, to the user device, a listing of the first and the second candidates based on the adjusted ranking.
16. A non-transitory computer storage media encoded with one or more computer programs, the one or more computer programs comprising instructions that when executed by data processing apparatus cause the data processing apparatus to perform operations comprising: receiving, from a user device, data representing user input to a virtual keyboard on the user device; identifying a character string based on the data representing the user input; performing a spellcheck on the character string to identify a first and a second candidate for the character string, the first and the second candidates being ranked by the spellcheck according to likelihood that a respective candidate is a correct spelling of a word corresponding to the character string, the first candidate ranked higher than the second candidate; for each of the first and second candidates, determining a popularity of the first and second candidates based on a respective frequency at which the first and second candidates is are used as search queries input to a search engine, the second candidate having a higher popularity than the first candidate; adjusting the ranking of the candidates based on the popularity of the first and the second candidates such than the second candidate is ranked higher than the first candidate; and outputting, to the user device, a listing of the first and the second candidates based on the adjusted ranking. 17. The computer storage media of claim 16 , the operations further comprising: determining a first score for the first candidate based on i) the spellcheck ranking associated with the first candidate and ii) the popularity of the first candidate; and determining a second score for the second candidate based on i) the spellcheck ranking associated with the second candidate and ii) the popularity of the second candidate, wherein adjusting the ranking of the candidates is based on the first and the second scores.