DEV Community

Panagiotis Papoutsis
Panagiotis Papoutsis

Posted on

A Technical SEO Checklist for Small Multilingual Business Websites

Most of my work is building small-business websites in Tinos, Greece: guesthouses, local shops, professionals and seasonal tourism businesses. These sites are small, often a handful of pages, but they're almost always multilingual, because the visitors are Greek, German, French, Italian and more.

Small multilingual sites have a specific set of technical SEO problems. None of them are hard, but they are easy to get wrong. Here's the checklist I go through before launch.

1. One protocol, one host, one URL per page

Pick a single canonical origin (for example https://example.gr) and 301-redirect everything else to it:

  • http://example.gr → https://example.gr
  • http://www.example.gr → https://example.gr
  • https://www.example.gr → https://example.gr

Test all four variants with curl -I. A surprisingly common failure is that the HTTPS version works perfectly while plain HTTP returns an error, often because a CDN or proxy in front of the server isn't configured to redirect. Old links, printed flyers and some crawlers still hit http://.

Then add a self-referencing canonical on every page:

<link rel="canonical" href="https://example.gr/en/">
Enter fullscreen mode Exit fullscreen mode

Also watch for duplicate entry points such as /index.php returning 200 instead of redirecting to /.

2. Use language subfolders and real hreflang

For small sites, subfolders (/, /en/, /de/, /fr/) are the simplest structure: one domain, one hosting setup, shared authority.

Every language version should list all alternates, including itself, plus an x-default:

<link rel="alternate" hreflang="el" href="https://example.gr/">
<link rel="alternate" hreflang="en" href="https://example.gr/en/">
<link rel="alternate" hreflang="de" href="https://example.gr/de/">
<link rel="alternate" hreflang="x-default" href="https://example.gr/">
Enter fullscreen mode Exit fullscreen mode

Common mistakes:

  • Alternates that aren't reciprocal (EN points to DE but DE doesn't point back).
  • Wrong codes (gr is a country, the language is el).
  • Machine-translated pages with untranslated titles and meta descriptions.
  • Setting <html lang> incorrectly. Each version needs its own lang="el", lang="en" and so on.

3. Put hreflang in the sitemap too

It's optional if the tags are in the HTML, but adding them to the sitemap makes the relationships explicit:

<url>
  <loc>https://example.gr/en/</loc>
  <xhtml:link rel="alternate" hreflang="el" href="https://example.gr/"/>
  <xhtml:link rel="alternate" hreflang="en" href="https://example.gr/en/"/>
</url>
Enter fullscreen mode Exit fullscreen mode

Reference the sitemap in robots.txt and submit it in Google Search Console and Bing Webmaster Tools.

4. Don't stop at a one-page site

A single long landing page is fine at launch, but it can only rank for so much. If you offer distinct services, give each one its own URL with its own title, H1 and meta description:

/services/web-design/
/services/local-seo/
/services/hosting/
Enter fullscreen mode Exit fullscreen mode

Anchor links (/#services) are great for navigation, but search engines index URLs, not page sections. Separate pages also give you something specific to link to when you write articles or build profiles elsewhere.

5. Get LocalBusiness schema right

For a local business, JSON-LD structured data helps search engines connect your website with your physical presence:

{
  "@context": "https://schema.org",
  "@type": "ProfessionalService",
  "name": "Example Studio",
  "url": "https://example.gr/",
  "telephone": "+30...",
  "address": {
    "@type": "PostalAddress",
    "addressLocality": "Tinos",
    "addressCountry": "GR"
  },
  "sameAs": [
    "https://www.facebook.com/...",
    "https://github.com/..."
  ]
}
Enter fullscreen mode Exit fullscreen mode

Tips:

  • Use one primary business entity rather than several overlapping ones, and give it an @id so other blocks can reference it.
  • Fill sameAs with your real profiles. An empty array is a missed opportunity.
  • Only mark up reviews that are genuinely about the entity you're marking up. Testimonials about something else, or reviews collected and displayed on your own site about yourself, are a common reason review rich results get ignored or flagged.
  • Validate with the Rich Results Test and the Schema.org validator.

6. Write titles and descriptions per language, per page

Titles should be written for humans in each language, not translated word for word. Keep the brand at the end, keep the separator consistent, and make sure the title tag matches your og:title closely enough that shares look intentional.

7. Treat mobile performance as a feature

Small business sites are usually built on themes that load several icon fonts, multiple Google Font families, carousels and animation libraries, often for features the page barely uses. Before launch:

  • Load only the font families and weights you actually use.
  • Drop unused CSS and JS bundles.
  • Serve images in modern formats at the displayed size, with width/height set and loading="lazy" below the fold.
  • Check server response time. A slow TTFB on shared hosting hurts every page.

Test with PageSpeed Insights on a mobile profile, and also on a real phone over mobile data.

8. Make the business verifiable off-site

Technical SEO doesn't end on your domain. For local businesses, the most valuable step is usually a verified Google Business Profile with the same name, phone and address as the website, plus Bing Places and the main local directories. Consistent NAP (name, address, phone) data across the web is one of the clearest local signals you can send.

Wrapping up

None of this is advanced, but together it's the difference between a site that quietly sits there and one that search engines can understand, trust and show to the right people in the right language. If you want to see how I approach this for local businesses in the Cyclades, my site is a good place to start.


About the author

Panagiotis Papoutsis is a full-stack web developer (PHP, Drupal, Magento, custom builds) with 10+ years of experience and a focus on SEO and web analytics. He runs Tinos Web, building websites and local SEO for small businesses in Tinos and the Cyclades. More at tinosweb.gr.

Top comments (0)