XooCode(){

MoveAction

MoveAction is an Action subtype for physical movement between places: travelling, arriving, departing. Direct subtypes are TravelAction, ArriveAction, and DepartAction. It adds two properties: fromLocation (the origin) and toLocation (the destination).

MoveAction is used in travel activity streams and in Trip-related markup, though for reservation-based travel the Flight, TrainTrip, and BoatTrip types already carry origin, destination, and times directly.

Full example of schema.org/MoveAction json-ld markup

The markup is verified as valid with Rich Results Test from Google.

Highlight legend:Required by GoogleRecommendedOptional
schema.org/MoveAction
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "TravelAction",
  "name": "Travel from Copenhagen to Oslo",
  "agent": { "@type": "Person", "name": "Nora Lindgren" },
  "fromLocation": { "@type": "Place", "name": "Copenhagen", "address": { "@type": "PostalAddress", "addressCountry": "DK" } },
  "toLocation": { "@type": "Place", "name": "Oslo", "address": { "@type": "PostalAddress", "addressCountry": "NO" } },
  "startTime": "2026-11-17T16:30:00+01:00",
  "endTime": "2026-11-18T09:45:00+01:00",
  "actionStatus": "https://schema.org/CompletedActionStatus"
}
</script>

Minimal valid version

The smallest markup that still produces a valid MoveAction entity. Use it as the floor. Reach for the advanced example above when you want search engines and AI agents to understand more about your content.

schema.org/MoveAction (minimal)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "TravelAction",
  "agent": { "@type": "Person", "name": "Nora Lindgren" },
  "fromLocation": { "@type": "Place", "name": "Copenhagen" },
  "toLocation": { "@type": "Place", "name": "Oslo" }
}
</script>

Google rich results this unlocks

Markup matching this example makes your page eligible for the following Google Search rich results. The primary target drives the required / recommended property classification in the advanced code block above.

  • No dedicated rich result (use Trip types for reservations)
    Google docs

Common MoveAction mistakes

Mistakes that pass validation but silently fail to earn rich results or mislead consumers walking the graph. Avoid these and your markup will be ahead of most sites in the wild.

  1. 01

    MoveAction in place of Flight/TrainTrip for reservations

    Wrong
    TravelAction with fromLocation/toLocation instead of a Flight or TrainTrip
    Right
    For booked travel, use Flight/TrainTrip/BusTrip/BoatTrip which expose stations, terminals, and carrier information

    Gmail and Google Search expect reservation markup through the Trip types, not MoveAction. MoveAction is better suited to activity streams and general travel logs.

About the example data

Nora Lindgren travelling from Copenhagen to Oslo for a concert, the journey represented by the BoatTrip stub.

Comments

Loading comments...

Leave a comment