In a cold large skillet or pan with a lid set to the side, add your bacon strips. Bring the heat up to medium and heat until crispy, about 5 to 6 minutes per side. Remove the bacon from the skillet and drain on a paper towel-lined plate.
Remove all but 2 tablespoons of bacon fat from the skillet, then add in your onions over medium-low heat. Stir to coat with the bacon fat and cook, stirring occasionally, until they become soft, jammy, and translucent.
Season with kosher salt and black pepper. Cook until your onions turn into a rich golden brown color and are super jammy, about 30 to 40 minutes, stirring occasionally and adding a splash of water as needed.
Take a paper towel and swipe your skillet clean. Take 2 thick slices of your bread and smear mayo on both sides. Place one slice of bread, mayo side down, in the cold skillet. Top with sharp cheddar cheese, gruyere cheese, caramelized onions, and crispy bacon.
Turn the stove to medium heat and top with your other slice of bread, mayo side up. Cook until toasted and melted, about 3 to 4 minutes on each side.
Once golden brown, flip over and cover with a lid to help steam and melt the cheese. Repeat with remaining slices of bread, cheese, onions, and bacon.
Transfer to a cutting board, slice in half, and serve.