Based on the scope at which they apply, product attributes can be classified into three types:
Product-specific attributes, i.e., the attributes configured on the level of specific products, like attributes for the product "Women's Tailored Dot Shirt."
Product class attributes, i.e., the attributes configured on the level of a specific product class or group of products, like attributes for the product class Apparel.
Global attributes, i.e., the attributes assigned to any or all the products in your store.
When you decide to set up some attributes for a product, you need to consider what product properties may be necessary to buyers and determine if they are specific only to this particular product or any other products in your store. It will help you to decide which type of attribute you will need to configure.
For example, if you sell t-shirts, you may benefit from setting up such attributes as "Size" (S, M, L, XL), "Color" (black, white, red, etc.), "Fabric" (100% cotton; 57% Cotton, 43% Tencel®; rayon; etc.) and the like. In addition, if t-shirts are the only type of products you sell, you should consider setting up the attributes mentioned above as global; this way, you will be able to use them for any SKU in your store.
If, besides t-shirts, you sell other types of products (for example, bags), the attributes of Size, Color, and Fabric may not quite fit these other products. For instance, size is an essential characteristic of a bag. Still, your customers are sure to find it much more helpful if you write out each bag's dimensions in inches or centimeters than use the clothing-style sizes S, M, L, and XL. Similarly to this, bags may be made of fabric and leather, suede, plastic, straw, and other materials that one may not call just "fabric," but rather "material." In this case, you should consider setting up a separate product class for each product type and go with different sets of attributes for each of them. For example, you can create the "Apparel" class for t-shirts and the "Bags" one for bags and use the Size, Color, and Fabric attributes for the "Apparel" product class and the Bag type, Material, and Dimensions attributes for "Bags."
Then, if one of your products has a property not found in any other product in your store, you should add the respective attribute on the level of this specific product. For example, you have a single t-shirt style with embroidery, whereas all the rest are not. You can specify what types of embroidery motives are available for this t-shirt by configuring a product-specific attribute just for this very t-shirt style, e.g., Embroidery (Butterfly, Flower, etc.).