{"id":9482,"date":"2026-07-29T10:57:26","date_gmt":"2026-07-29T15:57:26","guid":{"rendered":"https:\/\/lrgrealty.com\/lrg-blog\/?page_id=9482"},"modified":"2026-07-29T12:50:46","modified_gmt":"2026-07-29T17:50:46","slug":"san-antonio","status":"publish","type":"page","link":"https:\/\/lrgrealty.com\/neighborhoods\/san-antonio\/","title":{"rendered":"San Antonio Neighborhoods: Compare Prices, Schools, Taxes, and Commutes"},"content":{"rendered":"    <script type=\"application\/ld+json\">{\n    \"@context\": \"https:\/\/schema.org\",\n    \"@type\": \"ItemList\",\n    \"name\": \"San Antonio Neighborhoods\",\n    \"numberOfItems\": 56,\n    \"itemListElement\": [\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 1,\n            \"name\": \"Alamo Heights\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/alamo-heights-neighborhood-guide\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 2,\n            \"name\": \"Alta Vista\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/alta-vista-neighborhood-guide\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 3,\n            \"name\": \"Anaqua Springs Ranch\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/anaqua-springs-ranch-san-antonio-neighborhood-guide\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 4,\n            \"name\": \"Bentley Manor Shavano Park\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/bentley-manor-shavano-park-neighborhood-guide\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 5,\n            \"name\": \"Bergheim\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/best-neighborhoods-bergheim-tx\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 6,\n            \"name\": \"Fair Oaks Ranch\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/best-neighborhoods-fair-oaks-ranch-tx\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 7,\n            \"name\": \"Converse\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/best-neighborhoods-in-converse-tx\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 8,\n            \"name\": \"Helotes\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/best-neighborhoods-in-helotes-tx\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 9,\n            \"name\": \"Seguin\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/best-neighborhoods-in-seguin-tx\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 10,\n            \"name\": \"Bulverde\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/best-neighborhoods-to-live-in-bulverde-tx\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 11,\n            \"name\": \"Canyon Lake\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/best-neighborhoods-to-live-in-canyon-lake-tx\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 12,\n            \"name\": \"Fischer\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/best-neighborhoods-to-live-in-fischer-tx\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 13,\n            \"name\": \"Garden Ridge\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/best-neighborhoods-to-live-in-garden-ridge-tx\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 14,\n            \"name\": \"Poteet\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/best-neighborhoods-to-live-in-poteet-tx\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 15,\n            \"name\": \"Spring Branch\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/best-neighborhoods-to-live-in-spring-branch-tx\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 16,\n            \"name\": \"Leon Valley\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/best-places-to-live-in-leon-valley\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 17,\n            \"name\": \"Selma\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/best-selma-tx-neighborhoods\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 18,\n            \"name\": \"Boerne\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/boerne-tx-best-neighborhoods-for-homebuyers\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 19,\n            \"name\": \"Braun Station\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/braun-station-neighborhood-guide\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 20,\n            \"name\": \"Canyons at Scenic Loop\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/canyons-at-scenic-loop-san-antonio-neighborhood-guide\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 21,\n            \"name\": \"Castle Hills\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/castle-hills-city-guide\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 22,\n            \"name\": \"Castroville\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/castroville-tx-homebuyer-guide\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 23,\n            \"name\": \"Cibolo Canyons\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/cibolo-canyons-san-antonio-neighborhood-guide\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 24,\n            \"name\": \"Cibolo\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/cibolo-homebuyer-guide\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 25,\n            \"name\": \"Cordillera Ranch Boerne\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/cordillera-ranch-boerne-neighborhood-guide\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 26,\n            \"name\": \"Dignowity Hill\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/dignowity-hill-san-antonio-guide\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 27,\n            \"name\": \"Elm Creek\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/elm-creek-san-antonio-neighborhood-guide\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 28,\n            \"name\": \"Encino Park\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/encino-park-neighborhood-guide\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 29,\n            \"name\": \"Estates at Canyon Springs\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/estates-at-canyon-springs-san-antonio-neighborhood-guide\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 30,\n            \"name\": \"Gruene\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/gruene-neighborhood-guide\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 31,\n            \"name\": \"Heights at Stone Oak\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/heights-at-stone-oak-san-antonio-neighborhood-guide\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 32,\n            \"name\": \"Hill Country Village\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/hill-country-village-city-guide\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 33,\n            \"name\": \"Hollywood Park\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/hollywood-park-san-antonio-guide\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 34,\n            \"name\": \"Kallison Ranch\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/kallison-ranch-neighborhood-guide\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 35,\n            \"name\": \"La Vernia\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/la-vernia-homebuyer-guide\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 36,\n            \"name\": \"Lavaca\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/lavaca-neighborhood-guide\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 37,\n            \"name\": \"Live Oak\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/live-oak-san-antonio-neighborhood-guide\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 38,\n            \"name\": \"Alamo Ranch\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/living-in-alamo-ranch-pros-cons\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 39,\n            \"name\": \"Monte Vista\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/monte-vista-neighborhood-guide-in-san-antonio\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 40,\n            \"name\": \"Monticello Park\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/monticello-park-neighborhood-guide\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 41,\n            \"name\": \"Olmos Park\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/olmos-park-neighborhood-guide\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 42,\n            \"name\": \"Pearl District\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/pearl-district-san-antonio-neighborhood-guide\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 43,\n            \"name\": \"Quarry District\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/quarry-district-san-antonio-neighborhood-guide\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 44,\n            \"name\": \"Redbird Ranch\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/redbird-ranch-neighborhood-guide\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 45,\n            \"name\": \"Rogers Ranch\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/rogers-ranch-neighborhood-guide\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 46,\n            \"name\": \"Schertz\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/schertz-city-guide\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 47,\n            \"name\": \"Shavano Park\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/shavano-park-city-guide\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 48,\n            \"name\": \"Southtown\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/southtown-san-antonio-neighborhood-guide\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 49,\n            \"name\": \"Stone Oak\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/stone-oak-neighborhood-guide-in-san-antonio\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 50,\n            \"name\": \"Terrell Hills\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/terrell-hills-neighborhood-guide\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 51,\n            \"name\": \"The Dominion\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/the-dominion-neighborhood-guide\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 52,\n            \"name\": \"Tobin Hill\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/tobin-hill-neighborhood-guide\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 53,\n            \"name\": \"New Braunfels\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/top-neighborhoods-to-live-in-new-braunfels-tx\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 54,\n            \"name\": \"Vintage Oaks New Braunfels\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/vintage-oaks-new-braunfels-neighborhood-guide\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 55,\n            \"name\": \"Westover Hills\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/westover-hills-neighborhood-guide\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 56,\n            \"name\": \"Windcrest\",\n            \"url\": \"https:\/\/lrgrealty.com\/lrg-blog\/windcrest-neighborhood-guide\"\n        }\n    ]\n}<\/script>    <style id=\"nd-directory-css\">\n    .nd-root{\n        --nd-navy-1:#091A35;--nd-navy-2:#173B67;--nd-navy:#1A365D;--nd-navy-deep:#13294a;\n        --nd-red:#C8102E;--nd-ink:#1f2733;--nd-body:#3d4757;\n        --nd-muted:#6b7686;--nd-line:#d6dbe3;--nd-line-soft:#eef1f5;\n        --nd-bg:#fff;--nd-bg-soft:#f7f9fc;--nd-gold:#C9A961;--nd-green:#16794a;\n        --nd-radius:8px;\n        --nd-shadow:0 1px 3px rgba(0,0,0,.06);\n        --nd-sans:'Source Sans 3',system-ui,sans-serif;\n        --nd-serif:'Source Serif 4',Georgia,serif;\n        font-family:var(--nd-sans);color:var(--nd-body);\n        width:100vw;margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);box-sizing:border-box;\n    }\n    .nd-root *{box-sizing:border-box}\n    .nd-hero{background:linear-gradient(135deg,var(--nd-navy-1) 0%,var(--nd-navy-2) 100%);color:#fff;padding:36px 0 0}\n    .nd-hero-wrap{max-width:1200px;margin:0 auto;padding:0 28px}\n    .nd-hero-kicker{font-size:.78rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--nd-red);margin-bottom:18px}\n    .nd-hero h1{font-family:var(--nd-serif);font-weight:700;font-size:clamp(2.2rem,5.5vw,3.8rem);line-height:1.06;letter-spacing:-.02em;margin:0 0 10px;color:#fff!important}\n    .nd-hero h1 .nd-red{color:var(--nd-red);white-space:nowrap}\n    .nd-hero h1 .nd-h1-w{white-space:nowrap}\n    .nd-hero-sub{font-family:var(--nd-serif);font-size:clamp(1.1rem,2vw,1.4rem);font-weight:400;color:#bccadf;margin-bottom:22px;letter-spacing:-.01em}\n    .nd-hero-intro{font-size:1rem;color:#bccadf;line-height:1.6;margin-bottom:0;padding-bottom:28px}\n    .nd-hero-stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(255,255,255,.12)}\n    .nd-hero-stat{padding:22px 20px 26px;border-left:1px solid rgba(255,255,255,.12);position:relative}\n    .nd-hero-stat:first-child{border-left:none}\n    .nd-hero-stat::before{content:\"\";position:absolute;top:0;left:0;width:34px;height:3px;background:var(--nd-red)}\n    .nd-hero-stat .nd-hs-num{font-family:var(--nd-serif);font-weight:700;font-size:2rem;line-height:1;color:#fff;margin-bottom:6px;letter-spacing:-.02em}\n    .nd-hero-stat .nd-hs-lbl{font-size:.8rem;color:#9fb2cd;line-height:1.35}\n    body.page-id-9482 #main-content .container{padding-top:0!important}\n    .nd-body-wrap{max-width:1200px;margin:0 auto;padding:28px 28px 0}\n    .nd-layout{display:grid;grid-template-columns:260px 1fr;gap:28px;align-items:start}\n    .nd-sidebar{position:sticky;top:90px;background:var(--nd-bg);border:1px solid var(--nd-line);border-radius:var(--nd-radius);box-shadow:var(--nd-shadow);padding:0;overflow:hidden}\n    .nd-sb-toggle{display:none;background:var(--nd-bg);border:1.5px solid var(--nd-navy);border-radius:var(--nd-radius);padding:11px 18px;font-weight:600;font-size:14px;color:var(--nd-navy);cursor:pointer;width:100%;text-align:center;font-family:var(--nd-sans);margin-bottom:14px}\n    .nd-sb-toggle::after{content:\" \\25BC\";font-size:11px}\n    .nd-sb-toggle.nd-open::after{content:\" \\25B2\"}\n    .nd-sb-section{padding:16px 20px;border-bottom:1px solid var(--nd-line)}\n    .nd-sb-section:last-child{border-bottom:0}\n    .nd-sb-heading{font-size:.68rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--nd-red);margin:0 0 10px}\n    .nd-sb-section select{width:100%;font-family:var(--nd-sans);font-size:13.5px;padding:8px 10px;border:1px solid var(--nd-line);border-radius:6px;background:var(--nd-bg);color:var(--nd-ink)}\n    .nd-sb-section select:focus{outline:none;border-color:var(--nd-navy);box-shadow:0 0 0 3px rgba(26,54,93,.12)}\n    .nd-cb{display:flex;align-items:center;gap:7px;padding:4px 0;font-size:13.5px;color:var(--nd-ink);cursor:pointer}\n    .nd-cb input{accent-color:var(--nd-navy);width:15px;height:15px;margin:0;cursor:pointer}\n    .nd-cb input:focus-visible{outline:2px solid var(--nd-navy);outline-offset:2px}\n    .nd-cb span{line-height:1.3}\n    .nd-clear{display:block;padding:14px 20px;text-align:center;font-size:13px;font-weight:600;color:var(--nd-muted);text-decoration:none;border:none;background:none;cursor:pointer;width:100%;font-family:var(--nd-sans);border-top:1px solid var(--nd-line)}\n    .nd-clear:hover{color:var(--nd-red)}\n    .nd-results{min-width:0}\n    .nd-results-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:10px}\n    .nd-count{font-size:13px;color:var(--nd-muted);font-weight:600;letter-spacing:.02em}\n    .nd-sort-wrap{display:flex;align-items:center;gap:8px}\n    .nd-sort-wrap label{font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--nd-muted);white-space:nowrap}\n    .nd-sort-wrap select{font-family:var(--nd-sans);font-size:13px;padding:7px 10px;border:1px solid var(--nd-line);border-radius:6px;background:var(--nd-bg);color:var(--nd-ink)}\n    .nd-sort-wrap select:focus{outline:none;border-color:var(--nd-navy);box-shadow:0 0 0 3px rgba(26,54,93,.12)}\n    .nd-rows{display:flex;flex-direction:column;gap:16px}\n    .nd-row{background:var(--nd-bg);border:1px solid var(--nd-line);border-left:3px solid var(--nd-navy);border-radius:var(--nd-radius);box-shadow:var(--nd-shadow);padding:22px 24px;transition:border-color .15s,box-shadow .15s}\n    .nd-row:hover{border-color:#b0bac8;border-left-color:var(--nd-navy);box-shadow:0 2px 8px rgba(0,0,0,.09)}\n    .nd-row-line1{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:8px}\n    .nd-row-name{font-family:var(--nd-serif);font-weight:600;font-size:22px;color:var(--nd-navy);text-decoration:none;line-height:1.2}\n    .nd-row-name:hover{color:var(--nd-red)}\n    .nd-row-parent{font-size:13px;color:var(--nd-muted);font-weight:400}\n    .nd-row-type{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--nd-navy);background:var(--nd-bg);border:1px solid var(--nd-navy);border-radius:999px;padding:3px 10px;white-space:nowrap}\n    .nd-row-summary{font-size:14.5px;line-height:1.55;color:var(--nd-body);margin-bottom:14px}\n    .nd-stats{display:flex;gap:0;margin-bottom:10px;background:var(--nd-bg-soft);border-radius:6px;overflow:hidden}\n    .nd-stat{flex:1;padding:10px 14px;text-align:center;border-right:1px solid var(--nd-line-soft)}\n    .nd-stat:last-child{border-right:0}\n    .nd-stat-label{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--nd-muted);margin-bottom:4px}\n    .nd-stat-val{font-size:14px;font-weight:600;color:var(--nd-ink)}\n    .nd-stat-val.nd-stat-price{font-family:var(--nd-serif);color:var(--nd-navy);font-size:15px}\n    .nd-stat-note{font-size:10px;color:var(--nd-muted);font-style:italic;margin-top:2px}\n    .nd-stat-note a{color:var(--nd-muted);text-decoration:underline;text-underline-offset:2px}\n    .nd-stat-note a:hover{color:var(--nd-navy)}\n    .nd-row-school-detail{font-size:12px;color:var(--nd-muted);margin-bottom:6px}\n    .nd-row-school-detail a{color:var(--nd-muted);text-decoration:underline;text-underline-offset:2px}\n    .nd-row-flood{font-size:12px;color:var(--nd-muted);margin-bottom:8px;font-style:italic}\n    .nd-row-built{font-size:12px;color:var(--nd-muted);margin-bottom:8px}\n    .nd-row-flags{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:12px}\n    .nd-flag-pill{font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--nd-muted);background:var(--nd-bg-soft);border:1px solid var(--nd-line-soft);border-radius:999px;padding:2px 9px}\n    .nd-row-links{display:flex;gap:20px}\n    .nd-row-link{font-size:14px;font-weight:600;text-decoration:none}\n    .nd-row-link.nd-link-guide{color:var(--nd-navy)}\n    .nd-row-link.nd-link-guide:hover{text-decoration:underline;text-underline-offset:3px}\n    .nd-row-link.nd-link-listings{color:var(--nd-red)}\n    .nd-row-link.nd-link-listings:hover{text-decoration:underline;text-underline-offset:3px}\n    .nd-no-results{text-align:center;padding:48px 20px;color:var(--nd-muted);font-size:15px}\n    @media(max-width:980px){\n        .nd-layout{grid-template-columns:1fr}\n        .nd-sidebar{position:static;border:none;box-shadow:none;padding:0;background:transparent}\n        .nd-sb-toggle{display:block}\n        .nd-sb-inner{display:none;background:var(--nd-bg);border:1px solid var(--nd-line);border-radius:var(--nd-radius);box-shadow:var(--nd-shadow);overflow:hidden;margin-bottom:8px}\n        .nd-sb-inner.nd-show{display:block}\n        .nd-body-wrap{padding:20px 16px 0}\n        .nd-hero-wrap{padding:0 16px}\n        .nd-hero-stats{grid-template-columns:repeat(2,1fr)}\n        .nd-hero-stat:nth-child(3){border-left:none}\n    }\n    @media(max-width:640px){\n        .nd-row{padding:16px 18px}\n        .nd-row-name{font-size:19px}\n        .nd-stats{flex-wrap:wrap}\n        .nd-stat{flex:1 1 calc(50% - 1px);border-bottom:1px solid var(--nd-line-soft)}\n        .nd-stat:nth-child(2){border-right:0}\n        .nd-stat:nth-last-child(-n+2){border-bottom:0}\n        .nd-results-header{flex-direction:column;align-items:flex-start}\n        .nd-hero h1{font-size:clamp(1.6rem,7vw,2.6rem)}\n        .nd-hero-sub{font-size:1rem}\n        .nd-hero-stats{grid-template-columns:1fr 1fr}\n    }\n    <\/style>\n\n    <div class=\"nd-root\" id=\"ndRoot\" data-json-url=\"https:\/\/lrgrealty.com\/wp-content\/uploads\/lrg-data\/neighborhoods-san-antonio.json\">\n        <div class=\"nd-hero\">\n            <div class=\"nd-hero-wrap\">\n                <div class=\"nd-hero-kicker\">LRG Realty &middot; Neighborhoods<\/div>\n                <h1><span class=\"nd-red\">2026 Best Neighborhoods<\/span> <span class=\"nd-h1-w\">to Live in San Antonio<\/span><\/h1>\n                <div class=\"nd-hero-sub\">Compare prices, schools, taxes, and commutes.<\/div>\n                <p class=\"nd-hero-intro\">Compare San Antonio neighborhoods side by side. Filter by price range, school district, commute time, and property features to find the right fit for your household. Tax rates and school assignments change. Verify details for any specific address with the county and district.<\/p>\n            <\/div>\n            <div class=\"nd-hero-wrap\">\n                <div class=\"nd-hero-stats\">\n                    <div class=\"nd-hero-stat\"><div class=\"nd-hs-num\">56<\/div><div class=\"nd-hs-lbl\">Neighborhoods compared<\/div><\/div>\n                    <div class=\"nd-hero-stat\"><div class=\"nd-hs-num\">13<\/div><div class=\"nd-hs-lbl\">School districts<\/div><\/div>\n                    <div class=\"nd-hero-stat\"><div class=\"nd-hs-num\">5<\/div><div class=\"nd-hs-lbl\">Commute anchors<\/div><\/div>\n                    <div class=\"nd-hero-stat\"><div class=\"nd-hs-num\">Updated July 2026<\/div><div class=\"nd-hs-lbl\">Data current as of<\/div><\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n        <div class=\"nd-body-wrap\">\n            <div class=\"nd-layout\">\n                <aside class=\"nd-sidebar\">\n                    <button class=\"nd-sb-toggle\" id=\"ndSbToggle\">Filters<\/button>\n                    <div class=\"nd-sb-inner\" id=\"ndSbInner\">\n                        <div class=\"nd-sb-section\">\n                            <div class=\"nd-sb-heading\">Scope<\/div>\n                            <div id=\"ndScopeChecks\"><label class=\"nd-cb\"><input type=\"checkbox\" data-scope=\"city\" checked><span>Cities &amp; Towns<\/span><\/label><label class=\"nd-cb\"><input type=\"checkbox\" data-scope=\"neighborhood\" checked><span>Neighborhoods<\/span><\/label><label class=\"nd-cb\"><input type=\"checkbox\" data-scope=\"subdivision\" checked><span>Subdivisions &amp; Communities<\/span><\/label><\/div>\n                        <\/div>\n                        <div class=\"nd-sb-section\">\n                            <div class=\"nd-sb-heading\">Area Type<\/div>\n                            <div id=\"ndAreaChecks\"><label class=\"nd-cb\"><input type=\"checkbox\" data-area=\"acreage-hill-country\"><span>Acreage \/ Hill Country<\/span><\/label><label class=\"nd-cb\"><input type=\"checkbox\" data-area=\"incorporated-city\"><span>Incorporated City<\/span><\/label><label class=\"nd-cb\"><input type=\"checkbox\" data-area=\"master-planned\"><span>Master Planned<\/span><\/label><label class=\"nd-cb\"><input type=\"checkbox\" data-area=\"suburban\"><span>Suburban<\/span><\/label><label class=\"nd-cb\"><input type=\"checkbox\" data-area=\"urban-core\"><span>Urban Core<\/span><\/label><\/div>\n                        <\/div>\n                        <div class=\"nd-sb-section\">\n                            <div class=\"nd-sb-heading\">Price Range<\/div>\n                            <select id=\"ndPrice\">\n                                <option value=\"\">All prices<\/option>\n                                <option value=\"0-300000\">Under $300K<\/option>\n                                <option value=\"300000-500000\">$300K to $500K<\/option>\n                                <option value=\"500000-750000\">$500K to $750K<\/option>\n                                <option value=\"750000-999999999\">$750K+<\/option>\n                            <\/select>\n                        <\/div>\n                        <div class=\"nd-sb-section\">\n                            <div class=\"nd-sb-heading\">School District<\/div>\n                            <select id=\"ndDistrict\">\n                                <option value=\"\">All districts<\/option>\n                                <option value=\"Northside ISD\">Northside ISD (13)<\/option><option value=\"North East ISD\">North East ISD (12)<\/option><option value=\"San Antonio ISD\">San Antonio ISD (7)<\/option><option value=\"Comal ISD\">Comal ISD (7)<\/option><option value=\"Alamo Heights ISD\">Alamo Heights ISD (4)<\/option><option value=\"Boerne ISD\">Boerne ISD (3)<\/option><option value=\"Schertz-Cibolo-Universal City ISD\">Schertz-Cibolo-Universal City ISD (3)<\/option><option value=\"Judson ISD\">Judson ISD (2)<\/option><option value=\"Seguin ISD\">Seguin ISD (1)<\/option><option value=\"Poteet ISD\">Poteet ISD (1)<\/option><option value=\"Medina Valley ISD\">Medina Valley ISD (1)<\/option><option value=\"La Vernia ISD\">La Vernia ISD (1)<\/option><option value=\"New Braunfels ISD\">New Braunfels ISD (1)<\/option>                            <\/select>\n                        <\/div>\n                        <div class=\"nd-sb-section\">\n                            <div class=\"nd-sb-heading\">Commute<\/div>\n                            <select id=\"ndAnchor\" style=\"margin-bottom:8px\">\n                                <option value=\"\">Select a destination<\/option>\n                                <option value=\"jbsa_lackland\">JBSA-Lackland<\/option><option value=\"jbsa_randolph\">JBSA-Randolph<\/option><option value=\"fort_sam\">Fort Sam Houston<\/option><option value=\"downtown\">Downtown San Antonio<\/option><option value=\"med_center\">South Texas Medical Center<\/option>                            <\/select>\n                            <select id=\"ndMaxMin\" disabled>\n                                <option value=\"\">Max minutes<\/option>\n                                <option value=\"15\">15 min<\/option>\n                                <option value=\"25\">25 min<\/option>\n                                <option value=\"35\">35 min<\/option>\n                                <option value=\"45\">45 min<\/option>\n                            <\/select>\n                        <\/div>\n                        <div class=\"nd-sb-section\">\n                            <div class=\"nd-sb-heading\">Features<\/div>\n                            <div id=\"ndFlagChecks\"><label class=\"nd-cb\"><input type=\"checkbox\" data-flag=\"acreage\"><span>Acreage<\/span><\/label><label class=\"nd-cb\"><input type=\"checkbox\" data-flag=\"dining\"><span>Dining<\/span><\/label><label class=\"nd-cb\"><input type=\"checkbox\" data-flag=\"established\"><span>Established<\/span><\/label><label class=\"nd-cb\"><input type=\"checkbox\" data-flag=\"fitness\"><span>Fitness<\/span><\/label><label class=\"nd-cb\"><input type=\"checkbox\" data-flag=\"gated\"><span>Gated<\/span><\/label><label class=\"nd-cb\"><input type=\"checkbox\" data-flag=\"golf\"><span>Golf<\/span><\/label><label class=\"nd-cb\"><input type=\"checkbox\" data-flag=\"lake-access\"><span>Lake Access<\/span><\/label><label class=\"nd-cb\"><input type=\"checkbox\" data-flag=\"military-adjacent\"><span>Military Adjacent<\/span><\/label><label class=\"nd-cb\"><input type=\"checkbox\" data-flag=\"new-construction\"><span>New Construction<\/span><\/label><label class=\"nd-cb\"><input type=\"checkbox\" data-flag=\"parks\"><span>Parks<\/span><\/label><label class=\"nd-cb\"><input type=\"checkbox\" data-flag=\"playgrounds\"><span>Playgrounds<\/span><\/label><label class=\"nd-cb\"><input type=\"checkbox\" data-flag=\"pool\"><span>Pool<\/span><\/label><label class=\"nd-cb\"><input type=\"checkbox\" data-flag=\"shopping\"><span>Shopping<\/span><\/label><label class=\"nd-cb\"><input type=\"checkbox\" data-flag=\"tennis\"><span>Tennis<\/span><\/label><label class=\"nd-cb\"><input type=\"checkbox\" data-flag=\"trails\"><span>Trails<\/span><\/label><label class=\"nd-cb\"><input type=\"checkbox\" data-flag=\"walkable-core\"><span>Walkable Core<\/span><\/label><\/div>\n                        <\/div>\n                        <button class=\"nd-clear\" id=\"ndClear\">Clear all filters<\/button>\n                    <\/div>\n                <\/aside>\n                <div class=\"nd-results\">\n                    <div class=\"nd-results-header\">\n                        <div class=\"nd-count\" id=\"ndCount\"><\/div>\n                        <div class=\"nd-sort-wrap\">\n                            <label for=\"ndSort\">Sort<\/label>\n                            <select id=\"ndSort\">\n                                <option value=\"az\">A to Z<\/option>\n                                <option value=\"price-asc\">Price: low to high<\/option>\n                                <option value=\"price-desc\">Price: high to low<\/option>\n                                <option value=\"commute\" disabled>Commute time<\/option>\n                            <\/select>\n                        <\/div>\n                    <\/div>\n                    <div class=\"nd-rows\" id=\"ndRows\">\n                        <p class=\"nd-no-results\">Loading neighborhood data...<\/p>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <script>\n    (function(){\n        var root = document.getElementById('ndRoot');\n        var url = root.getAttribute('data-json-url');\n        var rowsEl = document.getElementById('ndRows');\n        var countEl = document.getElementById('ndCount');\n        var allData = [];\n        var anchors = {};\n        var pillLabels = {\"established\":\"Established\",\"walkable-core\":\"Walkable Core\",\"gated\":\"Gated\",\"new-construction\":\"New Construction\",\"military-adjacent\":\"Military Adjacent\",\"golf\":\"Golf\",\"lake-access\":\"Lake Access\",\"acreage\":\"Acreage\",\"pool\":\"Pool\",\"trails\":\"Trails\",\"parks\":\"Parks\",\"dining\":\"Dining\",\"shopping\":\"Shopping\",\"playgrounds\":\"Playgrounds\",\"tennis\":\"Tennis\",\"fitness\":\"Fitness\"};\n\n        var elPrice = document.getElementById('ndPrice');\n        var elDistrict = document.getElementById('ndDistrict');\n        var elAnchor = document.getElementById('ndAnchor');\n        var elMaxMin = document.getElementById('ndMaxMin');\n        var elSort = document.getElementById('ndSort');\n        var elToggle = document.getElementById('ndSbToggle');\n        var elSbInner = document.getElementById('ndSbInner');\n        var elClear = document.getElementById('ndClear');\n\n        elToggle.addEventListener('click', function(){\n            elToggle.classList.toggle('nd-open');\n            elSbInner.classList.toggle('nd-show');\n        });\n\n        function getChecked(containerId, attr){\n            var checks = document.getElementById(containerId).querySelectorAll('input:checked');\n            var vals = [];\n            for(var i=0;i<checks.length;i++) vals.push(checks[i].getAttribute(attr));\n            return vals;\n        }\n\n        document.getElementById('ndScopeChecks').addEventListener('change', render);\n        document.getElementById('ndAreaChecks').addEventListener('change', render);\n        document.getElementById('ndFlagChecks').addEventListener('change', render);\n        [elPrice, elDistrict, elMaxMin, elSort].forEach(function(el){ el.addEventListener('change', render); });\n\n        elAnchor.addEventListener('change', function(){\n            var has = !!elAnchor.value;\n            elMaxMin.disabled = !has;\n            if(!has) elMaxMin.value = '';\n            elSort.querySelector('option[value=\"commute\"]').disabled = !has;\n            if(!has && elSort.value === 'commute') elSort.value = 'az';\n            render();\n        });\n\n        elClear.addEventListener('click', function(){\n            elPrice.value = '';\n            elDistrict.value = '';\n            elAnchor.value = '';\n            elMaxMin.value = '';\n            elMaxMin.disabled = true;\n            elSort.value = 'az';\n            elSort.querySelector('option[value=\"commute\"]').disabled = true;\n            var boxes = document.querySelectorAll('#ndScopeChecks input, #ndAreaChecks input, #ndFlagChecks input');\n            for(var i=0;i<boxes.length;i++) boxes[i].checked = true;\n            \/\/ Scope checkboxes back to all-checked, flags\/area back to unchecked\n            document.querySelectorAll('#ndAreaChecks input, #ndFlagChecks input').forEach(function(cb){ cb.checked = false; });\n            document.querySelectorAll('#ndScopeChecks input').forEach(function(cb){ cb.checked = true; });\n            render();\n        });\n\n        function formatType(t){\n            var map = {'incorporated-city':'Incorporated City','master-planned':'Master Planned','suburban':'Suburban','urban-core':'Urban Core','acreage-hill-country':'Acreage \/ Hill Country'};\n            return map[t] || (t||'').replace(\/-\/g,' ').replace(\/\\b\\w\/g, function(c){return c.toUpperCase();});\n        }\n        function formatPill(f){\n            return pillLabels[f] || f.replace(\/-\/g,' ').replace(\/\\b\\w\/g, function(c){return c.toUpperCase();});\n        }\n\n        function matchesFilters(nb){\n            \/\/ Scope\n            var sKeys = getChecked('ndScopeChecks','data-scope');\n            if(sKeys.length && sKeys.indexOf(nb.scope) === -1) return false;\n            \/\/ Price\n            if(elPrice.value){\n                var parts = elPrice.value.split('-');\n                var lo = parseInt(parts[0],10), hi = parseInt(parts[1],10);\n                if(nb.price_band.high < lo || nb.price_band.low > hi) return false;\n            }\n            \/\/ District\n            if(elDistrict.value && nb.school_district !== elDistrict.value) return false;\n            \/\/ Area type\n            var aKeys = getChecked('ndAreaChecks','data-area');\n            if(aKeys.length && aKeys.indexOf(nb.area_type||'') === -1) return false;\n            \/\/ Flags\n            var fKeys = getChecked('ndFlagChecks','data-flag');\n            if(fKeys.length){\n                var combined = (nb.flags||[]).concat(nb.amenities||[]);\n                for(var i=0;i<fKeys.length;i++){\n                    if(combined.indexOf(fKeys[i]) === -1) return false;\n                }\n            }\n            \/\/ Commute\n            if(elAnchor.value && elMaxMin.value){\n                var mins = nb.commute_min[elAnchor.value];\n                if(mins === undefined || mins > parseInt(elMaxMin.value,10)) return false;\n            }\n            return true;\n        }\n\n        function sortData(arr){\n            var s = elSort.value, anchor = elAnchor.value;\n            arr.sort(function(a,b){\n                if(s === 'az') return a.name.localeCompare(b.name);\n                if(s === 'price-asc') return a.price_band.low - b.price_band.low;\n                if(s === 'price-desc') return b.price_band.high - a.price_band.high;\n                if(s === 'commute' && anchor) return (a.commute_min[anchor]||999) - (b.commute_min[anchor]||999);\n                return 0;\n            });\n        }\n\n        function commuteDisplay(nb){\n            var anchor = elAnchor.value;\n            if(anchor && nb.commute_min[anchor] !== undefined)\n                return nb.commute_min[anchor] + ' min to ' + (anchors[anchor] || anchor);\n            var best = null, bestKey = '';\n            for(var k in nb.commute_min){\n                if(k === 'estimated') continue;\n                if(best === null || nb.commute_min[k] < best){ best = nb.commute_min[k]; bestKey = k; }\n            }\n            if(best !== null) return best + ' min to ' + (anchors[bestKey] || bestKey);\n            return '';\n        }\n\n        function buildRow(nb){\n            var commute = commuteDisplay(nb);\n\n            \/\/ Name + parent_city for subdivisions\n            var nameHtml = '<a class=\"nd-row-name\" href=\"' + nb.guide_url + '\">' + nb.name + '<\/a>';\n            if(nb.scope === 'subdivision' && nb.parent_city)\n                nameHtml += ' <span class=\"nd-row-parent\">in ' + nb.parent_city + '<\/span>';\n\n            \/\/ Tax display\n            var taxVal = nb.tax_rate_pct ? nb.tax_rate_pct.toFixed(1) + '%' : 'Varies';\n            var taxNote = 'Verify with county';\n            if(nb.tax_year) taxNote += ' (' + nb.tax_year + ')';\n\n            \/\/ School district note\n            var distNote = '';\n            if(nb.schools && nb.schools.varies_by_address) distNote = 'Varies by address';\n            if(nb.schools && nb.schools.district_finder_url)\n                distNote += (distNote ? ' \u00b7 ' : '') + '<a href=\"' + nb.schools.district_finder_url + '\" target=\"_blank\" rel=\"noopener\">Check your address<\/a>';\n\n            \/\/ School detail line: only render direct-confidence names\n            var schoolDetail = '';\n            var sc = nb.schools || {};\n            var parts = [];\n            if(sc.elementary && sc.elementary_confidence === 'direct') parts.push(sc.elementary);\n            if(sc.middle && sc.middle_confidence === 'direct') parts.push(sc.middle);\n            if(sc.high && sc.high_confidence === 'direct') parts.push(sc.high);\n            if(parts.length){\n                schoolDetail = '<div class=\"nd-row-school-detail\">Zoned: ' + parts.join(' \u00b7 ');\n                if(sc.district_finder_url)\n                    schoolDetail += ' \u00b7 <a href=\"' + sc.district_finder_url + '\" target=\"_blank\" rel=\"noopener\">Check your address<\/a>';\n                schoolDetail += '<\/div>';\n            }\n\n            \/\/ Flood line\n            var floodHtml = '';\n            if(nb.flood && nb.flood.zone_presence === true)\n                floodHtml = '<div class=\"nd-row-flood\">Some areas in mapped flood zones. Check any address at FEMA.gov.<\/div>';\n\n            \/\/ Built\/lot line\n            var builtHtml = '';\n            var builtParts = [];\n            if(nb.built_character) builtParts.push(nb.built_character);\n            if(nb.lot_character) builtParts.push(nb.lot_character);\n            if(builtParts.length)\n                builtHtml = '<div class=\"nd-row-built\">' + builtParts.join(' \u00b7 ') + '<\/div>';\n\n            \/\/ Flags + amenities pills, max 6, flags first\n            var combined = [];\n            var seen = {};\n            var src = (nb.flags||[]).concat(nb.amenities||[]);\n            for(var i=0;i<src.length && combined.length<6;i++){\n                if(!seen[src[i]]){ seen[src[i]]=true; combined.push(src[i]); }\n            }\n            var flagsHtml = '';\n            if(combined.length){\n                flagsHtml = '<div class=\"nd-row-flags\">';\n                for(var i=0;i<combined.length;i++)\n                    flagsHtml += '<span class=\"nd-flag-pill\">' + formatPill(combined[i]) + '<\/span>';\n                flagsHtml += '<\/div>';\n            }\n\n            \/\/ Listings link text\n            var listingsText = (nb.listings_confidence === 'direct')\n                ? 'See homes for sale in ' + nb.name + ' \\u2192'\n                : 'See San Antonio homes for sale \\u2192';\n\n            return '<div class=\"nd-row\">' +\n                '<div class=\"nd-row-line1\">' + nameHtml +\n                    (nb.area_type ? ' <span class=\"nd-row-type\">' + formatType(nb.area_type) + '<\/span>' : '') +\n                '<\/div>' +\n                '<div class=\"nd-row-summary\">' + (nb.summary||'') + '<\/div>' +\n                '<div class=\"nd-stats\">' +\n                    '<div class=\"nd-stat\"><div class=\"nd-stat-label\">Price<\/div><div class=\"nd-stat-val nd-stat-price\">' + (nb.price_band.label||'') + '<\/div><\/div>' +\n                    '<div class=\"nd-stat\"><div class=\"nd-stat-label\">School District<\/div><div class=\"nd-stat-val\">' + (nb.school_district||'') + '<\/div>' + (distNote ? '<div class=\"nd-stat-note\">' + distNote + '<\/div>' : '') + '<\/div>' +\n                    '<div class=\"nd-stat\"><div class=\"nd-stat-label\">Tax Rate<\/div><div class=\"nd-stat-val\">' + taxVal + '<\/div><div class=\"nd-stat-note\">' + taxNote + '<\/div><\/div>' +\n                    (commute ? '<div class=\"nd-stat\"><div class=\"nd-stat-label\">Commute<\/div><div class=\"nd-stat-val\">' + commute + '<\/div><div class=\"nd-stat-note\">Approximate drive time<\/div><\/div>' : '') +\n                '<\/div>' +\n                schoolDetail +\n                floodHtml +\n                builtHtml +\n                flagsHtml +\n                '<div class=\"nd-row-links\">' +\n                    '<a class=\"nd-row-link nd-link-guide\" href=\"' + nb.guide_url + '\">Read the full guide \\u2192<\/a>' +\n                    '<a class=\"nd-row-link nd-link-listings\" href=\"' + nb.listings_url + '\">' + listingsText + '<\/a>' +\n                '<\/div>' +\n            '<\/div>';\n        }\n\n        function render(){\n            var filtered = allData.filter(matchesFilters);\n            sortData(filtered);\n            countEl.textContent = 'Showing ' + filtered.length + ' of ' + allData.length + ' neighborhoods';\n            if(filtered.length === 0){\n                rowsEl.innerHTML = '<p class=\"nd-no-results\">No neighborhoods match your current filters. Try adjusting your criteria.<\/p>';\n                return;\n            }\n            var html = '';\n            for(var i=0;i<filtered.length;i++) html += buildRow(filtered[i]);\n            rowsEl.innerHTML = html;\n        }\n\n        var xhr = new XMLHttpRequest();\n        xhr.open('GET', url, true);\n        xhr.onload = function(){\n            if(xhr.status >= 200 && xhr.status < 300){\n                try {\n                    var d = JSON.parse(xhr.responseText);\n                    allData = d.neighborhoods || [];\n                    anchors = (d.meta && d.meta.anchors) ? d.meta.anchors : {};\n                    render();\n                } catch(e){\n                    rowsEl.innerHTML = '<p class=\"nd-no-results\">Neighborhood data could not be loaded. Check back soon.<\/p>';\n                }\n            } else {\n                rowsEl.innerHTML = '<p class=\"nd-no-results\">Neighborhood data could not be loaded. Check back soon.<\/p>';\n            }\n        };\n        xhr.onerror = function(){\n            rowsEl.innerHTML = '<p class=\"nd-no-results\">Neighborhood data could not be loaded. Check back soon.<\/p>';\n        };\n        xhr.send();\n    })();\n    <\/script>\n    \n","protected":false},"excerpt":{"rendered":"<p>Compare 56 San Antonio area neighborhoods by price range, school district, property taxes, and commute time. Every neighborhood links to a full LRG buyer guide.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":9481,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-9482","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>San Antonio Neighborhoods: Compare Prices, Schools, Taxes, and Commutes - LRG Realty Blog<\/title>\n<meta name=\"description\" content=\"Compare 56 San Antonio area neighborhoods by price range, school district, property taxes, and commute time. Every neighborhood links to a full LRG buyer guide.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/lrgrealty.com\/neighborhoods\/san-antonio\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"San Antonio Neighborhoods: Compare Prices, Schools, Taxes, and Commutes - LRG Realty Blog\" \/>\n<meta property=\"og:description\" content=\"Compare 56 San Antonio area neighborhoods by price range, school district, property taxes, and commute time. Every neighborhood links to a full LRG buyer guide.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/lrgrealty.com\/neighborhoods\/san-antonio\/\" \/>\n<meta property=\"og:site_name\" content=\"LRG Realty Blog\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-29T17:50:46+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/lrgrealty.com\\\/neighborhoods\\\/san-antonio\\\/\",\"url\":\"https:\\\/\\\/lrgrealty.com\\\/neighborhoods\\\/san-antonio\\\/\",\"name\":\"San Antonio Neighborhoods: Compare Prices, Schools, Taxes, and Commutes - LRG Realty Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/lrgrealty.com\\\/lrg-blog\\\/#website\"},\"datePublished\":\"2026-07-29T15:57:26+00:00\",\"dateModified\":\"2026-07-29T17:50:46+00:00\",\"description\":\"Compare 56 San Antonio area neighborhoods by price range, school district, property taxes, and commute time. Every neighborhood links to a full LRG buyer guide.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/lrgrealty.com\\\/neighborhoods\\\/san-antonio\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/lrgrealty.com\\\/neighborhoods\\\/san-antonio\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/lrgrealty.com\\\/neighborhoods\\\/san-antonio\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/lrgrealty.com\\\/lrg-blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"LRG Neighborhood Directories\",\"item\":\"https:\\\/\\\/lrgrealty.com\\\/neighborhoods\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"San Antonio Neighborhoods: Compare Prices, Schools, Taxes, and Commutes\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/lrgrealty.com\\\/lrg-blog\\\/#website\",\"url\":\"https:\\\/\\\/lrgrealty.com\\\/lrg-blog\\\/\",\"name\":\"LRG Realty Blog\",\"description\":\"LRG Realty Blog\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/lrgrealty.com\\\/lrg-blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"San Antonio Neighborhoods: Compare Prices, Schools, Taxes, and Commutes - LRG Realty Blog","description":"Compare 56 San Antonio area neighborhoods by price range, school district, property taxes, and commute time. Every neighborhood links to a full LRG buyer guide.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/lrgrealty.com\/neighborhoods\/san-antonio\/","og_locale":"en_US","og_type":"article","og_title":"San Antonio Neighborhoods: Compare Prices, Schools, Taxes, and Commutes - LRG Realty Blog","og_description":"Compare 56 San Antonio area neighborhoods by price range, school district, property taxes, and commute time. Every neighborhood links to a full LRG buyer guide.","og_url":"https:\/\/lrgrealty.com\/neighborhoods\/san-antonio\/","og_site_name":"LRG Realty Blog","article_modified_time":"2026-07-29T17:50:46+00:00","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/lrgrealty.com\/neighborhoods\/san-antonio\/","url":"https:\/\/lrgrealty.com\/neighborhoods\/san-antonio\/","name":"San Antonio Neighborhoods: Compare Prices, Schools, Taxes, and Commutes - LRG Realty Blog","isPartOf":{"@id":"https:\/\/lrgrealty.com\/lrg-blog\/#website"},"datePublished":"2026-07-29T15:57:26+00:00","dateModified":"2026-07-29T17:50:46+00:00","description":"Compare 56 San Antonio area neighborhoods by price range, school district, property taxes, and commute time. Every neighborhood links to a full LRG buyer guide.","breadcrumb":{"@id":"https:\/\/lrgrealty.com\/neighborhoods\/san-antonio\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/lrgrealty.com\/neighborhoods\/san-antonio\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/lrgrealty.com\/neighborhoods\/san-antonio\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/lrgrealty.com\/lrg-blog\/"},{"@type":"ListItem","position":2,"name":"LRG Neighborhood Directories","item":"https:\/\/lrgrealty.com\/neighborhoods\/"},{"@type":"ListItem","position":3,"name":"San Antonio Neighborhoods: Compare Prices, Schools, Taxes, and Commutes"}]},{"@type":"WebSite","@id":"https:\/\/lrgrealty.com\/lrg-blog\/#website","url":"https:\/\/lrgrealty.com\/lrg-blog\/","name":"LRG Realty Blog","description":"LRG Realty Blog","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/lrgrealty.com\/lrg-blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/lrgrealty.com\/lrg-blog\/wp-json\/wp\/v2\/pages\/9482","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lrgrealty.com\/lrg-blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/lrgrealty.com\/lrg-blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/lrgrealty.com\/lrg-blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lrgrealty.com\/lrg-blog\/wp-json\/wp\/v2\/comments?post=9482"}],"version-history":[{"count":1,"href":"https:\/\/lrgrealty.com\/lrg-blog\/wp-json\/wp\/v2\/pages\/9482\/revisions"}],"predecessor-version":[{"id":9492,"href":"https:\/\/lrgrealty.com\/lrg-blog\/wp-json\/wp\/v2\/pages\/9482\/revisions\/9492"}],"up":[{"embeddable":true,"href":"https:\/\/lrgrealty.com\/lrg-blog\/wp-json\/wp\/v2\/pages\/9481"}],"wp:attachment":[{"href":"https:\/\/lrgrealty.com\/lrg-blog\/wp-json\/wp\/v2\/media?parent=9482"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}