{"id":49015,"date":"2025-03-23T09:07:13","date_gmt":"2025-03-23T13:07:13","guid":{"rendered":"https:\/\/www.theleangreenbean.com\/?p=49015"},"modified":"2025-03-23T09:07:19","modified_gmt":"2025-03-23T13:07:19","slug":"gluten-free-carrot-cake","status":"publish","type":"post","link":"https:\/\/www.theleangreenbean.com\/gluten-free-carrot-cake\/","title":{"rendered":"Gluten-Free Carrot Cake"},"content":{"rendered":"\n<p><em>This gluten-free carrot cake makes the perfect dessert. Made in an 8&#215;8 pan, it&#8217;s perfectly moist and full of flavor. <\/em><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"680\" height=\"1020\" src=\"https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2025\/03\/Carrot-Cake-_-The-Lean-Green-Bean-5.jpg\" alt=\"gluten free carrot cake\" class=\"wp-image-54254\" title=\"\" srcset=\"https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2025\/03\/Carrot-Cake-_-The-Lean-Green-Bean-5.jpg 680w, https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2025\/03\/Carrot-Cake-_-The-Lean-Green-Bean-5-133x200.jpg 133w, https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2025\/03\/Carrot-Cake-_-The-Lean-Green-Bean-5-367x550.jpg 367w\" sizes=\"auto, (max-width: 680px) 100vw, 680px\" \/><\/figure>\n<\/div>\n\n\n<p>Hi friends!<\/p>\n\n\n\n<p>It&#8217;s been a while since I&#8217;ve published a cake recipe so I&#8217;m excited to share this deliciously moist Gluten-Free Carrot Cake recipe with all of you! Carrot cake is something I&#8217;ve never really made at home but I always enjoy when it&#8217;s an option for dessert at restaurants. It&#8217;s also one of my mom&#8217;s favorites and her birthday is coming up!<\/p>\n\n\n\n<p>When I set out to make this carrot cake recipe, I knew I wanted to keep it simple. I didn&#8217;t want to have to deal with stacking layers or making anything elaborate that my family would never be able to finish. So I chose to make a smaller 8&#215;8 cake with just enough frosting to cover the top and sides. <\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Easy Gluten-Free Carrot Cake Ingredients<\/h2>\n\n\n\n<p>No fancy ingredients needed for this recipe, just some basic pantry staples. You&#8217;ll need:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Shredded carrots &#8211; Either peel and shred them by hand or use a food processor.<\/li>\n\n\n\n<li>Oil &#8211; I use a neutral oil like avocado oil<\/li>\n\n\n\n<li>Eggs<\/li>\n\n\n\n<li>Brown sugar<\/li>\n\n\n\n<li>Applesauce &#8211; I prefer the unsweetened variety<\/li>\n\n\n\n<li>Vanilla &#8211; be sure to use pure vanilla extract<\/li>\n\n\n\n<li>Flour &#8211; I use a 1:1 gluten-free flour blend but if you don&#8217;t need it to be gluten-free, you can use regular flour<\/li>\n\n\n\n<li>Baking soda, cinnamon and salt<\/li>\n\n\n\n<li>Optional mix-ins: If you like nuts or raisins in your cake, feel free to mix in 1\/2 &#8211; 1 cup of chopped nuts like pecans or walnuts and\/or raisins<\/li>\n\n\n\n<li>For the frosting you&#8217;ll need cream cheese, plain yogurt and maple syrup<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">How To Make Carrot Cake Gluten-Free<\/h2>\n\n\n\n<p>Making this cake requires just one bowl and couldn&#8217;t be easier:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Combine the carrots, oil, eggs, brown sugar, applesauce and vanilla and mix well.<\/li>\n\n\n\n<li>Add flour, baking soda, cinnamon and salt along with any additional mix-ins you&#8217;re using and stir until just combine.<\/li>\n\n\n\n<li>Pour into an 8&#215;8 pan and bake for 30 minutes.<\/li>\n\n\n\n<li>To make the frosting, mix cream cheese and yogurt, then add maple syrup and mix again. Spread over top and sides. <\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"680\" height=\"1020\" src=\"https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2025\/03\/Carrot-Cake-_-The-Lean-Green-Bean-6.jpg\" alt=\"healthy gluten-free carrot cake\" class=\"wp-image-54259\" title=\"\" srcset=\"https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2025\/03\/Carrot-Cake-_-The-Lean-Green-Bean-6.jpg 680w, https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2025\/03\/Carrot-Cake-_-The-Lean-Green-Bean-6-133x200.jpg 133w, https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2025\/03\/Carrot-Cake-_-The-Lean-Green-Bean-6-367x550.jpg 367w\" sizes=\"auto, (max-width: 680px) 100vw, 680px\" \/><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Is this a healthy gluten-free carrot cake?<\/h2>\n\n\n\n<p>As far as carrot cake recipes go, this recipe is healthier than most. It uses applesauce to replace some of the oil and sugar and only uses 2\/3 cup of brown sugar. The frosting is also made from a mix of cream cheese and plain Greek yogurt and is just lightly sweetened with a little maple syrup! If you choose to mix in some nuts that adds a dose of healthy fats as well!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Can I make this as a gluten and dairy-free carrot cake?<\/h2>\n\n\n\n<p>The cake itself is both gluten-free and dairy-free. The only part you would need to address is the frosting which contains dairy. I think your best bet would be to replace it with a <a href=\"https:\/\/minimalistbaker.com\/how-to-make-vegan-cream-cheese-frosting\/\" target=\"_blank\" rel=\"noopener\">Vegan Cream Cheese Frosting<\/a> recipe.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Can I make gluten-free vegan carrot cake without eggs?<\/h2>\n\n\n\n<p>To make the cake vegan, you&#8217;ll need to replace the eggs. I would suggest <a href=\"https:\/\/minimalistbaker.com\/how-to-make-a-flax-egg\/\" target=\"_blank\" rel=\"noopener\">making flax eggs<\/a>. And then replace the frosting with a vegan frosting as mentioned above!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What about a gluten-free carrot cake with pineapple recipe?<\/h2>\n\n\n\n<p>I&#8217;ve found that pineapple in carrot cake is a polarizing topic \ud83d\ude42 So I left it out of mine and went with a more neutral applesauce. If you want to add pineapple, I would start with 1\/2 cup drained crushed pineapple plus 2 Tbsp applesauce instead of 2\/3 cup applesauce.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Simple Gluten-Free Carrot Cake Recipe<\/h2>\n\n\n\n<p>Here&#8217;s the recipe I use:<\/p>\n\n\n<svg aria-hidden=\"true\" style=\"position: absolute;width: 0;height: 0;overflow: hidden\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<defs>\n<symbol viewbox=\"9 9 46 42\" id=\"wpt-star-full\">\n\t<path d=\"m46.3 52-14.4-9.5-14.4 9.4L22 35.3 8.7 24.5l17.1-.9 6.2-16 6 16 17.2 1-13.4 10.7z\" \/>\n<\/symbol>\n<\/defs>\n<\/svg>\n<a class=\"button tasty-recipes-print-button tasty-recipes-no-print tasty-recipes-print-above-card\" href=\"https:\/\/www.theleangreenbean.com\/gluten-free-carrot-cake\/print\/53530\/\">Print<\/a><span class=\"tasty-recipes-jump-target\" id=\"tasty-recipes-53530-jump-target\" style=\"display:block;padding-top:2px;margin-top:-2px;\"><\/span><div id=\"tasty-recipes-53530\" data-tr-id=\"53530\" class=\"tasty-recipes tasty-recipes-53530 tasty-recipes-display tasty-recipes-has-image\" data-tasty-recipes-customization=\"primary-color.background-color primary-color.outline-color\">\n\n\n<h2 class=\"tasty-recipes-title\" data-tasty-recipes-customization=\"h2-color.color h2-transform.text-transform\">Gluten-Free Carrot Cake<\/h2>\n<div class=\"tasty-recipes-image-button-container\">\n\t\t\t<div class=\"tasty-recipes-image\">\n\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2025\/03\/Carrot-Cake-_-The-Lean-Green-Bean-3-copy-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail\" alt=\"healthy gluten-free carrot cake with walnuts\" data-pin-nopin=\"true\" title=\"\">\t\t<\/div>\n\t\t<div class=\"tasty-recipes-buttons\">\n\t\t\t\t<div class=\"tasty-recipes-button-wrap\">\n\t\t\t\n<a class=\"button tasty-recipes-print-button tasty-recipes-no-print\" href=\"https:\/\/www.theleangreenbean.com\/gluten-free-carrot-cake\/print\/53530\/\" target=\"_blank\" data-tasty-recipes-customization=\"\">\n\t\t\t<svg viewBox=\"0 0 24 24\" class=\"svg-print\" aria-hidden=\"true\"><use xlink:href=\"#tasty-recipes-icon-print\"><\/use><\/svg>\n\t\tPrint Recipe<\/a>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n<\/div>\n\t<div class=\"tasty-recipes-rating\" data-tasty-recipes-customization=\"body-color.color\">\n\t\t\t\t\t<p><svg aria-hidden=\"true\" style=\"position: absolute;width: 0;height: 0;overflow: hidden\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<defs>\n<symbol viewbox=\"9 9 46 42\" id=\"wpt-star-full\">\n\t<path d=\"m46.3 52-14.4-9.5-14.4 9.4L22 35.3 8.7 24.5l17.1-.9 6.2-16 6 16 17.2 1-13.4 10.7z\" \/>\n<\/symbol>\n<\/defs>\n<\/svg>\n<span class=\"tasty-recipes-ratings-buttons tasty-recipes-no-ratings-buttons\"\tdata-tr-default-rating=\"0\"\t>\t\t<span class=\"tasty-recipes-rating\" >\t\t<i class=\"checked\" data-rating=\"5\">\t\t\t<span class=\"tasty-recipes-rating-solid\" data-tr-clip=\"0\">\t\t\t\t<svg class=\"tasty-recipes-svg\"><use href=\"#wpt-star-full\" \/><\/svg>\t\t\t<\/span>\t\t\t<span class=\"tasty-recipes-screen-reader\">\t\t\t\t5 Stars\t\t\t<\/span>\t\t<\/i>\t<\/span>\t\t<span class=\"tasty-recipes-rating\" >\t\t<i class=\"checked\" data-rating=\"4\">\t\t\t<span class=\"tasty-recipes-rating-solid\" data-tr-clip=\"0\">\t\t\t\t<svg class=\"tasty-recipes-svg\"><use href=\"#wpt-star-full\" \/><\/svg>\t\t\t<\/span>\t\t\t<span class=\"tasty-recipes-screen-reader\">\t\t\t\t4 Stars\t\t\t<\/span>\t\t<\/i>\t<\/span>\t\t<span class=\"tasty-recipes-rating\" >\t\t<i class=\"checked\" data-rating=\"3\">\t\t\t<span class=\"tasty-recipes-rating-solid\" data-tr-clip=\"0\">\t\t\t\t<svg class=\"tasty-recipes-svg\"><use href=\"#wpt-star-full\" \/><\/svg>\t\t\t<\/span>\t\t\t<span class=\"tasty-recipes-screen-reader\">\t\t\t\t3 Stars\t\t\t<\/span>\t\t<\/i>\t<\/span>\t\t<span class=\"tasty-recipes-rating\" >\t\t<i class=\"checked\" data-rating=\"2\">\t\t\t<span class=\"tasty-recipes-rating-solid\" data-tr-clip=\"0\">\t\t\t\t<svg class=\"tasty-recipes-svg\"><use href=\"#wpt-star-full\" \/><\/svg>\t\t\t<\/span>\t\t\t<span class=\"tasty-recipes-screen-reader\">\t\t\t\t2 Stars\t\t\t<\/span>\t\t<\/i>\t<\/span>\t\t<span class=\"tasty-recipes-rating\" >\t\t<i class=\"checked\" data-rating=\"1\">\t\t\t<span class=\"tasty-recipes-rating-solid\" data-tr-clip=\"0\">\t\t\t\t<svg class=\"tasty-recipes-svg\"><use href=\"#wpt-star-full\" \/><\/svg>\t\t\t<\/span>\t\t\t<span class=\"tasty-recipes-screen-reader\">\t\t\t\t1 Star\t\t\t<\/span>\t\t<\/i>\t<\/span><\/span><\/p>\n\t\t\t\t\t\t\t<p><span data-tasty-recipes-customization=\"detail-label-color.color\" class=\"rating-label\">No reviews<\/span><\/p>\n\t\t\t<\/div>\n\n\n\t<div class=\"tasty-recipes-description\" data-tasty-recipes-customization=\"body-color.color\">\n\t\t<p><em>This gluten-free carrot cake makes the perfect dessert. Made in an 8&#215;8 pan, it&#8217;s perfectly moist and full of flavor.\u00a0<\/em><\/p>\n\t<\/div>\n\n\t<div class=\"tasty-recipes-details\" data-tasty-recipes-customization=\"body-color.color\">\n\t\t<ul>\n\t\t\t\t\t\t\t<li class=\"author\"><strong data-tasty-recipes-customization=\"detail-label-color.color\" class=\"tasty-recipes-label\">Author:<\/strong> <a data-tasty-recipes-customization=\"detail-value-color.color\" class=\"tasty-recipes-author-name\" href=\"https:\/\/www.theleangreenbean.com\/about-me\/\">Lindsay<\/a><\/li>\n\t\t\t\t\t\t\t<li class=\"yield\"><strong data-tasty-recipes-customization=\"detail-label-color.color\" class=\"tasty-recipes-label\">Yield:<\/strong> <span data-tasty-recipes-customization=\"detail-value-color.color\" class=\"tasty-recipes-yield\"><span data-amount=\"8\">8<\/span>x8 pan <span class=\"tasty-recipes-yield-scale\"><span data-amount=\"1\">1<\/span>x<\/span><\/span><\/li>\n\t\t\t\t\t<\/ul>\n\t<\/div>\n\n\t<div class=\"tasty-recipes-ingredients\">\n\t\t<div class=\"tasty-recipes-ingredients-header\">\n\t\t\t<div class=\"tasty-recipes-ingredients-clipboard-container\">\n\t\t\t\t<h3 data-tasty-recipes-customization=\"h3-color.color h3-transform.text-transform\">Ingredients<\/h3>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t<div class=\"tasty-recipes-units-scale-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"tasty-recipes-scale-container\">\n\t\t\t\t\t\t<span class=\"tasty-recipes-scale-label\">Scale<\/span>\n\t\t\t\t\t\t<button class=\"tasty-recipes-scale-button tasty-recipes-scale-button-active\" data-amount=\"1\" type=\"button\">1x<\/button><button class=\"tasty-recipes-scale-button\" data-amount=\"2\" type=\"button\">2x<\/button><button class=\"tasty-recipes-scale-button\" data-amount=\"3\" type=\"button\">3x<\/button>\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t<div class=\"tasty-recipes-ingredients-body\" data-tasty-recipes-customization=\"body-color.color\">\n\t\t\t<p>For the cake:<\/p>\n<ul>\n<li><span data-amount=\"1.5\" data-unit=\"cup\">1.5 cups<\/span> shredded carrots<\/li>\n<li><span data-amount=\"0.33333333333333\" data-unit=\"cup\">1\/3 cup<\/span> oil<\/li>\n<li><span data-amount=\"2\">2<\/span> eggs<\/li>\n<li><span data-amount=\"0.66666666666667\" data-unit=\"cup\">2\/3 cup<\/span> brown sugar<\/li>\n<li><span data-amount=\"0.66666666666667\" data-unit=\"cup\">2\/3 cup<\/span> unsweetened applesauce<\/li>\n<li><span data-amount=\"2\" data-unit=\"tsp\">2 tsp<\/span> vanilla extract<\/li>\n<li><span data-amount=\"1\" data-unit=\"cup\">1 cup<\/span> Gluten-Free 1:1 baking blend (I like <a href=\"https:\/\/shop.kingarthurbaking.com\/items\/gluten-free-measure-for-measure-flour?srsltid=AfmBOoo0rslvYAbK6FtVEZQ6tTZAGZggXINy0bn803xDit15VoorCEMG\" target=\"_blank\" rel=\"noopener\">King Arthur Measure for Measure<\/a>)<\/li>\n<li><span data-amount=\"1\" data-unit=\"tsp\">1 tsp<\/span> baking soda<\/li>\n<li><span data-amount=\"2\" data-unit=\"tsp\">2 tsp<\/span> cinnamon<\/li>\n<li><span data-amount=\"0.25\" data-unit=\"tsp\">1\/4 tsp<\/span> salt<\/li>\n<li>Optional: chopped walnuts or pecans, raisins<\/li>\n<\/ul>\n<p>For the frosting:<\/p>\n<ul>\n<li><span data-amount=\"4\" data-unit=\"oz\">4 oz<\/span> cream cheese, softened<\/li>\n<li><span data-amount=\"0.25\" data-unit=\"cup\">1\/4 cup<\/span> full fat plain Greek yogurt<\/li>\n<li><span data-amount=\"2\">2<\/span>&#8211;<span data-amount=\"3\">3<\/span> Tbsp maple syrup<\/li>\n<\/ul>\n<!--INSIDE_INGREDIENTS-->\t\t<\/div>\n\t\t<div class=\"tasty-recipes-cook-mode\">\n\t<div class=\"tasty-recipes-cook-mode__container\">\n\t\t<label class=\"tasty-recipes-cook-mode__switch\">\n\t\t\t<input type=\"checkbox\" id=\"tasty_recipes_696e583620308_cookmode\">\n\t\t\t<span class=\"tasty-recipes-cook-mode__switch-slider tasty-recipes-cook-mode__switch-round\"\n\t\t\t\tdata-tasty-recipes-customization=\"button-color.background button-text-color.color\"><\/span>\n\t\t<\/label>\n\t\t<label for=\"tasty_recipes_696e583620308_cookmode\">\n\t\t\t<span class=\"tasty-recipes-cook-mode__label\">Cook Mode<\/span>\n\t\t\t<span class=\"tasty-recipes-cook-mode__helper\">\n\t\t\t\tPrevent your screen from going dark\t\t\t<\/span>\n\t\t<\/label>\n\t<\/div>\n<\/div>\n\t<\/div>\n\n\t<div class=\"tasty-recipe-instructions\">\n\t\t<div class=\"tasty-recipes-instructions-header\">\n\t\t\t<h3 data-tasty-recipes-customization=\"h3-color.color h3-transform.text-transform\">Instructions<\/h3>\n\t\t\t\t\t<\/div>\n\t\t<div class=\"tasty-recipes-instructions-body\" data-tasty-recipes-customization=\"body-color.color\">\n\t\t\t<ol>\n<li id=\"instruction-step-1\">Preheat oven to 350 degrees F.<\/li>\n<li id=\"instruction-step-2\">In a mixing bowl, mix oil, eggs, brown sugar, applesauce, vanilla and carrots until well combined.<\/li>\n<li id=\"instruction-step-3\">Add flour, baking soda, cinnamon and salt (plus chopped nuts\/raisins if using) and stir until just combined.<\/li>\n<li id=\"instruction-step-4\">Pour into an 8&#215;8 pan lined with parchment paper.<\/li>\n<li id=\"instruction-step-5\">Bake for 30 minutes or until a toothpick inserted into center comes out clean.<\/li>\n<li id=\"instruction-step-6\">While cake cools, make frosting. Place softened cream cheese and Greek yogurt in a bowl and mix with an electric mixer for 2-3 minutes.<\/li>\n<li id=\"instruction-step-7\">Add maple syrup and mix for another minute.<\/li>\n<li id=\"instruction-step-8\">Place in the fridge until cake cools completely, then frost top and sides with a light layer of frosting.<\/li>\n<li id=\"instruction-step-9\">Store in the fridge until ready to eat.<\/li>\n<\/ol>\n\t\t<\/div>\n\t<\/div>\n\n\n\n\n\n\n\n\n<footer class=\"tasty-recipes-entry-footer\">\n\t<h3 data-tasty-recipes-customization=\"footer-heading-color.color h3-transform.text-transform footer-heading.innerText\">Did you make this recipe?<\/h3>\n\t<div data-tasty-recipes-customization=\"footer-description-color.color footer-description.innerHTML\"><p>Tag <a href=\"https:\/\/www.instagram.com\/theleangreenbean\" target=\"_blank\" rel=\"noreferrer noopener\">@theleangreenbean<\/a> on Instagram<\/p><\/div>\n<\/footer>\n\n\n\n<script>\nwindow.trCommon={\"minRating\":6,\"ajaxurl\":\"https:\\\/\\\/www.theleangreenbean.com\\\/wp-admin\\\/admin-ajax.php\",\"ratingNonce\":\"\",\"postId\":49015};\nwindow.TastyRecipes = window.TastyRecipes || {};\n\nwindow.TastyRecipes.smoothScroll = {\ninit() {\ndocument.addEventListener( 'click', ( e ) => {\nlet anchor = e.target;\nif ( anchor.tagName !== 'A' ) {\nanchor = anchor.closest( 'a.tasty-recipes-scrollto' );\n}\n\nif ( ! anchor || ! anchor.classList.contains( 'tasty-recipes-scrollto' ) ) {\nreturn;\n}\n\nconst elementHref = anchor.getAttribute( 'href' );\nif ( ! elementHref ) {\nreturn;\n}\n\ne.preventDefault();\nthis.goToSelector( elementHref );\n});\n},\ngoToSelector( selector ) {\nconst element = document.querySelector( selector );\nif ( ! element ) {\nreturn;\n}\nelement.scrollIntoView( { behavior: 'smooth' } );\n}\n};\n\ndocument.addEventListener(\n'DOMContentLoaded',\n() => window.TastyRecipes.smoothScroll.init()\n);\n\n(function(){\n\n\nvar bothEquals = function( d1, d2, D ) {\nvar ret = 0;\nif (d1<=D) {\nret++;\n}\nif (d2<=D) {\nret++;\n}\nreturn ret === 2;\n};\n\nvar 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(x<m){n2=n1+n2;d2=d1+d2}else{n1=n1+n2;d1=d1+d2}}}if(d1>D){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_1<D){A=Math.floor(B);P=A*P_1+P_2;Q=A*Q_1+Q_2;if(B-A<5e-8){break;}B=1\/(B-A);P_2=P_1;P_1=P;Q_2=Q_1;Q_1=Q}if(Q>D){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]};\n\n\nwindow.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\"));\n\nwindow.tastyRecipesFormatAmount = function(amount, el) {\nif ( parseFloat( amount ) === parseInt( amount ) ) {\nreturn amount;\n}\nvar roundType = 'frac';\nif (typeof el.dataset.amountShouldRound !== 'undefined') {\nif ('false' !== el.dataset.amountShouldRound) {\nif ( 'number' === el.dataset.amountShouldRound ) {\nroundType = 'number';\n} else if ('frac' === el.dataset.amountShouldRound) {\nroundType = 'frac';\n} else if ('vulgar' === el.dataset.amountShouldRound) {\nroundType = 'vulgar';\n} else {\nroundType = 'integer';\n}\n}\n}\nif ('number' === roundType) {\namount = Number.parseFloat(amount).toPrecision(2);\n} else if ('integer' === roundType) {\namount = Math.round(amount);\n} else if ('frac' === roundType || 'vulgar' === roundType) {\nvar denom = 8;\nif (typeof el.dataset.unit !== 'undefined') {\nvar unit = el.dataset.unit;\nif (['cups','cup','c'].includes(unit)) {\ndenom = 4;\nif (0.125 === amount) {\ndenom = 8;\n}\nif (\"0.1667\" === Number.parseFloat( amount ).toPrecision(4)) {\ndenom = 6;\n}\n}\nif (['tablespoons','tablespoon','tbsp'].includes(unit)) {\ndenom = 2;\n}\nif (['teaspoons','teaspoon','tsp'].includes(unit)) {\ndenom = 8;\n}\n}\nvar amountArray = frac.cont( amount, denom, true );\nvar newAmount = '';\nif ( amountArray[1] !== 0 ) {\nnewAmount = amountArray[1] + '\/' + amountArray[2];\nif ('vulgar' === roundType) {\nObject.keys(window.tastyRecipesVulgarFractions).forEach(function(vulgar) {\nif (newAmount === window.tastyRecipesVulgarFractions[vulgar]) {\nnewAmount = vulgar;\n}\n});\n}\n}\nif ( newAmount ) {\nnewAmount = ' ' + newAmount;\n}\nif ( amountArray[0] ) {\nnewAmount = amountArray[0] + newAmount;\n}\namount = newAmount;\n}\nreturn amount;\n};\n\n\nwindow.tastyRecipesUpdatePrintLink = () => {\n\nconst printButton = document.querySelector( '.tasty-recipes-print-button' );\n\n\nif ( ! printButton ) {\nreturn;\n}\n\nconst printURL = new URL( printButton.href );\nconst searchParams = new URLSearchParams( printURL.search );\n\nconst unitButton = document.querySelector( '.tasty-recipes-convert-button-active' );\nconst scaleButton = document.querySelector( '.tasty-recipes-scale-button-active' );\n\nlet unit = '';\nlet scale = '';\n\nif ( unitButton ) {\nunit = unitButton.dataset.unitType;\nsearchParams.delete('unit');\nsearchParams.set( 'unit', unit );\n}\n\nif ( scaleButton ) {\nscale = scaleButton.dataset.amount;\nsearchParams.set( 'scale', scale );\n}\n\nconst paramString = searchParams.toString();\nconst newURL = '' === paramString ? printURL.href : printURL.origin + printURL.pathname + '?' + paramString;\nconst printLinks = document.querySelectorAll( '.tasty-recipes-print-link' );\n\nprintLinks.forEach( ( el ) => {\nel.href = newURL;\n});\n\nconst printButtons = document.querySelectorAll( '.tasty-recipes-print-button' );\nprintButtons.forEach( ( el ) => {\nel.href = newURL;\n});\n};\n\n\ndocument.addEventListener( 'DOMContentLoaded', () => {\n\n\nif ( ! window.location.href.includes( '\/print\/' ) ) {\nreturn;\n}\n\nconst searchParams = new URLSearchParams( window.location.search );\n\nconst unit = searchParams.get( 'unit' );\nconst scale = searchParams.get( 'scale' );\n\nif ( unit && ( 'metric' === unit || 'usc' === unit ) ) {\ndocument.querySelector( '.tasty-recipes-convert-button[data-unit-type=\"' + unit + '\"]' ).click();\n}\n\nif ( scale && Number(scale) > 0 ) {\ndocument.querySelector( '.tasty-recipes-scale-button[data-amount=\"' + Number(scale) + '\"]' ).click();\n}\n});\n}());\n\n(function(){\nvar buttonClass = 'tasty-recipes-scale-button',\nbuttonActiveClass = 'tasty-recipes-scale-button-active',\nbuttons = document.querySelectorAll('.tasty-recipes-scale-button');\nif ( ! buttons ) {\nreturn;\n}\n\nbuttons.forEach(function(button){\nbutton.addEventListener('click', function(event){\nevent.preventDefault();\nvar recipe = event.target.closest('.tasty-recipes');\nif ( ! recipe ) {\nreturn;\n}\nvar otherButtons = recipe.querySelectorAll('.' + buttonClass);\notherButtons.forEach(function(bt){\nbt.classList.remove(buttonActiveClass);\n});\nbutton.classList.add(buttonActiveClass);\n\n\nvar scalables = recipe.querySelectorAll('span[data-amount]');\nvar buttonAmount = parseFloat( button.dataset.amount );\nscalables.forEach(function(scalable){\nif (typeof scalable.dataset.amountOriginalType === 'undefined'\n&& typeof scalable.dataset.nfOriginal === 'undefined') {\nif (-1 !== scalable.innerText.indexOf('\/')) {\nscalable.dataset.amountOriginalType = 'frac';\n}\nif (-1 !== scalable.innerText.indexOf('.')) {\nscalable.dataset.amountOriginalType = 'number';\n}\nObject.keys(window.tastyRecipesVulgarFractions).forEach(function(vulgar) {\nif (-1 !== scalable.innerText.indexOf(vulgar)) {\nscalable.dataset.amountOriginalType = 'vulgar';\n}\n});\nif (typeof scalable.dataset.amountOriginalType !== 'undefined') {\nscalable.dataset.amountShouldRound = scalable.dataset.amountOriginalType;\n}\n}\nvar amount = parseFloat( scalable.dataset.amount ) * buttonAmount;\namount = window.tastyRecipesFormatAmount(amount, scalable);\nif ( typeof scalable.dataset.unit !== 'undefined' ) {\nif ( ! scalable.classList.contains('nutrifox-quantity') ) {\nif ( ! scalable.classList.contains('nutrifox-second-quantity') ) {\namount += ' ' + scalable.dataset.unit;\n}\n}\n}\nscalable.innerText = amount;\n});\n\nvar nonNumerics = recipe.querySelectorAll('[data-has-non-numeric-amount]');\nnonNumerics.forEach(function(nonNumeric){\nvar indicator = nonNumeric.querySelector('span[data-non-numeric-label]');\nif ( indicator ) {\nnonNumeric.removeChild(indicator);\n}\nif ( 1 !== buttonAmount ) {\nindicator = document.createElement('span');\nindicator.setAttribute('data-non-numeric-label', true);\nvar text = document.createTextNode(' (x' + buttonAmount + ')');\nindicator.appendChild(text);\nnonNumeric.appendChild(indicator);\n}\n});\n\nwindow.tastyRecipesUpdatePrintLink();\n});\n});\n}());\n\nwindow.TastyRecipes = window.TastyRecipes || {};\nwindow.TastyRecipes.cookMode = {\nwakeLockApi: false,\nwakeLock: false,\ncookModeSelector: '.tasty-recipes-cook-mode',\ninit() {\nif (\"wakeLock\" in navigator && \"request\" in navigator.wakeLock) {\nthis.wakeLockApi = navigator.wakeLock;\n}\n\nconst cookModes = document.querySelectorAll(this.cookModeSelector);\n\nif (cookModes.length > 0) {\nfor (const cookMode of cookModes) {\nif (this.wakeLockApi) {\ncookMode.querySelector('input[type=\"checkbox\"]').addEventListener(\"change\", event => {\nthis.checkboxChange(event.target);\n}, false);\n} else {\ncookMode.style.display = \"none\";\n}\n}\n}\n},\ncheckboxChange(checkbox) {\nif (checkbox.checked) {\nthis.lock();\n} else {\nthis.unlock();\n}\n},\nsetCheckboxesState(state) {\nconst checkboxes = document.querySelectorAll(this.cookModeSelector + ' input[type=\"checkbox\"]');\nfor (const checkbox of checkboxes) {\ncheckbox.checked = state;\n}\n},\nasync lock() {\ntry {\nthis.wakeLock = await this.wakeLockApi.request(\"screen\");\nthis.wakeLock.addEventListener(\"release\", () => {\nthis.wakeLock = false;\nthis.setCheckboxesState(false);\n});\nthis.setCheckboxesState(true);\n} catch (error) {\nthis.setCheckboxesState(false);\n}\n},\nunlock() {\nif (this.wakeLock) {\nthis.wakeLock.release();\nthis.wakeLock = false;\n}\nthis.setCheckboxesState(false);\n}\n};\n\n(function(callback) {\nif (document.readyState !== \"loading\") {\ncallback();\n} else {\ndocument.addEventListener(\"DOMContentLoaded\", callback);\n}\n})(() => {\nwindow.TastyRecipes.cookMode.init();\n});\n\n\n\nwindow.TastyRecipes = window.TastyRecipes || {};\n\nwindow.TastyRecipes.staticTooltip = {\nelement: null,\ntooltipElement: null,\ndeleting: false,\ninit( element ) {\nif ( this.deleting ) {\nreturn;\n}\nthis.element = element;\nthis.buildElements();\n},\ndestroy() {\nif ( ! this.tooltipElement || this.deleting ) {\nreturn;\n}\n\nthis.deleting = true;\nthis.tooltipElement.classList.remove( 'opened' );\n\nsetTimeout( () => {\nthis.tooltipElement.remove();\nthis.deleting = false;\n}, 500 );\n},\nbuildElements() {\nconst tooltipElement = document.createElement( 'div' );\ntooltipElement.classList.add( 'tasty-recipes-static-tooltip');\ntooltipElement.setAttribute( 'id', 'tasty-recipes-tooltip' );\n\nconst currentTooltipElement = document.getElementById( 'tasty-recipes-tooltip' );\nif ( currentTooltipElement ) {\ndocument.body.replaceChild( tooltipElement, currentTooltipElement );\n} else {\ndocument.body.appendChild( tooltipElement );\n}\n\nthis.tooltipElement = document.getElementById( 'tasty-recipes-tooltip' );\n},\nshow() {\nif ( ! this.tooltipElement ) {\nreturn;\n}\n\nconst tooltipTop = this.element.getBoundingClientRect().top\n+ window.scrollY\n- 10 \/\/ 10px offset.\n- this.tooltipElement.getBoundingClientRect().height;\nconst tooltipLeft = this.element.getBoundingClientRect().left\n- ( this.tooltipElement.getBoundingClientRect().width \/ 2 )\n+ ( this.element.getBoundingClientRect().width \/ 2 ) - 1;\nconst posLeft = Math.max( 10, tooltipLeft );\nthis.maybeRemoveTail( posLeft !== tooltipLeft );\n\nthis.tooltipElement.setAttribute( 'style', 'top:' + tooltipTop + 'px;left:' + posLeft + 'px;' );\nthis.tooltipElement.classList.add( 'opened' );\n\n},\nmaybeRemoveTail( removeTail ) {\nif ( removeTail ) {\nthis.tooltipElement.classList.add( 'tr-hide-tail' );\n} else {\nthis.tooltipElement.classList.remove( 'tr-hide-tail' );\n}\n},\nchangeMessage( message ) {\nif ( ! this.tooltipElement ) {\nreturn;\n}\nthis.tooltipElement.innerHTML = message;\n}\n};\n\nwindow.TastyRecipes.ajax = {\nsendPostRequest( url, data, success, failure ) {\nconst xhr = new XMLHttpRequest();\nxhr.open( 'POST', url, true );\nxhr.send( this.preparePostData( data ) );\n\nxhr.onreadystatechange = () => {\nif ( 4 !== xhr.readyState ) {\nreturn;\n}\nif ( xhr.status === 200 ) {\nsuccess( JSON.parse( xhr.responseText ) );\nreturn;\n}\n\nfailure( xhr );\n};\n\nxhr.onerror = () => {\nfailure( xhr );\n};\n},\npreparePostData( data ) {\nconst formData = new FormData();\n\nfor ( const key in data ) {\nformData.append( key, data[key] );\n}\nreturn formData;\n},\n};\n\nwindow.TastyRecipes.ratings = {\ndefaultRating: 0,\ncurrentRatingPercentage: 100,\nsavingRating: false,\ninit( minRating ) {\nthis.minRating = minRating;\n\nthis.formWatchRating();\nthis.closeTooltipWhenClickOutside();\nthis.addBodyClassBasedOnSelectedRating();\nthis.backwardCompFormRatingPosition();\n},\nformWatchRating() {\nconst ratings = document.querySelectorAll('.tasty-recipes-no-ratings-buttons [data-rating]');\nif ( ratings.length <= 0 ) {\nreturn;\n}\nfor ( const rating of ratings ) {\nrating.addEventListener( 'click', event => {\nevent.preventDefault();\nthis.defaultRating = event.target.closest( '.checked' ).dataset.rating;\nthis.setCheckedStar( event.target );\nthis.maybeSendRating( this.defaultRating, event.target );\nthis.setRatingInForm( this.defaultRating );\n} );\n}\n},\ncloseTooltipWhenClickOutside() {\nwindow.addEventListener( 'click', e => {\n\/\/ Bailout (don't remove the tooltip) when the clicked element is a rating star, or it's the tooltip itself.\nif ( e.target.closest( '.tasty-recipes-rating' ) || e.target.classList.contains( 'tasty-recipes-static-tooltip' ) ) {\nreturn;\n}\n\nwindow.TastyRecipes.staticTooltip.destroy();\n} );\n},\n setRatingInForm( rating ) {\nconst ratingInput = document.querySelector( '#respond .tasty-recipes-rating[value=\"' + rating + '\"]' );\nif ( ! ratingInput ) {\nreturn;\n}\nratingInput.click();\n},\naddBodyClassBasedOnSelectedRating() {\nconst ratingInputs = document.querySelectorAll( 'input.tasty-recipes-rating' );\nif ( ! ratingInputs ) {\nreturn;\n}\nfor ( const ratingInput of ratingInputs ) {\nratingInput.addEventListener( 'click', currentEvent => {\nconst selectedRating = currentEvent.target.getAttribute( 'value' );\nthis.handleBodyClassByRating( selectedRating );\nthis.toggleCommentTextareaRequired( selectedRating );\n} );\n}\n},\nhandleBodyClassByRating( rating ) {\nif ( rating < this.minRating ) {\ndocument.body.classList.remove( 'tasty-recipes-selected-minimum-rating' );\nreturn;\n}\ndocument.body.classList.add( 'tasty-recipes-selected-minimum-rating' );\n},\ntoggleCommentTextareaRequired( rating ) {\nconst commentTextarea = document.getElementById( 'comment' );\nif ( ! commentTextarea ) {\nreturn;\n}\n\nif ( rating < this.minRating ) {\ncommentTextarea.setAttribute( 'required', '' );\nreturn;\n}\n\ncommentTextarea.removeAttribute( 'required' );\n},\nmaybeSendRating( rating, element ) {\nif ( this.savingRating === rating ) {\nreturn;\n}\n\nthis.savingRating = rating;\nwindow.TastyRecipes.staticTooltip.init( element );\n\nconst recipeCardElement = element.closest( '.tasty-recipes' );\nif ( ! recipeCardElement ) {\nwindow.TastyRecipes.staticTooltip.destroy();\nreturn;\n}\n\nwindow.TastyRecipes.ajax.sendPostRequest(\nwindow.trCommon.ajaxurl,\n{\naction: 'tasty_recipes_save_rating',\nrating,\nnonce: window.trCommon.ratingNonce,\npost_id: window.trCommon.postId,\nrecipe_id: recipeCardElement.dataset.trId,\n},\n( response ) => {\nwindow.TastyRecipes.staticTooltip.changeMessage( response.data.message );\nwindow.TastyRecipes.staticTooltip.show();\nthis.updateAverageText( response.data, recipeCardElement );\nthis.maybeFillCommentForm( response.data );\n\n\/\/ Hide the tooltip after 5 seconds.\nsetTimeout( () => {\nthis.maybeResetTooltip( recipeCardElement, response.data, rating );\n}, 5000 );\n},\n() => {\nthis.resetTooltip( recipeCardElement );\n}\n);\n},\nupdateAverageText( data, recipeCardElement ) {\nif ( ! data.average ) {\nreturn;\n}\nthis.setRatingPercent( data );\n\nif ( ! data.count ) {\nreturn;\n}\n\nconst quickLink = document.querySelector( '.tasty-recipes-rating-link' );\nif ( quickLink ) {\nthis.setTextInContainer( quickLink, data );\nthis.setPartialStar( quickLink );\n}\n\nconst cardStars = recipeCardElement.querySelector( '.tasty-recipes-ratings-buttons' );\ncardStars.dataset.trDefaultRating = data.average;\nthis.setTextInContainer( recipeCardElement.querySelector( '.tasty-recipes-rating' ), data );\n},\nsetTextInContainer( container, data ) {\nif ( ! container ) {\nreturn;\n}\n\nif ( data.label ) {\nconst ratingLabelElement = container.querySelector( '.rating-label' );\nif ( ratingLabelElement ) {\nratingLabelElement.innerHTML = data.label;\n}\nreturn;\n}\n\nconst averageElement = container.querySelector( '.average' );\nif ( averageElement ) {\naverageElement.textContent = data.average;\n}\n\nconst countElement = container.querySelector( '.count' );\nif ( countElement ) {\ncountElement.textContent = data.count;\n}\n},\nsetPartialStar( container ) {\nconst highestStar = container.querySelector( '[data-rating=\"' + Math.ceil( this.defaultRating ) + '\"]' );\nif ( highestStar ) {\nhighestStar.dataset.trClip = this.currentRatingPercentage;\n}\n},\nsetRatingPercent( data ) {\nthis.defaultRating = data.average.toFixed( 1 );\nconst parts = data.average.toFixed( 2 ).toString().split( '.' );\nthis.currentRatingPercentage = parts[1] ? parts[1] : 100;\nif ( this.currentRatingPercentage === '00' ) {\nthis.currentRatingPercentage = 100;\n}\n},\nsetCheckedStar( target ) {\nconst cardRatingContainer = target.closest( '.tasty-recipes-ratings-buttons' );\nconst selectedRatingElement = cardRatingContainer.querySelector( '[data-tr-checked]' );\nif ( selectedRatingElement ) {\ndelete selectedRatingElement.dataset.trChecked;\n}\n\nconst thisStar = target.closest( '.tasty-recipes-rating' );\nthisStar.dataset.trChecked = 1;\nthisStar.querySelector( '[data-tr-clip]' ).dataset.trClip = 100;\n},\nmaybeFillCommentForm( data ) {\nif ( ! data.comment || ! data.comment.content ) {\nreturn;\n}\n\nconst commentForm = document.querySelector( '#commentform' );\nif ( ! commentForm ) {\nreturn;\n}\n\nconst commentBox = commentForm.querySelector( '[name=comment]' );\nif ( ! commentBox || commentBox.value ) {\nreturn;\n}\n\n\/\/ Add comment details for editing.\ncommentBox.innerHTML = data.comment.content;\nif ( data.comment.name ) {\ncommentForm.querySelector( '[name=author]' ).value = data.comment.name;\ncommentForm.querySelector( '[name=email]' ).value = data.comment.email;\n}\n},\nmaybeResetTooltip( recipeCardElement, data, rating ) {\nif ( this.savingRating === rating ) {\nthis.resetTooltip( recipeCardElement, data );\n}\n},\nresetTooltip( recipeCardElement, data ) {\nwindow.TastyRecipes.staticTooltip.destroy();\nthis.savingRating = false;\n\n\/\/ Reset the default rating.\nconst cardRatingContainer = recipeCardElement.querySelector( '.tasty-recipes-ratings-buttons' );\nif ( cardRatingContainer ) {\nthis.defaultRating = ( data && data.average ) ? data.average.toFixed(1) : cardRatingContainer.dataset.trDefaultRating;\ncardRatingContainer.dataset.trDefaultRating = this.defaultRating;\n\nthis.resetSelectedStar( cardRatingContainer, data );\n}\n},\nresetSelectedStar( cardRatingContainer ) {\nconst selectedRatingElement = cardRatingContainer.querySelector( '[data-rating=\"' + Math.ceil( this.defaultRating ) + '\"]' );\nif ( selectedRatingElement ) {\nselectedRatingElement.querySelector( '[data-tr-clip]' ).dataset.trClip = this.currentRatingPercentage;\nselectedRatingElement.parentNode.dataset.trChecked = 1;\n}\n\nconst previousSelectedElement= cardRatingContainer.querySelector( '[data-tr-checked]' );\nif ( previousSelectedElement ) {\nconst currentSelectedRating = previousSelectedElement.querySelector('[data-rating]');\nif ( currentSelectedRating !== selectedRatingElement ) {\ndelete previousSelectedElement.dataset.trChecked;\n}\n}\n},\nbackwardCompFormRatingPosition() {\nconst ratingsButtons = document.querySelector( '#respond .tasty-recipes-ratings-buttons, #tasty-recipes-comment-rating .tasty-recipes-ratings-buttons' );\nif ( ! ratingsButtons ) {\nreturn;\n}\nconst ratingsButtonsStyles = window.getComputedStyle(ratingsButtons);\nif ( ! ratingsButtonsStyles.display.includes( 'flex' ) ) {\nratingsButtons.style.direction = 'rtl';\n}\n\nif ( typeof tastyRecipesRating !== 'undefined' ) {\n\/\/ Select the rating that was previously selected in admin.\nratingsButtons.querySelector( '.tasty-recipes-rating[value=\"' + tastyRecipesRating + '\"]' ).checked = true;\n}\n\nconst ratingSpans = ratingsButtons.querySelectorAll( '.tasty-recipes-rating' );\nfor (const ratingSpan of ratingSpans) {\nratingSpan.addEventListener( 'click', event => {\nif ( ratingSpan === event.target ) {\nreturn;\n}\nratingSpan.previousElementSibling.click();\n} );\n}\n}\n};\n\n(function(callback) {\nif (document.readyState !== \"loading\") {\ncallback();\n} else {\nwindow.addEventListener( 'load', callback );\n}\n})(() => {\nwindow.TastyRecipes.ratings.init( window.trCommon ? window.trCommon.minRating : 4 );\n});\n<\/script><\/div>\n\n\n<h2 class=\"wp-block-heading\">Gluten-Free Carrot Cake FAQs<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Does traditional carrot cake contain gluten? What makes this carrot cake gluten-free?<\/h3>\n\n\n\n<p>Most traditional carrot cake recipes use wheat-based flour. This recipe uses a gluten-free flour blend which is specially formulated with gluten-free flour to act like regular wheat flour in baking recipes. The other ingredients are naturally gluten-free.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What is the best gluten-free flour for carrot cake?<\/h3>\n\n\n\n<p>My favorite is <a href=\"https:\/\/shop.kingarthurbaking.com\/items\/gluten-free-measure-for-measure-flour?srsltid=AfmBOoqANay4F_KkLoiFgi_N2RrgaLLpyBU36tO5gsxt9scvmjvlp5Ty\" target=\"_blank\" rel=\"noopener\">King Arther Measure for Measure Flour<\/a>. I like the way it behaves in recipes and use it often to replace wheat flour in my recipes for muffins, bars and other baked goods with great results. However, feel free to use your favorite GF flour blend.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How do I store gluten-free carrot cake to keep it fresh?<\/h3>\n\n\n\n<p>Due to the fact that this cake is very moist and has a dairy-based frosting, the cake should be kept in the fridge to avoid spoiling. Store in an airtight container to keep the frosting from drying out.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Can you freeze carrot cake?<\/h3>\n\n\n\n<p>If you want to freeze the cake, I would recommend cooling and freezing without frosting. When ready to eat, transfer to the counter to thaw and add the frosting before serving.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"680\" height=\"1020\" src=\"https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2025\/03\/Carrot-Cake-_-The-Lean-Green-Bean-2.jpg\" alt=\"gluten-free carrot cake recipe\" class=\"wp-image-54260\" title=\"\" srcset=\"https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2025\/03\/Carrot-Cake-_-The-Lean-Green-Bean-2.jpg 680w, https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2025\/03\/Carrot-Cake-_-The-Lean-Green-Bean-2-133x200.jpg 133w, https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2025\/03\/Carrot-Cake-_-The-Lean-Green-Bean-2-367x550.jpg 367w\" sizes=\"auto, (max-width: 680px) 100vw, 680px\" \/><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\">What&#8217;s the best way to add natural sweetness to gluten-free carrot cake?<\/h3>\n\n\n\n<p>I use a lot of applesauce in my recipe to add natural sweetness. You can achieve a similar effect by using crushed pineapple. Adding raisins can also help add natural sweetness!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Can I make this a gluten-free carrot cake cupcakes recipe?<\/h3>\n\n\n\n<p>I haven&#8217;t tried it myself, but I think you should be able to bake this recipe into about 6 cupcakes. Adjust the baking time to 15-20 minutes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Can I make sugar free gluten-free carrot cake?<\/h3>\n\n\n\n<p>I would not attempt to adjust this recipe to make it sugar-free. If you&#8217;re interested in a sugar-free recipe, try <a href=\"https:\/\/www.wholesomeyum.com\/recipes\/low-carb-keto-sugar-free-carrot-cake-recipe\/?srsltid=AfmBOooqtA43-D0shLCBPPrZHMFevMpAa6iFBZOfjSSbzXJ4FAZXFGKO\" target=\"_blank\" rel=\"noopener\">Keto Carrot Cake<\/a> or <a href=\"https:\/\/sugarfreelondoner.com\/sugar-free-carrot-cake\/\" target=\"_blank\" rel=\"noopener\">Sugar-Free Carrot Cake<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How can I make gluten-free carrot cake with almond flour?<\/h3>\n\n\n\n<p>If you want to use almond flour, I would try this <a href=\"https:\/\/www.hummusapien.com\/healthy-carrot-cake\/\" target=\"_blank\" rel=\"noopener\">Healthy Carrot Cake<\/a> recipe from my friend Hummusapien or this <a href=\"https:\/\/www.wellplated.com\/gluten-free-carrot-cake\/\" target=\"_blank\" rel=\"noopener\">Gluten-Free Carrot Cake<\/a>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"1500\" src=\"https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2025\/03\/carrot-cake.jpg\" alt=\"This gluten-free carrot cake makes the perfect dessert. Made in an 8x8 pan, it&#039;s perfectly moist and full of flavor. \" class=\"wp-image-54261\" title=\"\" srcset=\"https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2025\/03\/carrot-cake.jpg 600w, https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2025\/03\/carrot-cake-80x200.jpg 80w, https:\/\/www.theleangreenbean.com\/wp-content\/uploads\/2025\/03\/carrot-cake-220x550.jpg 220w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Gluten-Free Recipes<\/h2>\n\n\n\n<p>Looking for more gluten-free recipes? Check out:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.theleangreenbean.com\/mediterranean-meatballs\/\">Mediterranean Meatballs<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.theleangreenbean.com\/kale-and-white-bean-salad\/\">Kale and White Bean Salad<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.theleangreenbean.com\/slow-cooker-creamy-mexican-chicken\/\">Slow Cooker Creamy Mexican Chicken<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.theleangreenbean.com\/pesto-chicken-quinoa-bowls\/\">Pesto Chicken Quinoa Bowls<\/a><\/li>\n<\/ul>\n\n\n\n<p>Also I&#8217;ve tested most of my <a href=\"https:\/\/www.theleangreenbean.com\/search\/?_sft_category=baking\">muffin and bar recipes <\/a>subbing a 1:1 GF flour blend for the wheat flour and they work great!<\/p>\n\n\n\n<p>Enjoy!<br>&#8211;Lindsay&#8211;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This gluten-free carrot cake makes the perfect dessert. Made in an 8&#215;8 pan, it&#8217;s perfectly moist and full of flavor. Hi friends! It&#8217;s been a while since I&#8217;ve published a cake recipe so I&#8217;m excited to share this deliciously moist Gluten-Free Carrot Cake recipe with all of you! Carrot cake is something I&#8217;ve never really [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":54256,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[77,72,247],"tags":[167,153,123,249,129],"class_list":{"0":"post-49015","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-baking","8":"category-dessert","9":"category-gluten-free","10":"tag-applesauce","11":"tag-carrot","12":"tag-egg","13":"tag-gluten-free-flour","14":"tag-oil","15":"entry"},"_links":{"self":[{"href":"https:\/\/www.theleangreenbean.com\/wp-json\/wp\/v2\/posts\/49015","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.theleangreenbean.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.theleangreenbean.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.theleangreenbean.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.theleangreenbean.com\/wp-json\/wp\/v2\/comments?post=49015"}],"version-history":[{"count":8,"href":"https:\/\/www.theleangreenbean.com\/wp-json\/wp\/v2\/posts\/49015\/revisions"}],"predecessor-version":[{"id":54264,"href":"https:\/\/www.theleangreenbean.com\/wp-json\/wp\/v2\/posts\/49015\/revisions\/54264"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.theleangreenbean.com\/wp-json\/wp\/v2\/media\/54256"}],"wp:attachment":[{"href":"https:\/\/www.theleangreenbean.com\/wp-json\/wp\/v2\/media?parent=49015"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.theleangreenbean.com\/wp-json\/wp\/v2\/categories?post=49015"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.theleangreenbean.com\/wp-json\/wp\/v2\/tags?post=49015"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}