1. A method comprising: receiving a request from a viewing user of a social networking system for a newsfeed; determining a plurality of candidate stories for the viewing user, the plurality of candidate stories associated with a plurality of other users of the social networking system with which the viewing user has established a connection; extracting a plurality of attributes from each of the plurality of candidate stories, the extracted attributes comprising information about at least one selected from the group consisting of story content, story type, interaction type associated with the story, and user associated with the story; ranking the plurality of candidate stories to produce an initial ranking; selecting a candidate story and an additional candidate story from the plurality of candidate stories, the candidate story having a first position in the initial ranking and the additional candidate story having a second position in the initial ranking; comparing the extracted plurality of attributes of the candidate story and the extracted plurality of attributes of the additional candidate story to determine a level of similarity between the candidate story and the additional candidate story based on the extracted attribute comparison; responsive to the determined level of similarity meeting a threshold level of similarity, modifying the initial ranking to produce a modified ranking, the modifying comprising lowering the second position of the additional candidate story from the initial ranking to a lower position in the modified ranking relative to the candidate story; generating a newsfeed comprising a plurality of the candidate stories, the generated newsfeed based at least in part on the modified ranking; and sending the generated newsfeed for display to the viewing user.