Better late than never I suppose! Please try our new export options in Spine 3.7 beta. We've completely redone all the exporting, it is much more powerful, especially for GIF:
Loading Image
Here is your project exported with a white matte background at 50 fps:
Loading Image
If it is blurry, probably your browser is scaling the image (try saving it locally and opening it with something like Image Glass). There are many more settings you can play with!
Also, we have added a "pixel grid scaling" setting, so you see your pixel art in the Spine editor viewport just like it will be exported. When enabled, Spine will render your pixel art at a 1:1 ratio, then scale the resulting image up to the viewport size, retaining all the pixely goodness:
Loading Image
I noticed your head image is 9x9 and is placed at 0,35.5 (world position). The position is the center of the image, so when an image has odd dimensions, you may want to offset the position by 0.5 so the image pixels map 1:1 with the exported GIF pixels (assuming you haven't rotated or scaled or translated by a partial pixel). By moving the head to 0.5,35.5 the GIF then looks like this:
Loading Image
Notice the head no longer uses 2 pixels for the outline on the left edge. That came from Spine needing to map the image pixel to the GIF pixel, and if it falls between GIF pixels then Spine has to smudge the pixel (called "filtering"). This doesn't matter for things like the arms, which are in motion. Also for parts of the skeleton that you rotate or scale, those operations almost ensure filtering artifacts (unless you rotate 90, 180, or 270 degrees, or scale 2, 4, etc). You'd only care about this for something like the head, or where a logo stops at the end of an animation, etc. If you check Linear filtering
then you'll get more averaging of the pixels, which is usually not nice for pixel art.
Turning on MSAA can smooth hard image edges (where you didn't leave transparent pixels around the edge):
Loading Image
MSAA can only help GIF when using a matte background though. Without a background, GIF only has on or off alpha. Sometimes that can help, as you get a hard edge rather than pixels that don't map 1:1 getting blurred, like the top of his head with MSAA. That happens because his body (and therefore his head) is keyed to move up/down fractions of a pixel, and is of course interpolated between keys. Here it is with a blank background:
Loading Image