Imagine sinking your teeth into a warm, crusty roll filled with tender, juicy beef, caramelized onions, and melted cheese, with a side of savory au jus for dipping. There’s something truly magical about Slow Cooker French Dip Sandwiches. They’re perfect for cozy family dinners, game day spreads, or anytime you want a meal that feels like a warm hug.
Why You’ll Love This Recipe
French dip sandwiches are a comforting classic for good reason. The combination of slow-cooked, flavorful beef and rich, savory dipping sauce creates a meal that’s both satisfying and simple to prepare. Plus, using a slow cooker or Instant Pot takes the guesswork out of the process, letting you focus on enjoying the end result.
Ingredients You’ll Need
Main Ingredients
- 2-3 pounds beef chuck roast or rump roast (trimmed of excess fat)
- 3 cups low-sodium beef broth
- ¼ cup Worcestershire sauce
- 2 tablespoons extra virgin olive oil
- 2 yellow onions, quartered and thinly sliced
- 3 cloves garlic, minced
- 1 bay leaf
- Salt and pepper, to taste
For the Sandwiches
- 4-6 rolls (choose sturdy rolls that won’t fall apart when dipped)
- 8-12 slices cheese (Provolone, Swiss, Havarti, or Monterey Jack)
Step-by-Step Instructions
1. Prepare the Roast
- Liberally season the roast with salt and pepper.
- In a large glass measuring cup, combine the beef broth and Worcestershire sauce. Set aside.
2. Sear the Meat
- Heat the olive oil in a cast iron skillet, Dutch oven, or Instant Pot on sauté mode. Sear the roast on all sides until a golden-brown crust forms. Transfer the meat to your slow cooker or set aside if using the Instant Pot.
3. Cook the Onions and Garlic
- Reduce the heat to medium and add the sliced onions to the same pot. Cook for about 5 minutes, stirring occasionally. Add the minced garlic and cook for an additional minute or two.
- Pour a few tablespoons of the beef broth mixture into the pot and use a wooden spoon to scrape up the browned bits. This adds incredible flavor to your dish.
4. Slow Cooker Method
- Transfer the onion mixture and juices into the slow cooker along with the seared roast.
- Add the remaining beef broth mixture and the bay leaf. Cook on high for 3-4 hours or low for 5-6 hours, until the meat is tender and easily shredded.
5. Instant Pot Method
- Place the seared roast and onion mixture in the Instant Pot. Add the remaining beef broth mixture and the bay leaf.
- Seal the lid and cook on high pressure for 60 minutes. Allow a natural release for 20 minutes before opening the lid.
6. Prepare the Meat and Au Jus
- Remove the cooked meat to a cutting board. Thinly slice it against the grain or shred it with two forks.
- Strain the cooking liquid through a fine mesh sieve to separate the au jus from the onions. Discard the bay leaf. Reserve the au jus for dipping and return the onions and sliced meat to the cooker.
- Pour a bit of au jus over the meat to keep it moist. Adjust seasoning with salt and pepper, if needed.
7. Assemble the Sandwiches
- Toast the rolls in a 375°F oven until lightly crispy.
- Fill each roll with the sliced meat and onions. Top with cheese slices.
- Place the sandwiches back in the oven or under the broiler for 2-3 minutes, until the cheese is melted and bubbly.
8. Serve and Enjoy
- Serve the sandwiches with a small bowl of au jus on the side for dipping. Pair with a fresh salad or crispy fries for a complete meal.
Tips for Perfect French Dip Sandwiches
- Choose the Right Roll: Use sturdy rolls like French baguettes or hoagie rolls to hold up against the au jus.
- Enhance the Au Jus: For a richer flavor, add a splash of red wine to the broth mixture before cooking.
- Don’t Skip the Sear: Searing the meat locks in flavor and creates a delicious crust.
Nutritional Information
Nutrient | Per Serving (1 Sandwich) |
---|---|
Calories | 450 |
Protein | 35g |
Fat | 18g |
Carbohydrates | 35g |
Sodium | 850mg |
Fiber | 2g |
FAQ Section
1. Can I use a different cut of beef?
Yes! While chuck roast is preferred for its marbling, you can use sirloin roast or boneless bottom round for a leaner option.
2. How can I make this recipe gluten-free?
Use gluten-free rolls and ensure your beef broth and Worcestershire sauce are certified gluten-free.
3. Can I prepare this recipe in advance?
Absolutely! The meat can be cooked, shredded, and stored in its juices up to 3 days ahead. Reheat gently before assembling the sandwiches.
4. What other cheeses work well?
Provolone and Swiss are classic choices, but Havarti and Monterey Jack are excellent alternatives.
5. How do I store leftovers?
Store leftover meat and au jus in separate airtight containers in the refrigerator for up to 4 days. Reheat in the slow cooker or on the stovetop.
6. Can I freeze the meat?
Yes! Freeze shredded meat in an airtight container with some au jus for up to 3 months. Thaw overnight in the refrigerator before reheating.
Creative Serving Ideas
- French Dip Sliders: Use small rolls to create mini versions for parties or appetizers.
- Loaded Fries: Top crispy fries with shredded beef, onions, and melted cheese. Serve with au jus for dipping.
- Beefy Tacos: Use the shredded beef as a taco filling with your favorite toppings.
Conclusion: Make Slow Cooker French Dip Sandwiches Today
There’s no better way to enjoy a cozy, flavorful meal than with these Slow Cooker French Dip Sandwiches. They’re easy to make, packed with savory goodness, and perfect for any occasion. So grab your slow cooker, gather your ingredients, and get ready to impress your family and friends with this timeless dish. Start cooking today and experience the magic for yourself!
Classic French Dip Sandwiches
Total Time: 6 hours 20 minutes (slow cooker)
Yield: 4-6 servings
Description
Sink your teeth into these flavorful Slow Cooker French Dip Sandwiches. Juicy beef, caramelized onions, and melted cheese are served on toasted rolls with a savory au jus for dipping. Perfect for weeknights or entertaining, this recipe is as easy as it is delicious
Ingredients
-
- 2–3 pounds beef chuck roast or rump roast, trimmed of excess fat
- 3 cups low-sodium beef broth
- ¼ cup Worcestershire sauce
- 2 tablespoons extra virgin olive oil
- 2 yellow onions, quartered and thinly sliced
- 3 cloves garlic, minced
- 1 bay leaf
- Salt and pepper, to taste
- 4–6 rolls (sturdy rolls that won’t fall apart when dipped)
- 8–12 slices cheese (Provolone, Swiss, Havarti, or Monterey Jack
Instructions
- Prepare the Roast: Liberally season the beef roast with salt and pepper. Set aside.
- Sear the Meat: Heat olive oil in a cast iron skillet, Dutch oven, or Instant Pot (on sauté mode). Sear the roast on all sides until browned, about 3-4 minutes per side. Transfer to the slow cooker or set aside if using the Instant Pot.
- Cook the Onions and Garlic: In the same pot, reduce heat to medium and add the sliced onions. Cook for about 5 minutes until softened. Stir in minced garlic and cook for another minute. Add a few tablespoons of the beef broth mixture and scrape up any browned bits with a wooden spoon.
- Combine in the Slow Cooker: Place the seared roast and onion mixture into the slow cooker. Pour in the remaining beef broth mixture and add the bay leaf. Cover and cook on low for 5-6 hours or high for 3-4 hours, until the beef is tender.
- Shred the Beef: Remove the cooked beef from the slow cooker and place on a cutting board. Shred with two forks or slice thinly against the grain. Return the meat to the slow cooker to soak in the juices.
- Strain the Au Jus: Strain the cooking liquid through a fine mesh sieve into a bowl. Discard the bay leaf and reserve the au jus for dipping.
- Assemble the Sandwiches: Toast the rolls in a 375°F oven until lightly crispy. Fill each roll with shredded beef and onions, then top with cheese slices. Return to the oven or broiler for 2-3 minutes to melt the cheese.
- Serve: Serve the sandwiches with a small bowl of au jus on the side for dipping. Enjoy immediately.
Notes
-
- Rolls Matter: Use sturdy rolls like hoagie rolls or French baguettes to prevent them from becoming soggy.
- Customize the Cheese: Provolone and Swiss are classics, but feel free to use your favorite melting cheese.
- Storage: Leftover beef and au jus can be stored in the refrigerator for up to 4 days or frozen for up to 3 months.
- Prep Time: 20 minutes
- Cook Time: 5-6 hours (slow cooker)
- Category: Main Course
- Method: Slow Cooker
- Cuisine: American
window.trCommon={“minRating”:6,”ajaxurl”:”https:\/\/forurenergy.com\/wp-admin\/admin-ajax.php”,”ratingNonce”:””,”postId”:1457};
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()
);
(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 {
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 );
});
The post Classic French Dip Sandwiches appeared first on FOR UR ENERGY RECIPES.