Technical SEO in plain words
Technical SEO answers one question: can a search engine find every page you care about, read it properly and decide to keep it in its index? Content and keywords only matter once that is true.
For a new website most of the work happens during the build, which is why this checklist belongs with the developer before launch rather than with a marketer months later.
Each item below comes with a way to check it yourself. The list is platform-neutral; if your site runs on WordPress or Shopify, the platform-specific settings are covered in our guides to SEO for WordPress sites and SEO on Shopify stores. And if you only remember one thing from this page, remember the most common launch mistake of all: the "discourage search engines" or noindex setting used on the staging site, still switched on after going live.
What makes a good URL structure?
URLs are hard to change after launch without redirects, so settle the rules first. A clean pattern is /services/web-design/; a poor one is /index.php?page_id=482&lang=en or /Services/Web_Design_Bangkok_Best_2026.
Thai-script or English slugs for Thai pages
Google can read Thai characters in URLs, and a Thai slug shows naturally in the address bar for Thai readers. The catch is sharing: copied into email, chat or documents, a Thai slug often turns into a long percent-encoded string that looks broken. Many bilingual sites put Thai pages under a language folder such as /th/ and use short, transliterated or English slugs, with the Thai wording in the title and headings. Either works for search; pick one and apply it everywhere.
- Lowercase onlyMixed case creates two URLs for one page on many servers. Check: type the URL in capitals and see if it redirects.
- Hyphens between wordsUse web-design, not web_design or webdesign.
- Short and descriptiveTwo to four meaningful words per slug; no dates, IDs or stuffed keywords.
- One trailing-slash ruleChoose with or without the final slash and redirect the other form to it.
- No parameters for content pagesFilters and tracking can use parameters; real pages should not.
- Shallow foldersA key page should not sit five folders deep.
Crawling and robots.txt
robots.txt tells crawlers which paths they may request. On a small business site it should be short. A sensible version allows everything public, blocks admin and internal search results, and points to the sitemap:
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /?s=
Sitemap: https://www.example.com/sitemap.xml
Adjust the paths to your platform. Three rules matter more than the exact lines:
- Never block CSS or JavaScript. Google renders pages like a browser; without those files it sees a broken layout.
- robots.txt does not remove pages from the index. A blocked page can still be indexed from links, just without its content. Use noindex to keep a page out, and leave it crawlable so Google can see the noindex.
- Check the live file on launch day. Staging sites often ship with Disallow: /, which blocks the whole site.
How to check: open yoursite.com/robots.txt in a browser, then use the robots.txt report in Search Console after launch.
Indexing, canonicals and noindex
Most sites create more URLs than they mean to: print versions, tag archives, filtered product lists, pages with tracking parameters, the same page with and without a trailing slash. Two tools tell Google which versions to keep.
Canonical tags
Every indexable page should carry a rel="canonical" tag pointing to its own preferred URL, absolute and on https. Duplicates, such as a product reachable through two categories, point their canonical at the main version. Google treats the canonical as a strong hint, not a command, so your internal links and sitemap should agree with it.
noindex
Use a noindex robots meta tag for pages that should exist but not appear in search: thank-you pages, internal search results, cart and account pages, thin tag archives. Do not combine noindex with a canonical pointing elsewhere; pick one signal.
Internal links and click depth
Google finds and weighs pages largely through your own links. Every important page should be reachable within about three clicks from the home page through ordinary HTML links, not only through a search box or a script-driven menu. Orphan pages, linked from nowhere, tend to be crawled rarely. How layout and navigation choices feed into this is covered in our article on whether website design affects SEO.
How to check: view the page source and search for "canonical" and "noindex"; after launch, use URL Inspection in Search Console.
Sitemaps
An XML sitemap lists the URLs you want indexed. Small, well-linked sites can be found without one, but a sitemap costs nothing and speeds up discovery after launch, so every new site should have one. What belongs in it:
- Only canonical, indexable URLs that return status 200.
- No redirects, no noindex pages, no 404s, no parameter URLs.
- Both language versions if you run Thai and English pages.
- An accurate last-modified date, updated only when content really changes.
Most platforms generate the sitemap automatically; the job is to check what they put in it. Submit it in Search Console and reference it in robots.txt.
Redirects and status codes
Every URL should answer with the right status code, and every old URL should reach its new home in one hop.
- One canonical host. Pick https and either www or non-www. All other forms, such as http://, http://www and https://www, redirect straight to it with a 301, not through a chain.
- 301 vs 302. Use 301 for permanent moves such as a redesign or new URL structure. A 302 says the move is temporary and should be rare.
- 404 vs 410. A page that no longer exists returns 404, or 410 if it is gone for good. Do not redirect every dead URL to the home page; Google often treats that as a soft 404.
- Soft 404s. An empty category or a "no results" page returning 200 looks like thin content. Return a real 404 or add useful content.
- Relaunches. Map every old URL that had traffic or links to its closest new page before switching over.
How to check: a free HTTP header checker or your browser's developer tools show the status code and each redirect hop.
How should Thai and English versions be linked?
A bilingual Bangkok site needs to tell Google which pages are translations of each other, so Thai searchers land on the Thai version and English searchers on the English one. That is the job of hreflang annotations. For a page available in both languages, each version lists both, including itself:
<link rel="alternate" hreflang="en" href="https://www.example.com/services/web-design/" />
<link rel="alternate" hreflang="th" href="https://www.example.com/th/services/web-design/" />
<link rel="alternate" hreflang="x-default" href="https://www.example.com/services/web-design/" />
- Pairs must be reciprocal: if the English page points to the Thai one, the Thai page must point back.
- Use the canonical URL of each version, never a redirect.
- x-default names the version for visitors whose language matches neither, usually English.
- Only pair pages that are real equivalents. A Thai page without an English twin simply has no English alternate.
Each language version also needs its own title, meta description and canonical pointing to itself.
Speed, mobile and rendering
Many Thai visitors browse on phones, so test on a mid-range phone over mobile data, not only on an office laptop.
Check that the mobile page shows the same content and links as the desktop page, that key text is in the HTML rather than loaded later by scripts, and that Core Web Vitals (loading, responsiveness and layout stability) are in a healthy range in PageSpeed Insights; our guide on how to read a speed test explains those scores. Add structured data that matches what the page shows, such as Organization, LocalBusiness schema markup or Article, and validate it with Google's Rich Results Test. More on performance and measurement sits in our SEO, speed and analytics articles.
What should you check on launch day and the week after?
Run these on launch day, then watch Search Console for the first week. If Search Console is not set up yet, follow our guide to setting up Google Search Console first, and add analytics with our GA4 setup guide for small business websites so you can see visits from day one.
We run through checks like these before launching the sites we build. Our custom website development service includes on-page SEO in the Starter package (from THB 10,000) and keyword mapping and schema markup in the Business package (from THB 30,000); both are indicative one-time prices, confirmed in a written quote. We build the site; we do not sell SEO retainers. When you are ready, send us your brief or message us on WhatsApp at +66 93 004 4098.
- noindex removedView source on several pages: no noindex meta tag, and the platform's hide-from-search setting is off.
- robots.txt liveNo Disallow: / left from staging; sitemap line present.
- Redirects workinghttp, www and old URLs reach the final page in one 301 hop.
- Sitemap submittedSubmitted in Search Console, with no errors or excluded redirects.
- Canonicals correctEach page points to itself on the live domain, not the staging domain.
- hreflang pairsThai and English pages point to each other and to x-default.
- Key pages inspectedHome and main service pages checked with URL Inspection and indexing requested.
- First weekWatch the Pages report for unexpected exclusions, 404s and soft 404s, and fix them early.
More SEO and performance guides
Sources
- Google Search Central: URL structure best practices
- Google Search Central: introduction to robots.txt
- Google Search Central: consolidate duplicate URLs
- Google Search Central: sitemaps overview
- Google Search Central: localized versions of your pages
- Google Search Central: HTTP status codes and network errors

