Technical SEO Audit Checklist for Saudi Business Websites
- Give every language its own URL, a self-referencing canonical and reciprocal hreflang tags (ar-SA, en-SA, plus the recommended x-default).
- robots.txt controls crawling, not indexing; use noindex or removal to keep pages out of Google.
- Judge speed by field data on mobile: LCP within 2.5 s, INP under 200 ms, CLS under 0.1.
- FAQ rich results stopped appearing in Google Search on 7 May 2026, so treat FAQ markup as optional.
A technical SEO audit answers one question: can Google find, render, understand and pick the right version of every page that matters to your business? On a bilingual Saudi website the question covers twice as much ground, because every Arabic page has an English counterpart and each pair can break in its own way. The checklist below is ordered so an in-house team can work through it from top to bottom: access first, then the language setup, then speed, structured data, migrations and monitoring. Key items link to the Google Search Central page behind the rule.
1. Crawling and indexing basics
- robots.txt is for crawling, not indexing. Google states that robots.txt is not a mechanism for keeping a web page out of Google. Check that it does not block CSS, JavaScript or an entire language folder such as
/en/, which often happens when a staging configuration goes live. - Remove staging leftovers. Look for a sitewide
noindex, password protection or, on WordPress, the “Discourage search engines from indexing this site” setting under Settings > Reading. - Clean XML sitemaps. Google’s sitemap guidelines call for absolute, canonical URLs only, UTF-8 encoding, and no more than 50,000 URLs or 50MB uncompressed per file. Google ignores
priorityandchangefreqand useslastmodonly when it is consistently accurate. List both language versions, reference the sitemap in robots.txt and submit it in Search Console. - Honest status codes. Removed pages should return 404 or 410, not a friendly “not found” page served with a 200 code, which Search Console reports as a soft 404.
2. Language versions: URLs, hreflang and canonicals
URL structure
- One URL per language. Google lists country domains, subdomains and subdirectories as workable structures and marks URL parameters such as
?lang=aras not recommended. For a business on a single domain,/ar/and/en/subdirectories are the simplest option. - No automatic language switching. The same page advises against automatically redirecting users between language versions and warns that Google might not find all your variations if language depends on cookies or browser settings. Use a visible language switcher that links to the matching page, not the home page.
Arabic slugs and percent-encoding
- Google’s URL structure guidelines encourage words in your audience’s language and say non-ASCII characters should be percent-encoded. The slug
غرف-نومtravels as%D8%BA%D8%B1%D9%81-%D9%86%D9%88%D9%85. - Use one consistent form in sitemaps, canonicals and hreflang tags, and confirm the server returns 200 for it without bouncing between encoded and decoded versions.
- Keep Arabic slugs short: each Arabic letter becomes six characters when encoded, so long slugs turn into unreadable links when shared. Separate words with hyphens, not underscores, and never use
#fragments to load different content.
hreflang
- Every page must list itself and all its alternates, and the links must be reciprocal: if the Arabic page points to the English one, the English page must point back. Both rules are in Google’s localized versions guide.
- Codes are a language code (ISO 639-1) with an optional region (ISO 3166-1 Alpha 2):
ar-SAanden-SA. A region cannot stand alone, andhreflang="sa"does not mean Saudi Arabia;sais the ISO 639-1 code for Sanskrit. - Consider adding
x-defaultfor users whose language matches none of your versions; Google recommends it as a fallback, but it is not required. If one Arabic version serves the whole Arab world, plainarmay describe it more accurately thanar-SA. - Pick one method (HTML tags, HTTP headers or the sitemap). Google says it does not use hreflang or the
langattribute to detect a page’s language, so the main content itself must be in the declared language.
Canonicals
- Each language version should canonicalize to itself. Google’s canonicalization guide says to specify a canonical page in the same language when using hreflang. Pointing the English canonical at the Arabic page is a mistake: Google treats a canonical as a signal rather than a directive, but the conflicting signal can lead it to show the Arabic URL in place of the English page.
- Do not use robots.txt or
noindexto handle duplicates; Google recommends redirects andrel="canonical"instead.
3. RTL layout and mobile-first indexing
- Google indexes the mobile version of your pages. Under mobile-first indexing, the mobile page needs the same main content, headings, structured data, robots meta tags and image alt text as desktop.
- Set
<html lang="ar" dir="rtl">on Arabic pages andlang="en" dir="ltr"on English pages. Test the mirrored layout on real phones for horizontal overflow, clipped menus and carousels that hide primary content. - Do not lazy-load primary content that only appears after a tap or swipe; Google lists this as a common mobile-first problem.
- Wrap Latin strings inside Arabic text (model numbers, email addresses) in
<bdi>when they display in the wrong order.
4. Page speed on mobile networks
- Google’s Core Web Vitals targets are LCP within 2.5 seconds, INP under 200 milliseconds and CLS under 0.1. INP replaced FID as the responsiveness metric.
- Judge performance by the field data in the Search Console Core Web Vitals report; use Lighthouse for debugging. Test on a mid-range Android phone on mobile data, not on office Wi-Fi.
- Typical causes: oversized hero sliders (LCP); chat widgets, tag managers loaded with many tags and heavy page builders (INP); images without dimensions, late web fonts and promotional bars that push content down (CLS). Subset Arabic web fonts and load only the weights you use.
5. JavaScript rendering
- Pages wait in a rendering queue, and Google’s JavaScript SEO basics still recommend server-side rendering or pre-rendering.
- Links must be
<a href>elements; routes must use real paths, not#/fragments. Single-page apps need real 404 handling to avoid soft 404s, and JavaScript should not be relied on to remove anoindex. - In the URL Inspection tool, check that the rendered HTML contains the Arabic text, the canonical and the hreflang tags.
6. Structured data
- Organization: place it on the home or about page. Google’s Organization guide has no required properties but recommends name, alternateName, logo, url, sameAs and contactPoint, which suits an Arabic legal name with an English alternate.
- LocalBusiness: use it only if customers visit a real, verified address. Google’s LocalBusiness guide requires
nameandaddress. - Product: on store pages, follow the Product markup guide with
priceCurrencyset toSAR, and keep price and availability identical to what the page shows. - FAQ: Google’s FAQPage documentation notes that FAQ rich results stopped appearing in Search on 7 May 2026. Keep useful FAQ content for readers, but do not expect a rich result from the markup.
- Markup must describe visible content in the same language: Arabic values on Arabic pages.
7. Redirects after a migration
Moving to a new design, domain or platform, such as from WordPress to a hosted store like Salla or Zid, usually changes URL patterns. Google’s site move guide sets the checklist:
- Map every old URL, including encoded Arabic ones, to its closest new equivalent.
- Use server-side permanent redirects (301 or 308) straight to the final URL, with no chains.
- Update canonicals, hreflang tags and sitemaps to the new URLs.
- Keep redirects for at least one year. Use the Change of Address tool only for domain or subdomain moves.
- Before launch, confirm which redirect, canonical and hreflang controls your platform exposes, because hosted platforms differ.
8. Monitoring in Search Console
- Verify a Domain property so both language folders and all subdomains are covered.
- In the Page indexing report, look at “Duplicate, Google chose different canonical than user” (often a language canonical problem), “Crawled - currently not indexed”, “Discovered - currently not indexed” and “Soft 404”. “Alternate page with proper canonical tag” is normally expected.
- In the Performance report, filter by country and by
/ar/versus/en/to see how each language performs.
One-page summary
| Check | Where to look | Pass condition |
|---|---|---|
| Crawl access | robots.txt, URL Inspection | CSS, JS and both language folders crawlable |
| Language URLs | Site structure | Separate URL per language, no ?lang= |
| hreflang | Page source or sitemap | Self-reference and return links; x-default recommended |
| Canonicals | Page source | Each language points to itself |
| Speed | Core Web Vitals report | LCP ≤ 2.5 s, INP < 200 ms, CLS < 0.1 |
| Rendering | URL Inspection | Arabic content present in rendered HTML |
| Migrations | Redirect map | Single-hop 301/308, kept at least a year |
Eclipse Advertising Agency offers SEO as part of its digital marketing services in Saudi Arabia, as well as website development. If you would like help with an audit of your own site, contact us.
Frequently asked questions
Should the Arabic and English versions share one canonical URL?
No. Each language version should have a canonical that points to itself, and the versions should be connected with reciprocal hreflang tags. A canonical pointing to the other language sends a conflicting signal; Google treats canonicals as a signal rather than a rule, but it may then show only the other language's URL.
Are Arabic characters in URLs bad for SEO?
No. Google encourages URLs in the audience's language and asks for non-ASCII characters to be percent-encoded. Keep Arabic slugs short and use the same form everywhere: sitemaps, canonicals and hreflang tags.
Is FAQ schema still worth adding?
Not to get a rich result. Google stopped showing FAQ rich results on 7 May 2026. A clear FAQ section can still help readers, but the markup no longer changes how the page appears in Search.
Sources: developers.google.com · developers.google.com · developers.google.com · developers.google.com · developers.google.com · developers.google.com · developers.google.com · developers.google.com · developers.google.com · developers.google.com · developers.google.com · developers.google.com · developers.google.com · developers.google.com · support.google.com