Is there an easy way to reason about expressions involving lots of indices? I have been reading some Riemannian geometry recently. So far, I think I am understanding the concepts well enough. However, I am finding it difficult to translate some of the notation into meaning. 
As an example, if $F$ and $G$ are in $T^k_l(T_pM)$, we can consider the sum
$$ 
  g^{i_1 r_1} \dots g^{i_k r_k} g_{j_1 s_1} \dots g_{j_l s_l} F^{j_1 \dots j_l}_{i_1 \dots i_k} G^{s_1 \dots s_l}_{r_1 \dots r_k} \tag{1})$$
In actuality, this is just the inner product
$$\langle F, G \rangle \tag{2}$$
where $\langle \cdot , \cdot \rangle$ is the inner product determined by some metric $g$. 
Now, (I think) I understand what this inner product means and how it is defined in terms of lowering/raising indices, etc. When I read expression (2), everything is just fine. However, expression (1) does not impart this same immediate understanding of what is going on. This confusion prompts:
The Question: What can I do to make reading and understanding some of the notation used in Riemannian geometry an easier/simpler/clearer task? In particular, how might I better reason about expressions involving a large number of indices?
 A: I guess the issue in your example is that the index notation shows a more fine-grained picture of what's going on and thus is inevitably more complex and harder to parse. There are a couple of in-between notations you could use - abstract tensor expressions or multi-indices:
$$ \langle F,G \rangle = (\text{tr}_g)^l (\text{tr}_{g^{-1}})^k (F \otimes G) = g^{IR} g_{JS} F^J_I G ^S_R$$ 
(The $g$s appearing in the last expression here are really $\otimes^k g,\otimes^lg$ with interleaved indices.)
Once you understand how inner products (,etc) are defined on tensor products then it's certainly clearer to write them in the conceptual notation; but for many computations you'll need to get down to the nitty-gritty, where index notation is often the easiest thing to deal with. Multi-indices are usually only worth the effort when you're dealing with a lot of indices, or more often (as in your example) an arbitrary number thereof. In practice it's rare to come across a tensor of rank $>4$ in Riemannian geometry, so you don't see them very often. They do distill out a lot of the meaning, however - you can view the multi-index $J$ as being a standard index on the space $\mathscr T^l T_p M$, at which point $g_{JS}$ really is the inner product induced on this space in index notation.
When you're only dealing with one metric, it's often clearer to raise/lower indices instead of writing out the metric explicitly. If you're dealing with mixed-valency tensors it does mean you need to space out the indices to avoid ambiguities, i.e. write $F^{j_1 \ldots j_l} {}_{i_i \ldots i_k}$ and $G^{s_1 \ldots s_l} {}_{r_1 \ldots r_k}$. In this manner the inner product becomes $$\langle F,G \rangle = F^J{}_I G_J{}^I = F^{j_1 \ldots j_l} {}_{i_1 \ldots i_k} G_{j_1 \ldots j_l}{}^{i_1 \ldots i_k},$$ which shows the pairing between $F$ and $G$ more transparently.
Perhaps look at Penrose's graphical notation. It's usually pretty clunky, but it lets you view complicated tensor expressions modulo the meaningless noise introduced by the particular labels you have given the indices. For this reason I occasionally use (a bastardized homebrew version of) it to check equality of such expressions.
Overall though I think it's just a matter of getting used to index notation, and using it only where appropriate. After a while it seems more natural, and for computations it is often the easiest notation, even if the starting and ending points are best described more abstractly.
