Most requests for an Arabic website arrive as a translation job. Take the English site, run the copy through a translator, flip it round, done. It rarely works, and the reason isn't the translation quality. An Arabic page is a different layout with different typography and different reading behaviour, and the parts that break are structural rather than linguistic.
Mirroring is a layout decision, not a CSS switch
Arabic reads right to left, so the page has to mirror: navigation, breadcrumbs, form labels, list bullets, icons that imply direction, the side a close button sits on, the direction a carousel advances. Setting dir="rtl" handles text flow and gets you maybe seventy percent of the way. The rest is every hardcoded margin-left, every absolutely positioned element pinned to a corner, and every arrow pointing the wrong way.
The tell on a rushed job is easy to spot: Arabic text flowing correctly, but the logo still sitting left, the menu button still on the right, and a "next" arrow pointing away from the direction the reader is actually moving. Nothing is technically broken, and it still reads as a site that was built for someone else.
Some things stay left to right even on an RTL page - phone numbers, prices, email addresses, Latin brand names. Getting that wrong in the other direction is just as visible.
Arabic typography does not inherit from English
This is where most bilingual sites quietly fail. The English typeface almost never has usable Arabic coverage, so the browser silently falls back to a system font, and the Arabic half of your site ends up looking like an unstyled document while the English half looks designed.
Arabic script also needs more vertical room. Letters connect, and the marks that sit above and below the baseline get clipped at the tight line-heights that look good in English. A heading that fits on one line in English routinely wraps in Arabic, and the same box that held the English word comfortably will overflow. Practically, that means a separate font stack and separate line-height and letter-spacing rules for the Arabic side - letter-spacing in particular should usually be zero, since spacing out a connected script actively damages legibility.
Length changes, so fixed layouts break
Arabic copy is often shorter than the English for the same meaning, and sometimes considerably longer. Either way it will not match. Buttons sized to fit an English label, cards built on a fixed height, navigation bars balanced around six English words - all of these shift the moment the other language loads. Designing both languages at the same time, rather than translating afterwards, is the only reliable fix.
Which language should load first
A genuine decision, not a default. A UAE business serving mostly Arabic-speaking customers has a reasonable case for Arabic first; one selling to a mixed or largely expatriate market often does not. Whatever you choose, the site has to remember the visitor's choice, and the switch has to keep them on the page they were reading rather than dumping them back on the homepage. We covered the wider version of this question - including whether to use a toggle or separate URLs - in Bilingual or English-Only.
The search side is separate
Two things get overlooked. First, if the page's title and description are in English while the body renders in Arabic, search engines are reading something different from what visitors see. Second, Arabic search queries in the Gulf are frequently typed in Latin characters, or mixed - a real customer might search for the Arabic term, the English term, or a transliteration of either. Content that only exists in one form only gets found one way.
What this actually costs
Bilingual should not be a premium add-on invoiced as a second website. Our own web development packages are bilingual as standard, delivered inside 24 hours, with a PageSpeed score of 80+ on mobile. The reason it isn't priced as an extra is that building both languages together costs far less than retrofitting the second one later.
The short version
Arabic web design is a layout and typography problem before it's a translation problem. Mirror the interface properly, give the Arabic script its own font stack and breathing room, design both languages side by side so neither breaks the other, and make the language choice deliberate. Translation is the easy part - everything above it is the actual work.