These healthy blueberry muffins are lightly sweetened and bursting with flavor. They’re kid-friendly and make a great breakfast or snack! Plus they freeze well!

*Originally published 6/2014. Updated 5/2025*
Hi Friends!
I’ve been making these healthy blueberry muffins for 10+ years now and they’re still a favorite of mine. This particular recipe was originally a small-batch recipe that made about 7 muffins and I recently re-tested it to make a full batch of 12 muffins with just a few little tweaks.
So if you haven’t tried them yet, now is the perfect time, especially since blueberry season is almost here.
Blueberry Muffins – Easy & Quick!
When it comes to baking, muffin recipes like this are the absolute best for beginners. You just need one bowl, do a little pouring, a little mixing and stick them in the muffin.
You can do it ahead of time so you have them ready for the week or they’re quick enough and easy enough to whip up a batch on a weekday morning.
Are these low sugar blueberry muffins?
Yes! Compared to most muffins, these are relatively low in sugar. I use white sugar but you could substitute maple syrup if you’d like.
I like to rely on the natural sweetness of the blueberries with just a small amount of added sugar. Plus adding a sprinkle of sugar on top before baking really helps carry the sweetness into each bite, allowing you to use less sugar in the recipe.
One Bowl Blueberry Muffins Ingredients
You don’t need any fancy ingredients to make these muffins. In fact, you likely have almost everything you need already in your pantry including:
- Oil – I use avocado oil
- Egg
- Yogurt – I use plain Greek yogurt but plain regular yogurt or even vanilla yogurt will work
- Vanilla extract
- Maple syrup – you can swap white sugar if you prefer
- Milk
- Baking powder, baking soda, cinnamon
- Blueberries – fresh or frozen
How To Make Moist and Fluffy Blueberry Muffins
To make these muffins just follow a few simple steps:
- Mix the yogurt, eggs, oil, milk, vanilla and sugar.
- Add the flour, baking powder, baking soda, cinnamon and stir to just combine.
- Toss the blueberries in 1 -2 tsp flour to coat, then add and mix gently to combine.
- Scoop into muffin tins, sprinkle the tops with blueberries and a pinch of sugar and bake!

Blueberry Muffins Variations
Blueberry Muffins Made with Buttermilk
I’ve found that a lot of people are looking for muffin recipes made specifically with buttermilk. While this recipe doesn’t call for buttermilk, it uses plain Greek yogurt which is similar. If you don’t have yogurt, you can swap in one cup of buttermilk.
Don’t have buttermilk? It’s so easy to make your own – just add a splash of vinegar to a cup of milk and let it sit for 5 minutes.
Streusel For Blueberry Muffins
Let’s talk about them. They’re big & fluffy, packed with blueberries and not overly sweet. In these blueberry muffins, yogurt is used to keep the blueberry muffins moist. And I always add a sprinkle of sugar on top because it’s a quick and easy way to add a little sweetness in every bite. However, you could also add a streusel topping. It’s a little bit more work but mixing some cold butter, brown sugar and oats together and sprinkling on top would be delightful!
Blueberry Muffins with Frozen Blueberries – Should I thaw frozen blueberries before baking?
If you don’t have fresh blueberries, you can use frozen. Be sure to always toss blueberries in about a teaspoon of flour before mixing into the batter. If you pick blueberries in the summer, or even when you see them on sale at the store, stock up and freeze them. They’re great for baking!
Blueberry Muffins Protein – Can I add protein powder to blueberry muffins?
These muffins do get a boost of protein from the Greek yogurt but if you wanted to add some additional protein, you could add a scoop or two of protein powder to the batter before mixing in the flour. Adding protein powder can dry out the muffins so I would start with one scoop and if it’s not noticeable, add another scoop the next time.
Best Fluffy Blueberry Muffins Recipe
Here’s the recipe:
Healthy Blueberry Muffins
These Blueberry Muffins are lightly sweetened and bursting with flavor. They’re kid-friendly and make a great breakfast or snack!
- Prep Time: 5 min
- Cook Time: 25 min
- Total Time: 30 minutes
- Yield: Makes 12 muffins
Ingredients
- 1/3 cup oil
- 1/4 cup milk
- 2 eggs
- 1 cup plain Greek yogurt
- 2 teaspoons vanilla extract
- 1/3 cup sugar + 2 tsp for sprinkling
- 1.5 cups white whole wheat flour
- 2 teaspoons baking powder
- 1/2 teaspoon baking soda
- 2 teaspoons cinnamon
- 1/4 tsp salt
- 1.25 cups fresh blueberries (or frozen) + 1 tsp flour
Instructions
- Preheat oven to 375 degrees F.
- In a large bowl, mix together oil, milk, eggs, yogurt, vanilla and sugar until well combined.
- Add flour, baking powder, baking soda, cinnamon and salt and stir until just combined.
- Toss 1 cup berries in 1 tsp flour to coat, then gently mix in berries.
- Scoop in greased or lined muffin tins.
- Lightly press remaining 1/4 cup berries into the top of the muffins and sprinkle lightly with sugar.
- Bake for 16-18 minutes or until a toothpick inserted into the center comes out clean
Notes
Feel free to use frozen blueberries instead – no need to thaw before baking!
You can use a gluten-free 1:1 flour blend to make these muffins gluten-free.
window.trCommon={“minRating”:6,”ajaxurl”:”https://www.theleangreenbean.com/wp-admin/admin-ajax.php”,”ratingNonce”:””,”postId”:12690};
window.TastyRecipes = window.TastyRecipes || {};
window.TastyRecipes.smoothScroll = {
init() {
document.addEventListener( ‘click’, ( e ) => {
let anchor = e.target;
if ( anchor.tagName !== ‘A’ ) {
anchor = anchor.closest( ‘a.tasty-recipes-scrollto’ );
}
if ( ! anchor || ! anchor.classList.contains( ‘tasty-recipes-scrollto’ ) ) {
return;
}
const elementHref = anchor.getAttribute( ‘href’ );
if ( ! elementHref ) {
return;
}
e.preventDefault();
this.goToSelector( elementHref );
});
},
goToSelector( selector ) {
const element = document.querySelector( selector );
if ( ! element ) {
return;
}
element.scrollIntoView( { behavior: ‘smooth’ } );
}
};
document.addEventListener(
‘DOMContentLoaded’,
() => window.TastyRecipes.smoothScroll.init()
);
window.TastyRecipes = window.TastyRecipes || {};
window.TastyRecipes.cookMode = {
wakeLockApi: false,
wakeLock: false,
cookModeSelector: ‘.tasty-recipes-cook-mode’,
init() {
if (“wakeLock” in navigator && “request” in navigator.wakeLock) {
this.wakeLockApi = navigator.wakeLock;
}
const cookModes = document.querySelectorAll(this.cookModeSelector);
if (cookModes.length > 0) {
for (const cookMode of cookModes) {
if (this.wakeLockApi) {
cookMode.querySelector(‘input[type=”checkbox”]’).addEventListener(“change”, event => {
this.checkboxChange(event.target);
}, false);
} else {
cookMode.style.display = “none”;
}
}
}
},
checkboxChange(checkbox) {
if (checkbox.checked) {
this.lock();
} else {
this.unlock();
}
},
setCheckboxesState(state) {
const checkboxes = document.querySelectorAll(this.cookModeSelector + ‘ input[type=”checkbox”]’);
for (const checkbox of checkboxes) {
checkbox.checked = state;
}
},
async lock() {
try {
this.wakeLock = await this.wakeLockApi.request(“screen”);
this.wakeLock.addEventListener(“release”, () => {
this.wakeLock = false;
this.setCheckboxesState(false);
});
this.setCheckboxesState(true);
} catch (error) {
this.setCheckboxesState(false);
}
},
unlock() {
if (this.wakeLock) {
this.wakeLock.release();
this.wakeLock = false;
}
this.setCheckboxesState(false);
}
};
(function(callback) {
if (document.readyState !== “loading”) {
callback();
} else {
document.addEventListener(“DOMContentLoaded”, callback);
}
})(() => {
window.TastyRecipes.cookMode.init();
});
window.TastyRecipes = window.TastyRecipes || {};
window.TastyRecipes.staticTooltip = {
element: null,
tooltipElement: null,
deleting: false,
init( element ) {
if ( this.deleting ) {
return;
}
this.element = element;
this.buildElements();
},
destroy() {
if ( ! this.tooltipElement || this.deleting ) {
return;
}
this.deleting = true;
this.tooltipElement.classList.remove( ‘opened’ );
setTimeout( () => {
this.tooltipElement.remove();
this.deleting = false;
}, 500 );
},
buildElements() {
const tooltipElement = document.createElement( ‘div’ );
tooltipElement.classList.add( ‘tasty-recipes-static-tooltip’);
tooltipElement.setAttribute( ‘id’, ‘tasty-recipes-tooltip’ );
const currentTooltipElement = document.getElementById( ‘tasty-recipes-tooltip’ );
if ( currentTooltipElement ) {
document.body.replaceChild( tooltipElement, currentTooltipElement );
} else {
document.body.appendChild( tooltipElement );
}
this.tooltipElement = document.getElementById( ‘tasty-recipes-tooltip’ );
},
show() {
if ( ! this.tooltipElement ) {
return;
}
const tooltipTop = this.element.getBoundingClientRect().top
+ window.scrollY
– 10 // 10px offset.
– this.tooltipElement.getBoundingClientRect().height;
const tooltipLeft = this.element.getBoundingClientRect().left
– ( this.tooltipElement.getBoundingClientRect().width / 2 )
+ ( this.element.getBoundingClientRect().width / 2 ) – 1;
const posLeft = Math.max( 10, tooltipLeft );
this.maybeRemoveTail( posLeft !== tooltipLeft );
this.tooltipElement.setAttribute( ‘style’, ‘top:’ + tooltipTop + ‘px;left:’ + posLeft + ‘px;’ );
this.tooltipElement.classList.add( ‘opened’ );
},
maybeRemoveTail( removeTail ) {
if ( removeTail ) {
this.tooltipElement.classList.add( ‘tr-hide-tail’ );
} else {
this.tooltipElement.classList.remove( ‘tr-hide-tail’ );
}
},
changeMessage( message ) {
if ( ! this.tooltipElement ) {
return;
}
this.tooltipElement.innerHTML = message;
}
};
window.TastyRecipes.ajax = {
sendPostRequest( url, data, success, failure ) {
const xhr = new XMLHttpRequest();
xhr.open( ‘POST’, url, true );
xhr.send( this.preparePostData( data ) );
xhr.onreadystatechange = () => {
if ( 4 !== xhr.readyState ) {
return;
}
if ( xhr.status === 200 ) {
success( JSON.parse( xhr.responseText ) );
return;
}
failure( xhr );
};
xhr.onerror = () => {
failure( xhr );
};
},
preparePostData( data ) {
const formData = new FormData();
for ( const key in data ) {
formData.append( key, data[key] );
}
return formData;
},
};
window.TastyRecipes.ratings = {
defaultRating: 0,
currentRatingPercentage: 100,
savingRating: false,
init( minRating ) {
this.minRating = minRating;
this.formWatchRating();
this.closeTooltipWhenClickOutside();
this.addBodyClassBasedOnSelectedRating();
this.backwardCompFormRatingPosition();
},
formWatchRating() {
const ratings = document.querySelectorAll(‘.tasty-recipes-no-ratings-buttons [data-rating]’);
if ( ratings.length {
event.preventDefault();
this.defaultRating = event.target.closest( ‘.checked’ ).dataset.rating;
this.setCheckedStar( event.target );
this.maybeSendRating( this.defaultRating, event.target );
this.setRatingInForm( this.defaultRating );
} );
}
},
closeTooltipWhenClickOutside() {
window.addEventListener( ‘click’, e => {
// Bailout (don’t remove the tooltip) when the clicked element is a rating star, or it’s the tooltip itself.
if ( e.target.closest( ‘.tasty-recipes-rating’ ) || e.target.classList.contains( ‘tasty-recipes-static-tooltip’ ) ) {
return;
}
window.TastyRecipes.staticTooltip.destroy();
} );
},
setRatingInForm( rating ) {
const ratingInput = document.querySelector( ‘#respond .tasty-recipes-rating[value=”‘ + rating + ‘”]’ );
if ( ! ratingInput ) {
return;
}
ratingInput.click();
},
addBodyClassBasedOnSelectedRating() {
const ratingInputs = document.querySelectorAll( ‘input.tasty-recipes-rating’ );
if ( ! ratingInputs ) {
return;
}
for ( const ratingInput of ratingInputs ) {
ratingInput.addEventListener( ‘click’, currentEvent => {
const selectedRating = currentEvent.target.getAttribute( ‘value’ );
this.handleBodyClassByRating( selectedRating );
this.toggleCommentTextareaRequired( selectedRating );
} );
}
},
handleBodyClassByRating( rating ) {
if ( rating < this.minRating ) {
document.body.classList.remove( 'tasty-recipes-selected-minimum-rating' );
return;
}
document.body.classList.add( 'tasty-recipes-selected-minimum-rating' );
},
toggleCommentTextareaRequired( rating ) {
const commentTextarea = document.getElementById( 'comment' );
if ( ! commentTextarea ) {
return;
}
if ( rating {
window.TastyRecipes.staticTooltip.changeMessage( response.data.message );
window.TastyRecipes.staticTooltip.show();
this.updateAverageText( response.data, recipeCardElement );
this.maybeFillCommentForm( response.data );
// Hide the tooltip after 5 seconds.
setTimeout( () => {
this.maybeResetTooltip( recipeCardElement, response.data, rating );
}, 5000 );
},
() => {
this.resetTooltip( recipeCardElement );
}
);
},
updateAverageText( data, recipeCardElement ) {
if ( ! data.average ) {
return;
}
this.setRatingPercent( data );
if ( ! data.count ) {
return;
}
const quickLink = document.querySelector( ‘.tasty-recipes-rating-link’ );
if ( quickLink ) {
this.setTextInContainer( quickLink, data );
this.setPartialStar( quickLink );
}
const cardStars = recipeCardElement.querySelector( ‘.tasty-recipes-ratings-buttons’ );
cardStars.dataset.trDefaultRating = data.average;
this.setTextInContainer( recipeCardElement.querySelector( ‘.tasty-recipes-rating’ ), data );
},
setTextInContainer( container, data ) {
if ( ! container ) {
return;
}
if ( data.label ) {
const ratingLabelElement = container.querySelector( ‘.rating-label’ );
if ( ratingLabelElement ) {
ratingLabelElement.innerHTML = data.label;
}
return;
}
const averageElement = container.querySelector( ‘.average’ );
if ( averageElement ) {
averageElement.textContent = data.average;
}
const countElement = container.querySelector( ‘.count’ );
if ( countElement ) {
countElement.textContent = data.count;
}
},
setPartialStar( container ) {
const highestStar = container.querySelector( ‘[data-rating=”‘ + Math.ceil( this.defaultRating ) + ‘”]’ );
if ( highestStar ) {
highestStar.dataset.trClip = this.currentRatingPercentage;
}
},
setRatingPercent( data ) {
this.defaultRating = data.average.toFixed( 1 );
const parts = data.average.toFixed( 2 ).toString().split( ‘.’ );
this.currentRatingPercentage = parts[1] ? parts[1] : 100;
if ( this.currentRatingPercentage === ’00’ ) {
this.currentRatingPercentage = 100;
}
},
setCheckedStar( target ) {
const cardRatingContainer = target.closest( ‘.tasty-recipes-ratings-buttons’ );
const selectedRatingElement = cardRatingContainer.querySelector( ‘[data-tr-checked]’ );
if ( selectedRatingElement ) {
delete selectedRatingElement.dataset.trChecked;
}
const thisStar = target.closest( ‘.tasty-recipes-rating’ );
thisStar.dataset.trChecked = 1;
thisStar.querySelector( ‘[data-tr-clip]’ ).dataset.trClip = 100;
},
maybeFillCommentForm( data ) {
if ( ! data.comment || ! data.comment.content ) {
return;
}
const commentForm = document.querySelector( ‘#commentform’ );
if ( ! commentForm ) {
return;
}
const commentBox = commentForm.querySelector( ‘[name=comment]’ );
if ( ! commentBox || commentBox.value ) {
return;
}
// Add comment details for editing.
commentBox.innerHTML = data.comment.content;
if ( data.comment.name ) {
commentForm.querySelector( ‘[name=author]’ ).value = data.comment.name;
commentForm.querySelector( ‘[name=email]’ ).value = data.comment.email;
}
},
maybeResetTooltip( recipeCardElement, data, rating ) {
if ( this.savingRating === rating ) {
this.resetTooltip( recipeCardElement, data );
}
},
resetTooltip( recipeCardElement, data ) {
window.TastyRecipes.staticTooltip.destroy();
this.savingRating = false;
// Reset the default rating.
const cardRatingContainer = recipeCardElement.querySelector( ‘.tasty-recipes-ratings-buttons’ );
if ( cardRatingContainer ) {
this.defaultRating = ( data && data.average ) ? data.average.toFixed(1) : cardRatingContainer.dataset.trDefaultRating;
cardRatingContainer.dataset.trDefaultRating = this.defaultRating;
this.resetSelectedStar( cardRatingContainer, data );
}
},
resetSelectedStar( cardRatingContainer ) {
const selectedRatingElement = cardRatingContainer.querySelector( ‘[data-rating=”‘ + Math.ceil( this.defaultRating ) + ‘”]’ );
if ( selectedRatingElement ) {
selectedRatingElement.querySelector( ‘[data-tr-clip]’ ).dataset.trClip = this.currentRatingPercentage;
selectedRatingElement.parentNode.dataset.trChecked = 1;
}
const previousSelectedElement= cardRatingContainer.querySelector( ‘[data-tr-checked]’ );
if ( previousSelectedElement ) {
const currentSelectedRating = previousSelectedElement.querySelector(‘[data-rating]’);
if ( currentSelectedRating !== selectedRatingElement ) {
delete previousSelectedElement.dataset.trChecked;
}
}
},
backwardCompFormRatingPosition() {
const ratingsButtons = document.querySelector( ‘#respond .tasty-recipes-ratings-buttons, #tasty-recipes-comment-rating .tasty-recipes-ratings-buttons’ );
if ( ! ratingsButtons ) {
return;
}
const ratingsButtonsStyles = window.getComputedStyle(ratingsButtons);
if ( ! ratingsButtonsStyles.display.includes( ‘flex’ ) ) {
ratingsButtons.style.direction = ‘rtl’;
}
if ( typeof tastyRecipesRating !== ‘undefined’ ) {
// Select the rating that was previously selected in admin.
ratingsButtons.querySelector( ‘.tasty-recipes-rating[value=”‘ + tastyRecipesRating + ‘”]’ ).checked = true;
}
const ratingSpans = ratingsButtons.querySelectorAll( ‘.tasty-recipes-rating’ );
for (const ratingSpan of ratingSpans) {
ratingSpan.addEventListener( ‘click’, event => {
if ( ratingSpan === event.target ) {
return;
}
ratingSpan.previousElementSibling.click();
} );
}
}
};
(function(callback) {
if (document.readyState !== “loading”) {
callback();
} else {
window.addEventListener( ‘load’, callback );
}
})(() => {
window.TastyRecipes.ratings.init( window.trCommon ? window.trCommon.minRating : 4 );
});
Saving a few blueberries to press into the top of each one makes them look extra fancy…and sprinkling with just a pinch of sugar on top is crucial, in my opinion!
Healthy Blueberry Muffins FAQs
What makes blueberry muffins moist and fluffy?
Including yogurt and baking soda helps make these muffins light and fluffy. The acid in the yogurt, especially Greek yogurt reacts with baking soda and creates carbon dioxide which helps the muffins rise.
What’s the difference between using milk and buttermilk in muffins?
Buttermilk (and Greek yogurt) are more acidic and will help make muffins taller and fluffier than just using regular milk.
Are blueberry muffins healthy?
As always, it depends on the ingredients but I consider this muffin recipe to be fairly healthy. It uses Greek yogurt and hemp hearts which add protein, plus white whole wheat flour to add some fiber. It’s also fairly low in added sugar.
How do I make blueberry muffins vegan without eggs?
You can try replacing eggs in muffin recipes with flax eggs. Here’s how to make a flax egg.
What type of flour is best for blueberry muffins?
I like white whole wheat flour. It has the benefits of wheat flour but it’s lighter and has a more mild flavor. You could also try replacing some of the flour with almond flour.

Can I freeze blueberry muffins for later?
Yes, just cool completely and place in a freezer-safe bag. Thaw on the counter or in the microwave when ready to eat.
Can I make these blueberry muffins gluten-free?
Yes! To make these muffins gluten-free swap the white whole wheat flour for a 1:1 gluten-free flour blend. I like King Arthur Measure for Measure.
How to store blueberry muffins?
Store in an airtight container on the counter for a couple of days. If keeping longer than that I would store in the fridge to prevent spoilage.

Healthy Muffin Recipes
Looking for more muffins? You can find all my healthy muffins and bars recipes here.
- If you’re looking specifically for cornbread muffins with blueberries, you can use my Cranberry Corn Muffins and swap blueberries and bam! Corn muffins with blueberries!
- If you want paleo blueberry muffins, try these Almond Flour Blueberry Muffins from my friend Ashley at Fit Mitten Kitchen.
- Want vegan blueberry muffins? Try The Best Vegan Blueberry Muffins from Jessica in the Kitchen or these Vegan Blueberry Muffins from Eating Bird Food.
Enjoy!
–Lindsay–