Rinse the shrimp shells and heads in a large colander under cold running water and allow to drain.
In a large stockpot, heat the oil over medium-high heat. When hot, add the shrimp shells and cook, stirring occasionally, until the shells are pink and toasty-fragrant, 4 to 6 minutes.
Add the water and all the remaining ingredients and bring to a boil over high heat, skimming any foam that comes to the surface. Reduce the heat to medium-low and continue to cook at a slow simmer until the stock is flavorful, 45 to 60 minutes.
Strain the stock through a fine-mesh sieve into a large heat-safe bowl and allow it to cool completely. Cover and refrigerate for up to 3 days before using. (The stock may also be placed in airtight containers and frozen for up to several months.)
Easily double the ingredient amounts to make a larger batch of stock. To save space in the freezer, you can reduce the stock further after straining and discarding the solids. Just add water to the defrosted stock to reconstitute as needed.