Setting up Schema.org so AI systems recognize your local business
Markup does not grant rankings directly, but it determines what kind of business you are in a machine's eyes. Without it an AI system pieces your data together and frequently gets it wrong.
Why markup matters in the LLM era
A model answering 'where in Tashkent can I repair a Lenovo laptop' does not pick the prettiest site, it picks the one whose data it could parse unambiguously: business type, address, services, hours, phone.
JSON-LD markup supplies that data in machine form with no guessing from layout. That matters especially on sites where the address is an image or buried in the footer at eight pixels.
There is a second effect: consistency. When site markup matches the Google Business Profile and directories, the entity is treated as confirmed. Discrepancies lower confidence and you get named less often.
The base type set
Organization, or a specific LocalBusiness subtype (Restaurant, AutoRepair, RealEstateAgent, HomeAndConstructionBusiness). A specific subtype beats the generic one: it states what you do immediately.
PostalAddress with streetAddress, addressLocality (Tashkent), addressRegion, postalCode and addressCountry set to UZ. GeoCoordinates with latitude and longitude are mandatory for a local business.
OpeningHoursSpecification, telephone in international +998 format, priceRange, Service or OfferCatalog for the service list, FAQPage on question-and-answer pages, and Article with datePublished and dateModified for blog posts.
Uzbekistan specifics
Write the address exactly as Google Maps knows it and exactly as it appears in the Google Business Profile. Variance between 'Chilonzor tumani' and its Russian rendering across sources is the single most common reason data fails to consolidate into one entity.
Phone numbers in +998 XX XXX XX XX format only. Local notations starting with an eight or missing the country code are not recognized as valid numbers.
State prices with priceCurrency UZS. Amounts without a currency are interpreted as dollars by default in a number of parsers, which produces absurd results in answers.
Multilingual markup
On each language version put markup in that version's language while keeping the machine fields identical: coordinates, phone, URL, currency. Keep the company name in a single spelling across languages, with alternateName for the second variant.
Link language versions via hreflang and add sameAs pointing at social profiles, the Google Business Profile and industry directories. sameAs is an underrated field — it is what lets a system confirm this is the same company.
Do not duplicate the full organization markup on every page. A complete version on the home and contact pages is enough; elsewhere use a shortened form referencing @id.
Validation and common mistakes
Run pages through Google's structured data validator and the Rich Results Test. An error in one required field often disables the entire markup block, not just that field.
A frequent mistake is markup that does not match visible page content. Declaring services and hours that appear nowhere on the page is useless and risky.
The second frequent mistake is copying someone else's JSON-LD along with their coordinates and phone numbers. It happens more often than you would think and ties your business to another company's address.