\u3cp\u3eComputing the smallest number q such that the vertices of a given graph can be properly q-colored, known as the chromatic number, is one of the oldest and most fundamental problems in combinatorial optimization. The q-COLORING problem has been studied intensively using the framework of parameterized algorithmics, resulting in a very good understanding of the best-possible algorithms for several parameterizations based on the structure of the graph. For example, algorithms are known to solve the problem on graphs of treewidth tw in time O\u3csup\u3e⁎\u3c/sup\u3e(q\u3csup\u3etw\u3c/sup\u3e), while a running time of O\u3csup\u3e⁎\u3c/sup\u3e((q−ε)\u3csup\u3etw\u3c/sup\u3e) is impossible assuming the Strong Exponential Time Hypothesis (SETH). While there is an abundance of work for parameterizations based on decompositions of the graph by vertex separators, almost nothing is known about parameterizations based on edge separators. We fill this gap by studying q-COLORING parameterized by cutwidth, and parameterized by pathwidth in bounded-degree graphs. Our research uncovers interesting new ways to exploit small edge separators. We present two algorithms for q-COLORING parameterized by cutwidth ctw: a deterministic one that runs in time O\u3csup\u3e⁎\u3c/sup\u3e(2\u3csup\u3eω⋅ctw\u3c/sup\u3e), where ω is the square matrix multiplication exponent, and a randomized one with runtime O\u3csup\u3e⁎\u3c/sup\u3e(2\u3csup\u3ectw\u3c/sup\u3e). In sharp contrast to earlier work, the running time is independent of q. The dependence on cutwidth is optimal: we prove that even 3-COLORING cannot be solved in O\u3csup\u3e⁎\u3c/sup\u3e((2−ε)\u3csup\u3ectw\u3c/sup\u3e) time assuming SETH. Our algorithms rely on a new rank bound for a matrix that describes compatible colorings. Combined with a simple communication protocol for evaluating a product of two polynomials, this also yields an O\u3csup\u3e⁎\u3c/sup\u3e((⌊d/2⌋+1)\u3csup\u3epw\u3c/sup\u3e) time randomized algorithm for q-COLORING on graphs of pathwidth pw and maximum degree d. Such a runtime was first obtained by Björklund, but only for graphs with few proper colorings. We also prove that this result is optimal in the sense that no O\u3csup\u3e⁎\u3c/sup\u3e((⌊d/2⌋+1−ε)\u3csup\u3epw\u3c/sup\u3e)-time algorithm exists assuming SETH.\u3c/p\u3