Compare and save on Edinburgh hotels

Find hotel dealsPlease select a place
Check in:
Check out:
Sort by Tribes
Popularity - Best Value
Currency
1010 Results

Where to Stay in Edinburgh

Edinburgh is a city famous for its castles, historic architecture and arts festivals. You can choose from numerous hotels in Edinburgh during your stay. They're mostly located in the Old Town, New Town and Southside. Remember to check out the hotels near the airport as well. Check out our guide to the best things to see in the city.

Old Town

Old Town is ideal for families and business travellers who want to sightsee close to their accommodation. The area is filled with historic buildings and cafes. You can find last minute hotels in Edinburgh here.

1. Travelodge Edinburgh Central Hotel

This is one of the cheap hotels in Edinburgh. Family rooms with sofa beds are available.

2. Hotel Motel One Edinburgh-Royal

This location is close to the National Gallery and Edinburgh Castle. It has a modern decor, free Wi-Fi and bathrooms with rainfall shower heads.

3. G&V Royal Mile Hotel Edinburgh

Within this hotel is a modern Italian restaurant that serves light meals, cocktails and afternoon tea. The rooms are brightly decorated and have designer toiletries and charging docks.

New Town

In this district, just north of the city centre, there are upscale shops and restaurants. It's within walking distance of many attractions.

1. Old Waverley Hotel

The building housing this hotel was built in 1848. You can take advantage of the free Wi-Fi and tea and coffee-making equipment in your room. Some rooms look out onto the Princes Street Gardens.

2. Nira Caledonia

This is a boutique hotel in Edinburgh with luxurious linens, Nespresso machines and iPod docks in each room. Some suites have floor-to-ceiling windows and living areas. Every guest can enjoy a free Scottish breakfast.

Southside

Staying in the Southside of the city puts you near the University of Edinburgh and the bars and casual eateries students enjoy. You're likely to find cheap hotels in Edinburgh in this area.

Ten Hill Place Hotel

The Royal College of Surgeons of Edinburgh is the owner of this hotel, which is open to the public. The updated rooms are spacious and have air conditioning.

Edinburgh Airport Hotels

The airport is five miles west of the city with a number of convenient airport hotels nearby.

1. Travelodge Edinburgh Airport

This basic hotel has TVs in every room, Wi-Fi and complimentary parking.

2. DoubleTree by Hilton Hotel Edinburgh Airport

From this hotel, you can walk to the airport in a few minutes. There is an indoor pool, and pets are allowed.

Spa Hotels in Edinburgh

After travelling, it can be nice to relax in a spa hotel. You can choose a boutique hotel in Edinburgh or find a larger chain with spa services.

1. Norton House Hotel & Spa

The hotel is a converted country house dating back to 1840. There is an indoor pool and a hydrotherapy pool in addition to a sauna and steam room.

2. Sheraton Grand Hotel & Spa, Edinburgh

Some of the rooms have views of Edinburgh Castle. The spa facilities include a pool, gym and treatment rooms for massages and facials.

When you're searching for hotels in Edinburgh, using Skyscanner’s search page can help you compare your options.

... Read more

Average price per night

Hotel class

Hotel type

Average user rating

Clear Filters
Clear Filters
var ListPage = { maxTries: 20, interval: 0, xhrRequests: [], update: function(url, count, callback){ var fingerprint = "&t=" + (new Date().getTime()); var reqcount = "&req_count=" + count; this.loader("on"); var self = this; var req = new XMLHttpRequest(); req.open("GET", url + fingerprint + reqcount, true); ListPage.xhrRequests.push(req); req.onreadystatechange = function() { if (req.readyState === 4 && (req.status === 200 || req.status === 202)) { eval(req.responseText); self.loader("off"); if (req.status === 200 || req.status !== 202 ) callback(req.status); if (req.status === 202) { if (count < self.maxTries) { setTimeout(function(){ListPage.update(url, ++count, callback)}, self.interval); self.interval += 100; } else { callback(req.status); } } } }; req.send(null); }, loader: function(status) { var spinnerD = document.querySelector('.spinnersD'); var spinnerM = document.querySelector('.spinnersM'); if (spinnerD && spinnerM) { if (status === "on") { spinnerD.className = "spinnersD shownow"; spinnerM.className = "spinnersM shownow"; } else { // hide spinnerD.className = "spinnersD"; spinnerM.className = "spinnersM"; } } }, ajax: function(url, callback) { this.update(url, 1, callback); } }; ListPage.ajax("https://www.skyscanner.net/trip/hotels/hotel_list_page?action=index&clean_path=edinburgh&controller=topics&country_code=&current_user_id=&filters=&id=2000000000082&klass_name=Region&list_type=hotels&nearby=false&order=asc&page=17&path=edinburgh%2Fhotels&place=2000000000082&place_type=City&place_type=region&region=2000000000082&sort=best_value", function(status){ if (status === 200) { HotelRates.ajax(); } }); var HotelRates = { hotels: "hotel_ids%5B%5D=5000004453372&hotel_ids%5B%5D=5000004454668&hotel_ids%5B%5D=5000004454670&hotel_ids%5B%5D=5000004454671&hotel_ids%5B%5D=5000004454672&hotel_ids%5B%5D=5000004454675&hotel_ids%5B%5D=5000004454678&hotel_ids%5B%5D=5000004454783&hotel_ids%5B%5D=5000004454806&hotel_ids%5B%5D=5000004454809&hotel_ids%5B%5D=5000004479584&hotel_ids%5B%5D=5000004479730&hotel_ids%5B%5D=5000004479788&hotel_ids%5B%5D=5000004480099&hotel_ids%5B%5D=5000004454882&hotel_ids%5B%5D=5000004454925&hotel_ids%5B%5D=5000004454984&hotel_ids%5B%5D=5000004454998&hotel_ids%5B%5D=5000004455000&hotel_ids%5B%5D=5000004455001", ajaxCalls: function(tryIndex) { if (this.hotels) { ListPage.update("https://www.skyscanner.net/trip/hotels/hotel_rates_list?bookable_only=&country_code=&current_user_id=&locale=en-GB&region=2000000000082" + "&" + this.hotels, tryIndex, function(){ var placeholder = document.querySelectorAll('.metasearch_featured .placeholder'); for (var i = 0; i < placeholder.length; i++) { placeholder[i].style.display='none'; } }); } }, ajax: function() { this.ajaxCalls(1); }, singleAjax: function() { this.ajaxCalls(ListPage.maxTries); } };