Does light really travel more slowly near a massive body? It is a routine problem for beginners in general relativity to calculate the coordinate velocity of light for the Schwarzschild metric. Starting from the metric:
$$ ds^2 = -\left(1-\frac{r_s}{r}\right)c^2dt^2 + \frac{dr^2}{1-\frac{r_s}{r}} + d\Omega^2 $$
We use the fact that light travels on a null geodesic so $ds^2 = 0$. This immediately gives us for a radial light ray:
$$ \frac{dr}{dt} = \pm c \left(1 - \frac{r_s}{r}\right) \tag{1} $$
But this is a coordinate speed, a three-vector, not a covariant object and so it has no absolute meaning. Is there an easy way to see that this is just the speed for a particular observer and that other observers will measure a different speed?
 A: The simple way to show that the speed derived from the Schwarzschild coordinates has no absolute meaning is to derive an expression for the speed measured by a different observer and show that they disagree. In particular we will choose a shell observer i.e. an observer hovering at fixed $r$, $\theta$ and $\phi$ (presumably using some form of rocket motor). Once again we will consider a radial light ray.
We will use $t’$ and $r’$ for the time and radial coordinates in the shell frame, and $R$ for the radial distance of the shell observer measured in the Schwarzschild coordinates.
In the rest frame of the shell observer we consider the infinitesimal proper time $dt’$. Comparing this with the Schwarzschild metric we find at the position of the shell observer:
$$ dt’^2 = (1 - r_s/R)dt^2 $$
giving us:
$$ \frac{dt’}{dt} = \sqrt{1 – r_s/R} \tag{2} $$
The sharp eyed among you will spot that this is just the well known expression for the gravitational time dilation at a distance $R$. A similar argument for the infinitesimal proper distance $dr’$ gives:
$$ \frac{dr’}{dr} = \frac{1}{\sqrt{1 – r_s/R}} \tag{3} $$
which is just the corresponding equation for the radial dilation. Using equation (1) from the question and equations (2) and (3) we can now calculate the speed of light at the position of the shell observer using the chain rule:
$$\begin{align}
 \frac{dr’}{dt’} &= \frac{dr}{dt} \frac{dr’}{dr} \frac{dt}{dt’} \\
 &= \pm c \left(1 - \frac{r_s}{R}\right) \frac{1}{\sqrt{1 – r_s/R}} \frac{1}{\sqrt{1 – r_s/R}} \\
 &= \pm c
\end{align}$$
And there is our first result. The shell observer measures the speed of light at their location to be $c$, and this is independent of $R$ so it is true for all shell observers.
I must emphasise that I have made no assumptions in this working. It is pure algebra and allows no room for subterfuge. The two observers really do find different results for the speed of light. Neither is right and neither is wrong - it just shows that the coordinate speed of light is observer dependent not an absolute quantity.
But we can do better than this. We can extend our analysis to find the speed of light in the shell coordinates at radial distances greater and less than the shell distance. The argument is essentially the same as above so I’ll just give the result:
$$ \frac{dr’}{dt’} = \pm c \frac{1- r_s/r}{1 – r_s/R} \tag{4} $$
And this looks like (for $R = 2r_s$):

Like the Schwarzschild observer the shell observer sees the coordinate speed of light fall when the light is closer to the massive object than they are, but the shell observer sees the light move faster than $c$ when the light is farther from the object than they are. So the shell and Schwarzschild observer agree on the speed of the light nowhere (except at the event horizon if one exists) but they both agree that the speed of light at their location is $c$.
And this makes the point. Shell observers are not some theoretical fiction - you and I are shell observers by virtue of our constant distance from the centre of the Earth and equation (4) gives the speed of light that you and I would observe. The point is that the coordinate speed of light depends on the observer and has no absolute meaning.
