✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount

SleekRank for Amtrak route pages

The Amtrak GTFS feed carries every route, station, and trip. SleekRank renders each line as its own WordPress page with stops, schedule windows, equipment, and onboard amenities, all from one source.

€50 off for the first 100 lifetime licenses!

SleekRank for Amtrak route pages

Amtrak route queries are name-specific, not network-wide

People do not search for 'Amtrak schedule', they search for 'Acela schedule', 'Empire Builder route map', or 'California Zephyr stops'. Each query points to a single named line out of roughly 40 long-distance and state-supported routes. The Amtrak.com booking tool ranks for transactional queries, but the long-tail content questions (which stations does the Crescent stop at, what equipment runs on the Sunset Limited, where does the Coast Starlight cross the Cascade Range) live in fragmented blog posts and community wikis.

SleekRank reads the Amtrak GTFS publication or a curated CSV of routes and turns each line into /amtrak/{slug}/. The base page renders the route name, endpoints, frequency, total run time, equipment type, onboard amenities, and the ordered list of stations with arrival windows. Selector mappings handle the headline numbers; list mappings render the station table and the equipment roster. A map image generated from the route geometry sits in the hero.

The Empire Builder page lists 41 stops from Chicago to Seattle and Portland, the Acela page shows 16 Northeast Corridor stations with sub-three-hour Boston-Washington timings, and the Sunset Limited covers 22 stations across the southern tier. Three queries, three URLs, one feed.

Workflow

From Amtrak GTFS feed to per-route pages

1

Pull the GTFS feed

Download the Amtrak GTFS publication, extract routes.txt and stops.txt, and join trips to build the ordered station list per route. Save as a JSON file with one row per route or expose via REST.
2

Build the base page

One WordPress page with hero map, endpoints block, stop list, frequency and run-time stats, equipment card, onboard amenities, and a frequency-asked block. This becomes every route's template.
3

Wire the mappings

Tag mappings for route name and endpoints. Selector mappings for frequency, total run time, equipment, and route map URL. List mappings for the station table and amenities list. Meta mapping for the description that names both endpoints.
4

Refresh and crawl

Set cacheDuration to 86400 because the schedule data shifts seasonally, flush rewrites with WP-CLI, and verify each /amtrak/{slug}/ URL appears in the sitemap with the route name in title and meta description.

Data in, pages out

From Amtrak GTFS feed to per-route pages

One row per route with name, endpoints, frequency, equipment, and the station list. SleekRank renders each as its own indexable URL.
Data source: GTFS / CSV (Amtrak public feed)
slug routeName endpoints frequency stations
empire-builder Empire Builder Chicago to Seattle / Portland Daily 41
acela Acela Boston to Washington DC Multiple daily 16
california-zephyr California Zephyr Chicago to Emeryville Daily 35
sunset-limited Sunset Limited New Orleans to Los Angeles Tri-weekly 22
coast-starlight Coast Starlight Seattle to Los Angeles Daily 28
URL pattern: /amtrak/{slug}/
Generated pages
  • /amtrak/empire-builder/
  • /amtrak/acela/
  • /amtrak/california-zephyr/
  • /amtrak/sunset-limited/
  • /amtrak/coast-starlight/

Comparison

Booking widget vs per-route indexable pages

Booking tool plus scattered blog posts

  • Booking flow ranks for transactional queries, not route research
  • Stop lists and equipment details live across multiple blog URLs
  • Schedule data goes stale when posts are not edited
  • No canonical URL for 'Empire Builder' as a research entity
  • Schema for individual routes cannot vary from a generic page
  • Onboard amenities and equipment are not exposed as crawlable HTML

SleekRank

  • One indexable URL per Amtrak route in the feed
  • Stop list, equipment, and amenities rendered as crawlable text
  • Route map image fed from generated GeoJSON
  • TrainTrip and TouristTrip schema populated per route
  • Per-route OG image with route name and endpoints
  • Sitemap registers every route URL with last-modified dates

Features

What SleekRank gives you for Amtrak route pages

Station stop list

List mappings render every station the route serves in order, with arrival or departure windows. Each station name becomes an internal link to a sibling /amtrak-stations/{slug}/ page when that group exists.

Equipment per route

Store the assigned consist (Superliner, Viewliner II, Amfleet, Avelia Liberty) per route and render it in the body so equipment-specific queries land on the right line page rather than a generic fleet article.

Route map in hero

Generate a static map image from the route's GeoJSON once per refresh and inject the URL via a selector mapping. The image gives the page a hero visual that matches the body content exactly.

Use cases

Who builds Amtrak route pages with SleekRank

Rail travel publishers

Niche train-travel sites that want a long-form page for every named Amtrak line, ranking for 'Empire Builder route map' and 'Coast Starlight schedule' alongside booking aggregators.

Multi-modal travel hubs

Travel sites that cover rail plus regional buses and ferries, building parallel page groups so each Amtrak route page links to connecting Greyhound and FlixBus lines at endpoint stations.

Rail advocacy groups

Non-profits and rail-passenger associations that publish per-route advocacy pages with on-time stats, equipment age, and ridership trends pulled from the same dataset.

The bigger picture

Why Amtrak routes reward per-line programmatic pages

The Amtrak network is small enough to feel finite (around 40 named lines) and rich enough to make each one its own research subject. Travelers planning a trip do not search for 'Amtrak', they search for the specific train that fits their corridor, and each line has distinct equipment, frequency, run time, scenery, and onboard culture. Booking tools answer the 'how much and when' question well but cannot rank for the upstream research queries that drive ticket sales weeks earlier.

Per-route pages capture that research traffic at the URL level, with stop lists, equipment, run times, and seasonal notes rendered as crawlable HTML rather than buried in JavaScript. The GTFS feed updates predictably and the route set itself rarely changes, so the maintenance load is mostly checking that the daily refresh ran and that newly-added state-supported routes are picked up. Internal linking between route pages, station pages, and city guide pages compounds topical authority for the whole rail corner of the site without any per-page editorial work after the templates are in place.

Questions

Common questions about SleekRank for Amtrak route pages

Yes. Amtrak publishes a GTFS feed alongside its developer-facing endpoints, and several third-party mirrors (TransitFeeds, Mobility Database) cache it for easier ingestion. The feed includes routes, trips, stops, stop_times, and calendar exceptions, which is everything a route page needs except the equipment assignment and amenities (those come from a small editorial CSV joined by route ID).

 

GTFS trips reference a sequence of stops via stop_times.stop_sequence. Pick the canonical trip per route (typically the daily eastbound or westbound that hits every station) and emit stops in sequence order. State-supported routes that branch (Lincoln Service to Quincy versus Springfield) need a per-direction branch table or a shared canonical list with branch flags.

 

Thruway services appear in the GTFS feed and can either be rolled into the originating train's page (Coast Starlight page lists Thruway buses from Sacramento and Las Vegas) or surfaced as their own /thruway/{slug}/ group. The choice depends on whether the audience treats them as Amtrak service or as separate bus connections.

 

Yes, but use a separate slower refresh. Pull on-time performance from the Amtrak Reporting page or a community dataset like JuckinsRail on a daily cadence, store as a per-route average over the trailing 30 days, and render via selector mapping. Real-time train positions are also available but belong on a different page group at a much faster cache window.

 

Amtrak issues schedule revisions a few times per year and announces detours during construction season. The GTFS feed reflects the current published schedule, so the daily refresh picks up changes automatically. Pin an editorial-only field for 'service alerts' per route so disruptions can surface in a banner without waiting for the next data pull.

 

Yes. Schema.org TrainTrip is the right type, with departureStation, arrivalStation, provider, and trainName fields. Render the JSON-LD via a tag mapping on the base page so each route emits its own structured data. Add Schema.org Place for major endpoint cities to help Google associate the route with its geography.

 

Yes, by running a parallel page group at /amtrak-state/{slug}/ that filters the route list by states served. The same underlying dataset feeds both groups, and the state pages internal-link to every route that touches them. This is a clean way to capture 'Amtrak in Montana' style searches without duplicating route content.

 

Daily refresh is enough for almost everything that changes (schedule tweaks, equipment swaps, station openings). Major route launches (Borealis, Mardi Gras) are predictable and can be added to the source manually a few weeks before the launch date so the page is live when search demand spikes.

 

Pricing

More than 1000+
happy customers

Explore our flexible licensing options tailored to your needs. Upgrade your license anytime to access more features, or opt for a lifetime license for ongoing value, including lifetime updates and lifetime support. Our hassle-free upgrade process ensures that our platform can grow with you, starting from whichever plan you choose.

Starter

€99

EUR

per year

Get started

further 30% launch-discount applied during checkout for existing customers.

  • 3 websites
  • 1 year of updates
  • 1 year of support

Pro

€179

EUR

per year

Get started

further 30% launch-discount applied during checkout for existing customers.

  • Unlimited websites
  • 1 year of updates
  • 1 year of support

Lifetime ♾️

Launch Offer

€299

€249

EUR

once

Get started

further 30% launch-discount applied during checkout for existing customers.

  • Unlimited websites
  • Lifetime updates
  • Lifetime support

...or get the Bundle Deal
and save €250 🎁

The Bundle (unlimited sites)

Pay once, own it forever

Elevate your WordPress site with our exclusive plugin bundle that includes all of our premium plugins in one package. Enjoy lifetime updates and lifetime support. Save significantly compared to buying plugins individually.

What’s included

  • SleekAI

  • SleekByte

  • SleekMotion

  • SleekPixel

  • SleekRank

  • SleekView