Independent public comparison
We gave Air Canada and WestJet the same task: book one adult from Toronto to Vancouver in economy on 20 October 2026, continue as a guest and stop before payment. We are not affiliated with either airline. This records one public journey on 25 September 2026, not the whole customer experience.
The flight test
One adult, one-way, Toronto to Vancouver, Tuesday 20 October 2026, economy, paying with money rather than points.
Air Canada Standard and WestJet Econo: both included one carry-on; a checked bag and advance seat selection cost extra.
Standard total: C$323.70. The selected non-stop departed at 06:15 and arrived at 08:07.
Econo total: C$312.40. The selected non-stop departed at 08:15 and arrived at 10:30.
The passenger-details forms. We did not enter payment details, authorise payment or buy a flight.
Desktop Chrome with additional checks at a 390-pixel phone width. Prices and availability can change.
The 30-second result
Air Canada made the fare easier to trust. WestJet was C$11.30 cheaper, then added more decisions.
Air Canada wins this journey narrowly. Its Standard fare cost more, but the review step itemised the C$323.70 total, kept the 24-hour refund rule visible and moved directly into a clear passenger sequence. WestJet’s Econo fare was cheaper and its summary was strong, but a fare upsell, a mandatory cancellation-option choice and an automatic sign-in prompt interrupted the path before guest details.
Both searches worked, but the cheapest headline fares were not comparable
Air Canada returned 20 flights and WestJet returned 58. Both said prices included taxes and fees. The first low fares on each site removed the carry-on bag, so we compared the next tier that restored it.
Air Canada’s C$251 Basic fare excluded a carry-on, changes and cancellation. Standard appeared at C$324 in the fare picker and settled at C$323.70 on review. WestJet’s C$250.25 UltraBasic also excluded a carry-on and offered no changes, refunds or rewards. Econo restored the carry-on and cost C$312.40.


Round edge / Air Canada
The smaller result set was easier to scan, while still exposing the information needed to compare a non-stop flight.
Air Canada explained the price; WestJet made the cheaper fare work harder
Air Canada’s fare panel put Basic, Standard and Flex conditions side by side. After Standard was selected, a separate dialog offered Flex for another C$62. It was an interruption, but the decline route was direct and the Standard choice survived.

WestJet’s Econo fare was C$11.30 cheaper than Air Canada Standard. Selecting it opened an EconoFlex upsell, and the following summary required a choice between 100% cancellation cover for C$75, 80% cover for C$50 or declining the add-on. The choices were clear, but Continue stayed blocked until one was selected. The core fare decision had become three decisions.

Round edge / Air Canada
WestJet won on the comparable fare. Air Canada won on decision economy: fewer choices stood between fare selection and passenger details.
Air Canada treated guest checkout as the main route
Air Canada’s review showed transportation at C$237, taxes and fees at C$86.70, and a C$323.70 total. It also repeated the 24-hour refund promise. A progress tracker—Review, Passengers, Seats, Options, Payment—made the remaining work predictable.

WestJet’s summary also kept the flight, fare and total visible. The difference was the transition: it opened a sign-in dialog before offering “Continue as guest”. Guest checkout existed, but it was visually secondary to account access. An optional account-creation area then reappeared within the details form.
Round edge / Air Canada
The staged checkout, itemised price and direct guest path made the next commitment easier to understand.
Air Canada’s validation told us how to recover
Submitting Air Canada’s empty passenger form produced specific inline guidance: first name required at least one alphabetic character, last name required at least two, and gender, date of birth, email and phone each had their own requirement. Focus moved to the first-name field. That is a useful recovery path, although booking consent and optional promotional email language sat together closely enough to deserve a clearer separation.

WestJet focused the title control, but repeated the generic message “This field is required” across the form. That identifies absence without explaining expected formats or letting a screen-reader user distinguish messages out of context. We stopped after the safe empty-form test and did not submit passenger details.
Round edge / Air Canada
Both forms made missing fields visible. Air Canada gave more precise instructions and focused the first repair.
WestJet responded faster; both landing pages loaded slowly
Real Chrome data for the exact public landing URLs shows different weaknesses: Air Canada’s interaction delay was poor, while WestJet’s largest content took more than four seconds to appear.
These are 75th-percentile Chrome UX Report results for the exact Air Canada and WestJet landing URLs from 27 August to 23 September 2026. They describe those URLs, not the session-dependent results or passenger forms. Google’s good thresholds are LCP at or below 2.5 seconds, INP at or below 200 milliseconds and CLS at or below 0.10.
Mobile PageSpeed checks on 25 September scored Air Canada 94 for accessibility and 77 for best practices; WestJet scored 100 and 50. Air Canada’s run flagged positive tabindex, target size and visible-label/name mismatches. WestJet’s run found one visible-label/name mismatch, while its quality checks reported console and third-party-cookie issues. The lab diagnostics also pointed to late LCP discovery and image delivery on both landing pages. Automated scores are useful leads, not proof of accessibility or WCAG conformance.
All ten Nielsen usability heuristics
Keep progress and totals visible.
Air Canada’s five-stage tracker and WestJet’s persistent summary both helped; Air Canada itemised the total more clearly.
Describe what a fare permits.
Both translated tier names into bags, changes, seats and refunds at the decision point.
Do not make an optional add-on a mandatory choice.
WestJet blocked Continue until cancellation cover was accepted or declined.
Make guest checkout a normal path.
Air Canada proceeded directly; WestJet inserted sign-in before exposing its guest option.
Keep the selected itinerary visible.
Both repeated dates, airports, times and total before passenger details.
Compare tiers side by side.
Both did this well, although repeated upsells forced people to revisit the decision.
Support direct guest progress.
Air Canada required fewer detours. WestJet gave flexible flight choice but added checkout steps.
Keep protection products subordinate.
Two WestJet upsell moments competed with the flight purchase.
Name the repair, not only the absence.
Air Canada’s field-specific errors were more actionable than WestJet’s repeated generic message.
Explain restrictions before payment.
Both exposed the essential fare conditions; Air Canada also repeated its 24-hour refund rule.
What we would change first
Make cancellation cover optional in behaviour as well as language.
What
Allow Continue without forcing a radio choice, with no cover as the neutral default.
Where
The trip summary after Econo selection.
Why
An add-on should not stop progress through the core booking.
Measure
Time on summary, cover reversals, exits and progression to passenger details.
Profile the work behind slow interactions.
What
Reduce long main-thread tasks and unnecessary scripts around search controls.
Where
The public booking landing page and shared booking components.
Why
Phone p75 INP was 434ms and desktop was 343ms.
Measure
Template-level p75 INP beside completed searches and fare selections.
Offer sign in and guest checkout as peers.
What
Show both routes in the page flow without an automatic modal.
Where
Between the trip summary and passenger details.
Why
The current dialog interrupts people who do not need an account.
Measure
Dialog dismissals, guest progression and sign-in recovery.
Make every error unique and directional.
What
Use specific inline messages, focus the first invalid field and link a summary to each error.
Where
The guest passenger-details step.
Why
Air Canada partly does this; WestJet’s repeated message gives less recovery context.
Measure
Repeat errors, correction time and passenger-step completion.
What this public comparison cannot see
This test covered one date, route, fare and device session. It did not include loyalty status, checked bags, seat selection, disrupted travel, payment authorisation or a completed booking. The two selected flights also departed at different times, so the fare comparison is about the nearest equivalent bundle rather than identical inventory.
We cannot say which journey converts better. With GA4, Search Console and Microsoft Clarity connected, UX Robot could compare search completion, fare-tier reversals, exits at each upsell, passenger-form errors and progression to payment.