Refreshing Lemon Meringue Pie – Easy Summer Dessert Idea

Author avatar
|
Tangy lemon pie with tall meringue topping on white plate

Lemon meringue pie is the ultimate summer dessert—bright, tangy, and as refreshing as a sunny afternoon breeze. I first made this classic lemon meringue pie from scratch after a picnic where we craved something light but indulgent to end the meal. With its golden, buttery crust, luscious homemade lemon filling with fresh lemons, and fluffy meringue piled sky-high, it instantly became my go-to for warm-weather gatherings. My style is all about combining nostalgic flavors with foolproof techniques, and this easy lemon meringue pie with graham cracker crust captures that perfectly. It’s tart, sweet, creamy, and crisp all at once—like summer in every bite. Whether you’re hosting a backyard BBQ, prepping your Easter dessert table, or just craving a slice of sunshine, this pie delivers. Let’s dive in—this lemon meringue pie for summer is easier than you think!

❤️ What Makes This So Irresistible

  • Bakery-style at home – Impressive yet approachable.
  • Mile-high meringue – Sweet, airy, and toasted to perfection.
  • Fresh lemon flavor – No bottled stuff here!
  • Perfect for any occasion – Especially spring and summer events.
  • Customizable – Dairy-free, gluten-free, and vegan-friendly options included.
  • Beginner-approved – No pastry chef skills needed.


Print

clock clock iconcutlery cutlery iconflag flag iconfolder folder iconinstagram instagram iconpinterest pinterest iconfacebook facebook iconprint print iconsquares squares iconheart heart iconheart solid heart solid icon

Tangy lemon pie with tall meringue topping on white plate

Refreshing Lemon Meringue Pie – Easy Summer Dessert Idea



5 Stars 4 Stars 3 Stars 2 Stars 1 Star

No reviews


  • Author:
    Patricia Jannet


  • Total Time:
    4 hours 25 minutes


  • Yield:
    810 servings 1x


  • Diet:
    Vegetarian


Description

A refreshing and classic lemon meringue pie recipe made with fresh lemon custard and mile-high fluffy meringue topping—perfect for summer desserts and special occasions.


Ingredients


Scale

  • 1½ cups granulated sugar
  • 5 tablespoons cornstarch
  • Pinch of salt
  • 4 large egg yolks
  • 1¾ cups water
  • ½ cup fresh lemon juice (about 3 lemons)
  • Zest of 1 lemon
  • 3 tablespoons unsalted butter
  • 4 large egg whites
  • ½ teaspoon cream of tartar
  • ½ cup granulated sugar (for meringue)
  • ½ teaspoon vanilla extract
  • 1 deep dish 9-inch pie crust, baked



Instructions

  1. Preheat oven to 325°F (165°C). Place the baked pie crust on a rimmed baking sheet.
  2. In a medium saucepan, whisk together sugar, cornstarch, and salt. Add in the egg yolks, water, and lemon juice, and whisk until combined.
  3. Cook over medium heat, stirring constantly, until the mixture thickens and begins to boil (about 10 minutes). Boil for 1 minute, then remove from heat and stir in butter and lemon zest.
  4. Pour the lemon custard into the prepared pie crust.
  5. In a clean, dry mixing bowl, beat egg whites and cream of tartar until foamy. Gradually add sugar, 1 tablespoon at a time, and beat until stiff peaks form. Add vanilla and beat to combine.
  6. Spread the meringue over the hot lemon filling, sealing the edges of the crust to prevent shrinking. Create peaks with a spatula.
  7. Bake for 20–25 minutes until the meringue is golden brown.
  8. Cool the pie completely at room temperature, then refrigerate for at least 4 hours before serving.

Notes

  • Always spread meringue on hot filling to prevent weeping.
  • Use fresh lemons for best flavor.
  • To prevent custard skin, press plastic wrap directly onto surface if making in advance.
  • Do not freeze; freezing affects meringue texture.
  • Double the meringue ingredients for an extra high topping.

  • Prep Time: 4 hours
  • Cook Time: 25 minutes
  • Category: Dessert
  • Method: Baking
  • Cuisine: American

Nutrition

  • Serving Size: 1 slice
  • Calories: 320
  • Sugar: 30g
  • Sodium: 75mg
  • Fat: 12g
  • Saturated Fat: 7g
  • Unsaturated Fat: 4g
  • Trans Fat: 0g
  • Carbohydrates: 42g
  • Fiber: 1g
  • Protein: 4g
  • Cholesterol: 90mg

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() );

(function(){

var bothEquals = function( d1, d2, D ) { var ret = 0; if (d1<=D) { ret++; } if (d2<=D) { ret++; } return ret === 2; };var frac =function frac(x,D,mixed){var n1=Math.floor(x),d1=1;var n2=n1+1,d2=1;if(x!==n1){while(bothEquals(d1,d2,D)){var m=(n1+n2)/(d1+d2);if(x===m){if(d1+d2<=D){d1+=d2;n1+=n2;d2=D+1}else if(d1>d2){d2=D+1;}else {d1=D+1;}break}else if(xD){d1=d2;n1=n2}if(!mixed){return[0,n1,d1];}var q=Math.floor(n1/d1);return[q,n1-q*d1,d1]};frac.cont=function cont(x,D,mixed){var sgn=x<0?-1:1;var B=x*sgn;var P_2=0,P_1=1,P=0;var Q_2=1,Q_1=0,Q=0;var A=Math.floor(B);while(Q_1D){if(Q_1>D){Q=Q_2;P=P_2}else{Q=Q_1;P=P_1}}if(!mixed){return[0,sgn*P,Q];}var q=Math.floor(sgn*P/Q);return[q,sgn*P-q*Q,Q]};

window.tastyRecipesVulgarFractions = JSON.parse(decodeURIComponent("%7B%22%C2%BC%22%3A%221%2F4%22%2C%22%C2%BD%22%3A%221%2F2%22%2C%22%C2%BE%22%3A%223%2F4%22%2C%22%E2%85%93%22%3A%221%2F3%22%2C%22%E2%85%94%22%3A%222%2F3%22%2C%22%E2%85%95%22%3A%221%2F5%22%2C%22%E2%85%96%22%3A%222%2F5%22%2C%22%E2%85%97%22%3A%223%2F5%22%2C%22%E2%85%98%22%3A%224%2F5%22%2C%22%E2%85%99%22%3A%221%2F6%22%2C%22%E2%85%9A%22%3A%225%2F6%22%2C%22%E2%85%9B%22%3A%221%2F8%22%2C%22%E2%85%9C%22%3A%223%2F8%22%2C%22%E2%85%9D%22%3A%225%2F8%22%2C%22%E2%85%9E%22%3A%227%2F8%22%7D"));

window.tastyRecipesFormatAmount = function(amount, el) { if ( parseFloat( amount ) === parseInt( amount ) ) { return amount; } var roundType = 'frac'; if (typeof el.dataset.amountShouldRound !== 'undefined') { if ('false' !== el.dataset.amountShouldRound) { if ( 'number' === el.dataset.amountShouldRound ) { roundType = 'number'; } else if ('frac' === el.dataset.amountShouldRound) { roundType = 'frac'; } else if ('vulgar' === el.dataset.amountShouldRound) { roundType = 'vulgar'; } else { roundType = 'integer'; } } } if ('number' === roundType) { amount = Number.parseFloat(amount).toPrecision(2); } else if ('integer' === roundType) { amount = Math.round(amount); } else if ('frac' === roundType || 'vulgar' === roundType) { var denom = 8; if (typeof el.dataset.unit !== 'undefined') { var unit = el.dataset.unit; if (['cups','cup','c'].includes(unit)) { denom = 4; if (0.125 === amount) { denom = 8; } if ("0.1667" === Number.parseFloat( amount ).toPrecision(4)) { denom = 6; } } if (['tablespoons','tablespoon','tbsp'].includes(unit)) { denom = 2; } if (['teaspoons','teaspoon','tsp'].includes(unit)) { denom = 8; } } var amountArray = frac.cont( amount, denom, true ); var newAmount = ''; if ( amountArray[1] !== 0 ) { newAmount = amountArray[1] + '/' + amountArray[2]; if ('vulgar' === roundType) { Object.keys(window.tastyRecipesVulgarFractions).forEach(function(vulgar) { if (newAmount === window.tastyRecipesVulgarFractions[vulgar]) { newAmount = vulgar; } }); } } if ( newAmount ) { newAmount = ' ' + newAmount; } if ( amountArray[0] ) { newAmount = amountArray[0] + newAmount; } amount = newAmount; } return amount; };

window.tastyRecipesUpdatePrintLink = () => {

const printButton = document.querySelector( '.tasty-recipes-print-button' );

if ( ! printButton ) { return; }

const printURL = new URL( printButton.href ); const searchParams = new URLSearchParams( printURL.search );

const unitButton = document.querySelector( '.tasty-recipes-convert-button-active' ); const scaleButton = document.querySelector( '.tasty-recipes-scale-button-active' );

let unit = ''; let scale = '';

if ( unitButton ) { unit = unitButton.dataset.unitType; searchParams.delete('unit'); searchParams.set( 'unit', unit ); }

if ( scaleButton ) { scale = scaleButton.dataset.amount; searchParams.set( 'scale', scale ); }

const paramString = searchParams.toString(); const newURL = '' === paramString ? printURL.href : printURL.origin + printURL.pathname + '?' + paramString; const printLinks = document.querySelectorAll( '.tasty-recipes-print-link' );

printLinks.forEach( ( el ) => { el.href = newURL; });

const printButtons = document.querySelectorAll( '.tasty-recipes-print-button' ); printButtons.forEach( ( el ) => { el.href = newURL; }); };

document.addEventListener( 'DOMContentLoaded', () => {

if ( ! window.location.href.includes( '/print/' ) ) { return; }

const searchParams = new URLSearchParams( window.location.search );

const unit = searchParams.get( 'unit' ); const scale = searchParams.get( 'scale' );

if ( unit && ( 'metric' === unit || 'usc' === unit ) ) { document.querySelector( '.tasty-recipes-convert-button[data-unit-type="' + unit + '"]' ).click(); }

if ( scale && Number(scale) > 0 ) { document.querySelector( '.tasty-recipes-scale-button[data-amount="' + Number(scale) + '"]' ).click(); } }); }());

(function(){ var buttonClass = 'tasty-recipes-scale-button', buttonActiveClass = 'tasty-recipes-scale-button-active', buttons = document.querySelectorAll('.tasty-recipes-scale-button'); if ( ! buttons ) { return; }

buttons.forEach(function(button){ button.addEventListener('click', function(event){ event.preventDefault(); var recipe = event.target.closest('.tasty-recipes'); if ( ! recipe ) { return; } var otherButtons = recipe.querySelectorAll('.' + buttonClass); otherButtons.forEach(function(bt){ bt.classList.remove(buttonActiveClass); }); button.classList.add(buttonActiveClass);

var scalables = recipe.querySelectorAll('span[data-amount]'); var buttonAmount = parseFloat( button.dataset.amount ); scalables.forEach(function(scalable){ if (typeof scalable.dataset.amountOriginalType === 'undefined' && typeof scalable.dataset.nfOriginal === 'undefined') { if (-1 !== scalable.innerText.indexOf('/')) { scalable.dataset.amountOriginalType = 'frac'; } if (-1 !== scalable.innerText.indexOf('.')) { scalable.dataset.amountOriginalType = 'number'; } Object.keys(window.tastyRecipesVulgarFractions).forEach(function(vulgar) { if (-1 !== scalable.innerText.indexOf(vulgar)) { scalable.dataset.amountOriginalType = 'vulgar'; } }); if (typeof scalable.dataset.amountOriginalType !== 'undefined') { scalable.dataset.amountShouldRound = scalable.dataset.amountOriginalType; } } var amount = parseFloat( scalable.dataset.amount ) * buttonAmount; amount = window.tastyRecipesFormatAmount(amount, scalable); if ( typeof scalable.dataset.unit !== 'undefined' ) { if ( ! scalable.classList.contains('nutrifox-quantity') ) { if ( ! scalable.classList.contains('nutrifox-second-quantity') ) { amount += ' ' + scalable.dataset.unit; } } } scalable.innerText = amount; });

var nonNumerics = recipe.querySelectorAll('[data-has-non-numeric-amount]'); nonNumerics.forEach(function(nonNumeric){ var indicator = nonNumeric.querySelector('span[data-non-numeric-label]'); if ( indicator ) { nonNumeric.removeChild(indicator); } if ( 1 !== buttonAmount ) { indicator = document.createElement('span'); indicator.setAttribute('data-non-numeric-label', true); var text = document.createTextNode(' (x' + buttonAmount + ')'); indicator.appendChild(text); nonNumeric.appendChild(indicator); } });

window.tastyRecipesUpdatePrintLink(); }); }); }());

(function() {

document.querySelectorAll('.tasty-recipes-copy-button').forEach(function(copyButton) { if (copyButton.getAttribute('data-tasty-recipes-click-event')) { return; } copyButton.setAttribute('data-tasty-recipes-click-event', true);

copyButton.addEventListener('click', function(event) { event.preventDefault(); var copyContainer = copyButton.closest('.tasty-recipes-ingredients-clipboard-container');

var messageText = copyButton.attributes.getNamedItem('data-success').nodeValue; var copySuccessMessage = document.createElement('div'); var copySuccessParagraph = document.createElement('p'); copySuccessParagraph.innerText = messageText; copySuccessMessage.appendChild(copySuccessParagraph); copySuccessMessage.classList.add('tasty-recipes-flash-message'); var messageDuration = 3000;

var ingredients = []; var ingredientsContainer = copyButton.closest('.tasty-recipes-ingredients') || copyButton.closest('.tasty-recipe-ingredients'); var foundIngredients = false; var findIngredients = function(div) { if ( div.querySelectorAll('li').length ) { div.querySelectorAll('li').forEach(function(li) { ingredients.push(li.innerText); }); foundIngredients = true; } else if ( div.querySelectorAll('p').length ) { div.querySelectorAll('p').forEach(function(p) { ingredients.push(p.innerText); }); foundIngredients = true; } }; if (ingredientsContainer.querySelector('.tasty-recipes-ingredients-body')) { findIngredients(ingredientsContainer.querySelector('.tasty-recipes-ingredients-body')); } else { ingredientsContainer.querySelectorAll('div').forEach(function(div) { if ( foundIngredients ) { return; } if ( div.classList.contains('tasty-recipes-ingredients-header') || div.parentElement.classList.contains('tasty-recipes-ingredients-header') || div.classList.contains('tasty-recipes-ingredients-header') ) { return; } findIngredients(div); }); }

var readableIngredients = ''; ingredients.forEach(function(ingredient) { readableIngredients += ingredient + '\n'; }); readableIngredients = readableIngredients.trim();

var fakeElem = document.createElement("textarea"); fakeElem.style.fontSize = "12pt"; fakeElem.style.border = "0"; fakeElem.style.padding = "0"; fakeElem.style.margin = "0"; fakeElem.style.position = "absolute"; fakeElem.style.left = "-9999px";

var yPosition = window.pageYOffset || document.documentElement.scrollTop; fakeElem.style.top = yPosition + 'px';

fakeElem.setAttribute("readonly", ""); fakeElem.value = readableIngredients;

document.body.appendChild(fakeElem);

if (navigator.userAgent.match(/ipad|iphone/i)) { var range = document.createRange();

var selection = window.getSelection(); range.selectNodeContents(fakeElem); selection.removeAllRanges(); selection.addRange(range); fakeElem.setSelectionRange(0, 999999); } else { fakeElem.select(); }

document.execCommand("copy");

document.body.removeChild(fakeElem); fakeElem = null;

copyContainer.appendChild(copySuccessMessage);

setTimeout(function() { copyContainer.removeChild(copySuccessMessage); }, messageDuration); }); });

}());

(function(){ document.querySelectorAll('[data-tr-ingredient-checkbox]').forEach(function(el) { var input = el.querySelector('.tr-ingredient-checkbox-container input[type="checkbox"]'); if ( ! input ) { return; } if (input.checked) { el.dataset.trIngredientCheckbox = 'checked'; } el.addEventListener('click', function(event) { if ( 'A' === event.target.nodeName || 'INPUT' === event.target.nodeName || 'LABEL' === event.target.nodeName ) { return; } input.click(); }); input.addEventListener('change', function() { el.dataset.trIngredientCheckbox = input.checked ? 'checked' : ''; }); }); }());

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 <= 0 ) { return; } for ( const rating of ratings ) { rating.addEventListener( 'click', event => { 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 < this.minRating ) { commentTextarea.setAttribute( 'required', '' ); return; }commentTextarea.removeAttribute( 'required' ); }, maybeSendRating( rating, element ) { if ( this.savingRating === rating ) { return; }this.savingRating = rating; window.TastyRecipes.staticTooltip.init( element );const recipeCardElement = element.closest( '.tasty-recipes' ); if ( ! recipeCardElement ) { window.TastyRecipes.staticTooltip.destroy(); return; }window.TastyRecipes.ajax.sendPostRequest( window.trCommon.ajaxurl, { action: 'tasty_recipes_save_rating', rating, nonce: window.trCommon.ratingNonce, post_id: window.trCommon.postId, recipe_id: recipeCardElement.dataset.trId, }, ( response ) => { 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 ); });

Ingredients for Lemon Meringue Pie

You can use either a homemade pie crust or a store-bought one (premade graham cracker crust works too!).

For the Lemon Custard Filling:

  • 1½ cups granulated sugar
  • 5 tablespoons cornstarch
  • Pinch of salt
  • 4 large egg yolks
  • 1¾ cups water
  • ½ cup fresh lemon juice (about 3 lemons)
  • Zest of 1 lemon
  • 3 tablespoons unsalted butter

For the Meringue Topping:

  • 4 large egg whites
  • ½ teaspoon cream of tartar
  • ½ cup granulated sugar
  • ½ teaspoon vanilla extract

Optional Swaps:

  • 🌾 Gluten-Free? Use almond flour or gluten-free all-purpose crust.
  • 🥛 Dairy-Free? Sub in plant-based butter.
  • 🍬 Sugar-Free? Try monk fruit or erythritol.
  • 🌱 Vegan? Use aquafaba (chickpea brine) instead of egg whites.
Vibrant slice of lemon meringue pie on a ceramic plate with lemon slices
A thick wedge of lemon meringue pie, complete with fresh lemon slice and flower garnish

How to Make Lemon Meringue Pie – Step by Step

Step 1: Pre-Bake the Pie Crust

Preheat your oven to 325°F (165°C). Place your baked or premade crust on a baking sheet.

Pro Tip: If you’re using a graham cracker crust, no need to pre-bake!

Step 2: Make the Lemon Filling

Ingredients Combined

In a medium saucepan, whisk together:

  • Sugar
  • Cornstarch
  • Salt

Then add:

  • Egg yolks
  • Water
  • Fresh lemon juice

Whisk until smooth and cook over medium heat, stirring constantly.

Cook to Perfection

After about 10 minutes, the mixture will thicken and start to bubble. Let it boil while stirring for one full minute. Remove from heat and mix in:

  • Lemon zest
  • Butter

Pour the hot custard into your pie crust.

Step 3: Make the Meringue

In a clean, dry mixer bowl, add:

  • Egg whites
  • Cream of tartar

Beat on high speed until foamy. Gradually add the sugar, one tablespoon at a time, until stiff peaks form (2–4 minutes). Beat in the vanilla.

For “mile-high meringue,” double this recipe.

Step 4: Assemble & Bake

Spoon meringue over the lemon filling while it’s still hot. Spread it evenly, sealing the edges of the crust to prevent shrinking. Create pretty peaks with a spatula.

Bake at 325°F for 20–25 minutes, or until meringue is golden.

Step 5: Chill & Serve

Cool completely at room temp. Then refrigerate for at least 4 hours before slicing.

Pro Tips for the Best Lemon Meringue Pie

  • “Why does my filling turn watery?” – Make sure the custard is boiling before you remove it from the heat.
  • “Why does meringue weep?” – Always spread meringue on hot filling and seal the edges.
  • ✅ Use a glass or ceramic pie plate for even baking.
  • ✅ For crispier texture, briefly broil the meringue (watch it closely!).
  • ✅ Make ahead? You can make the lemon filling a day in advance and refrigerate it (place plastic wrap directly on the surface to avoid skin forming).
Fluffy homemade lemon meringue pie slice with golden crust and toasted meringue
A classic slice of lemon meringue pie topped with sky-high golden meringue

Best Ways to Serve Lemon Meringue Pie

  • Pair it with iced tea or sparkling lemonade.
  • Serve it with a dollop of whipped coconut cream for dairy-free guests.
  • Add a garnish of candied lemon peel for visual appeal.

Want more desserts for summer? Try our Churro Cheesecake Recipe or Mini Key Lime pies!

Nutritional Information (Per Slice)

  • Calories: 320 kcal
  • Carbs: 42g
  • Sugars: 30g
  • Fat: 12g
  • Protein: 4g
  • Gluten-Free Friendly: Yes (with substitution)
  • Dairy-Free Option: Yes

Storage & Leftovers

How long does lemon meringue pie last?

  • In the fridge: Up to 3 days, covered loosely with foil or plastic wrap.
  • Freezing: Not recommended (meringue becomes rubbery).
  • Reheating: Do not reheat; serve chilled.

Quick Answers for You

Can I make lemon meringue pie ahead of time?

Yes! Make the lemon filling a day in advance and store in the fridge. Assemble and bake meringue the day of serving.

What’s the secret to fluffy meringue?

Use room temperature egg whites, and make sure your bowl is completely clean and dry. Beat until stiff glossy peaks form.

Can I use bottled lemon juice?

You can, but fresh lemons give the best flavor and aroma.

Why is my lemon filling not thick?

It may not have reached a full boil. Keep cooking until it thickens and bubbles, then boil for one full minute.

Can I make this with condensed milk?

Yes! For a Southern lemon meringue pie, substitute part of the sugar and water with sweetened condensed milk.

Close-up of lemon meringue pie with golden peaks and creamy filling
Golden-toasted meringue tops this rich and creamy lemon pie—an eye-catching classic

More Tasty Ideas to Explore

Final Thoughts

Now you know how to make the best lemon meringue pie at home — with a tart, creamy lemon filling, mile-high meringue, and flaky crust. Whether it’s Easter, a backyard cookout, or just your favorite Tuesday, this pie never fails to impress.

What’s your favorite meringue topping trick? Share it in the comments below!
👇 Don’t forget to share this recipe with your foodie friends or save it for your next weekend craving.

Happy Baking! 💛

🌿 Related: If you enjoyed this recipe, try our warm lemon water benefits — a reader favorite for natural wellness!

Leave a Comment

Recipe rating 5 Stars 4 Stars 3 Stars 2 Stars 1 Star