On this page you can explore modern homes for sale in Limassol’s family-friendly areas, featuring spacious layouts, private gardens, and excellent investment potential in well-connected residential neighbourhoods.
Home › Properties for Sale in Limassol › Houses for Sale in Limassol › Page 2
(function() {
try {
const canonical = document.querySelector('link[rel="canonical"]')?.getAttribute("href") || "";
const currentUrl = (canonical || window.location.href).split('#')[0];
const u = new URL(currentUrl);
const baseUrl = u.origin;
// Title for page crumb (only on page 2+)
const ogTitle = document.querySelector('meta[property="og:title"]')?.getAttribute("content") || "";
let pageTitle = (ogTitle || document.title || "").trim();
pageTitle = pageTitle
.replace(/\s*\|\s*Cyprus Buy Properties\s*$/i, "")
.replace(/\s*-\s*Cyprus Buy Properties\s*$/i, "")
.trim();
// /en/sale////Properties
const parts = u.pathname.split("/").filter(Boolean);
const saleIdx = parts.indexOf("sale");
if (saleIdx === -1) return;
const lang = parts[saleIdx - 1] || "en";
const city = parts[saleIdx + 1];
const category = parts[saleIdx + 2];
if (!city || !category || category === "Properties") return;
const cityName = decodeURIComponent(city).replace(/[-_]+/g, " ").trim();
const categoryName = decodeURIComponent(category).replace(/[-_]+/g, " ").trim();
const generalCategoryUrl = `${baseUrl}/${lang}/sale/${city}/Properties`;
const specificCategoryUrl = `${baseUrl}${u.pathname}`.replace(/\/\d+\//, "/");
const breadcrumbData = {
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Home", "item": baseUrl },
{ "@type": "ListItem", "position": 2, "name": `Properties for Sale in ${cityName}`, "item": generalCategoryUrl },
{ "@type": "ListItem", "position": 3, "name": `${categoryName} for Sale in ${cityName}`, "item": specificCategoryUrl }
]
};
// Add page crumb only when URL includes /{number}/
if (/\/\d+\//.test(u.pathname)) {
breadcrumbData.itemListElement.push({
"@type": "ListItem",
"position": 4,
"name": pageTitle,
"item": currentUrl
});
}
// Avoid duplicates
const existing = document.querySelector('script[data-auto="breadcrumbs-jsonld"]');
if (existing) existing.remove();
const script = document.createElement("script");
script.type = "application/ld+json";
script.setAttribute("data-auto", "breadcrumbs-jsonld");
script.text = JSON.stringify(breadcrumbData);
document.head.appendChild(script);
} catch (e) {}
})();
document.addEventListener("DOMContentLoaded", function () {
try {
const pageUrl = location.href.split('#')[0];
const base = location.origin;
// Εφόσον υπάρχει μόνο ΕΝΑΣ αριθμός στο URL, τον βρίσκουμε απευθείας
const pathParts = location.pathname.split('/').filter(Boolean);
const pageNum = parseInt(pathParts.find(p => !isNaN(p))) || 1;
const offset = (pageNum - 1) * 9;
const pageTitle = document.title || "";
const pageDesc = (document.querySelector('meta[name="description"]')?.content || "").trim();
let cards = document.querySelectorAll(".result-card");
if (!cards || cards.length === 0) cards = document.querySelectorAll(".re_prop .col-xs-4");
const seen = new Set();
const itemList = [];
cards.forEach((card, index) => {
let href = null;
const links = Array.from(card.querySelectorAll('a[href]'));
links.sort((a, b) => {
const aw = a.matches('a.hcaption') ? 0 : a.closest('h2') ? 1 : 2;
const bw = b.matches('a.hcaption') ? 0 : b.closest('h2') ? 1 : 2;
return aw - bw;
});
for (const a of links) {
const h = (a.getAttribute('href') || '').trim();
if (!h || h[0] === '#' || /^javascript:/i.test(h) || /#myToggle/i.test(h)) continue;
href = new URL(h, base).href;
break;
}
const h2 = card.querySelector("h2.prop-title, h2.prop-title-fixer, h2");
const name = (h2?.textContent || "").trim();
const imgEl = card.querySelector("img");
let image = imgEl ? (imgEl.getAttribute("data-src") || imgEl.getAttribute("data-lazy") || imgEl.getAttribute("src")) : null;
if (image) image = new URL(image, base).href;
const clean = (t) => (t || "").replace(/€/gi, "€").replace(/\u00A0/g, " ").replace(/\s+/g, " ").trim();
const priceText = clean(card.querySelector("p.prop-title-fixer")?.textContent || "");
const infoText = clean(card.querySelector(".res-prop-details .prop-info-fixer")?.textContent || "");
if (href && name && !seen.has(href)) {
seen.add(href);
const li = {
"@type": "ListItem",
"position": offset + index + 1, // Υπολογισμός θέσης: (Σελίδα-1)*9 + σειρά
"url": href,
"name": name
};
if (image) li.image = image;
if (infoText || priceText) {
li.description = infoText + (infoText && priceText ? " — " : "") + priceText;
}
itemList.push(li);
}
});
const graph = [
{
"@type": "CollectionPage",
"@id": pageUrl + "#webpage",
"url": pageUrl,
"name": pageTitle,
"description": pageDesc
},
{
"@type": "ItemList",
"@id": pageUrl + "#itemlist",
"url": pageUrl,
"name": pageTitle,
"numberOfItems": itemList.length,
"itemListElement": itemList
}
];
const s = document.createElement("script");
s.type = "application/ld+json";
s.text = JSON.stringify({ "@context": "https://schema.org", "@graph": graph });
document.head.appendChild(s);
} catch(e) {}
});
On this page you can explore modern homes for sale in Limassol’s family-friendly areas, featuring spacious layouts, private gardens, and excellent investment potential in well-connected residential neighbourhoods.
Home › Properties for Sale in Limassol › Houses for Sale in Limassol › Page 2
...read more