















<!DOCTYPE html>
<html lang="en" class="govuk-template app-html-class">

<head>
  <meta charset="utf-8">

<title>Find a test centre for an HGV, bus or trailer MOT</title>


  <link rel="shortcut icon" href="/assets/images/favicon.ico" type="image/x-icon" />



  
<!--[if !IE 8]><!-->
       <link href="https://dk6b5kng1buz3.cloudfront.net/assets/nearest/all.css" rel="stylesheet">
  <!--<![endif]-->

  
  
  <!--[if IE 8]>
    <link href="https://dk6b5kng1buz3.cloudfront.net/assets/nearest/all-ie8.css" rel="stylesheet">
  <![endif]-->

  
  <!--[if lt IE 9]>
    <script src="https://dk6b5kng1buz3.cloudfront.net/assets/nearest/html5shiv.js"></script>
  <![endif]-->

  <link rel="icon" href="https://dk6b5kng1buz3.cloudfront.net/assets/nearest/images/favicon.ico" type="image/x-icon"/>
  <script src="https://dk6b5kng1buz3.cloudfront.net/assets/nearest/cookie-manager.js"></script>

  




</head>
<body class="govuk-template__body app-body-class" data-test="My value" data-other="report:details">
  <script>
    document.body.className = ((document.body.className) ? document.body.className + ' js-enabled' : 'js-enabled');
  </script>




<div class="text govuk-visually-hidden theme__cookie-success-message-grey" id="cookie-preference-success">
    <div class="govuk-width-container">
        <div class="govuk-!-padding-top-5  success-message" aria-labelledby="cm_cookie_notification radio-analytics-on-label radio-analytics-off-label" role="alert" tabindex="-1">
            <h3 class="govuk-heading-m">Your cookie settings were saved</h3>
            <p class="govuk-body">Government services may set additional cookies and, if so, will have their own cookie policy and banner.
            <br>
            <a href="/">Go to homepage</a></p>
        </div>
    </div>
</div>
<div class="govuk-visually-hidden theme__cookie-success-message-grey" id="accept-all-cookies-success">
    <div class="govuk-width-container">
        <div class="govuk-!-padding-top-5 govuk-!-padding-bottom-7">
            <span class="govuk-body"  >You’ve accepted all cookies. You can <a href="/cookie-preferences">change your cookie settings</a> at any time.</span>

            <span id="cookie-accept-all-success-banner-hide" class="govuk-body u-float-right"><a href="#">Hide</a></span>
        </div>
    </div>
</div>

<script type="text/javascript">
    document.getElementById('cookie-accept-all-success-banner-hide').onclick = function(){
        document.getElementById('accept-all-cookies-success').classList.add('govuk-visually-hidden');
    };
</script>

<form id="cm_cookie_notification" class="govuk-visually-hidden">


<div class="govuk-cookie-banner " role="region" aria-label="Cookies on Find a test centre for an HGV, bus or trailer MOT">
    
    

    <div class="govuk-cookie-banner__message govuk-width-container"
    >

    <div class="govuk-grid-row">
      <div class="govuk-grid-column-two-thirds">
        
        <h2 class="govuk-cookie-banner__heading govuk-heading-m">Cookies on Find a test centre for an HGV, bus or trailer MOT</h2>
        

        <div class="govuk-cookie-banner__content">
  <p class="govuk-body">We use some essential cookies to make this service work.</p>
  <p class="govuk-body">We’d also like to use analytics cookies so we can understand how you use the service and make improvements.</p>
</div>
      </div>
    </div>

      
      <div class="govuk-button-group">
        
          
            <button value="Accept all" type="submit" class="govuk-button js-show" data-module="govuk-button" id="cookie-accept-submit">
              Accept all cookies
            </button>
          
        
          
            
            
              
            
            <a class="govuk-link govuk-button" href="/cookie-preferences" id="set-cookie-preferences">Set cookie preferences</a>
          
        
      </div>
      
    </div>
  
</div>

</form>




  <a href="#main-content" class="govuk-skip-link">Skip to main content</a>





  <header class="govuk-header " role="banner" data-module="govuk-header">
  <div class="govuk-header__container govuk-width-container">
    <div class="govuk-header__logo">
      <a href="https://www.gov.uk" class="govuk-header__link govuk-header__link--homepage">
        <span class="govuk-header__logotype">
          <svg
            aria-hidden="true"
            focusable="false"
            class="govuk-header__logotype-crown"
            xmlns="http://www.w3.org/2000/svg"
            viewBox="0 0 132 97"
            height="30"
            width="36"
          >
            <path
              fill="currentColor" fill-rule="evenodd"
              d="M25 30.2c3.5 1.5 7.7-.2 9.1-3.7 1.5-3.6-.2-7.8-3.9-9.2-3.6-1.4-7.6.3-9.1 3.9-1.4 3.5.3 7.5 3.9 9zM9 39.5c3.6 1.5 7.8-.2 9.2-3.7 1.5-3.6-.2-7.8-3.9-9.1-3.6-1.5-7.6.2-9.1 3.8-1.4 3.5.3 7.5 3.8 9zM4.4 57.2c3.5 1.5 7.7-.2 9.1-3.8 1.5-3.6-.2-7.7-3.9-9.1-3.5-1.5-7.6.3-9.1 3.8-1.4 3.5.3 7.6 3.9 9.1zm38.3-21.4c3.5 1.5 7.7-.2 9.1-3.8 1.5-3.6-.2-7.7-3.9-9.1-3.6-1.5-7.6.3-9.1 3.8-1.3 3.6.4 7.7 3.9 9.1zm64.4-5.6c-3.6 1.5-7.8-.2-9.1-3.7-1.5-3.6.2-7.8 3.8-9.2 3.6-1.4 7.7.3 9.2 3.9 1.3 3.5-.4 7.5-3.9 9zm15.9 9.3c-3.6 1.5-7.7-.2-9.1-3.7-1.5-3.6.2-7.8 3.7-9.1 3.6-1.5 7.7.2 9.2 3.8 1.5 3.5-.3 7.5-3.8 9zm4.7 17.7c-3.6 1.5-7.8-.2-9.2-3.8-1.5-3.6.2-7.7 3.9-9.1 3.6-1.5 7.7.3 9.2 3.8 1.3 3.5-.4 7.6-3.9 9.1zM89.3 35.8c-3.6 1.5-7.8-.2-9.2-3.8-1.4-3.6.2-7.7 3.9-9.1 3.6-1.5 7.7.3 9.2 3.8 1.4 3.6-.3 7.7-3.9 9.1zM69.7 17.7l8.9 4.7V9.3l-8.9 2.8c-.2-.3-.5-.6-.9-.9L72.4 0H59.6l3.5 11.2c-.3.3-.6.5-.9.9l-8.8-2.8v13.1l8.8-4.7c.3.3.6.7.9.9l-5 15.4v.1c-.2.8-.4 1.6-.4 2.4 0 4.1 3.1 7.5 7 8.1h.2c.3 0 .7.1 1 .1.4 0 .7 0 1-.1h.2c4-.6 7.1-4.1 7.1-8.1 0-.8-.1-1.7-.4-2.4V34l-5.1-15.4c.4-.2.7-.6 1-.9zM66 92.8c16.9 0 32.8 1.1 47.1 3.2 4-16.9 8.9-26.7 14-33.5l-9.6-3.4c1 4.9 1.1 7.2 0 10.2-1.5-1.4-3-4.3-4.2-8.7L108.6 76c2.8-2 5-3.2 7.5-3.3-4.4 9.4-10 11.9-13.6 11.2-4.3-.8-6.3-4.6-5.6-7.9 1-4.7 5.7-5.9 8-.5 4.3-8.7-3-11.4-7.6-8.8 7.1-7.2 7.9-13.5 2.1-21.1-8 6.1-8.1 12.3-4.5 20.8-4.7-5.4-12.1-2.5-9.5 6.2 3.4-5.2 7.9-2 7.2 3.1-.6 4.3-6.4 7.8-13.5 7.2-10.3-.9-10.9-8-11.2-13.8 2.5-.5 7.1 1.8 11 7.3L80.2 60c-4.1 4.4-8 5.3-12.3 5.4 1.4-4.4 8-11.6 8-11.6H55.5s6.4 7.2 7.9 11.6c-4.2-.1-8-1-12.3-5.4l1.4 16.4c3.9-5.5 8.5-7.7 10.9-7.3-.3 5.8-.9 12.8-11.1 13.8-7.2.6-12.9-2.9-13.5-7.2-.7-5 3.8-8.3 7.1-3.1 2.7-8.7-4.6-11.6-9.4-6.2 3.7-8.5 3.6-14.7-4.6-20.8-5.8 7.6-5 13.9 2.2 21.1-4.7-2.6-11.9.1-7.7 8.8 2.3-5.5 7.1-4.2 8.1.5.7 3.3-1.3 7.1-5.7 7.9-3.5.7-9-1.8-13.5-11.2 2.5.1 4.7 1.3 7.5 3.3l-4.7-15.4c-1.2 4.4-2.7 7.2-4.3 8.7-1.1-3-.9-5.3 0-10.2l-9.5 3.4c5 6.9 9.9 16.7 14 33.5 14.8-2.1 30.8-3.2 47.7-3.2z"
            ></path>
            <image src="/assets/images/govuk-logotype-crown.png" xlink:href="data:," display="none" class="govuk-header__logotype-crown-fallback-image" width="36" height="32"></image>
          </svg>
          <span class="govuk-header__logotype-text">
            GOV.UK
          </span>
        </span>
        
      </a>
    </div>
    
    <div class="govuk-header__content">
    
    <a href="https://find-test-centre-hgv-bus-trailer-mot.service.gov.uk" class="govuk-header__link govuk-header__link--service-name">
      Find a test centre for an HGV, bus or trailer MOT
    </a>
    
    
    </div>
    
  </div>
</header>

  

<div class="govuk-width-container ">



  <div class="govuk-phase-banner">
  <p class="govuk-phase-banner__content">
    <strong class="govuk-tag govuk-phase-banner__content__tag">
      alpha
    </strong>
    <span class="govuk-phase-banner__text">
      This is a new service – your <a class="govuk-link" href="https://www.gov.uk/done/find-mot-test-centre-hgv-bus-trailer">feedback</a> will help us to improve it.
    </span>
  </p>
</div>




  <a href="https://www.gov.uk/find-mot-test-centre-hgv-bus-trailer" class="govuk-back-link" id="back-link">Back</a>



 <main class="govuk-main-wrapper govuk-main-wrapper--auto-spacing" id="main-content" role="main">




  <div class="govuk-grid-row">
    <div class="govuk-grid-column-full">

      

      <h1 class="govuk-heading-xl">
        Find a test centre for an HGV, bus or trailer MOT
      </h1>
      <div class="postcode-search-form" data-module="track-submit" data-track-category="postcodeSearch:place" data-track-action="postcodeSearchStarted">
        <form action="" method="GET" id="local-locator-form" class="location-form">

          <fieldset class="govuk-fieldset dvsa-panel__highlight">
  
  <legend class="govuk-fieldset__legend govuk-fieldset__legend--m govuk-visually-hidden">
  
    Postcode lookup
  
  </legend>
  


          
            

<div class="govuk-form-group">
  <label class="govuk-label govuk-label" for="postcode">
    Enter a postcode
  </label>

  
  
  <div id="postcode-hint" class="govuk-hint">
    For example SW1A 2AA
  </div>

<input class="govuk-input" id="postcode" name="postcode" type="text" aria-describedby="postcode-hint">
</div>

          

          

  
    
  

<button type="submit" class="govuk-button" data-module="govuk-button" id="postcode-find-button">
  Find
</button>

          
          <p class="govuk-body">
            <a class="govuk-link" target="_blank" id="postcode-finder-link" rel="external" href="http://www.royalmail.com/find-a-postcode">Find a postcode on Royal Mail's postcode finder</a>
          </p>
          

</fieldset>

        </form>
      </div>

    </div>
  </div>

</main>
</div>

  <footer class="govuk-footer " role="contentinfo">
  <div class="govuk-width-container ">
    
    <div class="govuk-footer__meta">
      <div class="govuk-footer__meta-item govuk-footer__meta-item--grow">
        
          <h2 class="govuk-visually-hidden">Support links</h2>
          
            <ul class="govuk-footer__inline-list">
              
                <li class="govuk-footer__inline-list-item">
                  <a class="govuk-footer__link" href="/accessibility">
                    Accessibility
                  </a>
                </li>
              
                <li class="govuk-footer__inline-list-item">
                  <a class="govuk-footer__link" href="/privacy">
                    Privacy
                  </a>
                </li>
              
                <li class="govuk-footer__inline-list-item">
                  <a class="govuk-footer__link" href="/cookies">
                    Cookies
                  </a>
                </li>
              
            </ul>
          
          
        
        <svg
          aria-hidden="true"
          focusable="false"
          class="govuk-footer__licence-logo"
          xmlns="http://www.w3.org/2000/svg"
          viewBox="0 0 483.2 195.7"
          height="17"
          width="41"
        >
          <path
            fill="currentColor"
            d="M421.5 142.8V.1l-50.7 32.3v161.1h112.4v-50.7zm-122.3-9.6A47.12 47.12 0 0 1 221 97.8c0-26 21.1-47.1 47.1-47.1 16.7 0 31.4 8.7 39.7 21.8l42.7-27.2A97.63 97.63 0 0 0 268.1 0c-36.5 0-68.3 20.1-85.1 49.7A98 98 0 0 0 97.8 0C43.9 0 0 43.9 0 97.8s43.9 97.8 97.8 97.8c36.5 0 68.3-20.1 85.1-49.7a97.76 97.76 0 0 0 149.6 25.4l19.4 22.2h3v-87.8h-80l24.3 27.5zM97.8 145c-26 0-47.1-21.1-47.1-47.1s21.1-47.1 47.1-47.1 47.2 21 47.2 47S123.8 145 97.8 145"
          />
        </svg>
        <span class="govuk-footer__licence-description">
          All content is available under the
          <a
            class="govuk-footer__link"
            href="https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/"
            rel="license"
          >Open Government Licence v3.0</a>, except where otherwise stated
        </span>
      </div>
      <div class="govuk-footer__meta-item">
        <a
          class="govuk-footer__link govuk-footer__copyright-logo"
          href="https://www.nationalarchives.gov.uk/information-management/re-using-public-sector-information/uk-government-licensing-framework/crown-copyright/"
        >© Crown copyright</a>
      </div>
    </div>
  </div>
</footer>








 
  <script src="https://dk6b5kng1buz3.cloudfront.net/assets/nearest/all.js"></script>
  <script>
    window.GOVUKFrontend.initAll()
    window.cookieManager.init({
            "delete-undefined-cookies": true,
            "user-preference-cookie-name": "cm-user-preferences",
            "user-preference-cookie-secure": false,
            "user-preference-saved-callback" : function () {
                document.getElementById('cookie-preference-success').classList.remove('govuk-visually-hidden');
                window.scrollTo(0,0);
            } ,
            "user-preference-cookie-expiry-days": 365,
            "user-preference-configuration-form-id": "cookie-manager-form",
            "cookie-banner-id": "cm_cookie_notification",
            "cookie-banner-visibility-class": "govuk-visually-hidden",
            "cookie-banner-visible-on-page-with-preference-form": false,
            "cookie-banner-saved-callback": function () {
                document.getElementById('accept-all-cookies-success').classList.remove('govuk-visually-hidden');
            },
            "set-checkboxes-in-preference-form": true,
            "cookie-manifest": [
                {
                    "category-name": "essential",
                    "optional": false,
                    "cookies": [
                        "cm-user-preferences",
                        "incap_ses_",
                        "nlbi_",
                        "visid_incap_"
                    ]
                },
                {
                    "category-name": "analytics",
                    "optional": true,
                    "cookies": [
                        "_ga",
                        "_gat",
                        "_gid"
                    ]
                }
            ]
        });
  </script>



</body>
</html>
