ADVERTISEMENT

Local Philippine airports lost millions of passengers in 2025

Published May 18, 2026 12:00 am  |  Updated May 16, 2026 05:38 pm
Passenger traffic in airports operated by the government plunged by 14.5 percent to just over 25 million in 2025 compared to the previous year amid a decline in aircraft movement, according to the Civil Aviation Authority of the Philippines (CAAP).
CAAP data showed that passenger volume across airports under its helm went down to 25.06 million last year from 29.31 million passengers in 2024.
Driven by the strength of the holiday season, the highest passenger demand for the year was recorded in January with a total of 2.67 million, up 10.8 percent from 2.41 million passengers in the same month of the prior year.
On the other hand, the weakest month was September with 1.65 million passengers, down by nearly 18 percent from the year-low 2.01 million passengers recorded in the same month in 2024.
Aircraft movement in airports managed by the CAAP dropped by nearly 14 percent to 191,746 in 2025 from 221,810 in 2024.
By airport, passenger demand was highest at Davao International Airport with 4.39 million passengers, increasing slightly from the previous year’s 4.34 million passengers.
Low-cost carrier Cebu Pacific carried the highest number of passengers at the airport with a combined 2.56 million, followed by 1.07 million carried by PAL Express, a unit of flag carrier Philippine Airlines (PAL).
Iloilo International Airport placed second with 3.10 million passengers, followed by Bacolod-Silay Airport with 2.08 million, Puerto Princesa International Airport with 2.02 million, and Daniel Z. Romualdez Airport in Tacloban with 1.65 million.
CAAP data excludes figures from airports managed by the private sector, including Ninoy Aquino International Airport, Mactan-Cebu International Airport, and Clark International Airport.
Based on data submitted by local and foreign airlines, the Civil Aeronautics Board (CAB) said total passenger volume in airports across the country reached a record 62.34 million in 2025, up four percent from 59.91 million passengers in 2024.
Last year, international passenger traffic reached 29.1 million while domestic passenger traffic stood at an all-time high of 33.24 million.
For now, it remains to be seen whether demand for air travel will be sustained this year as airlines had no choice but to raise ticket prices due to higher jet fuel costs.
The CAB earlier raised the passenger fuel surcharge that airlines may collect from passengers to Level 19 during the second half of April, adding as much as ₱1,834 for domestic flights and ₱15,397.15 for international flights.
It has since lowered the surcharge to Level 15 for May 16 to 31.
Meanwhile, the CAAP has also reduced the passenger service charge (PSC) at the airports it manages to cushion the impact of costlier fuel on travelers.
PSC, also referred to as terminal fees, are charges imposed on each departing passenger and are already included in the ticket upon booking.

Related Tags

Civil Aviation Authority of the Philippines (CAAP) Civil Aeronautics Board (CAB) passenger volume
ADVERTISEMENT
.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1561_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1562_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1563_widget.title }}

{{ articles_filter_1564_widget.title }}

.mb-article-details { position: relative; } .mb-article-details .article-body-preview, .mb-article-details .article-body-summary{ font-size: 17px; line-height: 30px; font-family: "Libre Caslon Text", serif; color: #000; } .mb-article-details .article-body-preview iframe , .mb-article-details .article-body-summary iframe{ width: 100%; margin: auto; } .read-more-background { background: linear-gradient(180deg, color(display-p3 1.000 1.000 1.000 / 0) 13.75%, color(display-p3 1.000 1.000 1.000 / 0.8) 30.79%, color(display-p3 1.000 1.000 1.000) 72.5%); position: absolute; height: 200px; width: 100%; bottom: 0; display: flex; justify-content: center; align-items: center; padding: 0; } .read-more-background a{ color: #000; } .read-more-btn { padding: 17px 45px; font-family: Inter; font-weight: 700; font-size: 18px; line-height: 16px; text-align: center; vertical-align: middle; border: 1px solid black; background-color: white; } .hidden { display: none; }
function initializeAllSwipers() { // Get all hidden inputs with cms_article_id document.querySelectorAll('[id^="cms_article_id_"]').forEach(function (input) { const cmsArticleId = input.value; const articleSelector = '#article-' + cmsArticleId + ' .body_images'; const swiperElement = document.querySelector(articleSelector); if (swiperElement && !swiperElement.classList.contains('swiper-initialized')) { new Swiper(articleSelector, { loop: true, pagination: false, navigation: { nextEl: '#article-' + cmsArticleId + ' .swiper-button-next', prevEl: '#article-' + cmsArticleId + ' .swiper-button-prev', }, }); } }); } setTimeout(initializeAllSwipers, 3000); const intersectionObserver = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { const newUrl = entry.target.getAttribute("data-url"); if (newUrl) { history.pushState(null, null, newUrl); let article = entry.target; // Extract metadata const author = article.querySelector('.author-section').textContent.replace('By', '').trim(); const section = article.querySelector('.section-info ').textContent.replace(' ', ' '); const title = article.querySelector('.article-title h1').textContent; // Parse URL for Chartbeat path format const parsedUrl = new URL(newUrl, window.location.origin); const cleanUrl = parsedUrl.host + parsedUrl.pathname; // Update Chartbeat configuration if (typeof window._sf_async_config !== 'undefined') { window._sf_async_config.path = cleanUrl; window._sf_async_config.sections = section; window._sf_async_config.authors = author; } // Track virtual page view with Chartbeat if (typeof pSUPERFLY !== 'undefined' && typeof pSUPERFLY.virtualPage === 'function') { try { pSUPERFLY.virtualPage({ path: cleanUrl, title: title, sections: section, authors: author }); } catch (error) { console.error('ping error', error); } } // Optional: Update document title if (title && title !== document.title) { document.title = title; } } } }); }, { threshold: 0.1 } ); function showArticleBody(button) { const article = button.closest("article"); const summary = article.querySelector(".article-body-summary"); const body = article.querySelector(".article-body-preview"); const readMoreSection = article.querySelector(".read-more-background"); // Hide summary and read-more section summary.style.display = "none"; readMoreSection.style.display = "none"; // Show the full article body body.classList.remove("hidden"); } document.addEventListener("DOMContentLoaded", () => { let loadCount = 0; // Track how many times articles are loaded const offset = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // Offset values const currentUrl = window.location.pathname.substring(1); let isLoading = false; // Prevent multiple calls if (!currentUrl) { console.log("Current URL is invalid."); return; } const sentinel = document.getElementById("load-more-sentinel"); if (!sentinel) { console.log("Sentinel element not found."); return; } function isSentinelVisible() { const rect = sentinel.getBoundingClientRect(); return ( rect.top < window.innerHeight && rect.bottom >= 0 ); } function onScroll() { if (isLoading) return; if (isSentinelVisible()) { if (loadCount >= offset.length) { console.log("Maximum load attempts reached."); window.removeEventListener("scroll", onScroll); return; } isLoading = true; const currentOffset = offset[loadCount]; window.loadMoreItems().then(() => { let article = document.querySelector('#widget_1690 > div:nth-last-of-type(2) article'); intersectionObserver.observe(article) loadCount++; }).catch(error => { console.error("Error loading more items:", error); }).finally(() => { isLoading = false; }); } } window.addEventListener("scroll", onScroll); });

Sign up by email to receive news.