EN
GR RU

Page 2 - Properties for Sale in Limassol

Property listings on this Limassol page bring together both apartments and houses in areas that combine everyday convenience with access to the city’s coastal lifestyle. The selection includes homes close to the seafront road and business districts, as well as properties in established neighbourhoods a short drive from schools, shops and services. By comparing location, internal area, number of rooms, outdoor space and asking price, it becomes easier to see which properties may work as a permanent base in Limassol, a second home or a long-term investment. Limassol real estate on this page focuses on properties with practical layouts and solid construction rather than only on address or view. Many listings offer open-plan living areas with defined kitchen and dining zones, comfortable bedroom arrangements and useful storage, while selected houses add features such as gardens, pools or extra rooms that can serve as an office or guest space. This mix of specifications helps you judge not just where a property is located, but how easily it could support your daily routine, family needs or rental plans in the Limassol district. Home › Properties 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 parts = u.pathname.split("/").filter(Boolean); const saleIdx = parts.indexOf("sale"); if (saleIdx === -1) return; const lang = parts[saleIdx - 1] || ""; if (lang !== "en") return; const city = parts[saleIdx + 1]; if (!city) return; // Detect city-level listing: /en/sale//Properties OR /en/sale///Properties const afterCity = parts[saleIdx + 2] || ""; const isCityLevel = (afterCity === "Properties") || (/^\d+$/.test(afterCity) && (parts[saleIdx + 3] || "") === "Properties"); if (!isCityLevel) return; const baseUrl = u.origin; const cityName = decodeURIComponent(city).replace(/[-_]+/g, " ").trim(); const level2Url = `${baseUrl}/en/sale/${city}/Properties`; // Title for optional page crumb 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(); 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": level2Url } ] }; // Add 3rd crumb only if paginated city-level page exists (/2/) if (/\/\d+\//.test(u.pathname)) { breadcrumbData.itemListElement.push({ "@type": "ListItem", "position": 3, "name": pageTitle, "item": currentUrl }); } // Prevent duplicates const existing = document.querySelector('script[data-auto="breadcrumbs-jsonld"]'); if (existing) existing.remove(); const s = document.createElement("script"); s.type = "application/ld+json"; s.setAttribute("data-auto", "breadcrumbs-jsonld"); s.text = JSON.stringify(breadcrumbData); document.head.appendChild(s); } 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) {} }); ...read more