What's the difference between 看起来 and 看上去?
I am not a linguist, and thus can only give you my perspective as a native speaker.

Yes, they are quite similar. So I would only talk about their subtle differences here.

看起来： More often, 看起来 is used when you make a guess by FEELing but not necessarily really physically seeing.

e.g. Today you did not come to school because of a bad fever. 
I may call you and say:"今天怎么没来上学啊？看起来你上病了啊！"
Note here that I did NOT see you at all before I make the guess that you are sick.

看上去： 看上去 is used usually when you express your feeling by really seeing something.

e.g. The moment I see my girlfriend in a beautiful dress. I may go like:"亲爱的，你今天看上去真漂亮！". Note here I can also use 看起来.

To summarize:

You may use 看起来 no matter you really see it or not, but when you see something, I recommend you 看上去. But Please note that it may largely depend on personal preferences.