Broadly, the rationale for this sort of thing happening is to load the page quickly, from locally cached (*) information if possible, then touch it up when the slower to arrive information gets there.
The “game history” list on our profile pages is the most obvious example. There is no cached information about that (OGS doesn’t try to remember all that in the browser) so the table is rendered empty to start with, then when eventually the server has compiled the list of your games, it loads them.’
In the case of rank, it is likely cached. So you are seeing a very old version of what OGS thought the rank was before the server fetches the actual rank.
An obvious quesion is “why do I see a wrong rank if I’ve never seen that player before”. I don’t know the specific answer, but I can say that caches are wierd
*: locally cached: when we see that information the first time in the browser, we save it in the browser, so we don’t have to ask the server again.