One page for six services
A search for one of them lands on a page that talks about all six. The page is relevant to nobody in particular, and the search engine treats it that way.
Services
Someone searches for the service you sell, in the words they use for it, and your site is not in the results — or it appears for something you would rather not be known for. Usually the problem is not a missing trick. It is that there is no page for that service: the home page lists six things, and a search engine has nothing specific to rank. The work is unglamorous: crawlable pages, one per service, in the buyer's words, on a URL that carries one language.
A search for one of them lands on a page that talks about all six. The page is relevant to nobody in particular, and the search engine treats it that way.
One page holds both languages and CSS hides one of them. The Arabic text is invisible to a search engine, and the page declares a single language for two audiences.
Customers search with the city or the wilaya in the phrase. The site never says where it works, or lists every wilaya it does not serve, so the match is left to chance.
Pages rendered on the server, one canonical per page, a sitemap built from the content that exists, and nothing important behind a click a crawler cannot make.
What it is, who it is for, what is included, what it costs to start, and the questions buyers ask on the phone — written once per service instead of once for the company.
/en/services/... and /ar/services/..., each rendering one language, each pointing at itself as canonical, and hreflang only for translations that exist.
The city, the wilayas you serve and the contact channels that actually work, on the page and in the structured data. No address we do not have, no map pin we cannot stand at.
Fixed scope. Fixed price.
Agreed in writing before anything is built. You approve before we start.
The words customers use are not the words on the site. The receptionist or the salesperson hears them every day, and that list is the starting point, not a keyword tool.
Content on a page that is not crawled, canonicalised against itself or hidden behind a broken route earns nothing. Technical first, because it is cheaper and it makes everything after it countable.
One page per service, in both languages, with the questions a buyer asks before calling. A page that answers one question honestly is worth more than five that restate their own title.
The query report says which pages appear and which are clicked. Queries with impressions and no clicks become the next article or the next page.
FAQ
What owners usually ask before requesting a quote for it.
No, and nobody can: the order is decided by a system we do not control and that changes without notice. What we control is pages that can be crawled, one page per service, correct language URLs, and content that answers a real question. Whether that reaches the first page shows in the query report after the work, not in a promise before it.
No. Three pages that answer real questions are better than thirty that repeat keyword variants, and an empty blog is honest. An article is worth writing when it answers a question buyers already ask on the phone.
It is a second URL for the same business, not a second project. Each language page renders one language, declares itself, and points at the other as its translation. The Arabic content is written, not translated by a script at build time.
Not as part of this. This page is about being found without paying for each click. If you do buy ads, the landing page has to exist first: an ad pointing at a home page that lists six services wastes the click.
Start a project
Send the brief. It comes back as a written scope and a fixed quote before anything is built.