SEO case studyB/L No. KL-10M-2026Freight forwarder · Ruse
Kamenov Logistics
How a Danube freight forwarder rebuilt a 2011 site into a lead machine in five languages
+139%RFQs from organic · 10 months
- BG
- EN
- RO
- DE
- TR
- Consignee
- Kamenov Logistics
- Port
- Ruse, Bulgaria
- Industry
- Industry, Energy & Mobility
- Plan
- Signal
- Voyage
- 10 months
01Cargo as received
A 2011 site carrying 2026 freight
A decade-old site with broken language versions, thousands of crawl errors and no way to request a quote on mobile.
Kamenov books barge, road and container freight out of the Port of Ruse, across the Danube to Giurgiu and onward to Constanța, Vienna and Istanbul. Its buyers search in five languages. Its website answered in one, and badly.
Fourteen years of plugins had left language folders pointing at each other, an index five times larger than the business, and a quote form that a logistics manager on a phone at a loading bay simply could not submit.
| Hold | Severity | Finding | Qty |
|---|---|---|---|
| Crawl | Critical | 2,140 crawl errors: 1,312 hard 404s from ?page_id= URLs, 486 soft 404s, 342 redirect chains | 2,140 |
| Hreflang | Critical | No hreflang; DE and RO copies canonicalised to the Bulgarian page, so they never ranked | 0 / 5 |
| Mobile | Critical | RFQ form in a fixed 960 px table; impossible to submit on a phone | 11 fields |
| Vitals | High | Mobile LCP 6.2 s from a 2.4 MB hero JPEG; CLS 0.31; 4.8 MB page weight | 6.2 s |
| Schema | High | No structured data; the port address existed only as text inside a footer image | 0 types |
| Content | Medium | 14 freight lanes squeezed onto one 'Services' page; customs FAQs locked in PDFs | 1 page |
| Index | Medium | 1,180 URLs indexed for a business that needs about 200; duplicate print views | 1,180 |
02Stowage plan
Four tactics, eight containers, one quay
The engagement ran on our Signal technical SEO plan. Every fix was loaded in order, so nothing heavy sat on something unfinished.
BAY 01
Site rebuild
Replace the 2011 CMS with nine static-rendered templates and one content model shared by every language, then move 1,180 legacy URLs across with a single-hop 301 map.
BAY 02
Hreflang
Generate reciprocal hreflang for Bulgarian, English, Romanian, German and Turkish from the content model, with x-default and native-language slugs, so each market sees its own page.
BAY 03
Schema markup
Mark up the business, its quay address and each freight lane with Organization, LocalBusiness, Service and FAQPage, named identically across languages.
BAY 04
Core Web Vitals
Set a 2.0 s mobile LCP budget per template, ship AVIF heroes and system fonts, defer third-party scripts, and rebuild the quote form for thumbs.
Quay 3 · Port of Ruse · Select a container to read its manifest
Retire the 2011 CMS
- Found on inspection
- 1,180 indexed URLs on a 2011 PHP CMS, ?page_id= parameters, no templates shared between languages.
- Loaded
- Static-rendered rebuild: 214 pages from 9 templates, one content model for all five languages.
- Delivered
- Index trimmed to pages that earn their place; every template measured before launch.
03Voyage log
10 months, upstream
M01
Audit
Full crawl, log-file sample, field CWV data and a form test on six phones.
18 RFQ2,140 err6.2 s
M02
Manifest
Information architecture for 14 lanes; the 1,180-row redirect map drafted and signed off.
17 RFQ1,980 err6.2 s
M03
Build
Nine templates built against a 2.0 s LCP budget; quote form prototyped and tested.
19 RFQ1,610 err6.0 s
M04
Launch
Bulgarian and English go live with redirects. Expected dip while Google re-crawls.
16 RFQ420 err2.6 s
M05
Romanian · German
Two more markets launched with reciprocal hreflang validated in Search Console.
22 RFQ210 err2.4 s
M06
Turkish
Fifth language live; x-default set; leftover machine-translated pages removed.
26 RFQ140 err2.3 s
M07
Schema
Organization, LocalBusiness, Service and FAQ markup shipped across all languages.
30 RFQ90 err2.1 s
M08
Vitals pass
Third-party chat deferred, image pipeline tuned; INP held under 200 ms.
34 RFQ62 err2.0 s
M09
Lane pages
Route pages expanded with transit times and customs notes per market.
39 RFQ44 err1.9 s
M10
Handover
Monitoring, redirect log and a content playbook handed to the in-house team.
43 RFQ36 err1.9 s
04Delivered
Cargo on arrival
Modelled scenario for a fictional business — not a client result. Rankings and traffic are never guaranteed; see our Terms.
RFQs from organic / month
43
from 18 · +139%
Crawl errors
36
from 2,140 · −98%
Mobile LCP
1.9s
from 6.2s · −69%
Organic RFQs per month (modelled)
Rankings manifest · month 1 → month 10
| Query | Lang | Before | After | Vol/mo |
|---|---|---|---|---|
| спедиция Русе | BG | 14 | 2 | 320 |
| контейнерен превоз Русе | BG | 9 | 1 | 140 |
| freight forwarder Bulgaria | EN | 38 | 6 | 590 |
| Danube barge freight | EN | 100+ | 4 | 210 |
| Ruse port customs clearance | EN | 27 | 3 | 90 |
| casă de expediții Giurgiu | RO | 100+ | 3 | 170 |
| Spedition Bulgarien | DE | 46 | 8 | 480 |
| Bulgaristan nakliye firması | TR | 62 | 9 | 260 |
Next sailing
Get a plan like this
A Signal engagement starts with the same inspection: crawl, languages, vitals and the path to your quote form.
← All case studies