After living with the sunroof rattle ever since I got the car, decided to fix it today. It’s so easy, don’t know why I waited this long.
1) Remove the sunroof. Now you need to take the wind deflector out as one source of the rattle is here.
2) Remove the deflector c-clip (red) from the spring lever (green). Simply hold the lever with a screwdriver and push the deflector toward the front of the car. Repeat for the other side.
3) Now, you need to remove the little clips that the deflector slides on (this is actually the source of the rattling). Slide the deflector toward the back of the car, so that you can get to the front of the clips. Take a thin-bladed screwdriver to underside of the clips and pry them up with a simple twisting motion of the screwdriver.
4) Here’s just some pics of the deflector out of the car. Take this time to wipe off all the dirt that has sat all these years under the deflector.
5) Now place a piece of felt or fabric into the recesses that the sliding clips rest in, or attach them to the proper side of the sliding clips circled above.
(I just used a couple cut pieces of that material in toolboxes to keep tools from sliding around)
6) Now reinstall the wind deflector. Put the back of the sliding clip in first and then push the front of the clip down. I had to use a screwdriver to push it down in place, because of the thicker material that I used.
7) Clip back on the c-clips
8) The other source of potential rattles is the retaining spring and clip. You may try just lubricating it with WD40 or something similar. You can see in the first picture that the plastic had worn off, so that there is metal-on-metal contact that is causing the squeak. But I decided just to remove mine altogether.