You habe two things you want to solve here:
The arrows should have the same length. (Only the horizontal ones?)
The easiest solution to this is to make all the nodes in each column have the same width.
And the right-hand side of one of your cells should not be part of this same width.
In this simple case, this is easiest achieved with a third column that has no column separation to its predecessor.
For 2. I'm using the key no csep which takes a list of columns that shouldn't have a column separation to their successors. Here, you just want no csep = 2.
For 1. you can use set widest math that is a list of the widest content of each column, here: set widest math={\partial_a \Psi, (\partial_a\Psi)'}.
For other solutions for 2. take a look at another answer of mine where I'll explore some ideas. If handling an extra column is not to your liking that answer's solution 2. and 3. are more appropriate then.
For other solution for 1. you can directly have TikZ measure each node and apply the needed minimum width for it on the next run.
If you don't actually want the column centered, you can actually just use Case 1 of this answer.
In the code below, I've commented an arrow that connects the north anchors of the second row's nodes to show that even the vertical arrows are not the same length.
Code
\documentclass{report}
\usepackage{mathtools, tikz-cd}
\tikzcdset{
no csep/.style={/utils/temp/.style={/tikz/column ##1/.append style={
column sep=-2*(\pgfkeysvalueof{/pgf/inner xsep})}},/utils/temp/.list={#1}},
set widest math/.style={
/utils/exec=\def\pgfmathcounter{0},
/utils/temp/.code=\edef\pgfmathcounter{\pgfinteval{\pgfmathcounter+1}}%
\pgfkeysalso{/tikz/column \pgfmathcounter/.append style={
align=center, text width={width("$##1$")}}},
/utils/temp/.list={#1}}}
\usepackage[showframe, pass]{geometry}
\begin{document}
\[
\begin{tikzcd}[set widest math={\partial_a \Psi, (\partial_a\Psi)'}, no csep=2]
\Psi \arrow[d, "\partial_a"] \arrow[r, "U"]
& \Psi' \arrow[d] \\
\partial_a \Psi \arrow[r, "U"]
& (\partial_a\Psi)'
& {} = U(\partial_a\Psi)
% \ar[help lines, start anchor=north, end anchor=north, l]
\end{tikzcd}
\]
\end{document}
Output

anchor = base eastfor the left column andanchor = base westfor the right column and then using arrows that are strightly going down. See Case 1 in my answer to a similar question. – Qrrbrbirlbel Mar 19 '23 at 10:55/tikz/column 1/.append style={align=center, text width=width("$\partial_a \Psi$")}andwidth("$(\partial_a\Psi)'$")for the second column while\mathrlaping{} = U(\partial_a\Psi). By the way, the vertical arrows have different lengths, too, it's just not as noticable. – Qrrbrbirlbel Mar 20 '23 at 16:57