For all $x\in SO(n)$ there is a $y\in SO(n)$ such that $b=yxy^{-1}$ is a matrix in block diagonal form, where each block is an element of $SO(1)$ or $SO(2)$.
The truth is I do not know very well where to start, I have thought to diagonalize the matrix $x$ but I do not know how an arbitrary element of $SO(n)$ looks like (I know in the case where $n=1,2$, but not in general). Any idea? Thank you.
You can prove this by induction, sketched as follows. The cases $n=1$ and $n=2$ are trivial. Now let $x \in \text{SO}(n+1)$. We are going to distinguish two cases.
Case 1. $x$ has a real eigenvector $v \in \mathbb R^{n+1}$. Then $v^\perp$ is invariant because $x$ is orthogonal, so by a change of basis we can turn $x$ into a block diagonal matrix with blocks of size $1\times 1$ and $n \times n$.
Case 2. $x$ has a complex eigenvector $v + iw\in \mathbb C^{n+1}$. Consider the vectors $v, w \in \mathbb R^{n+1}$. Then the span of $v$ and $w$ is an invariant subspace $W$ of dimension two (can you prove this?), on which $x$ acts as a rotation. By orthogonality, the complement $W^\perp$ is also invariant, so we get a change of basis of $x$ yielding a block diagonal matrix with blocks of size $(n-1) \times (n-1)$ and $2 \times 2$.
In both cases, conclude with the induction hypothesis applied to the bigger block.
Edit: Apparently, this change of basis is known as the canonical form. This might help to get you some additional information about this.