The 21-year-old, who broke into the first team this season and made 19 appearances, has committed himself to Selhurst Park until the summer of 2015.
"I'm looking to push on again like I did at the end of last year," O'Keefe told the club's official website.
"I like it here, I like everything about the club, it's a good place to push on.
"I was pleased to get 19 games and I'm hoping to have another good season and move forward with the club."

