This guide covers how to build a logistics company website from an empty domain to a site that brings in quote requests. It is written for the person who will actually own it, which in a freight business is usually an operations manager rather than a developer. It assumes you have a trading name, a handful of services you want enquiries for, and no appetite for a six-month build. It does not assume you can write code.
The seven steps below are in build order. Logistics website development goes wrong in a predictable way: people start with the theme and the hero image and finish without ever deciding what the site is supposed to get them. So the first step has nothing to do with WordPress.
Step 1: Decide what the site is for before you build a logistics company website
A freight site can do three jobs. Most do all three badly, because nobody chose which one comes first.
| The job | Who is reading | What they need in the first minute | How you know it worked |
|---|---|---|---|
| Win direct enquiries | A shipper or a consumer who needs something moved now | Whether you cover the lane, roughly what it costs, how to ask | Quote requests arriving in an inbox |
| Qualify you to a procurement team | A logistics manager screening you before a bid | Operating authority, insurance, certifications, equipment, locations, who runs the company | Shortlist invitations and RFP packets |
| Recruit drivers and staff | A driver comparing you with four other carriers | Pay structure, home time, equipment age, how to apply in one sitting | Completed applications, not page views |
Pick one as primary. The other two still get pages; they just stop competing for the homepage and for your attention. In practice the choice follows the business model.
- Courier, same-day and moving companies sell on instant enquiry. The quote is the product and it belongs above the fold.
- Asset-based carriers and forwarders sell on credibility. Nobody awards a lane off a web form, so the site’s job is to survive a procurement screen and get you into the conversation.
- Growing fleets often have the opposite constraint: freight they cannot cover for want of drivers. Then recruitment is the primary job and it deserves the second navigation slot, not a link in the footer.
Write the answer down in one sentence before you buy a domain. Every later decision — which pages exist, what the header says, which form you spend effort on — gets easier and faster once that sentence exists. If you want to see how operators of every size order the same page against the same decision, the patterns in our walkthrough of fourteen logistics website examples are the quickest way to calibrate before you commit.
Step 2: Domain, hosting and the WordPress install
This step is mechanical and takes an afternoon. The only decisions that matter later are the ones that are expensive to reverse.
Domain
Use the trading name customers already say on the phone. Resist the urge to buy a keyword domain alongside it and run two sites — split domains split every link and every ranking signal you will earn over the next two years. One domain, one site. If you own keyword variants defensively, point them at the main domain with a redirect and leave them there.
Hosting
Ignore the speed numbers in hosting adverts; they are measured on an empty install. The things that will actually cost you money on a freight site are these:
- Daily off-server backups you can restore yourself. A broken site on a Friday afternoon is a weekend of missed quote requests.
- A staging site. You will want to try a new service page or a plugin update without doing it on the live site in front of customers.
- A current PHP version and a host that updates it. Old PHP is the most common reason a theme or plugin suddenly misbehaves.
- Transactional email that is not the web server. This is the one people skip, and it is the one that silently loses leads — see the note at the end of this step.
The install itself
Most hosts have a one-click WordPress installer; if yours does not, the official WordPress installation documentation is the reference. Once it is up, change four settings before you write a word of content:
- Force HTTPS. Shippers paste commercial detail into your forms. A browser warning on the quote page ends the enquiry.
- Set permalinks to post name under Settings, Permalinks. Changing this after you have pages indexed means a redirect map you did not need.
- Set the site timezone to the timezone your dispatch desk works in. Form timestamps and scheduled posts both read from it.
- Set the site title and tagline to the trading name and what you move. On most WordPress sites that pair becomes the homepage browser title, which is also what appears in search results.
The email problem, stated plainly. WordPress sends form notifications through the web server by default, and shared web servers have poor sending reputations. The failure mode is not an error message — it is a quote request that lands in a spam folder, or nowhere, with the website reporting success to the customer. Install an SMTP plugin and route notifications through a real mail service before you publish the form, then send yourself a test from the live site, not from staging. Transport company website setup fails at this line more often than at any other.
Step 3: Choosing a logistics theme
A generic business theme will give you Home, About, Services and Contact. That is a brochure. A freight buyer is looking for specific pages, and their absence reads as a small operation that has not been screened before.
| Page a freight buyer looks for | Why they look for it |
|---|---|
| Service pages with real specification | They need to know what equipment, what weights, what geography — not that you offer “reliable solutions” |
| Fleet or equipment | Capacity and equipment age are a proxy for whether you can actually cover the freight |
| Certifications and authority | Compliance screening happens before price. Missing credentials end the conversation early |
| Locations and service areas | The first question is always whether you cover the lane |
| Leadership and company profile | Procurement wants a named human who is accountable |
| Careers | Drivers are a second audience with a completely different funnel |
| Quote or enquiry form on every service page | Interest decays. The ask has to be where the interest is |
You can build all of that on a general theme by hand. The reason to start from an industry theme is that the page templates already exist, so the work becomes writing rather than designing. Our own Moovit logistics and transportation WordPress theme is built for exactly this list: it is aimed at freight forwarding, cargo, courier, moving, warehousing and trucking businesses, and it ships company profile, fleet, service offerings with detailed specifications, certifications, partners, mission and values, locations and service areas with Google Maps, leadership, careers and contact templates — eight pre-built homepages and fifty-seven page templates in total, with one-click homepage import. Quote request forms and service inquiry management are built in, and the Scheduled plugin is included for booking calendars and automated booking confirmations. For other industry themes in the same catalogue, the business and industry theme archive is the place to browse.
Two honest caveats about starting from any pre-built theme, ours included. One-click import gives you a structure, not a finished site: every page still needs your lanes, your equipment and your terms written into it, and that writing is the bulk of the work. And demo images are not included with a theme purchase — they are licensed for the demo only, so budget for photography of your own yard, trucks and people.
We also do not publish speed figures for our themes, and you should be sceptical of anyone who does. What a page scores depends on your host, your images, your plugins and how you build the page — the theme is one input of four. Measure your own site after launch against the Core Web Vitals definitions and fix what you find, rather than trusting a number from a vendor’s demo.
One decision inside this step does bind you: the page builder. Moovit supports three paths — the included Aheto drag-and-drop builder with its one-click templator, full Elementor integration with premade blocks, and native Gutenberg. All three work without code, but builder markup is only portable within that builder, so pick one and keep the whole site on it. Mixing them means the next person to edit a page has to learn whichever one that page happened to be built in. Our walkthrough of the Elementor route for a logistics site goes through that choice in detail, including when Elementor is the wrong answer.
Step 4: Service pages that rank
This is where most of the ranking value on a freight site lives, and it is the step people compress into a single Services page with six paragraphs. One page per service, each one specific enough to answer a buyer’s question without an email, is the whole game.
The reason is mechanical. Nobody searches for “logistics services”. They search for LTL freight from a named region, refrigerated transport of a named commodity, same-day courier in a named city, bonded warehousing near a named port. A page that tries to cover all of it matches none of it well. A page about one service, with the specification on it, matches the query and reads as competence.
The skeleton that works
- What the service is, in one sentence, using the words a customer would use rather than internal shorthand.
- Who it is for and who it is not. Saying what you do not take is the fastest trust signal on a freight site and it filters out the enquiries you would have declined anyway.
- The specification. Equipment, weight and dimension limits, geography, transit times, temperature range, hazmat endorsements, hours of operation. This is the part competitors leave blank, and it is the part that earns the ranking.
- What you need from the customer to price it. Setting this out before the form reduces the back-and-forth on every enquiry that follows.
- The shape of the price, not the price. What it is based on — weight, distance, pallet space, waiting time — and which accessorials exist. Rates move; the pricing logic does not.
- Proof. A named client, a volume you handle, a certification that applies to this service specifically.
- The enquiry form, on the page. Not a link to a contact page.
Do not invent proof. An unverifiable claim — an accident-free mileage figure nobody measured, an award with no issuer, a client who has not agreed to be named — is worse than no claim, because the one buyer who checks is the buyer who was about to award you freight. If you cannot substantiate a number, describe the mechanism instead.
Which service pages you need depends on what you are. The page set for an international forwarder is not the page set for a last-mile courier, and both differ from an asset-based carrier’s. We have written the specific page set for each: what a freight forwarding website needs if you are moving international cargo and clearing customs, the last-mile and courier page set if you are selling same-day and parcel work, and the trucking company page set if you run your own equipment and need to win both freight and drivers. Start from whichever matches, then cut what you do not sell.
Step 5: Adding quotes and tracking
These are the two features every freight website brief asks for, and they behave completely differently. One you can finish this week. The other has a boundary you need to understand before you promise it to anyone.
The quote form
Ask for the minimum that lets a human price the job, and nothing else. Every additional field loses enquiries, and a field you do not use when quoting is pure loss. For most road freight that minimum is origin and destination, mode or equipment, weight and dimensions or pallet count, what the commodity is, and the ready date. International adds Incoterms and commodity codes. Residential and site work adds access questions — stairs, tail lift, forklift on site — because those are what make a quote wrong.
Two things matter more than the field list. First, say what happens next and mean it: “a quote by email within four working hours” converts better than “we will be in touch” and is only worth writing if your desk can hold to it. Second, decide where the submission goes before you publish the form — a shared mailbox someone owns, not an individual’s inbox, with a copy to a second address so a holiday does not lose a week of leads. Contact Form 7 handles the mechanics on a WordPress site and is one of the plugins Moovit lists as compatible, alongside the quote request and service inquiry handling the theme includes. Our step-by-step on building a freight quote module covers the field logic and the routing in full.
Tracking, and what a theme cannot do
No WordPress theme ships a shipment-tracking engine, ours included, and any vendor implying otherwise is describing a page, not a system. Tracking data lives in a TMS, a carrier’s platform or a 3PL’s portal. What a website can do is three things: give customers a page that takes a reference number and hands it to the system that holds the answer, state clearly which carrier or platform that is, and set an expectation about how current the data is. Done honestly that is genuinely useful. Done as a promise of live visibility you do not have, it generates the support calls it was supposed to prevent. The build detail is in our guide to putting a track-and-trace page on WordPress.
If what you actually need is scheduled collections rather than tracking — a booking calendar for moves, surveys or dock slots — that is a different and much more tractable problem. Moovit includes the Scheduled plugin for real-time booking calendars, appointment management and automated booking confirmations, which covers it without an integration project.
Step 6: Local and lane-level SEO
Freight search splits into two jobs that need different pages, and conflating them is why so many carrier sites rank for nothing. Local is about a terminal or a yard and the city around it. Lane-level is about an origin and a destination and has nothing to do with proximity.
Local: the terminal and the service area
Claim a Google Business Profile for each location where you have a real, staffed presence. Google’s own guidelines for representing a business are worth reading before you do, because two of the rules catch out transport operators specifically: you should keep one profile per business rather than one per service you offer, and a declared service area “shouldn’t extend farther than about 2 hours of driving time” from the location. A carrier running two-day lanes cannot declare the whole country as its service area; that is what the lane pages below are for. If you run drivers out of a yard where customers never visit, the guidance is to hide the address and declare the area you serve instead.
On the site, give each location its own page with the address, the hours the dock actually operates, which services run from it and the geography it covers in plain text. An embedded map is an image as far as a search engine is concerned, so the place names have to exist as crawlable words next to it.
Lane-level: one page per lane you really run
A lane page targets an origin-destination pair, and it works when it carries something only an operator who runs that lane would know: typical transit, the equipment you use on it, the terminals involved, the border or port constraints, the seasonal pattern, how often you have capacity in each direction. That page can rank for a long time against far bigger sites, because nobody else has the information.
The failure mode is obvious and worth naming: generating fifty lane pages from a template with the city names swapped. Those are doorway pages, they carry no information, and they damage the rest of the site. Write a lane page only where you run the lane and have something specific to say. Five real ones beat fifty generated ones.
Structured data and the credentials shippers verify
Structured data tells a search engine what it is looking at. The relevant vocabulary here is areaServed on your organisation or local business markup, which makes your coverage machine-readable rather than something inferable only from prose; Google documents the fields it uses in its local business structured data reference. Moovit includes schema markup for structured data, so the scaffolding is there, but the values have to be your own.
While you are on credentials: US motor carriers are required to mark vehicles with the legal name and USDOT identification number under 49 CFR 390.21. That regulation governs the truck, not the website — but putting the same USDOT and MC numbers, the authority type and your insurance position on an easy-to-find credentials page is free, and it is the first thing a procurement team checks against the public safety record. Make them hunt for it and you have added friction at precisely the wrong moment.
Step 7: Launch and the first 90 days
Launch day is a checklist, not an event. Work through it in order and do not skip the first item, which is the one that fails most often.
- Submit every form from the live site and confirm the notification arrives in the real mailbox. Then submit one from a phone on mobile data. A form that works in staging and not in production is the single most expensive launch bug in this industry.
- Redirect the old URLs. If you are replacing a site, map each old page to its closest new one. Anything you leave to a 404 throws away whatever that page had earned.
- Check the site is indexable. Development sites are routinely blocked from search engines and routinely go live still blocked. Confirm search engine visibility is enabled and the robots file is not excluding the site.
- Submit the sitemap in Google Search Console and Bing Webmaster Tools, and keep Search Console — it is where you will later see which queries actually reach you.
- Install analytics and define one conversion: the quote form submission. Traffic without that number tells you nothing.
- Claim or update the Business Profile for each location so the address, hours and phone number match the site exactly.
- Put the phone number in the header as a tap-to-call link. A large share of courier and moving enquiries never touch a form.
Days 1 to 30: fix what is broken, not what is missing. Read every form submission and note what people ask that the site should have answered — those questions are your next page edits, handed to you for free. Watch for enquiries you cannot service: if half of them are outside your geography, your coverage is not clear enough. Resist a redesign. Nothing you learn in month one is about the design.
Days 30 to 90: publish on a cadence and let it mature. One real page a week — a service page you compressed, a lane you actually run, a location page — beats a burst of twenty and then silence. Be realistic about timing: a new page on a new domain generally takes several months to settle into a stable position, and the first ninety days of a freight site are usually about direct traffic, referrals and the Business Profile rather than organic search. That is normal and it is not a reason to change the plan. What you are looking for at ninety days is not a ranking; it is whether the quote requests you are getting are the kind of work you want.
If you want to shorten the build itself, the industry page templates are the part worth buying rather than designing: the Moovit theme gives you the fleet, certifications, locations, careers and service-specification pages described in step 3 already laid out, so the seven steps above collapse into writing your own specifics into a structure that already exists. The rest of this list is work no theme can do for you, which is exactly why it is worth doing properly.

Recent Comments