Kolaboro / Engineering / Search and indexation
Search and indexation
How much of kolaboro.com search engines and answer engines can find, measured, not estimated.
16,670 URLs are listed in our sitemaps right now (computed live from /sitemap_index.xml). Last crawl 2026-11-14T15:26Z: 10,246 URLs fetched of 20,508 listed (translated project and developer pages are sampled), 10,209 indexable, 10,208 with valid structured data; about 20,379 indexable across all listed URLs at the sample pass rate.
Search Console and Bing Webmaster figures (clicks, impressions, index coverage) will appear here once the site owner connects them; we do not estimate them.
Sitemap coverage#
| Sitemap | URLs |
|---|---|
| pages-en | 171 |
| pages-es | 20 |
| pages-de | 20 |
| pages-fr | 20 |
| pages-ru | 20 |
| pages-nl | 20 |
| pages-ar | 20 |
| pages-zh | 20 |
| countries | 95 |
| guides | 144 |
| rankings | 13 |
| compare | 1 |
| markets | 180 |
| projects-anonymous | 0 |
| projects-en | 1587 |
| developers-en | 165 |
| projects-es | 1587 |
| developers-es | 165 |
| projects-de | 1587 |
| developers-de | 165 |
| projects-fr | 1587 |
| developers-fr | 165 |
| projects-ru | 1587 |
| developers-ru | 165 |
| projects-nl | 1587 |
| developers-nl | 165 |
| projects-ar | 1587 |
| developers-ar | 165 |
| projects-zh | 1587 |
| developers-zh | 165 |
| images | 1910 |
| stories | 296 |
| rankings/transparency | 496 |
| progress | 552 |
| handover | 1856 |
| weekly | 480 |
| guides/buying-off-plan | 208 |
| reports | 1248 |
| m | 1240 |
Crawl audit#
Crawler: tools/kolaboro-seo/audit.py on main (user agent KolaboroSEOAudit/1.0). It fetches every sitemap URL with GET and HEAD and checks status codes, canonicals, hreflang reciprocity and JSON-LD.
Coverage by sitemap
| Sitemap | Listed | Crawled | Answered 200 | Indexable | Canonical elsewhere | Noindex | Not 200 |
|---|---|---|---|---|---|---|---|
| pages-en.xml | 170 | 170 | 170 | 170 | 0 | 0 | 0 |
| sitemap.xml | 5,824 | 5,824 | 5,824 | 5,824 | 0 | 0 | 0 |
| pages-es.xml | 20 | 20 | 20 | 20 | 0 | 0 | 0 |
| pages-de.xml | 20 | 20 | 20 | 20 | 0 | 0 | 0 |
| pages-fr.xml | 20 | 20 | 20 | 20 | 0 | 0 | 0 |
| pages-ru.xml | 20 | 20 | 20 | 20 | 0 | 0 | 0 |
| pages-nl.xml | 20 | 20 | 20 | 20 | 0 | 0 | 0 |
| pages-ar.xml | 20 | 20 | 20 | 20 | 0 | 0 | 0 |
| pages-zh.xml | 20 | 20 | 20 | 20 | 0 | 0 | 0 |
| countries.xml | 95 | 95 | 95 | 95 | 0 | 0 | 0 |
| guides.xml | 144 | 144 | 144 | 144 | 0 | 0 | 0 |
| rankings.xml | 13 | 13 | 13 | 13 | 0 | 0 | 0 |
| compare.xml | 1 | 1 | 1 | 1 | 0 | 0 | 0 |
| markets.xml | 89 | 89 | 89 | 89 | 0 | 0 | 0 |
| projects-en.xml | 1,589 | 1,589 | 1,578 | 1,578 | 0 | 0 | 11 |
| developers-en.xml | 165 | 165 | 157 | 157 | 0 | 0 | 8 |
| projects-es.xml | 1,589 | 123 | 123 | 123 | 0 | 0 | 0 |
| developers-es.xml | 165 | 165 | 165 | 165 | 0 | 0 | 0 |
| projects-de.xml | 1,589 | 123 | 123 | 123 | 0 | 0 | 0 |
| developers-de.xml | 165 | 165 | 165 | 165 | 0 | 0 | 0 |
| projects-fr.xml | 1,589 | 123 | 123 | 123 | 0 | 0 | 0 |
| developers-fr.xml | 165 | 165 | 165 | 165 | 0 | 0 | 0 |
| projects-ru.xml | 1,589 | 123 | 107 | 107 | 0 | 0 | 16 |
| developers-ru.xml | 165 | 165 | 163 | 163 | 0 | 0 | 2 |
| projects-nl.xml | 1,589 | 123 | 123 | 123 | 0 | 0 | 0 |
| developers-nl.xml | 165 | 165 | 165 | 165 | 0 | 0 | 0 |
| projects-ar.xml | 1,589 | 123 | 123 | 123 | 0 | 0 | 0 |
| developers-ar.xml | 165 | 165 | 165 | 165 | 0 | 0 | 0 |
| projects-zh.xml | 1,589 | 123 | 123 | 123 | 0 | 0 | 0 |
| developers-zh.xml | 165 | 165 | 165 | 165 | 0 | 0 | 0 |
Translated project and developer sitemaps are sampled, so "crawled" is lower than "listed" there.
Orphan pages
8,211 sitemap pages judged: 3 that no crawled page links to, 66 linked from exactly one page. Inbound links counted from the <body> of every crawled page (header, footer and in-page links; hreflang and canonical tags do not count). Judged only where every page that could link was crawled. Not judged (sampled): developers-ar.xml, developers-de.xml, developers-es.xml, developers-fr.xml, developers-nl.xml, developers-ru.xml, developers-zh.xml, projects-ar.xml, projects-de.xml, projects-es.xml, projects-fr.xml, projects-nl.xml, projects-ru.xml, projects-zh.xml.
Orphan pages (3)
Open problems (first 40)
/report/state-of-off-plan-2026/: Dataset without license (recommended by Google, not required)/satellite/: Dataset without license (recommended by Google, not required)/watch/lookalikes/: Dataset without license (recommended by Google, not required)/es/watch/lookalikes/: Dataset without license (recommended by Google, not required)/de/watch/lookalikes/: Dataset without license (recommended by Google, not required)/fr/watch/lookalikes/: Dataset without license (recommended by Google, not required)/ru/watch/lookalikes/: Dataset without license (recommended by Google, not required)/nl/watch/lookalikes/: Dataset without license (recommended by Google, not required)/ar/watch/lookalikes/: Dataset without license (recommended by Google, not required)/zh/watch/lookalikes/: Dataset without license (recommended by Google, not required)/projects/naturandi-huacas-guanacaste/: status 500/projects/waldorf-astoria-residences-tokyo-nihonbashi/: status 500/projects/grand-green-osaka-the-south-residence/: status 500/projects/one-city-osaka/: status 500/projects/premist-tower-senrioka/: status 500/projects/j-gran-tower-kyoto-mukomachi/: status 500/projects/maison-broadbeach/: status 500/projects/the-eveleigh-broadbeach/: status 500/projects/avva-broadbeach/: status 500/projects/tropical-beach-residences-punta-cana/: status 500/projects/origin-place-centre-phuket/: status 500/developers/teus-group/: status 500/developers/anjuna-bay/: status 500/developers/coco-development-group/: status 500/developers/breig-property/: status 500/developers/balitecture/: status 500/developers/urban-escape/: status 500/developers/global-bali-home/: status 500/developers/global-bali-home/: HEAD 200 but GET 500/developers/investland-bali/: status 500/developers/investland-bali/: HEAD 200 but GET 500/developers/avalon/: HEAD 0 but GET 200/ru/projects/terra-mare-beach-villas-maenam/: status 500/ru/projects/armani-residences-masaryk-mira/: status 500/ru/projects/ora-residences-db-group/: status 500/ru/projects/sharjah-sustainable-city-ii-shurooq-see-holding/: status 500/ru/projects/sealine-residence-al-zorah/: status 500/ru/projects/the-welnest-balaclava-valio-sur-mer/: status 500/ru/projects/four-seasons-private-residences-shura-island-red-sea-global/: status 500/ru/projects/azure-michamvi-azure-united-properties/: status 500
History
| Run | Crawled | Indexable | Valid schema | Problems |
|---|---|---|---|---|
| 2026-11-14T15:26Z | 10246 | 10209 | 10208 | 84 |
| 2026-11-05T15:41Z | 4668 | 4668 | 4668 | 1 |
Daily sample check: structured data, 404s and redirects#
Run 2026-11-14T16:07Z by tools/kolaboro-seo/daily.py on main, every day after the IndexNow job. A different sample of sitemap URLs every day (at least one per sitemap; the rest from the project and developer sitemaps of all 8 languages). Each page: status 200, exactly one canonical equal to its URL, no noindex, every JSON-LD block parses with a schema.org context and @type on every node, required properties present, no Review / AggregateRating / ClaimReview, and the types its kind must carry. Then every internal link on those pages is requested once without following redirects (HEAD, then GET when HEAD is not answered), at most 4 requests a second. Form pages reached with a per-project query and API routes are left out. Raw result: /data/seo-daily.json.
Found today
/tools/iban-check/: 301 to/tools/account-check/, linked from/changelog/
Last runs
| Run | Pages | Passed | Links | Broken | Redirects |
|---|---|---|---|---|---|
| 2026-11-14T16:07Z | 48 | 48 | 285 | 0 | 1 |
| 2026-11-12T20:13Z | 48 | 48 | 191 | 0 | 0 |
Core Web Vitals budget (lab, Lighthouse, mobile)#
Budget per page: LCP under 2,500 ms, CLS under 0.1, TBT under 200 ms (lab stand-in for INP). 0 of 20 key pages are within budget. Source: /data/lighthouse.json, run 2026-11-05 12:42 UTC. Real-user figures: speed.
| Page | Performance | LCP | CLS | TBT | Budget |
|---|---|---|---|---|---|
| / | 78 | 2,028 ms | 0.001 | 872 ms | over |
| /check/ | 77 | 2,724 ms | 0.001 | 724 ms | over |
| /database/ | 76 | 2,421 ms | 0.001 | 903 ms | over |
| /pricing/ | 79 | 2,403 ms | 0.02 | 721 ms | over |
| /cases/ | 75 | 2,359 ms | 0.047 | 946 ms | over |
| /about/ | 79 | 2,357 ms | 0.076 | 658 ms | over |
| /p/BALI-014 | 78 | 2,315 ms | 0.001 | 801 ms | over |
| /verify/ | 79 | 2,561 ms | 0.001 | 663 ms | over |
| /log/ | 78 | 2,508 ms | 0.001 | 690 ms | over |
| /docs/api/ | 74 | 2,220 ms | 0.143 | 776 ms | over |
| /status/ | 61 | 2,654 ms | 0.329 | 715 ms | over |
| /engineering/ | 80 | 2,425 ms | 0.001 | 655 ms | over |
| /security/ | 75 | 2,382 ms | 0.149 | 671 ms | over |
| /how-we-score/ | 75 | 2,402 ms | 0.134 | 675 ms | over |
| /checklist/ | 81 | 2,350 ms | 0.001 | 656 ms | over |
| /trust/ | 81 | 2,382 ms | 0.001 | 651 ms | over |
| /prices/ | 77 | 2,574 ms | 0.001 | 788 ms | over |
| /bali/ | 82 | 2,385 ms | 0.001 | 608 ms | over |
| /research/ | 77 | 2,565 ms | 0.013 | 798 ms | over |
| /tools/ | 88 | 2,370 ms | 0.001 | 374 ms | over |
True lastmod#
Every named project page carries the date of the last real change of its data, not the date we last checked it and not the deploy date. Five parts are fingerprinted per project without volatile dates (facts in named.json, the case in bali-cases.json, dated promises, live findings, the satellite series); a part keeps the date its fingerprint was first seen (/data/lastmod.json, pinned 2026-11-14 14:40 UTC). Developer pages take the latest of their projects; hubs the latest of the projects they list. IndexNow only receives URLs whose lastmod moved.
| Last data change | Projects |
|---|---|
| 14 November 2026 | 39 |
| 13 November 2026 | 1,556 |
Image sitemap#
/sitemaps/images.xml lists 1,910 English pages with their images: every named project and developer page with its 1200 x 630 facts card and, where we hold one, the monthly Sentinel-2 satellite strip, plus the static pages that carry their own share image. Each card is also an ImageObject (primaryImageOfPage) in the page's JSON-LD.
Crawl rules#
- One URL per page: trailing slash, lower case;
/p/<id>/,/projects/xandindex.htmlanswer one 301 to the final URL (no chains). - Pages reached with a functional query (
?q=,?sort=,?lang=...) answerX-Robots-Tag: noindex, follow; tracking-only queries (utm_*,gclid,fbclid) keep the canonical as the only signal. - robots.txt allows every search and answer-engine crawler (Googlebot, Bingbot, GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot, Applebot and others) on public pages.
- Structured data on named pages: WebPage or ProfilePage, Organization, Residence or ApartmentComplex with GeoCoordinates where the location is public, Dataset, FAQPage, BreadcrumbList, ImageObject. Never Review, AggregateRating or ClaimReview.
IndexNow#
Last submission 2026-11-14T16:07Z: 680 URLs, HTTP 200 from api.indexnow.org (shared with Bing, Yandex, Naver, Seznam and Yep). 20,983 URLs known in total.
Key file: /7f3c9a1e5b2d4c8fa06e91d3b7c4f259.txt. Google does not use IndexNow; it reads the sitemap index listed in robots.txt.
Search Console and Bing Webmaster#
Not connected yet. The domain is verified in Search Console; clicks, impressions and index coverage will only be shown here once the site owner grants read access (Search Console API with the read-only scope, or a service account added as a restricted user). We do not estimate them. Sitemap to submit: /sitemap_index.xml.