An old-fashioned method, but a good one. Shaking down your rug is a fantastic way to remove any surface dirt and dust. Take your rug outside, and give it a good shake to loosen any dust or crumbs that might be caught.
Instead, check to see if your vacuum has a high pile head. This is softer on the shag rug and doesn't have the same whirling motion that can pull at the fibers. Thoroughly clean the shag rug using the high pile setting.
If you don't have a high pile vacuum attachment, there is still a way to vacuum your shag rug. Flip the rug upside down, and vacuum the underside of the rug. Then, remove the rug, and vacuum the space where it was.
Mix a few drops of dish soap with hot water. Use a brush with soft bristles to scrub the area carefully. Rub the stain until it's gone. Rinse through with water to remove the rest of the soap solution, and leave to air dry.
For set stains, use a carpet cleaner, and spray it directly on the stain. Leave to sit for a few minutes, before wiping away. For a homemade solution, mix warm water and white vinegar in equal measure.
Although you can't just run a vacuum over it, cleaning a shag rug doesn't have to be complicated. Just remember to shake it out on occasion, and treat any spills as they occur. That will keep your shag rug soft and plush for longer.