Puerto Vallarta Port of Call

Relax at Vallodolid, Yucatan © larry&flo

Puerto Vallarta, on the Mexican Rivera, is book-ended by tall luxury resorts and a long line of white sand beach but in its centre there are charming colonial buildings and the remnants of a sleepy fishing town. The most popular activities are watersports on any part of the Golden Zone, a resorty stretch of sand. The Old Town is an attractive district for sightseeing and the perusal of some picturesque colonial architecture.

A new Maritime Terminal, built in 2007, can berth up to three cruise liners although sometimes a fourth has to anchor in the bay and tender passengers to the terminal. The terminal is three miles north of the city and has a host of tourist facilities such as shops, restaurants, and information centres. Transportation can easily be found to the city centre and the Old Town can be comfortably explored on foot.


Tel: +1 322 224 1175
A tourism office is located in the Presidencia Municipal building downtown.


Taxis are easily caught at the cruise port but are generally more expensive than ones hailed from the highway. Both are only several dollars to the city centre although prices for un-metered taxis should be agreed on before hand. Buses in the city are an easy way to travel short distances. Cruise lines often provide free shuttles to Puerto Vallarta city centre.


Unsurprisingly, beach activities are the most popular and include scuba diving, snorkelling, boating and walking the seaside Melicon path. Further popular water activities include deep sea fishing, swimming with dolphins, and sailing trips in the bay. The Old Town is a popular place for a stroll, going souvenir shopping or visiting the colonial Spanish-Mexican buildings. Some of Mexico's finest golf courses, designed by Jack Nicklaus, are a hit with cruise passengers.


Teatro Limon - fine dining in a friendly atmosphere

Casa Isabel - Mexican fusion with fantastic views

Tacos Panchos - cheap and cheerful taco joint open for dinner

Best Dish

Street-side tacos


Several American-style shopping complexes can be found near the cruise terminal but better shopping is available in the city centre. In the Old Town and just off the Melicon visitors will discover the best souvenir shopping in authentic Mexican style markets. A swarm of art galleries are available all over town, many of them offering crafts from all over the country.

Best Buy

Beaded crafts


Drinking tequila in Tequila City.

Gliding through the trees on a canopy tour.

Whale watching in a sleek boat.

Horseback riding in the hillsides.

Relax in small town Sayulita.

Become our Mexico Travel Expert

We are looking for contributors for our Mexico travel guide. If you are a local, a regular traveller to Mexico or a travel professional with time to contribute and answer occasional forum questions, please contact us.

Intrepid Travel

Intrepid Travel is one of the world's leading suppliers of small group adventures focused on getting off the beaten track and having real life experiences in Mexico.



1,704,256 bytes
Loading Time Base Classes  0.0609
Controller Execution Time ( Countries / Index )  0.1290
Total Execution Time  0.1904
No GET data exists
No POST data exists
  DATABASE:  globe_media   QUERIES: 38   
0.0004   INSERT INTO `ci_sessions(`session_id`, `ip_address`, `user_agent`, `last_activity`) VALUES ('b6170683b6e7542270e5a216502e6d9f''''CCBot/2.0 (http://commoncrawl.org/faq/)'1413941753) 
0.0005   UPDATE `ci_sessionsSET `last_activity` = 1413941753, `user_data` = '' WHERE `session_id` = 'b6170683b6e7542270e5a216502e6d9f' 
0.0080   UPDATE `ci_sessionsSET `last_activity` = 1413941753, `user_data` = '' WHERE `session_id` = 'b6170683b6e7542270e5a216502e6d9f' 
0.0004   UPDATE `ci_sessionsSET `last_activity` = 1413941753, `user_data` = '' WHERE `session_id` = 'b6170683b6e7542270e5a216502e6d9f' 
0.0006   UPDATE `ci_sessionsSET `last_activity` = 1413941753, `user_data` = '' WHERE `session_id` = 'b6170683b6e7542270e5a216502e6d9f' 
0.0005   UPDATE `ci_sessionsSET `last_activity` = 1413941753, `user_data` = '' WHERE `session_id` = 'b6170683b6e7542270e5a216502e6d9f' 
0.0004   UPDATE `ci_sessionsSET `last_activity` = 1413941753, `user_data` = '' WHERE `session_id` = 'b6170683b6e7542270e5a216502e6d9f' 
0.0005   UPDATE `ci_sessionsSET `last_activity` = 1413941753, `user_data` = '' WHERE `session_id` = 'b6170683b6e7542270e5a216502e6d9f' 
0.0006   UPDATE `ci_sessionsSET `last_activity` = 1413941753, `user_data` = '' WHERE `session_id` = 'b6170683b6e7542270e5a216502e6d9f' 
0.0006   UPDATE `ci_sessionsSET `last_activity` = 1413941753, `user_data` = '' WHERE `session_id` = 'b6170683b6e7542270e5a216502e6d9f' 
0.0007   UPDATE `ci_sessionsSET `last_activity` = 1413941753, `user_data` = '' WHERE `session_id` = 'b6170683b6e7542270e5a216502e6d9f' 
0.0006   UPDATE `ci_sessionsSET `last_activity` = 1413941753, `user_data` = '' WHERE `session_id` = 'b6170683b6e7542270e5a216502e6d9f' 
0.0005   UPDATE `ci_sessionsSET `last_activity` = 1413941753, `user_data` = '' WHERE `session_id` = 'b6170683b6e7542270e5a216502e6d9f' 
0.0009   SELECT `nameFROM port_of_call WHERE url_name 'puerto-vallarta' 
0.0008   UPDATE `ci_sessionsSET `last_activity` = 1413941753, `user_data` = 'a:1:{s:4:\"port\";s:15:\"Puerto Vallarta\";}' WHERE `session_id` = 'b6170683b6e7542270e5a216502e6d9f' 
0.0004   UPDATE `ci_sessionsSET `last_activity` = 1413941753, `user_data` = 'a:2:{s:4:\"port\";s:15:\"Puerto Vallarta\";s:16:\"destination_type\";s:9:\"Countries\";}' WHERE `session_id` = 'b6170683b6e7542270e5a216502e6d9f' 
0.0007   UPDATE `ci_sessionsSET `last_activity` = 1413941753, `user_data` = 'a:3:{s:4:\"port\";s:15:\"Puerto Vallarta\";s:16:\"destination_type\";s:9:\"Countries\";s:7:\"country\";s:6:\"Mexico\";}' WHERE `session_id` = 'b6170683b6e7542270e5a216502e6d9f' 
0.0004   UPDATE `ci_sessionsSET `last_activity` = 1413941753, `user_data` = 'a:4:{s:4:\"port\";s:15:\"Puerto Vallarta\";s:16:\"destination_type\";s:9:\"Countries\";s:7:\"country\";s:6:\"Mexico\";s:13:\"selected_node\";s:12:\"port_of_call\";}' WHERE `session_id` = 'b6170683b6e7542270e5a216502e6d9f' 
0.0008   SELECT *
FROM (`config_categories`)
WHERE `type` = 'left'
AND `parent_category_idIN (SELECT id FROM config_categories WHERE link "/countries")
display_order` != '0'
ORDER BY `display_order
0.0005   SELECT `province_code`, `province_name`, `c`.`country_name`
FROM (`provincesp)
LEFT JOIN `countriesON `c`.`country_code` = `p`.`country_code`
WHERE `c`.`country_name` = 'Mexico'
ORDER BY `p`.`province_name
0.0011   SELECT rc.id as regions_cities_idrc.region_namerc.major_cityrc.key_regionc.country_namep.province_name  FROM regions_cities rc INNER JOIN countries c ON c.country_code rc.country_code LEFT JOIN provinces p ON rc.province_code p.province_code WHERE c.country_name "Mexico"  AND rc.major_city AND rc.nfuwt != 1 UNION SELECT rc.id as regions_cities_idrc.region_namerc.major_cityrc.key_regionc.country_namep.province_name FROM regions_cities rc INNER JOIN provinces p ON p.province_code rc.province_code INNER JOIN countries c ON p.country_code c.country_code WHERE c.country_name "Mexico"  AND rc.major_city AND rc.nfuwt != ORDER BY region_name  
0.0004   SELECT rc.id as regions_cities_idrc.region_namerc.major_cityrc.key_regionc.country_namep.province_name  FROM regions_cities rc INNER JOIN countries c ON c.country_code rc.country_code LEFT JOIN provinces p ON rc.province_code p.province_code WHERE c.country_name "Mexico"  AND rc.major_city AND rc.nfuwt != 1 UNION SELECT rc.id as regions_cities_idrc.region_namerc.major_cityrc.key_regionc.country_namep.province_name FROM regions_cities rc INNER JOIN provinces p ON p.province_code rc.province_code INNER JOIN countries c ON p.country_code c.country_code WHERE c.country_name "Mexico"  AND rc.major_city AND rc.nfuwt != ORDER BY region_name  
0.0025   SELECT `r`.`id` as resort_id, `r`.`name`, `r`.`major_resort`, `r`.`attr_ski_chk`, `r`.`attr_beach_chk`, `c`.`country_name`, (SELECT region_name FROM regions_cities WHERE country_code c.country_code AND id r.region_city_code) as region_name
LEFT JOIN `countriesON `c`.`country_code` = `r`.`country_code`
WHERE `c`.`country_name` = 'Mexico'
AND `attr_ski_chk` != "Yes"
ORDER BY `r`.`major_resortDESC, `r`.`name
0.0005   SELECT `r`.`id` as resort_id, `r`.`name`, `r`.`major_resort`, `r`.`attr_ski_chk`, `r`.`attr_beach_chk`, `c`.`country_name`, (SELECT region_name FROM regions_cities WHERE country_code c.country_code AND id r.region_city_code) as region_name
LEFT JOIN `countriesON `c`.`country_code` = `r`.`country_code`
WHERE `c`.`country_name` = 'Mexico'
AND `attr_ski_chk` = 'Yes'
ORDER BY `r`.`major_resortDESC, `r`.`name
0.0010   SELECT `iata_code`, `name`, `url_name`, `c`.`country_name`
FROM (`port_of_callpc)
LEFT JOIN `countriesON `c`.`country_code` = `pc`.`country_code`
WHERE `c`.`country_name` = 'Mexico'
ORDER BY `pc`.`name
0.0007   SELECT *
FROM (`config_nodescn)
JOIN `config_nodes_categoriescnc ON `cnc`.`node_id` = `cn`.`id`
WHERE `cnc`.`category_idIN (select id from config_categories where link "/port_of_call")
ORDER BY `cn`.`position`, `cnc`.`display_order
0.0033   SELECT `id`, `headline`, `via_title`, `via_link`, `body`, `event_date`, `end_date`, `anchor_link`
FROM (`news`)
WHERE `for_pro` = 1
AND `end_date` >  '2014-10-22'
AND `country_code` = (SELECT country_code FROM countries WHERE country_name "Mexico") 
0.0040   SELECT *
FROM (`tour_operators`)
WHERE `country_code` = (SELECT country_code FROM countries WHERE country_name "Mexico")
show_in_column` = 1
`show_in_columnDESC, `name
0.0022   SELECT country_code FROM countries WHERE country_name "Mexico" 
0.0079   SELECT from tourop_list WHERE destinations LIKE '%MX%' ORDER BY id DESC 
0.0004   SELECT `country_code`
FROM (`countries`)
WHERE `country_name` = 'Mexico' 
0.0207   SELECT d.id AS destination_idd.overview AS destination_overviewd.extended_overview AS destination_extended_overviewd.photo as destination_photod.*, c.*, 'Mexico' AS country_namepoc.*, LENGTH(CONCAT_WS(d.timed.electricityd.languaged.healthd.tippingd.safetyd.businessd.communicationsd.duty_free)) AS basicsLENGTH(CONCAT_WS(d.embassy_consulate_usd.embassy_consulate_ukd.embassy_consulate_cad.embassy_consulate_aud.embassy_consulate_ird.embassy_consulate_nz)) AS contacts(SELECT money FROM destinations WHERE country_code "MX" ) AS money(SELECT LENGTH(CONCAT_WS(passport_visaentry_req_usentry_req_ukentry_req_caentry_req_auentry_req_irentry_req_nz))
FROM destinations WHERE country_code "MX" ) AS visa(SELECT group_concat(id) FROM public_holiday p WHERE p.country_code "MX" order by p.weight desc) AS public_holiday(SELECT count(*) FROM tour_operators t where t.country_code d.country_code) AS num_tour_ops(SELECT count(id) AS total_rows FROM tourop_list tl WHERE tl.destinations LIKE ("%MX%")) AS num_tour_operators(SELECT group_concat(name) FROM port_of_call pc WHERE pc.country_code d.country_code) AS ports_of_call(SELECT group_concat(region_name) FROM regions_cities WHERE major_city AND nfuwt != AND country_code d.country_code ORDER BY major_city DESCregion_name ASC) AS cities(SELECT group_concat(region_name) FROM regions_cities WHERE major_city AND nfuwt != AND country_code d.country_code ORDER BY major_city DESCregion_name ASC) AS regions(SELECT group_concat(name) FROM resorts WHERE major_resort AND country_code d.country_code ORDER BY major_resort DESCname ASC) AS resorts(SELECT count(*) FROM dmcs WHERE country_code d.country_code) AS num_dmcs(SELECT concat(caption" © "copyright) FROM images WHERE filename d.photo) AS photo_copyright(SELECT count(*) FROM airports ai where ai.nfuwt != AND ai.country_code d.country_code) AS num_airports(SELECT count(*) FROM events e where e.country_code d.country_code AND show_on_country 1) AS num_events(SELECT count(*) FROM activities where region_city_code "0" AND country_code d.country_code) AS num_activities(SELECT count(*) FROM attractions a where a.country_code d.country_code AND show_on_country AND excursion "No") AS num_attractions(SELECT count(*) FROM attractions a where a.country_code d.country_code AND show_on_country AND show_on_kids AND excursion "No") AS num_kids_attractions(SELECT count(*) FROM attractions a where a.country_code d.country_code AND excursion "Yes") AS num_excursions(SELECT phrases FROM phrase_book pb where pb.country_code c.country_code AND phrases != "") AS num_phrases(SELECT count(*) FROM image_bridge ib LEFT OUTER JOIN images i ON ib.image_id=i.id WHERE ib.destination_code c.country_code) AS num_photos(SELECT count(*) FROM hospitals h where h.country_code c.country_code) AS num_hospitals
(destinations d)
LEFT JOIN countries c ON c.country_code d.country_code
LEFT JOIN provinces pr ON pr
.province_code d.province_code
LEFT JOIN port_of_call poc ON poc
.country_code d.country_code
`poc`.`url_name` = 'puerto-vallarta' 
0.0004   UPDATE ci_sessions SET last_activity 1413941753user_data 'a:4:{s:4:\"port\";s:15:\"Puerto Vallarta\";s:16:\"destination_type\";s:9:\"Countries\";s:7:\"country\";s:6:\"Mexico\";s:13:\"selected_node\";s:12:\"port_of_call\";}' WHERE `session_id` = 'b6170683b6e7542270e5a216502e6d9f' 
0.0005   UPDATE ci_sessions SET last_activity 1413941753user_data 'a:5:{s:4:\"port\";s:15:\"Puerto Vallarta\";s:16:\"destination_type\";s:9:\"Countries\";s:7:\"country\";s:6:\"Mexico\";s:13:\"selected_node\";s:12:\"port_of_call\";s:6:\"region\";s:15:\"Puerto-vallarta\";}' WHERE `session_id` = 'b6170683b6e7542270e5a216502e6d9f' 
0.0008   SELECT i.*, e.fullnamee.bioe.pic FROM interviews i INNER JOIN experts e ON i.expert_id e.id
INNER JOIN countries c ON i
.spatial_id c.country_code WHERE i.interview_type 'country' AND c.country_name 'Mexico' 
0.0006   SELECT TagID FROM FORUM_DiscussionTags WHERE  Tag 'Mexico'  
0.0005   SELECT DiscussionID FROM FORUM_DiscussionHasTags WHERE TagID IN (170)
GROUP BY DiscussionID HAVING COUNT(DiscussionID) = 
0.0016   SELECT od.`Name`, od.`DiscussionIDFROM FORUM_Discussion od
                    WHERE od
.`DiscussionIDIN ( 130,156,311,473,651,691,715,928,973,1013,1059,1310,1441,1482,1608,1935,1949,2054,2132,2179,2403,2468,2471,2543,2544,2591,2621,2748,3031,3177,3221,3282,3293,3434,3474,3494,3553,3936,4030,4325,4340,4811,4930,4961,5151,5171,5286,5344,5376,5402,5548,5607,5643,5702,6128,6267,6277,6427,6453,6573,6632,6842,7097,7120,7394,7486,7527,7603,7761,7767,8001,8013,8058,8195,8588,9134,9160 ) ORDER BY od.`DateLastActiveDESC LIMIT 0 15