Roast the chicken and vegetables (optional). Preheat the oven to 450°F. Remove the neck and giblets from the chicken cavity, reserving the neck for the stock if desired. Place the chicken breast-side up in a large roasting pan and arrange the onions, carrots, celery, and garlic around it. Roast for 20-30 minutes, then carefully turn the chicken over and roast for another 15 minutes, or until the chicken and vegetables are nicely browned. Watch closely to prevent burning. The chicken does not need to be fully cooked at this stage.
Combine the ingredients in a stockpot. Transfer the roasted chicken and vegetables to a large 12-16-quart stockpot. Add a splash of water to the roasting pan to loosen any browned bits, scraping them into the pot. Add the chicken feet or necks (if using), parsley, rosemary, bay leaves, thyme, sage, salt, and peppercorns. Pour in enough cold water to completely cover the chicken and vegetables.
Bring to a gentle simmer. Place the stockpot over medium heat and slowly bring the liquid to a gentle simmer. As the water heats, use a large spoon or ladle to skim away any foam that rises to the surface. Reduce the heat to low and partially cover the pot with a lid, leaving a small opening for steam to escape. Maintain a gentle simmer, with just a few small bubbles breaking the surface.
Remove and shred the cooked chicken. After approximately 1 hour of simmering, check the chicken with a meat thermometer. The breasts should reach at least 165°F, while the thighs and legs are best cooked to 175-185°F for tender meat. Once cooked, carefully transfer the chicken to a large rimmed baking sheet using tongs and a spatula for support. Let it cool until safe to handle, then remove the meat from the bones. Reserve the meat for other recipes and return the bones, skin, and cartilage to the stockpot.
Continue simmering the stock. Simmer the bones and vegetables for another 1-3 hours, keeping the heat low. Add a little more hot water if necessary to keep the bones submerged. Skim away any additional foam or excess fat. If the vegetables become extremely soft and begin falling apart, carefully remove them to help keep the stock clear.
Strain the stock. Remove the stockpot from the heat. Carefully ladle or pour the stock through a fine-mesh strainer into a clean, heatproof pot or large bowl. For a clearer stock, line the strainer with cheesecloth. Avoid pressing on the cooked vegetables or bones, as this can make the stock cloudy. Discard the strained solids.
Cool and store. Cool the stock quickly using an ice-water bath or by dividing it into smaller, shallow containers. Refrigerate promptly. Once chilled, remove any hardened fat from the surface, if desired. Store in airtight containers in the refrigerator for 3-4 days or freeze for longer storage.