To gain weight, you need to eat more calories than your body burns each day, and the best way to do that is by focusing on foods that pack a lot of calories and nutrients into small portions. Adding roughly 300 to 500 extra calories per day is a sustainable starting point for most adults. The foods that make the biggest difference are calorie-dense options like nuts, nut butters, whole milk, avocados, cheese, dried fruit, and fatty fish, combined with enough protein to ensure the weight you gain includes muscle, not just fat.
How Many Extra Calories You Actually Need
Gaining a pound of lean muscle requires roughly 2,000 to 2,500 extra calories over the course of a week, while a pound of fat takes about 3,500. That works out to an extra 300 to 500 calories per day if your goal is steady, healthy weight gain. You don’t need to double your food intake overnight. Small, consistent additions to your existing meals are easier to maintain and less likely to cause digestive discomfort.
If you’re not sure where you stand, a BMI below 18.5 is considered clinically underweight. That number isn’t the full picture of your health, but it’s a useful starting benchmark for understanding whether weight gain should be a priority.
The Best Foods for Gaining Weight
The most efficient approach is choosing foods that deliver a high number of calories in a small volume. Fats are your most calorie-dense option at 9 calories per gram, compared to 4 calories per gram for protein and carbohydrates. That doesn’t mean you should eat sticks of butter, but it does mean that healthy fat sources let you add significant calories without needing to eat enormous portions.
Here are some of the most effective options, organized by category:
Fats and High-Fat Foods
- Nut butters (peanut, almond, cashew): 190 calories and 8g protein per 2 tablespoons
- Nuts and seeds: 160 to 200 calories and 4 to 6g protein per ounce
- Avocado: 100 to 150 calories per half, plus 2g protein
- Olive oil, butter, or mayonnaise: about 100 calories per tablespoon
- Cheese: 115 calories and 7g protein per ounce
- Cream cheese: 50 calories per tablespoon
Protein-Rich Foods
- Beef, pork, chicken, turkey, and fish: 55 to 100 calories and 7g protein per ounce
- Eggs: 75 calories and 6g protein each
- Beans, peas, and lentils: 100 to 120 calories and 14 to 18g protein per half cup
- Cottage cheese: 120 calories and 13g protein per half cup
- Full-fat Greek yogurt: 120 to 160 calories and 16g protein per 6 ounces
- Tofu: 100 calories and 10g protein per half cup
Carbohydrate-Rich Foods
- Dried fruit (raisins, apricots, figs): 160 to 185 calories per 2 ounces
- Pasta, rice, and quinoa: calorie-dense staples that pair well with fats and proteins
- Granola and oats: easy to add to yogurt, smoothies, or eat as snacks
- Whole milk: 150 calories and 8g protein per cup
How Much Protein You Need
If you want to gain muscle rather than just body fat, protein intake matters. Aim for about 1 to 1.5 grams of protein per kilogram of body weight each day. For someone weighing 150 pounds (68 kg), that’s roughly 69 to 102 grams of protein daily. Spreading your protein across meals is more effective than loading it all into dinner. Research on muscle building suggests about 0.4 grams of protein per kilogram of body weight per meal is the amount that maximizes your body’s ability to use it for muscle repair and growth.
Animal proteins like whey, meat, eggs, and dairy tend to be especially effective for muscle building because they’re rich in leucine, an amino acid that triggers muscle protein synthesis. You need roughly 3 grams of leucine per meal to hit the threshold that stimulates muscle growth, which is one reason protein quality matters alongside quantity. Plant proteins like beans, tofu, and lentils still contribute meaningfully, especially when combined across meals.
Why Smoothies and Shakes Are So Effective
Liquid calories are one of the easiest ways to increase your intake, especially if you struggle with appetite. Smoothies let you combine several calorie-dense ingredients into a single drink that goes down faster and feels less filling than a full meal. A well-built smoothie can easily reach 500 to 800 calories.
Good ingredients to blend together include whole milk or full-fat yogurt as a base, a tablespoon or two of nut butter, a banana or other fruit, and half a cup of dry oats ground in the blender before adding the other ingredients. Oats are an excellent source of both calories and protein in smoothie form. You can also add silken tofu for extra protein without changing the flavor, or a scoop of protein powder if you’re falling short on your daily target. Ice cream works too if you’re primarily focused on getting calories in.
One practical tip: avoid drinking water, diet soda, or other low-calorie beverages with your meals, since they fill your stomach without adding calories. If liquids tend to make you feel full, skip them during meals and sip your high-calorie smoothie between meals instead.
Eating Strategies When Your Appetite Is Low
Many people who want to gain weight already know they should eat more. The problem is actually doing it. If large meals feel overwhelming, try shifting to 5 or 6 smaller meals spread throughout the day instead of three big ones. A “meal” can be as simple as a handful of nuts with a glass of whole milk, or toast with a thick layer of peanut butter and a drizzle of honey.
Another effective strategy is adding calories to foods you’re already eating. Melt cheese into scrambled eggs, stir nut butter into oatmeal, drizzle olive oil over pasta or vegetables, add cream cheese to sandwiches, or mix dry milk powder into soups and sauces. These small additions can contribute an extra 100 to 200 calories per meal without requiring you to eat noticeably more food. Over the course of a day, that adds up quickly.
Strength training also helps stimulate appetite. People who lift weights regularly often find themselves genuinely hungry in a way that makes eating enough feel natural rather than forced.
Why Strength Training Changes Everything
Eating more without exercising will add weight, but most of it will be fat. Pairing a calorie surplus with resistance training shifts the balance toward muscle gain. When you eat protein after lifting weights, your body’s rate of muscle protein synthesis increases significantly, and that elevated rate lasts at least 24 hours after a workout. So the old idea that you need to slam a protein shake within 30 minutes of exercising is overblown. What matters more is consistently eating enough protein across the day.
One detail worth knowing: eating about 40 grams of a slow-digesting protein like casein (found in dairy products such as cottage cheese and Greek yogurt) before bed has been shown to stimulate muscle building overnight. A bowl of cottage cheese or a glass of whole milk before sleep is a simple way to take advantage of this.
The type of workout matters less than you might think. What drives muscle growth is pushing your muscles close to their limit, regardless of whether you’re lifting heavy for fewer reps or lighter for more reps. The key is reaching the point where you can’t do another rep with good form.
A Sample Day of Eating for Weight Gain
Putting this all together, a practical day might look like this: breakfast of oatmeal made with whole milk, topped with sliced banana, a tablespoon of peanut butter, and a handful of walnuts. A mid-morning snack of full-fat Greek yogurt with granola and dried fruit. Lunch built around rice or pasta with chicken or beans, vegetables cooked in olive oil, and cheese on top. An afternoon smoothie blending whole milk, oats, peanut butter, a banana, and protein powder. Dinner with a protein source like salmon or beef, a starchy side like potatoes or bread, and a salad dressed generously with olive oil. A before-bed snack of cottage cheese with honey or a glass of whole milk.
None of these meals are extreme. The strategy isn’t about forcing yourself to eat until you’re uncomfortable. It’s about choosing calorie-dense foods at every opportunity and eating frequently enough that the surplus accumulates naturally throughout the day.

