Within Spain, Madrid often falls under the shadow of its modernist neighbor, Barcelona. The reason? Who knows… With its delicious food, bubbling art scene, rich nightlife, affordable living, great shopping and unique fusion of history and modern, Madrid deserves to be in the spotlight. Spain’s capital is a city of sun-drenched rooftop bars, intriguing museum exhibitions, pulsating nightclubs, and vast green parks. Before you pack your suitcases, check out all the wonderful things to do in Madrid.
Flowing Architecture
Many people don’t consider Madrid as a city with strong architectural identity, mainly because it lacks that signature landmark of what is Colosseum to Rome or Sagrada Familia to Barcelona. Nonetheless, Madrid’s architecture is far from poor. From neighborhood to neighborhood, it guides you through Spain’s architectural (hi)story that shaped lifestyle of its inhabitants.
Here, you will come across anything from medieval structures, royal palaces, baroque facades, extravagant buildings of belle epoque as well as daring contemporary creations. Things to see in Madrid will take you on a ride through history without the inconvenience of overbearing crowds.
City of Art
When talking about art, again, Madrid is not the first city to pop into one’s mind. But don’t be fooled. There aren’t many cities that boast such generous artistic roots. To a great extent, we can be grateful to Spanish royals and aristocrats who nurtured and harnessed art be it from Spanish or foreign artists.
If you have a weak spot for art, figuring out what to do in Madrid won’t take long. Works by Goya, Velázquez, Miró and Dalí hang on the walls of the city’s grand galleries including the Museo del Prado and Centro de Arte Reina Sofía.
Bringing Nights to Life
Madrid nightlife comes in sharp contrast to the subtle delights of fine art galleries. Its streets are peppered with classic Spanish bars, chic cocktail bars and an eclectic selection of nightclubs. The diversity is united by non-stop action. Each barrio (neighborhood) gives off a unique vibe allowing you to find the perfect fit for your idea of nighttime entertainment. Relax and let the bohemian atmosphere sweep you off your feet.
Did someone say food?
Madrid is a place to eat well whether your tastes are classic, international or downright extravagant. In past decades, the city ventured beyond its delicious yet humble local cuisine and transformed into one of Europe’s main culinary hubs.
Whether you are looking for the heartwarming classics or feats of creativity and innovations, Madrid truly won’t disappoint. Moreover, the city offers you a unique opportunity to taste the best of all Spanish regions. Better yet, unlike other metropoles, food in Madrid is not overpriced. Or, to put it differently, you can find fresh and incredibly delicious food at very low or reasonable prices.
Did Spain’s capital spark your interest? If so, browse the page to discover fun places to visit and things to do in Madrid. It’s a trip you won’t forget.
Sneak your way inside a royal fairy tales visiting Madrid’s lavish Palacio Real. Of all the things to see in Madrid, the Royal Palace is the most extravagant. Imagine a jewel box the size of a, well, palace. After the former Moorish fortress burned down in 1734, the Spanish king Felipe V decided to build a palace in its place. A palace that would make its European counterparts look like dwarfs. However, Felipe died before the palace was finished, so it only boasts 2800 rooms; A mere quarter of the original plan! The architecture, as well as the royal art collection, are absolutely sublime. If you have a chance to visit, don’t miss it!
Prado is one of Madrid’s essentials, it being one of the best art galleries in the world. Its collection contains incredible 7000 pieces of art by renaissance and baroque masters of which 1500 are on display. Representing Spain there are works by Velázquez and Goya; Italian talents show through paintings by Titian, Caravaggio and Botticelli and the likes of Rembrandt and Rubens represent the low countries. Out of all the places to see in Madrid, Museo del Prado holds a special place as an abstract window into the Spanish soul. Beware, Prado is truly grand. Remember to give yourself enough time to enjoy it!
A stone’s throw away from Plaza Mayor sits a culinary cloud nine, Mercado de San Miguel. This lovely art nouveau market has been around since 1916 and will continue satisfying taste buds of locals and travelers alike for many years to come. Despite a number of grocery stalls, it’s less of a produce market and more of a gastronomic/foodie destination. Here, you can nibble of tapas or order more substantial plates. Everything here is tempting. Other places to visit in Madrid can wait for a while. Get yourself a glass of beer (caña), wine or vermouth and set out on a tour across the tastes and smells of Spain.
| # | Time | Query |
|---|---|---|
| 1 | 2.4 ms | SELECT url, namespace, method, content_redirection FROM `redirect` WHERE status = 1 |
| 2 | 4.04 ms | INSERT INTO `log_customer` ( `id` , `id_customer` , `log` , `date` ) VALUES( NULL , NULL ,... |
| 3 | 0.45 ms | SELECT * FROM `languages` WHERE TRUE AND `short` = 'en' |
| 4 | 0.91 ms | SELECT * FROM `languages` WHERE TRUE AND `name` = 'English' |
| 5 | 0.82 ms | SELECT d.*, d.cdn_image_uuid, d.cdn_variants, d.cdn_processing_status, d.use_cdn, m.id_language, m.name, m.description, m.summary, m.seo_title, m.seo_description, m.seo_keywords, m.seo_url, m.img_alt, m.faqs, m.index_content FROM `destinations` AS d INNER JOIN `destination_meta` AS m on d.id =... |
| 6 | 0.74 ms | SELECT t.*, m.id_language, m.title, m.description, m.img_alt, m.blog_link, m.category_link FROM `thingstodo` AS t INNER JOIN `thingtodo_meta` AS m ON t.id = m.id_thingtodo WHERE TRUE AND t.`id_destination` = 65 AND t.`status` = '34' AND m.`id_language` = 1 |
| 7 | 1.99 ms | SELECT destinations.*,destination_meta.* FROM `destination_parent` join destinations on destinations.id = destination_parent.id_child join destination_meta on destination_meta.id_destination = destinations.id where true and (id_parent = (SELECT id_parent FROM `destination_parent` where `id_child`... |
| 8 | 1.34 ms | SELECT c.*, m.id_language, m.name, m.description, m.seo_title, m.seo_description, m.seo_keywords, m.seo_url, m.img_alt FROM `categories` AS c INNER JOIN `category_meta` AS m on c.id = m.id_category WHERE TRUE AND c.`status` = '32' AND m.`id_language` = 1 AND m.`name` = 'Madrid' LIMIT 0 , 30 |
| 9 | 0.97 ms | SELECT * FROM `destination_parent` WHERE TRUE AND `id_child` = 65 ORDER BY `id` DESC LIMIT 0 , 30 |
| 10 | 0.6 ms | SELECT destinations.id, destination_meta.name,seo_url FROM `destinations` join destination_meta on destination_meta.id_destination = destinations.id join destination_parent on destination_parent.id_parent = destinations.id where true AND destinations.status = 24 AND destination_meta.id_language =... |
| 11 | 0.41 ms | SELECT * FROM `destination_parent` WHERE TRUE AND `id_child` = 64 ORDER BY `id` DESC LIMIT 0 , 30 |
| 12 | 0.73 ms | SELECT destinations.id, destination_meta.name,seo_url FROM `destinations` join destination_meta on destination_meta.id_destination = destinations.id join destination_parent on destination_parent.id_parent = destinations.id where true AND destinations.status = 24 AND destination_meta.id_language =... |
| 13 | 1.17 ms | SELECT * FROM `destination_parent` WHERE TRUE AND `id_child` = 1 ORDER BY `id` DESC LIMIT 0 , 30 |
| 14 | 16.62 ms | SELECT p.id FROM `products` p INNER JOIN `product_meta` pm ON pm.id_product = p.id AND pm.metaname = 'featured' AND pm.metavalue = '1' WHERE p.city = ? LIMIT ? |
| 15 | 5.09 ms | SELECT DISTINCT pd.id_product FROM product_destination pd INNER JOIN products p ON p.id = pd.id_product INNER JOIN suppliers s ON s.id = p.id_supplier WHERE p.status = ? AND s.status = ? AND ( pd.id_destination = ? OR pd.id_destination IN ( SELECT id_child FROM destination_parent WHERE id_parent... |
| 16 | 0.47 ms | SELECT * FROM `product_system` WHERE id_product_dotravel IN (?,?,?,?,?) |
| 17 | 1.36 ms | SELECT id_product, metavalue FROM `product_meta` WHERE id_product IN (?,?,?,?,?) AND metaname = ? AND id_language = ? |
| 18 | 0.5 ms | SELECT *, CONCAT(UCASE(LEFT(name, 1)), LCASE(SUBSTRING(REPLACE(name,'_',' '), 2))) as title FROM `status` WHERE TRUE AND `name` = 'active' AND `group` = 'review_status' ORDER BY `id` DESC LIMIT 0 , 30 |
| 19 | 0.45 ms | SELECT id_product, SUM(rating_overall) / COUNT(*) AS rating_overall, COUNT(*) AS review_count FROM `reviews` WHERE id_product IN (?,?,?,?,?) AND status = ? GROUP BY id_product |
| 20 | 0.33 ms | SELECT * FROM `products` WHERE `id` IN (?,?,?,?,?) |
| 21 | 0.5 ms | SELECT *, CONCAT(UCASE(LEFT(name, 1)), LCASE(SUBSTRING(REPLACE(name,'_',' '), 2))) as title FROM `status` WHERE TRUE AND `name` = 'active' AND `group` = 'review_status' ORDER BY `id` DESC LIMIT 0 , 30 |
| 22 | 0.34 ms | SELECT * FROM `type` WHERE TRUE AND `group` = 'sub_product_type' AND `name` = 'group' ORDER BY `id` DESC LIMIT 0 , 30 |
| 23 | 0.54 ms | SELECT id_product, id_language FROM `sub_product` WHERE id_product IN (?,?,?,?,?) AND type = ? ORDER BY id_language ASC |
| 24 | 0.33 ms | SELECT * FROM `languages` WHERE TRUE AND `id` = 1 |
| 25 | 0.45 ms | SELECT id_product, seo_url FROM `seo` WHERE id_product IN (?,?,?,?,?) AND id_language = ? |
| 26 | 1.11 ms | SELECT id_product, metaname, metavalue FROM `product_meta` WHERE id_product IN (?,?,?,?,?) AND metaname IN (?,?,?,?) AND id_language = ? |
| 27 | 1.8 ms | SELECT pp.* FROM `product_photos` pp INNER JOIN ( SELECT id_product, MIN(show_order) AS min_order FROM `product_photos` WHERE id_product IN (?,?,?,?,?) GROUP BY id_product ) first ON pp.id_product = first.id_product AND pp.show_order = first.min_order WHERE pp.id_product IN (?,?,?,?,?) |
| 28 | 0.59 ms | SELECT id_product, SUM(rating_overall) / COUNT(*) AS rating_overall, COUNT(*) AS review_count FROM `reviews` WHERE id_product IN (?,?,?,?,?) AND status = ? GROUP BY id_product |
| 29 | 0.62 ms | SELECT s.id_product, MIN(pr.price) AS min FROM `product_prices` pr INNER JOIN `sub_product` s ON s.id = pr.id_subproduct INNER JOIN `age_group` a ON a.id = pr.id_agegroup WHERE s.id_product IN (?,?,?,?,?) AND pr.price > 0 GROUP BY s.id_product |
| 30 | 0.33 ms | SELECT * FROM `type` WHERE TRUE AND `id` = 2 ORDER BY `id` DESC LIMIT 0 , 30 |
| 31 | 0.36 ms | SELECT *, CONCAT(UCASE(LEFT(name, 1)), LCASE(SUBSTRING(REPLACE(name,'_',' '), 2))) as title FROM `status` WHERE TRUE AND `id` = '23' ORDER BY `id` DESC LIMIT 0 , 30 |
| 32 | 1.37 ms | SELECT id_product, metaname, metavalue FROM `product_meta` WHERE id_product IN (?,?,?,?,?) AND metaname IN (?,?) AND id_language = ? |
| 33 | 2.52 ms | SELECT id_product, metavalue FROM `product_meta` WHERE id_product IN (?,?,?,?,?) AND metaname = ? AND id_language = ? |
| 34 | 0.78 ms | SELECT s.id_product, MIN(pr.price) AS min FROM `product_prices` pr INNER JOIN `sub_product` s ON s.id = pr.id_subproduct INNER JOIN `age_group` a ON a.id = pr.id_agegroup WHERE s.id_product IN (?,?,?,?,?) AND pr.price > 0 GROUP BY s.id_product |
| 35 | 0.79 ms | SELECT a.id, a.title, a.seo_url, a.description, a.id_adminuser FROM `article_destination` ad INNER JOIN `articles` a ON ad.id_article = a.id WHERE ad.id_destination = 65 ORDER BY a.title ASC |