You can calculate your head info in middleware depending on which route you're in. Then you can store this data in your vuex or pass it as a prop to the page. In your page you can grab this data in asyncData hook. An example of head colculation would be: