Do NOT hardcode Urls that deliver webpages. This is prevelance in those that have external data but don't implement in an Umbraco way. Use ContentFinders instead.

Hardcoding Routes

Common Mistake for Routing Content

Its common to see people bake Urls into their Umbraco. In the example below its '/product/', which can never be changed by a Content Editor or for that matter be seen by the Content Editor in the local nodes.

RouteTable.Routes.MapUmbracoRoute(
  "product",
  "product/{product}",
  new
  {
    controller = "Product",
    action = nameof(ProductController.Index)
  },
  new BaseVirtualHander(_umbContextFactory, _viewService)
);

Its perfectly fine to use MvcRoutes for non-local pages like robots.txt, sitemap.xml or any Api end points you might want.